The 3-Month Rule: A Practical Approach to Building Unscalable Solutions
In the startup world, the advice from Paul Graham to “do things that don’t scale” often goes unexamined. But how do we translate that into actionable steps, especially when it comes to coding? Having spent the last eight months developing my AI podcast platform, I’ve created a straightforward methodology: every unscalable technique receives a trial period of three months. Afterward, it must either show its worth and be formalized, or it’s out.
As software engineers, we often find ourselves conditioned to focus on creating scalable solutions from the outset. We get caught up in designing intricate architectures with distributed systems and microservices, envisioning a future where our platforms support millions of users. However, this kind of thinking can be a costly distraction for startups. My three-month rule encourages me to write simpler, more direct code that allows me to truly understand what my users require.
Exploring My Current Infrastructure Adjustments
1. Single Virtual Machine Deployment
I host everything—from the database to the web server—on a single $40/month virtual machine without any redundancy, conducting manual backups to my local system.
Why is this a smart decision? In just two months, I have gained insight into my actual resource requirements that no amount of capacity planning could have provided. My platform, which I anticipated would need substantial resources, turns out to peak at a modest 4GB of RAM. The complex Kubernetes setup I nearly implemented would have only wasted resources on idle containers. Each time the system crashes—something that has occurred twice—I receive invaluable feedback about what genuinely causes issues.
2. Hardcoded Configuration
I utilize hardcoded constants scattered throughout my code, such as:
python
PRICE_TIER_1 = 9.99
PRICE_TIER_2 = 19.99
MAX_USERS = 100
AI_MODEL = "gpt-4"
This approach eliminates the need for configuration files or environment variables. Every change requires a redeployment, but the speed and efficiency are unparalleled. With a quick grep command, I can pinpoint any config value in seconds. Over three months, I’ve adjusted these settings just three times—a task that took a mere 15 minutes compared to the potential 40 hours required to set up a full-scale configuration service.
3. Using SQLite for Production
Yes, I’m operating a web application using SQLite. My entire database size