About

Hi, I'm Charan.

I'm an AI & automation engineer in Bangalore who ships production LLM systems — from a Springer-published model that reads chest X-rays well enough for a radiologist to take seriously, to document pipelines that quietly run themselves. Before any of that, I wrote real-time control code for jet engines at DRDO, where a millisecond of lag isn't a bug — it's a flameout. Tracewave is what happens when that instinct for things-that-must-not-stall meets a public data firehose and a free weekend.

This is one project. There are 18 more (and a few jet engines) over at charanreddy.dev. Fair warning: it's a bit of a rabbit hole.

What I learned building this

01

Real-time UIs live or die on the small stuff

Tabular figures so digits don't jitter on every tick, a capped and interpolated chart redraw, cards that slide-and-settle instead of popping. None of it shows up in a screenshot — all of it is the difference between "looks live" and "looks amateur."

02

Write the core so transport is an afterthought

The Processor doesn't know if its events come from an in-memory queue or Redis Streams, or whether history lands in a ring buffer or TimescaleDB. That one decision is why the whole thing runs as a single process in dev and a distributed stack in prod without a rewrite.

03

Confidence is a product decision, not a formula

Three detectors will disagree constantly. The interesting work was making the ensemble reward agreement — so one twitchy detector can't cry wolf, but three nodding together escalate to critical. That math is a UX choice wearing a lab coat.

04

Backpressure isn't optional when you don't own the tap

The firehose bursts whenever it feels like it. Bounded buffers that shed the oldest events and count every drop as a metric beat unbounded queues that quietly grow until something falls over.

05

A link that's alive beats ten perfect notebooks

So this deploys with a self-contained simulation that kicks in when there's no backend — the same detector math, clearly labelled as synthetic. A portfolio link should never greet you with a spinner that never resolves.

Elsewhere

Want to build something — or break something interesting? Let's talk.

Have an idea? Let's talk.

Want to build something — or break something interesting? I'm available for new projects. The fastest way to reach me is a 30-minute call; otherwise drop a line below and it lands in my inbox.

Curious how this was actually built? Read the project story →