Technical
Simplicity as a Competitive Advantage
My competitors build complex systems with dozens of services and months-long timelines. I build simple systems with a handful of components and ship in weeks. Clients choose me because simple systems cost less, break less, and deliver value faster.
The Complexity Tax
Every component in your system has a cost:
- Development cost: Time to build and integrate it
- Maintenance cost: Time to update, patch, and fix it
- Operational cost: Infrastructure, monitoring, and alerting
- Cognitive cost: Mental overhead for every developer who touches it
When you add a component that is not strictly necessary, you pay all four costs forever. That is the complexity tax.
A Real Comparison
A client needed a blog with a newsletter. Here is what a 'full-featured' agency proposed:
Agency proposal:
Headless CMS (Contentful) $0-300/month
Custom React app 8 weeks dev
Node.js API server 2 weeks dev
PostgreSQL on RDS $15/month
Redis for caching $15/month
SendGrid for email $20/month
Kubernetes for deployment $75/month
Timeline: 3 months
Cost: $40K + $125/monthMy proposal:
My proposal:
FastAPI on Lambda $0/month
DynamoDB $0/month
Next.js on Vercel $0/month
SES for email $0/month
Timeline: 3 weeks
Cost: $8K + $0/monthSame features. One-fifth the cost. One-fourth the timeline. Zero monthly infrastructure spend.
Why Simple Is Hard
Simple is not the same as easy. Simple means you have removed every unnecessary component. That requires deep understanding of what is actually necessary. It is harder to design a simple system than a complex one because you have to say no to things that feel important but are not.
The Three Principles of Simple Systems
1. Fewer Moving Parts
Every service, database, queue, and cache is a potential failure point. Fewer components mean fewer things that can break, fewer things to monitor, and fewer things to understand.
2. Boring Technology
Use technology that has been in production for years. Python, not the new language that just hit 1.0. AWS, not the startup cloud that might not exist next year. PostgreSQL or DynamoDB, not the trendy distributed database.
3. Solve Today's Problem
Do not build for the scale you hope to reach. Build for the scale you have. If your blog gets 100 visitors a day, you do not need Kubernetes. You need a serverless function.
The Client Benefit
Clients care about three things: does it work, how much does it cost, and how fast can I get it. Simple systems win on all three. They work because there is less to break. They cost less because there are fewer components. They ship faster because there is less to build.
Simplicity is not a compromise. It is a competitive advantage.
For more on architectural simplicity, see the AWS Well-Architected Framework.
RELATED READING
The Consulting Shift I Am Making In Year Two
After a year of writing and building, my consulting practice is changing shape. Shorter engagements. Sharper outcomes.
ReadThe Frontend Shift: Shipping Less JavaScript In Year Two
A year ago I reached for Next.js for everything. This year I often reach for nothing.
ReadThe Serverless Lesson I Would Write On A Sticky Note
After a year of shipping serverless projects, one rule explains most of the wins and all of the losses.
Read