Reading path

LLM Inference Notes

Short notes on the practical constraints that shape model serving.

Start first article
6 min read

The Memory Trick Behind Fast LLM Serving

Bigger GPUs help, but fast LLM serving is mostly a scheduling and KV cache problem. PagedAttention, block allocation, batching, and prefix caching decide how much useful work fits in memory.

AI Engineering

The serving loop is constantly asking which requests can run, how many tokens fit, and whether there is enough KV cache memory.

0 comments
5 min read

17,000 Tokens per Second, Burned Into Silicon

If language models can be compiled directly into silicon, inference stops looking like software running on a GPU and starts looking like the computer itself.

AI Engineering

The next serving bottleneck may not be bigger GPUs. It may be whether the model is still software at all.

0 comments
5 min read

Why Columnar Databases Feel Like Cheating

Analytical databases like BigQuery and Redshift are fast because they stop pretending every query needs every field. They read columns, compress patterns, and skip the bytes your question never asked for.

Data Engineering

If your query asks for average transaction value, a row database may drag every field through memory. A columnar database can go straight to the one column that matters.

0 comments
6 min read

Why Kafka Needed ZooKeeper

Before KRaft, Kafka used ZooKeeper as its coordination layer: broker membership, controller election, topic metadata, partition leaders, and ISR state all needed a consistent place to live.

Data Engineering

ZooKeeper was not just extra infrastructure. It was the consensus-backed metadata brain that kept Kafka brokers from disagreeing about cluster state.

0 comments
6 min read

How Speculative Decoding Makes LLMs Feel Faster

Speculative decoding speeds up LLM inference by letting a cheap draft model guess several tokens, then asking the expensive target model to verify those guesses in one parallel pass.

AI Engineering

The trick is not making the large model smaller. It is making each expensive target-model pass confirm more than one token when the draft model guessed correctly.

0 comments
5 min read

What Problem Did Language Models Try to Solve?

Before transformers, KV cache, and GPU serving, language models had a smaller job: look at context and predict what text should come next.

AI Engineering

The core language-modeling problem is prediction. Given the text so far, estimate the next likely token, then repeat.

0 comments
6 min read

What Came Before Transformers?

Transformers were not the first attempt to model language. They arrived after rules, n-grams, recurrent networks, LSTMs, seq2seq models, and attention exposed the same bottleneck: sequence processing was too slow and too forgetful.

AI Engineering

Before transformers, language systems moved from hand-written rules to statistical counts, then to neural models that read text one step at a time.

0 comments
6 min read

Why N-Gram Models Hit a Wall

N-gram models were useful because they turned language into counts. They failed because a fixed local window cannot remember distant context, understand meaning, or generalize well to unseen phrases.

AI Engineering

An n-gram model predicts from nearby words. That makes it simple, but the same simplicity creates sparsity, short memory, and brittle predictions.

0 comments
6 min read

Why RNNs Process Text Sequentially

RNNs improved on local n-gram counting by carrying a hidden state through the text. The tradeoff was dependency: token 10 cannot be processed until token 9 has updated the state.

AI Engineering

A recurrent neural network reads text step by step, updating a hidden state after every token. That gives it memory, but also makes the sequence hard to parallelize.

0 comments
6 min read

Why LSTMs Were Better Than Plain RNNs

Plain RNNs rewrote one hidden state at every step. LSTMs added gates and a cell state, giving the model a cleaner path for preserving useful information over longer spans.

AI Engineering

An LSTM is still recurrent, but it controls memory more deliberately. Gates decide what to forget, what to write, and what to expose.

0 comments
6 min read

Why Sequence Models Struggled With Long Context

RNNs and LSTMs gave language models memory, but that memory still had to pass through one step after another. Long context made useful clues fade, compete, and arrive too slowly.

AI Engineering

Sequence models struggled with long context because old information had to survive many updates inside a small running state.

0 comments
6 min read

What Problem Did Attention Solve?

Attention changed the sequence-model bottleneck. Instead of forcing every old clue through one running state, it let the model look back and score which earlier tokens mattered now.

AI Engineering

Attention helped sequence models use distant context by letting the current step look back at relevant earlier tokens.

0 comments
6 min read

What Is Self-Attention?

Self-attention is attention applied inside one sequence. Each token builds a better representation by comparing itself with the other tokens in the same input.

AI Engineering

Self-attention lets tokens in the same sentence look at each other, score what matters, and mix useful context into each token representation.

0 comments
8 min read

How to Deduplicate Streaming Events at Scale

Redis, Flink, databases, and Bloom filters can all remove duplicates, but they are not interchangeable. The right choice depends on where the duplicate appears, how long you must remember it, and what happens if you are wrong.

Data Engineering

Streaming deduplication is not one trick. It is a state-management problem: pick the event identity, choose the memory horizon, and put the dedup state where the failure mode is acceptable.

0 comments
7 min read

Why Netflix 4K Can Look Worse Than a Theater at 1080p

Resolution is only the pixel count. The picture also needs enough bits to describe those pixels. A 4K stream can have more pixels than a theater image and still give each pixel far less data.

Data Engineering

4K streaming is not automatically better than a lower-resolution theater image. Bitrate, compression, mastering, color, motion, and viewing conditions all decide how much detail survives.

0 comments
9 min read

How Flink Works Internally

Flink is not just a library that runs a loop over events. It turns a streaming program into a distributed dataflow, splits operators into parallel subtasks, places those subtasks into task slots, and keeps state recoverable with checkpoints.

Data Engineering

A practical walkthrough of Flink internals: what problem Flink solves, how operators become tasks and subtasks, how parallelism and keyBy scale a job, and how TaskManagers, slots, state, and checkpoints fit together.

0 comments
10 min read

How OpenAI Scaled PostgreSQL to 800M Users, and What to Do in Your System

OpenAI kept one PostgreSQL primary alive for a massive read-heavy workload by moving reads to replicas, pooling connections, protecting caches, rate limiting spikes, and pushing write-heavy workloads elsewhere. The useful lesson is not "Postgres scales forever." It is knowing which pressure you are actually under.

Data Engineering

A practical guide to the OpenAI PostgreSQL scaling story: what they did, why it worked, and what normal engineering teams can do with batching, Kafka, idempotent writes, read replicas, caches, and workload isolation.

0 comments
Menu