Pulse — Real-time Analytics Dashboard
ActiveSep 2025 — Present
A real-time product analytics dashboard that streams events over WebSockets and renders thousands of data points without dropping frames.

Pulse started as an internal tool: the team needed to watch signup funnels and feature-flag rollouts live, not in a nightly report. I designed it around a single append-only event stream consumed over WebSockets, with a windowed in-memory aggregation layer so charts re-render incrementally instead of recomputing on every event.
The interesting problem was rendering. Plotting 20k points per series naively locked the main thread, so the charts downsample on the server per zoom level and the client only ever renders what is visible. Time-travel debugging of the aggregation state was built in from day one, which paid for itself the first time a production number looked wrong.
Lessons learned
Rendering less data beat rendering faster. Every optimization that mattered was about not shipping points the user could never see — no amount of canvas cleverness survived 20k DOM-adjacent updates. The second lesson: build the debugging view first. The time-travel inspector found three aggregation bugs that tests did not.