Blog
Thoughts on building products, leading teams, and figuring things out along the way.
Database Migrations Without Downtime: A Practical Guide
April 7, 2026Zero-downtime deployments are only as good as your migration strategy. Here's how I handle schema changes in high-availability systems.
Lessons From Processing a Million Transactions a Day
March 31, 2026Scaling from thousands to millions of daily transactions taught me that the biggest bottlenecks are rarely where you expect them.
Managing Up: How Engineers Can Communicate With Executives
March 24, 2026The biggest career accelerator for engineers isn't technical skill — it's the ability to communicate technical decisions in business terms.
The Case for Boring Technology
March 17, 2026The most exciting technology choice is usually the wrong one. Here's why I default to proven, boring tools — and when I make exceptions.
Why I Prototype Before I Propose
March 12, 2026Architecture diagrams lie. Prototypes tell the truth. Here's why I always build a proof of concept before committing to a technical direction.
What Healthcare Tech Can Teach Every Industry About Reliability
March 10, 2026Building software where downtime can affect patient care gives you a different perspective on reliability. These lessons apply everywhere.
Building Resilient Systems With Circuit Breakers and Retry Patterns
March 3, 2026In distributed systems, failure isn't a possibility — it's a certainty. Here's how I design services that degrade gracefully instead of cascading.
The Underrated Power of Good Onboarding Documentation
February 26, 2026Every hour you invest in onboarding docs saves days of engineer ramp-up time. Here's how I approach it.
NestJS in Production: Patterns That Scale
February 24, 2026After years of running NestJS in production for financial and healthcare platforms, here are the patterns that have proven themselves.
How I Run Effective One-on-Ones With Engineers
February 19, 2026One-on-ones are the highest-leverage meeting on your calendar — if you do them right. Here's the format I've refined over years of engineering leadership.
Designing Financial Systems That Never Lose a Penny
February 17, 2026When your system moves real money, 'close enough' doesn't cut it. Here's how I design financial platforms for zero-discrepancy accuracy.
The Real Cost of Not Investing in Developer Experience
February 12, 2026Slow builds, flaky tests, and painful deployments aren't just annoying — they're silently destroying your team's velocity and morale.
Why Clean Architecture Matters More Than You Think
February 10, 2026Clean architecture isn't about following rules. It's about building systems that survive contact with reality — and with the next team that inherits your code.
Lessons From Leading Engineering Teams Through Major Migrations
February 5, 2026Hard-won lessons from leading teams through high-stakes platform migrations — where the stakes are real and rollback isn't always an option.
Why Event-Driven Architecture Wins in High-Stakes Systems
January 28, 2026After years of building event-driven systems with RabbitMQ, here's why I keep coming back to this pattern for mission-critical platforms.
What I've Learned Building Software With AI Tools
January 20, 2026After months of integrating AI into my development workflow, here's what actually works — and what doesn't.
Domain-Driven Design in the Real World
January 10, 2026DDD isn't just for textbooks. Here's how I've applied it to healthcare and financial systems — and the mistakes I made along the way.
The Architect's Role in Modern Engineering Organizations
December 28, 2025What does a solutions architect actually do in 2025? It's not what the job description says.
Technical Debt Is Not the Enemy
December 15, 2025Stop treating technical debt as a failure. Start treating it as a tool — one that needs to be managed, not eliminated.
What 20 Years in Healthcare Tech Taught Me About Building Systems That Matter
December 15, 2025Reflections on two decades of building high-stakes platforms where failure isn't an option.
Scaling From IC to Director: What Nobody Tells You
December 1, 2025The transition from individual contributor to engineering director is harder than anyone admits. Here's what I learned making that leap.
HIPAA Compliance: An Engineer's Practical Guide
November 15, 2025What engineers actually need to know about building HIPAA-compliant software — without the legal jargon.
Prototyping as a Leadership Tool
November 1, 2025Why I still write code as an engineering director — and why my prototypes are the most persuasive documents I produce.
Microservices: Lessons From the Trenches
October 18, 2025After years of building microservices in production, here's what actually matters — and what's just conference talk fodder.
The Art of the Technical Specification
October 5, 2025Most technical specs are either too vague or too detailed. Here's the framework I use to write specs that actually get read and implemented correctly.
Building Engineering Teams That Actually Ship
September 20, 2025Velocity isn't about working faster. It's about removing the things that slow you down.
PostgreSQL at Scale: What I've Learned Running It in Production
September 5, 2025PostgreSQL has been my database of choice for years. Here's what I've learned about running it at scale in high-throughput production systems.
EDI & Healthcare Integration Demystified
August 20, 2025EDI, HL7, DICOM — healthcare integration standards sound arcane, but the principles behind them are surprisingly universal.
The Code Review That Changed How I Lead
August 5, 2025A story about a code review that went wrong, what I learned from it, and how it shaped my approach to mentoring engineers.
Why I Still Love Node.js After All These Years
July 20, 2025I've written production systems in C#, Golang, PHP, and Java. I keep coming back to Node.js. Here's why.
Zero-Downtime Deployments: A Practical Guide
July 5, 2025Deploying without downtime isn't magic. It's a series of boring, deliberate engineering decisions. Here's the playbook.