Utkarsh Singh

Utkarsh Singh — Software Engineer · Bangalore, India · Remote only

I drop into any stack and ship the whole thing.

Vehicle networks · ARKit · GPU perception · embeddings · CFD · pen plotters — six stacks I hadn’t touched, each taken to something that runs.

Fig. 1 — Six wave sources on one shared field, contoured live in canvas every frame. Drawn in code, not data — your cursor is the seventh source.

Range is the whole point.

Vehicle-network tooling for a car company. AI search infrastructure. A 3D spatial-computing product. Generative art. Computational-physics pipelines. I take each one from a stack I’ve never touched to something that actually runs — and the unfamiliar part is the part I like.

  1. ECU networksprotocol tooling
  2. ARKitspatial capture
  3. GPU inferenceperception at scale
  4. Embeddingssemantic search
  5. CFDcomputational physics
  6. Pen plottersgenerative art

Selected work

roomstudio

Live · Private repo · Flagship

“Every home contains a version of itself its owner has never seen.”

Fig. 2 — roomstudio’s idea in miniature: a room drawing itself in, one object detected. A live code sketch, not the actual scan.

A spatial-intelligence platform for the home. Scan your space with an iPhone Pro and roomstudio reconstructs both the room and its contents — measured walls, floor, doors and windows with inferred surface materials, and every object placed at its real metric position.

Then it talks about it — and takes requests. Ask about the room and the answers stay grounded in measured scene facts. Ask it to move the furniture and the model only ever states intent: a server-side solver owns the geometry, checks every move against the measured room, and refuses the ones that aren’t real.

Live in production: scan on an iPhone Pro, and the room arrives on the web as a choreographed reveal — the measured boundary draws itself, surfaces fade up in place, furniture settles largest-first, and then the room speaks.

01 · Capture
iOS · Swift · ARKit + RoomPlan co-run · live on-device floor plan · lock-surviving background upload
02 · Perceive
FastAPI on Cloud Run · NVIDIA L4, scale-to-zero · RoomPlan CapturedRoom · SAM 3 · SAM 3D Objects · Gaussian splats · vision-inferred materials · Firestore · Cloud Tasks · Eventarc
03 · Render
Next.js on Firebase · 3D Gaussian splats via WebGL2 (three.js + Spark) · parametric room surfaces · choreographed assembly reveal

Solo, across three surfaces —

~93kLOC
~2,160automated tests
129written decision records

gitsearch

Live · Open source
Fig. 3 — a query point finding its neighbours in embedding space. An illustrative sketch drawn live in code — not real data.

GitHub finds repositories by what they’re called. If you don’t already know the name, it can’t help you. gitsearch finds them by what they do — describe the thing you want and it goes looking.

Three searches run at once — on keywords, on meaning, and on names that are nearly right — and their rankings are fused, then nudged by how popular and how recent each repo is. The keyword search also draws on the awesome-lists sitting inside the corpus: thousands of hours of people hand-sorting repositories into categories, free for the cost of parsing markdown. Every result shows why it ranked where it did, and each comes with a short usage guide an agent wrote after going and reading the repository.

To know whether any of that actually helped, I built a graded test set of 200 questions. It has told me yes, and it has told me no — most expensively when I re-embedded the entire corpus, paid the bill, measured it, and found the gain too small to be worth the risk. Those vectors are still in the database, switched off.

Anatomy
Four independent parts · Postgres + pgvector · 120 ms server-side on a cached query, 1–3 s on a novel one · scales to zero, kept warm for $0
244Krepos indexed
120ms–3squery latency
~$30a month to run

linework

Live · Open source
Fig. 4 — a damped harmonograph, plotted live in code: the kind of line linework exports for the pen. Click it to plot another.

Generative art from equations, drawn live in the browser with trigonometry and noise — GPU shaders when it moves. Every piece exports as plotter-ready SVG for a real pen plotter. No frameworks, no build.

packed-bed-simulations

Research · Open source
Fig. 5 — potential flow threading a settled packing, sketched live in code — not the solver’s output.

My IIT Delhi thesis. To simulate flow through a reactor packed with catalyst pellets, you first need a faithful model of how those pellets actually settled — and the usual way to get one is to build the bed for real and measure it by hand. I poured them into a physics engine instead, let them fall, and read the packing off the result.

Simulation prep: 2+ days → hours.

Shrink to Fit

Live · Open source · One-day build

Upload forms come with a number — maximum size: 500 KB — and your file never agrees with it. This lands any image or PDF at exactly the size you were told, entirely in your browser. Nothing is uploaded, because there is no server to upload to.

PDFs keep their selectable text: a WebAssembly build of Ghostscript walks the internal image resolution down, rung by rung, until the document fits. Images binary-search JPEG quality from both ends. Location metadata doesn’t survive the trip.

WhatsApp Archive Viewer

Live · Open source · One-day build

Chat exports quietly pile up into tens of gigabytes a phone can’t spare. Park the zips on a computer and read them back here as chats — read-only, zero extraction, zero upload. Unofficial, and says so.

Some exports arrive genuinely damaged — the archive’s index declares more files than it holds, and standard tools silently drop the tail: the newest media, and usually the chat itself. The bytes are still there. The viewer walks them raw, finds orphaned entries by signature, and hands them back.

Experience

Jaguar Land Rover · Software Engineer · Jul 2022 — Oct 2025 · Bangalore

A car is a few dozen computers having a conversation. Nobody had written down what they say.

It is specified, technically — in a 100,000-line XML file with no map of what lives where, replaced by a new one every quarter. You can re-learn that file four times a year, or you can work out the shape underneath it once. I did the second, and wrote the parser against the shape rather than the file, so each new release just drops in. A later C++ port — part of a full migration for tighter real-time margins — took the parse from ~2–3 seconds to ~0.1.

What comes out is the whole map: which computer talks to which, at what address, and where inside each message every value sits — down to the bit, and which way round the bytes are packed.

Reading it was the easy half. The other half talks back: hold a message on a timer the tester chooses, steady enough for a ten-millisecond beat; flip a counter or checksum to a deliberately wrong value — a functional-safety feature, there to prove the far side notices — and turn whatever returns from raw bytes into the words a tester actually says out loud. Engine speed — not byte 3, bits 4 through 15.

Then I put it in front of people three ways. The third is my favourite: a small touchscreen box you bolt to the test rig and press one button. It boots straight into the dashboard — no laptop, no install, nothing to read first. A tester taps the signal they want and it goes out on the wire.

Every copy quietly reports the machine it’s running on, so adoption was never a guess — 500+ unique machines checked in.

Fig. 6 — a 6-byte PDU laying itself out, then transmitting. Simulated in code, counter and all: 0 frames so far.
~£500KThird-party licensing replaced — Intrepid, Vector and dSPACE.

JLR Exceptional Creator Award · 2025

01 · Desktop
Windows + Linux · PySide6 on Qt · dashboards · a drag-and-drop builder for making your own
02 · Headless
The same engine over HTTP, no screen attached · your own test code drives the rig instead of a person
03 · On the rig
reTerminal touch hardware · boots into the dashboard, one button, no laptop in the loop

Also at JLR

  • Jira ↔ BigQuery pipelines on scheduled Cloud Functions, feeding self-serve Tableau dashboards.
  • A Selenium XML-extraction utility across 20+ internal REST endpoints.
  • A Jira automation tool processing thousand-row supplier Excel files.
  • 40+ org-wide Tableau dashboards, built and maintained — Rank 1 among all creators.

Toolkit

Languages

  • Python
  • TypeScript / JS
  • Java
  • C++
  • C
  • SQL
  • Swift
  • MATLAB

Backend & Infra

  • FastAPI
  • Flask
  • GCP (Cloud Run / Tasks / Eventarc)
  • Cloud Run GPU (NVIDIA L4)
  • Firebase / Firestore
  • Docker
  • CI/CD
  • Postgres + pgvector

Frontend & Graphics

  • Next.js
  • React
  • three.js + Spark (WebGL2 3DGS)
  • Canvas / SVG
  • Qt (C++ / PySide6)

AI & Data

  • Embeddings & vector search
  • Hybrid retrieval & RRF
  • IR evaluation (nDCG, qrels)
  • SAM 3 / SAM 3D Objects
  • RoomPlan geometry
  • Gaussian splatting
  • LLM apps (streaming, structured, vision)
  • Tableau / BigQuery

Vehicle Networks & Embedded

  • ARXML
  • PDU / signal layouts
  • SOME/IP
  • automotive Ethernet
  • scapy
  • raw packet I/O
  • Multithreaded real-time I/O
  • Embedded Linux
  • reTerminal

Domain

  • ARKit / spatial computing
  • CFD
  • Blender
  • Ansys Fluent

Background

IIT Delhi crest

IIT Delhi — B.Tech + M.Tech (Dual Degree), Chemical Engineering

CGPA 8.6 / 10 · 2017 – 2022

Honours

JLR Exceptional Creator Award (2025) · Department Rank 1 — Chemical Engineering · Semester Merit Award ×2 · JEE Advanced — AIR 2525 (top 1.14%) · JEE Main — AIR 742 (top 0.06%)

Let’s build the whole thing.

Available for the parts of the stack nobody else wants to own — from the metal to the model.