Home / Business / The 3-Month Rule: My Technical Framework for Doing Things That Don’t Scale

The 3-Month Rule: My Technical Framework for Doing Things That Don’t Scale

Embracing the 3-Month Rule: A Practical Approach to Building an Unscalable Startup

In the entrepreneurial sphere, Paul Graham’s advice to “do things that don’t scale” often resonates with founders yearning for growth. However, when it comes to actual implementation in programming, the conversation tends to fall short. After dedicating eight months to developing my AI podcast platform, I have devised a straightforward framework: any unscalable strategy is permitted to exist for only three months. At the end of this period, it must either demonstrate its value and be refined or be phased out entirely.

The Reality of Engineering in Startups

As engineers, we are often conditioned to seek out scalable solutions from the outset. We yearn for well-structured microservices, robust architecture, and distributed systems capable of serving millions of users. However, this approach aligns more with the mindset of established organizations than that of startups. In a nascent venture, building scalable code can frequently become an expensive form of procrastination—optimizing for customers who aren’t yet there and addressing challenges that may never arise. My three-month rule compels me to write straightforward, even ‘messy,’ code that genuinely meets user needs.

Current Infrastructure Strategies: Simple Yet Effective

1. Consolidation on One Virtual Machine

I operate my database, web server, background jobs, and caching on a single virtual machine that costs a mere $40 per month. While this setup lacks redundancy and relies on manual backups, it has provided insight into my actual resource requirements. In just two months, I’ve learned that my platform, even with its AI focus, only peaks at 4GB of RAM. The complex Kubernetes framework I was considering would have only meant managing unnecessary containers. When my system crashes—something that has happened twice—I glean valuable insights about actual failures, which are rarely what I anticipated.

2. Hardcoded Configurations Across the Board

Throughout my codebase, key configurations like pricing tiers and maximum users are hardcoded directly into the files, with no configuration files or environment variables to complicate matters. This approach may seem primitive, but it allows for rapid searches across the codebase, tracking every pricing change through Git history. I’ve only modified these constants three times in three months, resulting in a few minutes of redeployment instead of extensive engineering hours.

3. Utilizing SQLite in Production

Yes, I’m running SQLite for a multi-user web application, and it

Leave a Reply

Your email address will not be published. Required fields are marked *