Writing
Thoughts on architecture, leadership, product development and building technology organizations.
The Product Lives Between The Systems
A customer experiences one product even when your architecture splits it across CRM, billing, payments, middleware and multiple teams.
The Best Integration Is The One You Don't Build
Not every integration problem should be solved with another integration. Sometimes the best architectural decision is to remove the dependency altogether.
The Transformation That Never Starts
Some transformations spend years becoming safer on paper without ever becoming real. At some point, the only way to learn is to start changing something.
The Architecture Nobody Designed
Some of the most complex architectures were never designed as a whole. They grew from years of individually reasonable decisions.
Congratulations. Your Prototype Is Now Production.
Vibe coding makes it easier than ever to build working prototypes. The real challenge begins when someone decides the prototype is ready for production.
What Defines A Senior Engineer?
Technical skills matter, but they are only the beginning. What truly defines a senior engineer is the ability to take responsibility and consistently deliver results.
The Cost Of Temporary Solutions
Temporary solutions are not the problem. Forgetting they were meant to be temporary is.
Why Most Software Projects Don't Have Technical Problems
Most software projects fail because of communication, ownership and decision-making problems, not because of technology.
The RPA Trap
Many organizations automate broken processes and become surprised when they end up with automated chaos.
Why Developers And Business Keep Fighting
Most conflicts between business and engineering are caused by different incentives, language and definitions of success.
Perfection Kills Progress
The pursuit of perfection often delays learning. Shipping creates feedback. Feedback creates improvement.