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 Pragmatic Approach to Unscalable Solutions

In the tech world, one popular piece of advice comes from Paul Graham: “Do things that don’t scale.” While this wisdom resonates with many, the challenge lies in effectively applying it in the realm of software development. I’ve spent the past eight months working on an AI podcast platform and have crafted a simple yet effective framework: every unscalable hack receives a lifespan of three months. At the end of that period, it either proves its worth and is properly integrated, or it is promptly discarded.

The startup Perspective on Scalability

As engineers, we often find ourselves focusing on building scalable solutions from the get-go. Concepts like design patterns, microservices, and distributed systems dominate the conversation, aimed at accommodating vast user bases. However, this mindset is more suited to large companies. In the startup environment, striving for scalability too early can actually be a form of costly procrastination. We tend to optimize for future users who might not materialize and tackle challenges that might never arise. My 3-month rule encourages me to create straightforward, sometimes “imperfect,” solutions that ship quickly. This approach provides invaluable insights into genuine user needs.

Why My Current Infrastructure Choices Make Sense

1. Consolidated Services on a Single VM

My entire tech stack—including the database, web server, background jobs, and caching system—runs on a single $40/month virtual machine. This setup lacks redundancy and relies on manual local backups.

Why is this a smart choice? In just two months, I’ve learned more about my actual resource needs than traditional capacity planning could ever reveal. I’ve discovered that my so-called “AI-intensive” platform peaks at just 4GB of RAM. The elaborate Kubernetes architecture I initially considered would have involved managing empty containers instead of tangible user load. When the system has crashed (which has happened twice), I’ve gained real-world data on what truly fails—clear insights that diverge from my expectations.

2. Hardcoded Configuration Parameters

Consider this setup:

python
PRICE_TIER_1 = 9.99
PRICE_TIER_2 = 19.99
MAX_USERS = 100
AI_MODEL = "gpt-4"

I have no configuration files or environmental variables—only direct constants strewn throughout my files. Making any adjustments necessitates a redeployment.

The unexpected benefit

Leave a Reply

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