Yuvraj Shiv

Hi, I'm Yuvraj.

EECS @ UC Berkeley · machine learning intern at Altametrics · ML systems and things that run close to the metal.

I build demand forecasting models that run in production. At Altametrics I work on daily sales forecasting for four national restaurant chains across thousands of locations, where I cut forecast error from 12% to 5%. I led a team of interns on the data pipeline behind it.

The rest of my time goes into systems. A path tracer with a bounding volume hierarchy for acceleration. A relational database engine with a cost-based query optimizer and ARIES crash recovery. A 32-bit RISC-V CPU built from gates — 36 instructions, then re-architected into a two-stage pipeline. A Scheme interpreter, and a mini-GPS that localizes a microphone from six speakers.

What I'm working on


Machine learning at Altametrics

Machine learning intern · Costa Mesa, CA

Production demand forecasting for McDonald's, Taco Bell, Jack in the Box and Chipotle — thousands of locations, daily horizon. I work on the full model lifecycle end to end: 30+ engineered features drawn from weather, zip-code demographics, holidays, school calendars, national events and macroeconomic indicators; walk-forward cross-validation; hyperparameter tuning; back-testing against historical sales.

I cut forecast error from 12% to 5%. I led a team of interns on the data pipeline behind the model — scheduled crawlers behind a rotating proxy pool, a headless browser for pages that render client-side, and an ETL layer that lands everything in a cleaned, de-duplicated store. I designed the schema with range partitioning and a composite index so the feature joins stay fast.

I've run this full-time across two consecutive summers — CS 61C alongside it in 2025, CS 184 and CS 161 in 2026.

Python · XGBoost · LightGBM · CatBoost · Prophet · TimesFM
Summers 2025 & 2026

Low-cost robot manipulation data

Residual Robotics · 4-person team · Berkeley

Robot policies don't generalize the way language models do, and a large part of the reason is data: the manipulation corpora that exist are small and narrow relative to what the problem needs. We're collecting mass UMI data from skilled laborers in India to widen that, to sell to robotics foundation model labs. The hardware is a handheld gripper you can carry into any environment and record real manipulation with, no robot required.

I own the hardware. I design the gripper in CAD — a full parametric assembly in Onshape, jaw linkage, camera mount, IMU tray, fiducial plate — and we design our own PCB around a Raspberry Pi Zero for the sensing stack. V2 came down from 636 g to 200 g through topology optimization, and the design-for-manufacturing work gets all 16 printed parts off the bed with zero slicer supports.

Onshape · parametric CAD · topology optimization · DFM · FDM printing (PLA+ / TPU) · AprilTag fiducials
2026 – present

Automated FEM — real-time elastostatics from a graph neural network

CS 184 final project · 2-person team with Ninad Atale · proposal site

Commercial FEM solvers make you re-solve from scratch for every new load case. For linear-elastic materials that is wasteful, because any load combination is a superposition of load cases you have already solved. We built a solver that generates its own training set by sweeping load cases automatically, trained a graph neural network on the mesh, and exposed the result as a viewer you can push on and watch deform in real time.

A mesher (Assimp to load CAD and COLLADA, a manifold check, TetGen to discretize into tetrahedra) feeds a validated FEM solver that passes nine correctness checks and generates the training set. On top sits a MeshGraphNets-style GNN in PyTorch Geometric, encode-process-decode over node and edge features. I sized its depth against a measured receptive-field bound rather than a paper default: a load moves the whole part, but L message-passing layers only reach L hops.

Scoped to linear elasticity and direct forces; no torques, no anisotropy. Prediction error is measured against our own solver's solution, not a commercial one, because matching topology across representations is its own problem.

C++ · Python · TetGen · Assimp · PyTorch Geometric · graph neural networks · FEM
Jul – Aug 2026

Selected systems work


Course projects, but the real kind — each of these is a working system built from the primitives up. Full write-ups →

Path tracer + BVH Relational database engine 32-bit RISC-V CPU Scheme interpreter Procedural world engine Audio fingerprinting Acoustic positioning Memory-safety exploits Encrypted file sharing Analog guitar pedal

Figures


Animated line-of-sight rendering walking through a procedurally generated world
BYOW, line of sight. Only tiles the avatar can see are drawn, with walls occluding what sits behind them. Seeded at Long.MAX_VALUE. CS 61B →
STFT spectrogram beside its constellation map of peaks paired into hashes
Audio fingerprinting. Left, the STFT. Right, what survives a 51×51 maximum filter, each peak chained forward to the next 15 to form hashes. EECS 16A →
Ground truth image beside reconstructions from Hadamard and random masks under identical noise
Single-pixel camera. The same scene recovered through Hadamard masks and through random ones, under identical noise. Both matrices invert; the condition numbers are 34 and 3,886, and the difference is the whole argument. EECS 16A →
Six beacons with range circles and a least-squares position fix
Acoustic positioning. Six beacons, range circles from the recovered times of flight, and the least-squares fix. EECS 16A →
Teapot after one level of Loop subdivision
Loop subdivision, from my CS 184 MeshEdit submission. Full write-up →