Weeknotes 2025W27
The big thing this week was doing an interview for a job I’m excited about! It was a short screening round to gauge cultural fit but I think it went well. I don’t understand why I get so nervous for these things. Even if I don’t get another interview request, I’m still happy I didn’t get ghosted or sent a template email that I wasn’t selected. I talked to some actual human beings and got to share some stories and I’m glad for that.
We had an Independence Day function which was so much fun. We ate brisket, had drinks, and played a ton of pickleball, volleyball, and cornhole. We read the Declaration of Independence which I hadn’t heard since high school. Overall, it was an excellent day spent with great people.
I was inspired by a post on Hacker News to make a Discord bot. It’s marginally useful for my friend group but really I wanted an excuse for a project in Elixir and had lots of fun making it. It sends a message to the group whenever someone joins a voice channel and that’s about it.
Discord sends an event when someone’s voice state changes. This includes joining a voice channel, leaving a voice channel, being muted, or being deafened. I needed to keep track of the user’s previous voice state and compare it to the current voice state to determine if they are joining a voice channel. For this, I wired up an Agent as an easy way to manage that sort of like a cache system. Each time the bot sends a message, it spins up a process, waits 15 minutes, and deletes the message using Process.send_after/3. It was a short project but I learned a lot about processes and state management.
Links
- AnyDice by Jasper Flick. I’ve always wanted a way to calculate probabilities and expected values of arbitrary dice rolls and I finally found it.
- Vexlio. An early but great-looking diagram tool. Definitely would have liked using this in college.
- I built something that changed my friend group’s social fabric by Dan Petrolito. Petrolito made a Discord bot that simply sends a message whenever someone joins a voice channel. I liked the idea and used it as an excuse to learn some more Elixir so I built the same thing. We’ll see if I get as much success!
- Join the fediverse. Resources and information about the fediverse.
Posted:
Updated: