What I actually think.
About engineering leadership. Technical decisions. Building software in domains where getting it wrong has consequences. The stuff nobody warns you about when you become a CTO. And the things that never make it into the post-mortem.
This isn't content marketing. I write when I have something to say — not on a publishing schedule designed to feed an algorithm.
Featured Articles
Building SaaS Products That Scale: Lessons from the Trenches
Building a SaaS product is fundamentally different from building traditional software. You're not just writing code—you're building a business. After ...
Full-Stack Development in 2026: The Modern Tech Stack That Actually Works
The JavaScript ecosystem moves fast. Every month there's a new framework claiming to be the future. After years of building production systems, I can ...
From Founder to CTO: Managing Technical Decisions as Your Company Grows
The biggest challenge I faced transitioning from founder-engineer to CTO wasn't learning new technologies—it was learning to make decisions differentl...
The Art of Technical Interviewing: Hiring Engineers Who Can Actually Ship
I've interviewed hundreds of engineers and hired dozens. I've also been on the other side—interviewing for jobs and getting rejected by companies that...
Design Thinking for Engineers: Building Products Customers Actually Want
I've built products that were technically impressive but nobody wanted. I've also built simple products that customers loved. The difference wasn't th...
Why I Built aiViator Vault — And Why It's More Than a Digital Logbook
Every pilot has a version of this story. You're filling out an IACRA application and you need your total cross-country PIC time. You're staring at hun...
Building aiViator Vault: Engineering a Pilot Data Platform in a Regulation-Heavy Domain
Building software in aviation is different from building a typical SaaS product. When a pilot's currency status is wrong, that's not a minor bug — it'...
Domain-Driven Design: Architecture That Survives Contact With Reality
Domain-Driven Design: Architecture That Survives Contact With Reality Every codebase I have ever rescued had the same disease. Not bad developers. Not...
Intent Translator: From Fuzzy Idea to Clear Output
I built Intent Translator for everyone who’s ever stared at a blank page or a prompt box and thought: I know what I want, but I don’t know how to ask ...
Crystal Dev Toolkit is Free for 6 Months — Here's Why
I've decided to make the Crystal Dev Toolkit completely free for the next six months. No catches. No limitations. No strings attached. 124 developer t...
All Articles
If you're reading this and thinking "this is the perspective my team is missing" — let's talk.
Get in touch