Software Design Is Mostly About Saying No
What happens when a software project starts as a simple application and ends up as a sprawling, complex beast that's difficult to manage? Often, it's the result of saying "yes" too often. Feature pres
$ cat ./blog/index
Lessons from shipping software—what works, what breaks, and why it matters. Focused on practical engineering decisions and building systems that last.
What happens when a software project starts as a simple application and ends up as a sprawling, complex beast that's difficult to manage? Often, it's the result of saying "yes" too often. Feature pres
How often do we find ourselves in the aftermath of a production incident, wondering how our carefully crafted code could have gone so wrong? These moments aren't just frustrating; they're enlightening
Is your code a masterpiece or a mystery? You might have built a brilliant algorithm, but if your code reads like a cryptic puzzle, you could be setting up your team—and yourself—for a rough ride. Read
A design proposal lands on your desk, and you're tasked with evaluating it. Whether you're a senior engineer, team lead, or part of a cross-disciplinary committee, reviewing design proposals is an exe
Design docs often get a bad rap. They're sometimes viewed as unnecessary paperwork that slows down the development process. But what if we flipped the script? Consider design docs as pre-mortems that
What if I told you that the most telling part of a technical interview isn't the coding challenge, but rather something much subtler? It's the signals that engineers send—often without realizing—about
"Just ship it" has become almost a rite of passage in software development. The mantra speaks to urgency—getting features out the door, satisfying stakeholders, staying competitive. But beneath this
Time and space complexity often take a backseat to rapid deployment and feature delivery. Frameworks abstract away the details, and modern hardware can brute-force through inefficient code—until it ca
There's a perennial debate in software engineering: should you build opinionated codebases or flexible, configurable ones? Opinionated systems guide developers through a constrained, structured path
When you're a junior engineer, it's tempting to seek out absolute truths in software development. After all, clean code, design patterns, and best practices often seem like the holy grail of programmi
Working from home can feel like both a blessing and a curse. On one hand, you're free from the distractions and interruptions of a bustling office. On the other, your home is filled with its own set o
Why asking candidates what they would ask reveals judgment, values, and real seniority.
On why strong opinions, constraints, and friction can actually make software better.
Welcome to my blog. Here's what to expect from this space and why I decided to start writing.