Blog
Thoughts on software engineering, architecture, and building things that work.
Building a Spec-Driven Development Workflow with AI
How I use AI-assisted specification drafting to eliminate ambiguity before writing code — and why it produces better software faster.
Read article →2026-03-18Why I Choose Go for Backend Services (And When I Don't)
After 8 years of building production Go services, here's my honest take on where Go excels, where it falls short, and how to decide if it's right for your project.
Read article →2026-03-14Modernizing Legacy Systems Without a Full Rewrite
The strangler fig pattern and incremental migration strategies I use to modernize legacy codebases — without the risk and cost of a ground-up rewrite.
Read article →2026-03-10Building ETL Pipelines That Actually Scale
Lessons from building production ETL systems that process millions of records — data modeling, error handling, idempotency, and monitoring.
Read article →2026-03-05AI-Augmented Development: A Practical Guide for Working Engineers
How I use AI tools daily to ship better software faster — not as a replacement for engineering judgment, but as a multiplier for it.
Read article →2026-02-28From Docker Compose to Production: The Deployment Checklist I Follow
The practical steps I take to move a Dockerized application from local development to production — covering infrastructure, security, monitoring, and cost optimization.
Read article →