<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Tech Paths</title>
    <description>The latest articles on DEV Community by Tech Paths (@techpaths_dev).</description>
    <link>https://dev.to/techpaths_dev</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3936265%2F214961bb-9933-4f9c-9241-eaa5fce5a989.png</url>
      <title>DEV Community: Tech Paths</title>
      <link>https://dev.to/techpaths_dev</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/techpaths_dev"/>
    <language>en</language>
    <item>
      <title>How to Ace Back-of-the-Envelope Estimation in System Design Interviews 🚀</title>
      <dc:creator>Tech Paths</dc:creator>
      <pubDate>Sun, 17 May 2026 13:05:08 +0000</pubDate>
      <link>https://dev.to/techpaths_dev/back-of-the-envelope-estimation-3928</link>
      <guid>https://dev.to/techpaths_dev/back-of-the-envelope-estimation-3928</guid>
      <description>&lt;p&gt;Picture this: You're in a System Design interview. The interviewer asks, &lt;em&gt;"Design Twitter. How much storage and bandwidth will we need for 5 years?"&lt;/em&gt; Your mind goes blank. Your palms sweat. &lt;/p&gt;

&lt;p&gt;But here is the secret: &lt;strong&gt;Interviewers don't care about exact precision.&lt;/strong&gt; They care about your engineering judgment, your core assumptions, and whether you can reason about scale under pressure.&lt;/p&gt;

&lt;p&gt;This process is called &lt;strong&gt;Back-of-the-Envelope Estimation&lt;/strong&gt;—making quick, approximate calculations to understand a system's scale in under 3 minutes. Here is the ultimate cheat sheet to master it.&lt;/p&gt;




&lt;h2&gt;
  
  
  🔢 The Cheat Sheet Metrics
&lt;/h2&gt;

&lt;p&gt;You can't do math if you don't know the baseline numbers. Memorize these:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Powers of 2 (Data Units)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;$2^{10}$&lt;/strong&gt; = 1 Thousand = &lt;strong&gt;1 KB&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;$2^{20}$&lt;/strong&gt; = 1 Million = &lt;strong&gt;1 MB&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;$2^{30}$&lt;/strong&gt; = 1 Billion = &lt;strong&gt;1 GB&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;$2^{40}$&lt;/strong&gt; = 1 Trillion = &lt;strong&gt;1 TB&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;$2^{50}$&lt;/strong&gt; = 1 Quadrillion = &lt;strong&gt;1 PB&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. Latency Numbers to Remember
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;RAM Read:&lt;/strong&gt; ~100 ns&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SSD Read:&lt;/strong&gt; ~100 µs&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Network Round Trip (Same DC):&lt;/strong&gt; ~500 µs&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;HDD (Disk) Read:&lt;/strong&gt; ~10 ms&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Network Round Trip (Cross-Region):&lt;/strong&gt; ~150 ms&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3. The High Availability "Nines"
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;99% (Two Nines):&lt;/strong&gt; ~3.6 days downtime/year&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;99.9% (Three Nines):&lt;/strong&gt; ~8.7 hours downtime/year&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;99.99% (Four Nines):&lt;/strong&gt; ~52 minutes downtime/year&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🗺️ The 4-Step Estimation Framework
&lt;/h2&gt;

&lt;p&gt;Never guess randomly. Follow this sequential pipeline to calculate scale methodically:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt; +---------------+       +-----------+       +---------------+       +------------------+
 | Traffic (RPS) | ----&amp;gt; |  Storage  | ----&amp;gt; |   Bandwidth   | ----&amp;gt; |  Servers Needed  |
 +---------------+       +-----------+       +---------------+       +------------------+

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Step 1: Traffic Estimation 🚦
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Formula:&lt;/strong&gt; &lt;code&gt;RPS = (DAU × Requests per user per day) / 86,400&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pro-Tip:&lt;/strong&gt; Round 86,400 seconds in a day to &lt;strong&gt;100,000&lt;/strong&gt; for fast interview math!&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Example (300M DAU, 1 write/day):&lt;/strong&gt; $300\text{M} / 100,000 = \mathbf{3,000\text{ Write RPS}}$.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Step 2: Storage Estimation 💾
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Formula:&lt;/strong&gt; &lt;code&gt;Storage = Items per day × Average Item Size × Retention Period&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Example:&lt;/strong&gt; 3,000 writes/sec $\approx$ 300M items/day. At 1 KB per item, that's &lt;strong&gt;300 GB/day&lt;/strong&gt;. Over 5 years ($300\text{ GB} \times 365 \times 5$), you'll need roughly &lt;strong&gt;547 TB&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Step 3: Bandwidth Estimation 🌐
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Formula:&lt;/strong&gt; &lt;code&gt;Bandwidth = RPS × Average Payload Size&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Example:&lt;/strong&gt; If your system has 300,000 Read RPS and a 1 KB payload, you need &lt;strong&gt;300 MB/s&lt;/strong&gt; throughput. This immediately tells you that you &lt;strong&gt;must use a CDN&lt;/strong&gt; to avoid crashing your core database.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Step 4: Server Estimation 🖥️
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Formula:&lt;/strong&gt; &lt;code&gt;Servers = Total RPS / RPS a single server can handle&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Assumption:&lt;/strong&gt; A standard commodity web server can safely handle between &lt;strong&gt;1,000 to 10,000 RPS&lt;/strong&gt; depending on workload.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Example:&lt;/strong&gt; For 300,000 Read RPS at 10,000 RPS/server, you need 30 base servers. Multiply by a &lt;strong&gt;3x safety factor&lt;/strong&gt; for traffic spikes $\approx$ &lt;strong&gt;90 servers&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  🚀 Deep Dive: Real-World Interview Scenarios
&lt;/h2&gt;

&lt;p&gt;How does this work for different system architectures? It depends entirely on what you are building.&lt;/p&gt;

&lt;p&gt;I have written down the full, step-by-step mathematical breakdowns for the most common system design interview questions on my blog. Dive deep into the specific calculations here:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🔗 &lt;strong&gt;&lt;a href="https://www.techpaths.dev/blog/back-of-envelope-estimation" rel="noopener noreferrer"&gt;How to estimate storage for a URL Shortener like Bit.ly&lt;/a&gt;&lt;/strong&gt; (Where payloads are tiny but read/write ratios are highly skewed).&lt;/li&gt;
&lt;li&gt;🔗 &lt;strong&gt;&lt;a href="https://www.techpaths.dev/blog/back-of-envelope-estimation" rel="noopener noreferrer"&gt;How to calculate Petabyte-scale storage for Instagram Photos&lt;/a&gt;&lt;/strong&gt; (Where media compression ratios drastically shift your daily storage requirements).&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🎯 Key Takeaways
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Round aggressively.&lt;/strong&gt; Nobody cares about the difference between 86,400 and 100,000 during an estimation drill.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;State your assumptions clearly.&lt;/strong&gt; The interviewer wants to see how you think, not if you memorized the exact size of Twitter's database.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sanity check your numbers.&lt;/strong&gt; If your final storage calculation says 500 PB for a simple text-based app, take a breath and check your decimals.&lt;/li&gt;
&lt;/ol&gt;




&lt;h3&gt;
  
  
  🛠️ Want to master the full framework?
&lt;/h3&gt;

&lt;p&gt;For the absolute complete guide—including data sizing charts for data types (UUIDs, ASCII vs Unicode) and availability tables—read the original deep dive on &lt;strong&gt;&lt;a href="https://www.techpaths.dev/blog/back-of-envelope-estimation" rel="noopener noreferrer"&gt;TechPaths: Back-of-the-Envelope Estimation&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How do you handle napkin math during interviews? Let's discuss in the comments below! 👇&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>systemdesign</category>
      <category>architecture</category>
      <category>softwareengineering</category>
      <category>interview</category>
    </item>
  </channel>
</rss>
