A few stories from my career.
Real situations I lived through, the problem, the call I made, and why.
Standardizing Development in an Era of AI-Generated Code
When AI gave developers full control over the code, we lost the limits that kept projects consistent. I built starters with automatic guardrails, owned by the whole team.
Impact
Starters as an internal product, adopted team-wide
Designing a Process That Didn't Depend on an Unreliable Product Owner
When a client's temporary product owner couldn't manage requirements, we didn't try to fix the person — we redesigned the process around them.
Impact
On-time delivery, zero contract slippage
Designing a Safe Handoff Between Two Development Teams
A client wanted to take over maintenance of a product we built. I designed a risk-based handoff so two teams could work in parallel without becoming a bottleneck.
Impact
Progressive handoff, zero bottleneck
The frontend did not have to read f_title
In 2024 I had the chance to take part in the initial build of a classifieds marketplace. The website was new. The APIs were not. On the server we parsed the JSON with Zod so the frontend read `title`, not `f_title`.
Impact
The frontend never sees f_title
From a Monolith to a Distributed Architecture, Without Rewriting the Product
A monolith stopped working once modules with very different needs began competing for the same infrastructure. I migrated responsibilities into microservices without rewriting the product or stopping development.
Impact
~10 microservices, zero rewrite
When the Platform Had to Handle 20× More Traffic
When demand spiked far beyond what our monolithic backend could handle, we didn't rewrite the infrastructure — we distributed traffic across instances and multiplied capacity by 20×.
Impact
~20× more user capacity