Chrome DevTools MCP: How Coding Agents Debug Real Browser Sessions

Coding agents are useful when they can read code, edit files, run tests, and explain errors. But web development has a problem that does not fit neatly inside the file system: the real bug often lives in the browser. A React component may look fine in code but overflow on mobile. An API call may fail only after a specific login state. A button may be present in the DOM but not clickable. A performance issue may come from layout shifts, long tasks, font loading, image decoding, or network waterfalls. A console error may point to bundled JavaScript that needs source maps to be useful. ...

May 31, 2026 · 13 min · Nitin

WebMCP Is the Quiet Google I/O Announcement That Could Make Web Apps Agent-Ready

Originally published on DEV.to as a submission for the Google I/O Writing Challenge. At Google I/O 2026, the loud announcements were easy to spot: Gemini 3.5, Antigravity 2.0, Android agents, AI Studio upgrades, and a lot of new ways to build software with AI. The announcement I kept coming back to was much quieter: WebMCP. The Chrome docs describe it as a proposed open web standard that can be tested locally behind a Chrome flag and explored with demo apps. ...

May 24, 2026 · 9 min · Nitin
Generated illustration of a TypeScript observability pipeline flowing through OpenTelemetry into dashboards and LLM tracing

OpenTelemetry (OTel) in TypeScript: How It Works and How Langfuse Uses It

When a production system fails, the hardest part is often not the fix. The hardest part is knowing where to look. That is the real value of observability. A service without observability feels like a black box. Requests go in, responses come out, and when something breaks we start guessing. With useful telemetry, that black box becomes closer to a glass box: we can see request paths, slow dependencies, errors, queueing, retries, model latency, token usage, and the exact step where a workflow fell apart. ...

April 27, 2026 · 16 min · Nitin

TTFT in LLMs Explained: What Time to First Token Really Measures

When I evaluate an LLM system, one of the first latency metrics I look at is TTFT, or time to first token. This metric answers a simple question: After a user sends a request, how long does it take before the first output token appears? That sounds narrow, but it matters a lot. Users usually forgive a response that streams steadily after it starts. What feels bad is the dead time before anything appears on screen. ...

April 17, 2026 · 7 min · Nitin

Claude Code Tools Explained: What Each Tool Does and When to Use It

When I use Claude Code, I am not just using a model that generates text. I am using a tool-driven coding environment that can inspect files, search code, edit content, run shell commands, and delegate work to subagents. That tool layer is the real reason Claude Code feels different to me from a normal chat UI. Instead of asking: Can the model explain my code? I can ask: Can the model inspect the repo, find the bug, patch the file, and run the command needed to verify the fix? ...

April 16, 2026 · 10 min · Nitin
LoRA fine-tuning cover illustrationA cover graphic showing a frozen pretrained matrix plus a small low-rank adapter update made of two trainable matrices.LoRA Fine-TuningLow-Rank Adaptation for LLMsFreeze the large pretrained weight. Learn a small structured updatethat changes the model just enough for the new task.W = W0 + (alpha / r)BAOne frozen path, one tiny trainable pathThe base model stays intact while adapters learn the task update.W0d_out x d_infrozenAr x d_inBd_out x rtrain only r(d_in + d_out) paramsWhy it matters1. Far fewer trainable parameters2. Much smaller optimizer state3. Easy task-specific adapter checkpoints

LoRA Fine-Tuning Explained: What It Is, Why It Works, and the Math Behind It

LoRA stands for Low-Rank Adaptation. It is one of the most useful ideas in modern LLM fine-tuning because it changes the question from: How do we update all of the model's weights? to: How do we learn a small update that is still expressive enough for the new task? That is the whole trick. Instead of fine-tuning every entry of a large weight matrix, LoRA keeps the original pretrained weight frozen and learns a low-rank correction on top of it. This makes training much cheaper in parameters, optimizer state, checkpoint size, and often VRAM. ...

April 5, 2026 · 11 min · Nitin
Universal Approximation Theorem cover illustrationA clean cover illustration with a shallow neural network on the left and a target curve with a close approximation on the right.Universal ApproximationSimple unitscompose intorich curvesshallow networksumtarget and approximationtargetapproximation

Universal Approximation Theorem Explained: Why Neural Networks Can Approximate Any Continuous Function

The Universal Approximation Theorem (UAT) gets quoted constantly, but it is usually described in a fuzzier way than it deserves. It does not say neural networks are magically good at every task. It does not say a shallow network is the most practical architecture. It does not say gradient descent will easily find the right weights. What it does say is still important: With a suitable nonlinear activation and enough hidden units, a feedforward network can approximate any continuous function on a bounded domain as closely as we want. ...

April 3, 2026 · 8 min · Nitin

Training Loop Explained: Batches, Epochs, Iterations, and Convergence

Once you understand neurons, activations, loss functions, and backpropagation, the next thing to understand is the training loop. This is the repetitive engine of deep learning. At a high level, training is boring in the best possible way. It is the same four steps repeated over and over: make a prediction measure the error compute gradients update the weights The interesting part is not the loop itself. The interesting part is how concepts like batch size, epoch, iteration, and convergence affect the behavior of that loop in practice. ...

April 3, 2026 · 7 min · Nitin
Decision guide for MSE vs cross-entropyA diagram showing when to use mean squared error for continuous targets and cross-entropy for class prediction.Pick the loss that matchesthe prediction targetMSE measures numeric distance.Cross-entropy measures probability on the correct class.What is the model trying to predict?Start with the target shape, then pick the loss.Continuous numberExamples: price, temperature, demand, sensor valueUse MSEWhy: you care about distance fromthe true value.Class or probabilitydistributionExamples: spam, cat vs dog, next token, image labelUse cross-entropyWhy: you care about probability onthe correct class.Rule of thumb: numbers -> MSE, classes -> cross-entropy

MSE vs Cross-Entropy: Which Loss Function Should You Use?

Loss functions answer one basic question: How wrong is the model right now? Without a loss function, a neural network has no way to measure its own mistakes, and without that measurement, gradient-based training has nothing to optimize. Two of the most important losses in machine learning are: Mean Squared Error (MSE) Cross-Entropy They are both common. They are both differentiable. But they solve different kinds of problems, and using the wrong one makes training harder than it needs to be. ...

April 3, 2026 · 7 min · Nitin

Multi-Layer Perceptron Explained: Dense Networks from First Principles

A multi-layer perceptron (MLP) is one of the simplest and most important neural network architectures. It is not flashy. It is not state of the art for language or vision by itself. But if you do not understand MLPs, a lot of modern deep learning stays blurry. MLPs teach the core structure of neural networks: inputs become vectors layers apply learned linear transforms activations add nonlinearity deeper layers build more useful internal representations They also still matter in practice. Even transformers contain MLP blocks. Recommendation systems, tabular models, and many small classifiers still use dense networks directly. ...

April 3, 2026 · 7 min · Nitin