sirupsen/napkin-math

Techniques and numbers for estimating system's performance from first-principles

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 34 minutes ago
Added to GitGenius on September 11th, 2026
Created on June 1st, 2019
Open Issues & Pull Requests: 10 (+0)
GitHub issues: Enabled
Number of forks: 236
Total Stargazers: 5,725 (+0)
Total Subscribers: 98 (+0)

Repository Insights (GitGenius)

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 3
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 256 days
Stale 30+ days: 3
Stale 90+ days: 2

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

No label distribution available yet.

Most active issues this week

No issue events were indexed in the last 7 days.

Detailed Description

Napkin Math is a reference collection of techniques and numbers for estimating system performance from first-principles calculations.

The project addresses the need to quickly reason about system behavior without detailed benchmarking or simulation. It provides curated hardware performance numbers—such as memory read speeds and disk I/O throughput—alongside estimation techniques that let developers compose these primitives to answer larger questions about system capacity and cost. For instance, you can estimate storage costs for application logging by combining per-operation latencies with expected request rates. The approach treats these numbers as rounded figures optimized for mental math rather than false precision.

The tool suits engineers who need to make architectural decisions or capacity planning estimates without access to production data or time for extensive measurement. It works best for back-of-the-envelope calculations during design phases or when evaluating whether a proposed system is feasible. The project emphasizes learning the skill through practice; it provides a newsletter with estimation problems and an archive of worked examples to build facility with these techniques.

The project maintains a curated set of performance numbers that are periodically re-measured and validated on current hardware to keep them representative. The maintainer actively updates the numbers as hardware evolves and as more accurate measurement techniques become available, treating the collection as a living reference rather than static documentation.