Embracing the 3-Month Rule: A Pragmatic Approach to Non-Scalable Solutions
In the tech world, we often hear the well-regarded advice from Paul Graham: “Do things that don’t scale.” But what does that really mean when it comes to coding, especially in the dynamic landscape of startups? After eight months of developing my AI podcast platform, I’ve devised a practical approach: every non-scalable solution is given a lifespan of three months. This allows me to evaluate its effectiveness, after which it either gets a full-scale build-out or is discarded.
As engineers, we tend to focus on crafting scalable solutions from the very beginning. We immerse ourselves in design patterns, microservices, and distributed systems—all the architectural wonders designed to support vast user bases. However, this often reflects a mindset more suited to larger enterprises.
In a startup environment, pursuing scalable solutions can feel like a costly form of procrastination. You’re often preparing for audiences that haven’t arrived yet and addressing challenges that might never arise. By applying my three-month rule, I prioritize creating simple, straightforward code that is functional and educational; it delivers real insights into my users’ actual needs.
Key Infrastructure Hack Examples and Their Value:
1. Consolidated Operations on a Single VM
My entire setup, including the database, web server, background jobs, and Redis, operates on a single $40/month virtual machine (VM). This approach lacks redundancy and relies on manual backups to my local machine.
This setup isn’t as reckless as it might seem; it has provided incredible insights into my resource requirements. In just two months, I’ve learned that my platform—designed to handle AI tasks—only peaks at 4GB of RAM. The complex Kubernetes architecture I considered implementing would have involved managing idle resources.
Experiencing crashes (twice so far) has given me valuable data regarding failures. Surprisingly, the issues I have encountered were not what I anticipated.
2. Simplified Hardcoded Configuration
plaintext
PRICE_TIER_1 = 9.99
PRICE_TIER_2 = 19.99
MAX_USERS = 100
AI_MODEL = "gpt-4"
Rather than using configuration files or environment variables, I opted for hardcoded constants throughout the codebase. While this means redeploying for changes, the simplicity allows for quick searches across the code for any configuration value.
Building a dedicated configuration service would require a significant investment of