Embracing the 3-Month Experiment: A Technical Approach to Non-Scalable Solutions
In the tech start-up world, the iconic advice from Paul Graham resonates deeply: “Do things that don’t scale.” Yet, few discuss how to translate this principle into practical application, especially for coding. After spending eight months developing my AI podcast platform, I’ve established a personal framework that I refer to as the “3-Month Rule.” Simply put, any non-scalable solution I implement is given a three-month trial period. If it proves its worth in that timeframe, I’ll invest in a proper build-out; if not, it’s time to move on.
Many engineers, myself included, are often schooled on crafting scalable solutions from the onset. We dive into sophisticated architectures with the intent to cater to millions—think design patterns, microservices, and distributed systems. However, this may not be the most productive mindset for a start-up. In reality, focusing on scalability too early can lead to costly delays, as we find ourselves optimizing for hypothetical users while neglecting immediate needs. My 3-Month Rule empowers me to focus on straightforward, albeit imperfect, code that gets deployed quickly, allowing me to gather real feedback on what users truly require.
Current Low-Tech Hacks That Are Working Well
1. Simplistic Infrastructure on a Single VM
Currently, I host my database, web server, background jobs, and Redis all on a single $40/month virtual machine. There’s no redundancy, and backups are done manually to my local machine.
This approach has its merits: in just two months, I’ve gained more insight into my actual resource usage than any detailed planning document could provide. For instance, my platform’s peak usage only reaches 4GB RAM. The intricate Kubernetes setup I almost pursued would have resulted in managing idle containers instead. When issues arise (and they have), I receive valuable, real-time feedback about what’s failing—often surprising me with the source of the issue.
2. Directly Hardcoded Configurations
Variables like PRICE_TIER_1 = 9.99
and MAX_USERS = 100
are hardcoded throughout my files. This may seem inefficient, but it allows for rapid changes and quick deployment—tweaking values takes a mere 15 minutes instead of the extensive time it would take to develop a configuration management system that I would use sparingly.
Every price adjustment is logged in Git
One Comment
Thank you for sharing this insightful approach! The 3-Month Rule offers a practical framework that encourages founders and engineers to strike a balance between speed and strategic planning. Emphasizing quick deployment and real-world feedback early on helps avoid over-engineering—something that often delays valuable insights and customer validation. Your examples, like hosting on a single VM and hardcoded configs, beautifully illustrate how simplicity can serve as a powerful testing ground. Additionally, the idea of iterating rapidly within a fixed timeframe creates a disciplined mindset around experimentation, which is crucial for startup agility. It might also be interesting to consider establishing guidelines for when to transition from these low-tech hacks to more scalable solutions, ensuring that the evolution aligns with actual growth signals, rather than assumptions. Overall, this approach reminds us that sometimes the best way to build scalable solutions is to first understand real needs through quick, imperfect iterations.