Orlando, FL  ·  telemetry → decisions  ·  systems & analytics engineering

Brandon
Stevison

Fifteen years reading high-rate sensor telemetry for defense test programs. Nights and weekends: shipping consumer products and measuring how people actually use them. Everything below was designed, built, deployed, instrumented, and analyzed by one person.

01

ToBeWatched

Founder & sole engineer · full-stack film & TV platform · tobewatched.com

ToBeWatched film page for Kramer vs. Kramer showing six aggregated rating sources, cast and crew links, watchlist actions, watch-history logging, reviews, and a region-aware Where to Watch section
Film page in production: six aggregated rating sources (TMDB, IMDb, Rotten Tomatoes critic + audience, Metacritic, Letterboxd), watchlist / watched actions, per-user watch-history logging, reviews, and the region-aware "Where to Watch" section computed for the viewer's country.

A film and TV watchlist + social platform — a Letterboxd alternative with full series/season tracking, event-sourced watch history, threaded reviews, and region-aware streaming availability computed against each viewer's country and subscribed services.

Built solo, first commit to production in six weeks. Python/FastAPI + async SQLAlchemy + PostgreSQL, React frontend, Capacitor Android app, Docker/Caddy deployment with tiered automated backups. 75+ REST endpoints, ~20 zero-data-loss schema migrations against a live database.

The best stories came after launch: users importing 2,000+ film libraries exposed a first-traffic incident (retry storms, connection-pool starvation) diagnosed and fixed in one pass; a ratings-provider circuit breaker that treated "unknown film" as an outage and silently poisoned nightly refreshes; and a fixture suite that passed while real-world imports failed — because real Letterboxd exports don't look like synthetic ones.

Python · FastAPIPostgreSQLSQLAlchemy asyncReactTMDB + 4 more APIsDocker · Caddy
v1 · 2,300-item list optimized warm cache 7.2 s · 1.8 MB JSON 1.2 s 0.18 s deferred hydration · per-region cache · proxy compression · progressive load

First fix attempt moved 190 MB of JSONB parsing into Postgres. Benchmarking at scale is the lesson.

6 wk
idea → prod
75+
endpoints
5
external APIs
1
engineer
02

Chain The Rainbow

Solo developer · live on Google Play, iOS in TestFlight · Flutter / Flame / Firebase

A cross-platform arcade puzzle game shipped solo through seven production releases — eight game modes, real-time global leaderboards, anonymous-first auth, rewarded ads + IAP monetization, and the full store presence (listings, screenshot sets, ad creatives, a playable ad).

The analytics work is the point. A deliberately small custom event taxonomy — designed backwards from the questions a paid-UA campaign needs answered — feeds a Firebase → BigQuery export for SQL-level cohort, retention, and funnel analysis. Rounds are timed from first tap, not screen-open, so engagement numbers measure play, not navigation.

Review-prompt timing was iteratively tuned from player behavior: the naive v1 trigger asked new players for a rating mid-onboarding; the fix gates asks to celebratory moments with per-mode-family thresholds, behind a soft-ask layer that makes the funnel measurable despite the deliberately opaque native review API. Paid UA on Google Ads surfaced ~80% install concentration in South Asia at low CPI — which reshaped the follow-up Tier-1 geo strategy.

Flutter · FlameFirebase AnalyticsBigQueryAdMob · IAPGoogle Ads UA
Chain The Rainbow store screenshot: a cascade of overlapping colored pop rings with rising score multipliers, captioned One Tap, Endless Chains
game over predictive gate offer watched declined no offer offers only when a boost would flip the outcome

Every edge is an event (offered / watched / declined) — offer quality and conversion are measured, not guessed.

7
releases live
8
game modes
SQL
BigQuery export
10000+
installs and growing
03

Sensor-Fusion Explorer

Interactive analytics tooling · Plotly Dash · methods demo — no program data

A Plotly Dash application for exploring target-position uncertainty when two platforms observe the same object: azimuth/elevation/range measurements transformed to Cartesian with Jacobian covariance propagation, fused via Julier–Uhlmann covariance intersection with Mahalanobis-distance gating, and rendered as interactive uncertainty ellipsoids on a drag-to-position map.

Representative of the day-job work: quick-turn analysis of 100–1,000 Hz instrumentation streams to support same-day field-test decisions, and pre-event dashboards that let non-specialists interrogate an algorithm before committing range time to it. Shown here as a pure-methods demonstration with synthetic geometry.

Python · Dash · PlotlyNumPy linear algebraWGS-84 / NED framesCovariance intersection
sensor A estimate sensor B estimate fused (CI)

Consistent fusion without knowing cross-correlation — the conservative answer when sensors share unknown error sources.

100–1k
Hz streams
Same-day
field decisions