Embracing the Unscalable: The 3-Month Rule for Tech Startups
In the entrepreneurial world, Paul Graham’s adage, “Do things that don’t scale,” is often cited but seldom expanded upon in a technical context. As I’ve embarked on a journey building my AI podcast platform over the past eight months, I’ve devised a straightforward yet effective framework: every unscalable tactic is given a three-month trial period. At the end of this period, it either earns its keep through demonstrable value and receives investment for development, or it is eliminated.
As engineers, we are frequently conditioned to focus on “scalable” solutions from the outset—thoughtfully architecting systems with design patterns, microservices, and distributed systems that can accommodate millions of users. While this is necessary in larger organizations, it can often result in costly delays for startups. My three-month rule compels me to embrace simplicity, allowing me to write straightforward, albeit imperfect, code that gets deployed promptly and, importantly, unveils the actual needs of my users.
Innovation Through Infrastructure: My Current Hacks
1. One Virtual Machine to Rule Them All
My entire system—database, web server, background jobs, and Redis—operates from a single $40 per month virtual machine. With no redundancy and manual backups, this choice might seem reckless. However, it has provided me with invaluable insights into my resource utilization in just two months, insights that no planning document could deliver.
Surprisingly, my “AI-heavy” platform requires only 4GB of RAM during peak times. The intricate Kubernetes setup I nearly opted for would have required me to manage containers that were barely being utilized. Each crash (yes, that’s happened twice) has provided real-world data on actual failures, which have always been unexpected.
2. Simplified Configuration with Hardcoded Values
Imagine not relying on configuration files or environment variables but instead using straightforward constants within your code, like so:
python
PRICE_TIER_1 = 9.99
PRICE_TIER_2 = 19.99
MAX_USERS = 100
AI_MODEL = "gpt-4"
Although this may sound limiting, it offers a swift and efficient way to track and implement changes. Each modification is documented in the git history, and my updates undergo a code review—even if it’s just my own scrutiny. Instead of spending a week developing a configuration service, these simple constants have
One Comment
Thank you for sharing your practical approach to embracing unscalable tactics through the 3-month rule. This mindset aligns very well with the Lean Startup methodology, emphasizing rapid iteration and validated learning. I particularly appreciate how your focus on simplicity—like deploying everything on a single VM and using hardcoded configuration values—allows for faster deployment cycles and real-world testing.
In the early stages, these strategies help uncover genuine user needs without the overhead of complex, scalable architectures that may not yet be necessary. As the startup grows, you can then iteratively invest in more robust infrastructure once you have clarity on the core value propositions and user behaviors.
This approach highlights the importance of balancing technical debt with swift experimentation and reminds us that sometimes, the most scalable solutions are the ones that prove viability first. Looking forward to seeing how these insights evolve as your platform matures!