Making the right tradeoffs
Finding a design that solves the real problem without creating three new ones.
I've spent a good part of my career building software, figuring out how systems fit together, and occasionally managing the people who do both.
These days, I'm especially interested in the problems that don't have an obvious answer, and in making sure the solution actually works once it's out in the world.
I've been a developer, an architect, and an engineering manager. I've worked on payment systems, web applications, SaaS products, and the machinery behind them.
I eventually found that I enjoy being close to the actual problem: understanding it, making decisions, and being responsible for the outcome. I still like writing code. I just don't think writing code is always the hardest part.
And yes, I've been in enough meetings to appreciate a good afternoon of uninterrupted work.
I enjoy architecture and the complicated problems that come with connecting systems. But I'm just as comfortable opening an established codebase, tracking down a JavaScript bug, or fixing something small that has been irritating people for months.
There's a lot of good software that's been around for years. I don't see age as a reason to replace it. Sometimes the right answer is a new design. Sometimes it's a careful three-line change.
And sometimes it's a typo. I'm happy to fix that, too.
The tools change. The responsibility for making things work doesn't.
After enough years in software, you stop expecting to have seen every problem before. What matters is being able to sort through the unknowns, make sensible choices, and follow through.
More about how I approach engineering →Finding a design that solves the real problem without creating three new ones.
APIs, data, services, old systems, new systems. They don't always agree with each other.
“The server is up” is useful information. “The customer can finish the transaction” is better.
I kept coming back to a simple gap in traditional monitoring: a healthy server doesn't guarantee a healthy business process.
So I built a Business Reliability System (BRS) through W3Patterns. It runs checks against actual business capabilities and makes the results visible. It's an independent working project, with a live demonstration, not a claim that I've deployed it across hundreds of companies.
It also gave me a chance to put AI-assisted engineering to work on something substantial, while keeping the design decisions and verification where they belong: with the engineer.
I've kept the job titles, dates, and technical details in a proper résumé. This site is more about what I work on and how I think.