🍔🧠 Why Linear Feels So Fast (Technical Breakdown)
PLUS: Virtual memory explained 👨💻, Spark retires vector DBs 💾, Backprop explained simply 🧮
Happy Monday! ☀️
Welcome to the 65 new hungry minds who have joined us since last Monday!
If you aren’t subscribed yet, join smart, curious, and hungry folks by subscribing here.
📚 Software Engineering Articles
🗞️ Tech and AI Trends
👨🏻💻 Coding Tip
Use window functions to eliminate N+1 queries and self-joins in complex reporting
Time-to-digest: 5 minutes
How Linear achieves millisecond responsiveness ⚡
Linear updates issues in milliseconds while traditional CRUD apps take 300ms. This isn’t magic—it’s built from the ground up with the right foundation and refined through countless deliberate choices. The app inverts the traditional client-server model: instead of waiting on the network, the browser becomes the database.
The secret isn’t a silver bullet. It’s treating network latency as the enemy and eliminating it wherever possible. From aggressive code-splitting to local-first sync engines, every decision compounds. Let’s walk through the techniques that make Linear feel instant.
The challenge: Making a client-side rendered app feel instant on first load while keeping all user data in sync across devices and maintaining offline capabilities.
Implementation highlights:
Local-first IndexedDB. UI mutations apply instantly to in-memory state, then async queue to the server via WebSocket. Users never see spinners because the interface updates before the network completes.
Aggressive code splitting and bundler evolution. Linear rewrote their build pipeline four times (Parcel → Rollup → Vite → Rolldown), dropping legacy browser support entirely. Result: 50% less code shipped, 59% faster time-to-first-paint on some views.
Modulepreload for parallel chunk fetching. Before JavaScript runs, the browser fetches all chunks in parallel rather than serially. The entry script hits cache by the time it needs its imports, collapsing the waterfall into a single batch.
Service worker precaching. ~1,200 hashed assets sit in cache after login. Subsequent navigation skips the network entirely, and the app remains functional offline with data syncing when connection returns.
Per-package vendor chunks. Each npm dependency gets its own chunk with independent cache invalidation. Bumping one library doesn’t invalidate the entire vendor bundle—a huge caching win over monolithic bundles.
Results and learnings:
Network elimination is the highest leverage. Cold-load timelines collapsed from sequential waterfalls to parallel batches. Even 21 MB of minified JavaScript feels instant when split right and preloaded aggressively.
Simplicity compounds. React, TypeScript, MobX, Postgres—no edge databases or RSCs. Client-side rendering with clean architecture beats complexity.
Offline-first thinking changes everything. IndexedDB + sync engine + service worker isn’t overhead; it’s the foundation. The browser becomes the source of truth.
Linear proves that perceived speed flows from architecture, not from framework choice or flashy tricks. When every interaction updates locally first, your app stops feeling like it’s waiting on the internet—it feels like native software. And really, that’s just good manners toward your users’ time.
Virtual Memory from First Principles
A practical guide to page faults, page tables, TLBs, NUMA topology, Linux internals, and performance in data-intensive systems.
Demis Hassabis on the New Coming Age
Google CEO Demis Hassabis offered us a first rate second rate essay, A Framework for Frontier AI and the Dawning of a New Age. I’ll go over that essay and various responses to it in Part 1.
1000 PRs Won’t Prove You’re Promotion Ready
Written by Fran Soto
How Notion catches breaking schema changes before they reach production
How we built a CI guardrail to catch breaking schema changes automatically, and some of the design decisions that shaped it.
ESSENTIAL (wisdom from the bottom)
Programming Bottom-Up
GITHUB REPO (no backend needed)
Build a Forum Site with GitHub Discussions (No Backend or Database)
ARTICLE (vector db killer)
Spark 4.2 has a feature that could retire your vector database
ARTICLE (phoenix from ashes)
The death and rebirth of my home server
ARTICLE (shortcuts save seconds)
Small programming tricks
ARTICLE (reconnection theater)
My RabbitMQ library looked production-ready. It couldn’t survive a single reconnect.
ARTICLE (measure or perish)
Studying Linux Schedulers, and Why Metrics Matter
ARTICLE (neurons learn backwards)
Backpropagation Explained for Beginners (Part 1): Building the Intuition
Want to reach 200,000+ engineers?
Let’s work together! Whether it’s your product, service, or event, we’d love to help you connect with this awesome community.
🧠 Inkling: Open-Weights Model Released (5 min)
Brief: Thinking Machines released Inkling, a 975B-parameter open-weights Mixture-of-Experts model supporting text, images, and audio with up to 1M token context and controllable thinking efficiency.
🏗️ MIT System Converts 2D Designs to 3D CAD Models More Accurately (4 min)
Brief: MIT researchers developed GIFT, a system that teaches AI models to convert 2D designs into CAD code 5x more efficiently by learning from their own mistakes.
🤖 Kimi K3: Open Frontier Intelligence (3 min)
Brief: Kimi introduced K3, the world’s first open 3T-class model with 2.8 trillion parameters, a 1-million-token context window, and native vision capabilities for coding, knowledge work, and reasoning tasks.
🚀 Ollama Raises $88M to Democratize Open AI Models (5 min)
Brief: Ollama, serving 8.9 million developers, raised $88 million to expand its platform enabling developers to run open models locally without API costs or privacy concerns.
⚙️ Claude Code now uses Bun written in Rust (3 min)
Brief: Claude Code v2.1.181+ runs Bun rewritten in Rust, achieving 10% faster startup on Linux with minimal user-facing changes.
This week’s tip:
Query planning and execution optimization with window functions - Use analytical window functions to eliminate N+1 queries and self-joins, processing aggregations in a single scan for complex reporting requirements.
Wen?
When implementing real-time dashboards requiring running totals, ranks, or percentiles
When optimizing complex financial calculations or time-series aggregations
When migrating from application-layer aggregation to database-side processing for performance
Your time is limited, don’t waste it living someone else’s life.
Colin R. Davis
That’s it for today! ☀️
Enjoyed this issue? Send it to your friends here to sign up, or share it on Twitter!
If you want to submit a section to the newsletter or tell us what you think about today’s issue, reply to this email or DM me on Twitter! 🐦
Thanks for spending part of your Monday morning with Hungry Minds.
See you in a week — Alex.
Icons by Icons8.











Thanks for including the article about promotions, my friend!
About the bug... I wish it were only an email and not a pager ringing!