Thoughts on software development, lessons learned, and things I find interesting.
When you're building an automated job application system, the temptation is to treat all jobs the same. Parse the description, match some keywords, maybe calculate a score. But here's the problem: a "Senior Software Engineer" role at a 10-person startup means something fundamentally different than the same title at a Fortune 500 company. The startup […]
The hardest part of building AI-powered features isn't the AI itself—it's everything that happens before and after the AI does its work. I just added a new endpoint that lets users generate social media content from their code commits. On the surface, it's straightforward: user clicks "generate," AI writes posts, done. But between that click […]
When you're building a platform that connects developers across multiple services—GitHub, Twitter, LinkedIn—authentication becomes complicated fast. You can't just slap OAuth on it and call it done. You need to think about how users authenticate, how you store their connections, and what happens when they want to link accounts across platforms. This is the story […]
When you're building a system that publishes to multiple platforms, each new integration reveals something about your architecture. WordPress was the fourth platform I added to our auto-publishing API, and it exposed a design decision I'd made earlier that was both helping and limiting me. The Pattern That Emerged Looking at the existing publishers – […]
When you're building a developer tool that touches people's GitHub repos and social media accounts, trust isn't optional—it's the product. Every encrypted webhook secret, every logged action, every verification step is answering one question: "Should I let this thing touch my stuff?" I recently shipped a complete audit trail system for our backend API. Not […]
I just spent the better part of a day making a bot pretend to be me on LinkedIn. Not because I'm lazy (okay, partly), but because LinkedIn's official API is… let's just say it has opinions about what you can and can't do. The goal was simple: let users publish posts to LinkedIn from our […]