Skip to content
Sri

Still learning. Building as I go.

I'm Sri, a high-school student. I learn by building: scouting tools for our robotics team, a database benchmark, and some developer tooling.

  • Learning Swift and SwiftUI
  • Building Scouting Web 2027
  • Heading into open source

Stuff I've built

2026

610 Scouting App 2026

The Android app our six scouts use to record every robot in a match. It works offline and syncs across the team's tablets.

The Auto scouting screen in dark mode: fuel scored and fed counters, an L1 hang selector, and the field image
  • Submissions are written to a local Couchbase Lite database first, then replicated in both directions through Sync Gateway. The team brings its own network, the Toaster, a custom box with a network switch and a cellular LTE router that tablets reach wirelessly or over Ethernet.
  • A five-step match flow (start, auto, teleop, review, human player), with autonomous paths drawn by hand on an image of the field.
  • TypeScript
  • React Native
  • Expo
  • Couchbase Lite
  • Sync Gateway
  • NativeWind
  • The Blue Alliance API

2027

610 Scouting Web 2027 (WIP)

A Next.js dashboard for Team 610's scouting data, with its own sign-in, roles enforced on the server, live updates over WebSockets, and an admin panel for mentors.

The Teams page: a team's averages, a scouted match, and the auto path viewer, with the Live updates on indicator
  • Google and Apple sign-in written directly against OpenID Connect (state, nonce, PKCE, and ID-token signature checks) without an auth library.
  • Five roles (Owner, Mentor, Scout lead, Scout, Member) decided in one permissions module and enforced on the server, with an admin panel for health checks, realtime and sync monitoring, user management, and an audit log.
  • TypeScript
  • Next.js
  • React
  • Tailwind CSS
  • WebSockets
  • Couchbase Sync Gateway
  • OpenID Connect
  • Playwright
  • GitHub Actions
  • Vercel

2026

610 Design App (WIP)

A phone-first web app for logging robot prototype tests with photos and video, then comparing iterations. Drafts save offline and roles are enforced on the server.

The Compare tab in dark mode: a line graph of a prototype's cycle time across its test entries
  • Every server action goes through one pipeline (authenticate, rate limit, validate, authorize, handler, audit), and permissions for five roles live in a single module.
  • Metric definitions are immutable versions, and each entry snapshots the definitions it used, so old seasons still render exactly as logged.
  • TypeScript
  • Next.js
  • React
  • Tailwind CSS
  • Couchbase
  • Auth.js
  • Zod
  • S3 / R2
  • Vitest
  • Playwright

2026

Claudeium (WIP)

A task ledger for AI-assisted coding where nothing counts as done until a check has passed against the files it covers.

The ledger's status output: one task verified but marked STALE after its files changed, one failed, one pending
  • A task is verified only through a recorded passed check, and the evidence is tied to a fingerprint of the files it covers, so later edits mark it STALE.
  • JavaScript
  • Node.js
  • Claude Code plugin
  • JSON

2026

Scouting App Benchmark: React Native vs Native Java

I ran our scouting app against a native Java version on the actual tablet to decide whether a rewrite would be worth it.

Summary chart comparing the React Native and native Java scouting apps across latency, throughput, CPU and memory
  • Both apps run the same scripted workload through a shared Java instrumentation harness that injects touches and records latency, frames, CPU, and memory.

About me

I'm a high-school student who likes building things and figuring out how they work. I started with Java, took ICS3U, and built a Swing game for the Grade 11 final. Now it's mostly TypeScript: React Native on our team's scouting tablets, Next.js for the web.

I like software that has to cope with messy conditions, like tablets syncing through a network box we built ourselves, or a benchmark that has to back up its own numbers. Next up is my first open-source contribution, starting with The Blue Alliance.