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 Technical Framework for Learning in startup Development

In the startup realm, one of the most well-known pieces of advice is delivered by Paul Graham: “Do things that don’t scale.” However, a critical aspect often overlooked is how to effectively implement this mindset in the coding process.

After eight months of developing my AI podcast platform, I’ve adopted a straightforward philosophy: every unscalable workaround is given a lifespan of three months. At the end of this period, the approach must demonstrate its effectiveness, or it will be discarded.

As engineers, we frequently approach problems with an eye towards building scalable solutions from the start. We delve into sophisticated design patterns, microservices, and distributed systems—concepts that are essential for accommodating millions of users. However, such big-picture thinking often doesn’t align with the reality of startup life.

In the early stages, focusing on scalability can lead to unnecessary complexity. My framework encourages me to write straightforward, albeit imperfect, code that not only serves immediate needs but also helps me gain a deeper understanding of what users truly require.

A Glimpse into My Current Infrastructure Hacks

1. Centralized Operations on a Single VM

I’ve chosen to run my database, web server, background processes, and Redis—all on a single $40/month virtual machine. While this setup lacks redundancy and involves manual backups, it has provided invaluable insights about my actual resource requirements.

In just two months, I’ve grasped my platform’s Resource utilization, which peaks at 4GB of RAM. The intricate Kubernetes architecture I nearly implemented would have been managing empty containers, detracting from my real objectives. Each time the system crashes (which has happened a couple of times), I receive critical information regarding the actual points of failure—rarely what I anticipated.

2. Hardcoded Configurations for Simplicity

Instead of managing complex configuration files and environment variables, I utilize hardcoded constants throughout my codebase:

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

While changing these values requires a redeployment, the ability to quickly search my entire codebase for any particular configuration enhances my efficiency. In three months, I’ve only adjusted these values three times, leading to an effective time-saving ratio of 15 minutes versus an estimated 40 hours required for a full configuration service setup.

Leave a Reply

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