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 Practical Approach to Non-Scalable Solutions in Tech

In the world of technology, we often hear the advice to “do things that don’t scale.” While this wisdom from Paul Graham is widely recognized, the implementation of this concept, particularly in coding, is rarely discussed.

Over the past eight months, while developing my AI podcast platform, I’ve adopted a simple yet effective framework: any non-scalable tactic is given a trial period of three months. After this timeframe, it either demonstrates its worth and is refined into a robust solution, or it’s retired permanently.

As engineers, we are ingrained with the mindset of creating scalable solutions from day one—think microservices, distributed systems, and sophisticated architecture meant to serve millions of users. However, this “big company” mentality doesn’t always apply, especially in the startup world. Here, focusing on scalability too soon can often lead to unnecessary complexity and higher costs, as we’re essentially preparing for users that don’t yet exist and problems that may never arise. My three-month rule helps me prioritize writing concise, straightforward code that is functional and reveals the true needs of my users.

Current Non-Scalable Strategies and Their Unexpected Wisdom

1. Operating on a Single Virtual Machine

All components—database, web server, background jobs, and caching—operate on a single $40/month virtual machine. There’s no redundancy and backups are manually done to my local system.

This seemingly reckless approach has proven to be enlightening. Within just two months, I’ve gained a deeper understanding of my resource requirements than any formal capacity planning could have provided. Surprisingly, my AI-centric platform only peaks at 4GB of RAM, rendering my intended Kubernetes setup unnecessary and simply a management burden for essentially empty containers. When crashes occur, I’ve gleaned valuable insights into what really goes wrong—often in ways I never anticipated.

2. Hardcoded Configurations

Take a look at my code, and you’ll find constants like this:

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

I don’t use configuration files or environment variables. Every change means a redeployment, but the process has its perks. I can quickly search for any configuration value in seconds, everything is tracked in Git history, and changes are subject to my code review (

Leave a Reply

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