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

The tech world often champions the mantra “do things that don’t scale,” a piece of wisdom shared by influential figures like Paul Graham. However, the practical implementation of this philosophy within the coding realm is less frequently discussed. After dedicating the last eight months to building my AI podcasting platform, I’ve crafted an insightful framework: every unscalable approach receives a trial period of three months. At the end of this timeframe, if the method hasn’t demonstrated its value, it will be discarded.

As engineers, we are typically conditioned to prioritize scalable solutions from the outset. Grand architectural designs—think microservices and distributed systems—are the norm, aimed at accommodating vast swathes of users. Yet, this mentality often caters to the ambitions of larger companies. For startups, approaching scalability too soon can lead to costly delays and unnecessary complexities. The three-month rule compels me to produce straightforward, albeit flawed, code that delivers tangible results and reveals genuine user needs.

Current Infrastructure Hacks: Why They Work for Me

1. Consolidated Resources on a Single Virtual Machine

I have chosen to run my database, web server, background jobs, and Redis on one $40/month virtual machine, with no redundancy whatsoever. The trade-off? Manual backups to my local machine.

Why is this a smart choice? Within just two months, I’ve gleaned insights about my actual resource usage that no theoretical capacity-planning document could provide. Surprisingly, my “AI-focused” platform peaks at just 4GB of RAM. The complex Kubernetes setup I nearly implemented would have led to managing empty containers.

When the system does crash (twice so far), I gather real-time data about the failure points, which often defy my initial assumptions.

2. Simplified Hardcoded Configuration

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

Instead of dealing with configuration files or environment variables, I’ve opted for hardcoded constants sprinkled throughout my codebase. Any changes necessitate a redeployment.

The benefit? I can easily search for any configuration value across the entire codebase in seconds. Each adjustment is tracked meticulously in git history, and I always review changes, even if I’m the one making them.

Creating a configuration service

Leave a Reply

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