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

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

The 3-Month Rule: A Pragmatic Approach to Rapid Iteration in Tech Development

In the startup world, the wisdom of Paul Graham resonates deeply: “Do things that don’t scale.” However, translating this philosophy into actionable coding practices is often overlooked. After eight months of developing my AI podcast platform, I’ve formulated a straightforward framework: every unscalable hack I employ has a lifespan of precisely three months. At the end of this period, it either proves its worth and evolves into a refined solution or is discarded.

As engineers, we’re conditioned to focus on scalable designs from the outset. We tend to delve into complex architecture involving microservices and distributed systems, constructing elegant solutions that may someday accommodate millions of users. But for startups, this approach can often lead to costly delays. Instead of addressing the immediate needs of current users, you may find yourself optimizing for a future that remains uncertain. My 3-month rule encourages me to adopt a more agile mindset, prioritizing the development of straightforward and functional code that yields insights into true user requirements.

Current Infrastructure Hacks: Lessons in Simplicity

1. One VM to Rule Them All

I operate my entire infrastructure on a single $40/month virtual machine, hosting everything from databases to web servers. Although this configuration offers no redundancy and relies on manual backups, it has provided invaluable insights into my actual resource needs. Within just two months, I learned that my “AI-heavy” application really only peaks at 4GB of RAM. The complex Kubernetes setup I had contemplated would have ended up managing idle containers. Each time the server crashes (which has happened twice), I gain real-time information about what goes wrong, often revealing surprises.

2. Hardcoded Configurations

My application features hardcoded constants for key configurations—no external files or environment variables involved. This allows me to quickly track changes in my codebase, viewing every price shift through Git history. Over the past three months, I’ve adjusted these constants a mere three times. While architecting an elaborate configuration management tool could demand a full week of work, the trade-off of 15 minutes of redeployment time has proven more than efficient.

3. SQLite in Action

Yes, I’ve embraced SQLite for a multi-user web application. Surprisingly, my entire database occupies only 47MB and efficiently supports 50 concurrent users. This setup has illuminated my actual usage patterns—dominated by reads rather than writes—well-suited for

One Comment

  • This post offers a refreshing perspective on balancing agility with technical rigor, especially for startups navigating resource constraints. I appreciate the emphasis on intentionally “unscalable” hacks with a clear sunset period—this disciplined experimentation can yield invaluable insights without the overhead of premature optimization.

    The idea of a three-month lifecycle for such hacks helps maintain a pragmatic focus, allowing teams to quickly validate or discard solutions based on real-world performance and user feedback. It’s a great reminder that engineering decisions should be driven by immediate needs and learnings, rather than solely by theoretical scalability from day one.

    Your infrastructure examples, like using a single VM and hardcoded configurations, exemplify how simplicity can accelerate discovery and reduce complexity. This approach aligns well with the “fail fast” and “learning by doing” principles pivotal for startups. It also underscores the importance of iterating rapidly and embracing “temporary” solutions—knowing they may evolve or be replaced—rather than striving for perfection upfront.

    Ultimately, this framework encourages a mindset where quick experimentation informs smarter, more scalable solutions only when the time is right, saving resources and maintaining focus on delivering value now. Thanks for sharing these practical insights—definitely food for thought for anyone building lean, adaptable tech stacks.

Leave a Reply

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