Embracing the 3-Month Rule: A Pragmatic Approach for Startups
In the tech startup ecosystem, one of the most widely acknowledged pieces of wisdom comes from Paul Graham: “Do things that don’t scale.” However, the implementation of this principle within the coding domain often goes unaddressed.
After dedicating eight months to developing my AI podcast platform, I have developed a unique strategy—my personal “3-Month Rule.” This framework allows any unscalable hack a limited lifespan of three months. Within that timeframe, it must either demonstrate its worthiness and transition into a well-structured solution or face elimination.
When we embark on engineering projects, the training usually orients us toward creating scalable solutions from the outset. We find ourselves enmeshed in sophisticated design patterns, microservices, and distributed architectures capable of accommodating millions of users. This mindset, common in larger organizations, does not always translate effectively into the startup landscape.
In reality, attempting to build scalability into your code can serve as a costly form of procrastination. It often leads us to optimize for hypothetical future users while neglecting the pressing needs of our current audience. My 3-month rule encourages me to produce straightforward, albeit “imperfect,” code that is primed to launch and provides genuine insights into user needs.
Strategies That Enhance Learning
Here are some of the current infrastructure strategies I’ve implemented that may initially appear impractical, but they offer significant learning opportunities:
1. Consolidating Resources on a Single VM
Currently, my entire setup—comprising the database, web server, background jobs, and Redis—runs on a single $40/month VM. This means no redundancy and manual backups stored locally.
While it may seem reckless, this approach has given me clearer visibility into my actual requirements within a mere two months, far beyond what a generic capacity planning document could provide. For instance, I discovered that my “AI-heavy” platform requires a maximum of 4GB of RAM. The elaborate Kubernetes architecture I had nearly implemented would likely have resulted in managing empty containers.
When the system crashes (which it has done twice), I gain valuable insights into what genuinely fails—often leading to surprises.
2. Utilization of Hardcoded Configuration
PRICE_TIER_1 = 9.99
PRICE_TIER_2 = 19.99
MAX_USERS = 100
AI_MODEL = "gpt-4"
I have opted against