Archive

1290 posts · Page 20 of 108. ← Blog

Pratik Dhanave · ·6 min read

Failure and Resilience

In a distributed system, failure is not an exception to handle — it's the steady state. Nodes are always crashing, recovering, slowing down, and being partitioned somewhere in your cluster. Resilience is not preventing failure; it's designing so that the failures happening right now don't become the outage your users see.

In a distributed system, failure is not an exception to handle — it's the steady state. Resilience is designing so the failures happening right now don't become the outage your users see: detection, safe retries, isolation, and graceful degradation.

Pratik Dhanave · ·4 min read

LlamaIndex in Production

A four-line RAG demo and a production RAG system share almost no operational concerns. Getting to production means treating ingestion as a pipeline, retrieval quality as something you measure, and the whole system as something you observe — the work that starts after the demo impresses everyone.

A four-line RAG demo and a production RAG system share almost no operational concerns. Getting to production means treating ingestion as a pipeline, retrieval quality as something you measure, and the whole system as something you observe.

Pratik Dhanave · ·5 min read

CrewAI in Production

CrewAI makes it easy to build a multi-agent system and just as easy to build one that's slow, expensive, and unreliable — so production CrewAI is mostly about discipline: measure it, keep it as simple as the problem allows, and use Flows for the parts that must be dependable.

CrewAI makes it easy to build a multi-agent system and just as easy to build one that's slow, expensive, and unreliable — so production CrewAI is mostly discipline: measure it, keep it simple, and use Flows where it must be dependable.

Pratik Dhanave · ·5 min read

Postgres/pgvector vs a Dedicated Vector Database

The vector-storage decision has a boringly practical answer that cuts against the hype: for most systems, the database you already run with a vector extension beats adding a new specialized system — until scale or specific features force the upgrade.

A boringly practical answer that cuts against the hype: for most systems the database you already run with a vector extension beats adding a specialized system — until scale or specific features force the upgrade.

Pratik Dhanave · ·5 min read

Kafka in Production

Kafka's defaults will run; whether they'll survive a broker failure, a traffic spike, or a year of growth depends on a handful of decisions — replication, durability, partitioning, and what you monitor — that are far cheaper to make now than to retrofit later.

Kafka's defaults will run; whether they survive a broker failure, a spike, or a year of growth depends on a handful of decisions — replication, durability, partitioning, and what you monitor.

Pratik Dhanave · ·5 min read

Limits, Risks, and Open Problems

The frontier is genuinely exciting and genuinely oversold, and telling the difference matters — so this closing post is an honest accounting of what self-evolving agents cannot yet do, what can go wrong, and what remains unsolved.

The frontier is genuinely exciting and genuinely oversold. An honest accounting of what self-evolving agents cannot yet do, what can go wrong, and what remains unsolved.

Pratik Dhanave · ·5 min read

Regression and Linear Models — The Workhorses You Should Understand First

Before neural networks, the two models that still quietly run more of the world's predictions than anything else are linear and logistic regression. They are simple enough to understand completely, fast enough to train on anything, and interpretable enough to explain to a regulator — and understanding them teaches the mechanics (fitting, loss, gradient descent) that every more complex model shares. This post builds both from scratch and shows why "just use a linear model" is often the right answer.

Linear and logistic regression still run more of the world's predictions than anything else — and they teach the universal loop (model, loss, gradient descent) that scales all the way to training an LLM. Fitting a line, the learning rate, and the sigmoid that becomes the softmax.

Pratik Dhanave · ·6 min read

Evaluation in Production

Offline evaluation tells you whether a change is promising; production tells you whether it actually works. Once your system is serving real users, evaluation becomes continuous: online experiments, guardrail metrics, drift monitoring, and gating deploys on eval scores. This closing post moves evaluation from the lab into the running system and ties the whole series into a working loop.

Offline evaluation tells you whether a change is promising; production tells you whether it works. Once you're serving real users, evaluation becomes continuous — online experiments, guardrail metrics, drift monitoring, CI gating. This closing post moves evaluation from the lab into the running system and ties the series into one loop.

Pratik Dhanave · ·7 min read

Know Your Market

The most expensive mistake in go-to-market is the most tempting one: trying to sell to everyone. "Our market is anyone who needs X" feels ambitious, but it's a recipe for a message that resonates with no one, a product spread too thin, and marketing spend sprayed at people who'll never buy. The counterintuitive truth is that the way to a big market is through a small, specific one — and defining that specific one is the first real work of GTM.

The most expensive mistake in go-to-market is the most tempting one: trying to sell to everyone. The counterintuitive truth is that the way to a big market is through a small, specific one — and defining that specific one is the first real work of GTM.

Pratik Dhanave · ·7 min read

Processes

A process is the OS's answer to "what is a running program?" — and it's more than the code: it's the code plus its own private memory, its own resources, and its own isolated view of the machine, as if it owned the computer. That isolation is what lets many programs run at once without corrupting each other, and understanding it explains a huge amount of how systems behave.

A process is the OS's answer to 'what is a running program?' — more than the code: it's the code plus its own private memory, resources, and isolated view of the machine. That isolation is what lets many programs run at once without corrupting each other.

Pratik Dhanave · ·7 min read

Pods: The Atom of Kubernetes

Kubernetes doesn't run containers directly — it runs pods. This surprises newcomers: why wrap a container in another abstraction? Because the pod solves a real problem — some containers genuinely need to run together, sharing network and storage — and making the pod (not the container) the unit of scheduling is what makes the rest of Kubernetes coherent.

Kubernetes doesn't run containers directly — it runs pods. Why wrap a container in another abstraction? Because some containers genuinely need to run together sharing network and storage, and making the pod the unit of scheduling keeps the rest of Kubernetes coherent.

Pratik Dhanave · ·6 min read

Infrastructure as Code

Clicking through a cloud console to set up infrastructure is fast, fun, and a disaster you'll regret — because nobody can reproduce it, review it, or remember what you did. Infrastructure as code turns your servers, networks, and databases into version-controlled, reviewable, reproducible code. It's the practice that makes infrastructure an engineering discipline instead of an artisanal craft.

Clicking through a cloud console to set up infrastructure is fast, fun, and a disaster you'll regret — nobody can reproduce it, review it, or remember what you did. Infrastructure as code turns your servers and networks into version-controlled, reproducible code.