How I think about software
Ten stated positions, not marketing bullets — things someone could disagree with, which is what makes them real.
Product thinking
Code is the last decision, not the first. I start from the business problem and the constraint that matters most, and let architecture follow from that.
Architecture first
A system's shape determines what's cheap to change later and what's permanent. I spend disproportionate time here.
Business-driven development
Every technical decision is evaluated against what the business actually needs to survive and grow — not against what's technically interesting.
Automation first
If a process is manual and repeated, it's a bug in the system design, not a fact of life.
Security by design
Data integrity and access control are architectural properties, not a checklist added before launch.
API-first
Systems are built to be integrated with, not just used — internal boundaries are designed like public contracts from day one.
Maintainability
Code is read far more than it's written. I optimize for the engineer reading this in a year, which is usually me.
Scalability
I design for the load the business will have if it succeeds, not the load it has on day one — without over-engineering for loads that will never come.
Developer experience
Tooling, documentation, and local setup speed are product decisions — they determine how fast a team can actually move.
Ownership
I don't hand off a spec and disappear. I carry decisions through to production and live with their consequences.
From idea to production
Discovery
Understand the real business problem and its hardest constraint.
Architecture
Design the system shape before writing implementation code.
Prototype
Validate the riskiest assumption — the data model, an integration, a hardware constraint.
Development
Build in the order that de-risks the project fastest.
Testing
Correctness against the constraint that matters — compliance, scale, or security.
Deployment
Ship in a state that can be operated, not just demoed.
Iteration
Real usage reveals what the spec didn't.
Scaling
Design decisions from step 2 get their return on investment.