Software Engineering Manager / Director focused on scaling high-performing teams and resilient architectures.

Describe an engineering challenge in plain text — a migration, a team issue, a reliability problem — and get pointed to the most relevant articles and case studies on this site.
Beliefs shaped by real systems, real failures, and real wins.
Don't Tell Me You Can't Do It Unless You Can Tell Me Why
If you can explain why something can't be done, you usually understand it well enough to find a path through. The inability to articulate the blocker is often the actual blocker. It leads to understanding and collaboration.
You can delegate a task. You can't delegate the outcome.
Engineers can own a ticket. Leads can own a sprint. But the outcome of what ships — the quality, the reliability, the user experience — that stays with the manager. Delegation is a tool, not a transfer of accountability.
Active CVEs in a production compliance platform. Audit scheduled. Limited team capacity. Every new feature built on a deprecated foundation.
I've spent most of my career in systems that don't behave the way we expect them to. Under load, across teams, and in environments where the impact of a decision is real.
The hardest problems I've worked on sit at the intersection of people, systems, and decisions. A 47-minute database outage that triggered SLA penalties. A monolithic worker hitting its scaling ceiling with compliance-critical data flowing through it. A lead developer resisting a platform migration they'd need to own. None of these had clean technical answers — they required understanding the full picture.
AI adoption fails when leaders treat it as a tool problem instead of a judgment problem — you can't mandate trust, you can't speed your way past context, and you can't automate away the need for thinking. These four pieces show you how to build adoption that actually improves your system instead of just making output faster. The real work isn't getting engineers to use AI. It's building the conditions where they use it right.
View seriesA legacy .NET HttpHandler buried inside the customer portal was processing webhook callbacks synchronously — and at 20M+ messages a month, vendor retry storms inflated that to 75 million callbacks with 90-second processing latency. We replaced it with an Azure Function that acknowledges in milliseconds and routes to channel-isolated processors via Service Bus, dropping latency to sub-second and eliminating the retry cascade entirely.
The cleanest architectural decisions aren't the ones where you evaluate all the options and pick the best one. They're the ones where a constraint eliminates the bad options and forces you to build something more durable than unconstrained choice would have produced. Compliance requirements did that here — and the result was a better design than I would have chosen on my own.
Not all technical debt should be paid at once.
Some debt creates blast radius. Some just creates drag. Fixing drag debt first feels productive — and it is, until you realize the blast radius debt has now accrued interest into a migration. Debt sequencing matters as much as debt reduction.
Clean code that ships never is still just a draft.
Perfect architecture that never gets deployed solves nothing. Iteration beats perfection.
Situation
You're the lead engineer at a compliance SaaS platform. Your GraphQL stack is 2+ years outdated. A security scan just flagged two active CVEs: a DoS vulnerability via malicious file uploads and a SQL injection vector in the type system. A compliance audit is scheduled in 6 weeks. Your team is 3 engineers — one is mid-sprint on a customer feature.
Two active CVEs in production. Audit in 6 weeks. Team of 3. What's your approach?
The difference between mediocre and exceptional engineering leadership isn't philosophy—it's the daily discipline of seeing people clearly, developing them honestly, and protecting both their growth and your organization through documented accountability. Read these pieces in order and you'll understand why hiring for curiosity matters more than coding puzzles, why letting people struggle builds resilience, why claiming people are assets means nothing without real investment, why documentation is power, and how all of it converges into a single operating system: accountable autonomy. Leadership isn't about being liked or being hands-off—it's about setting the standard, trusting people to meet it, and having the clarity to act decisively when they don't.
Engineering leadership that connects technical decisions to business outcomes — and can explain both clearly.