Aryan Harkawat

CS at UT Austin · Stripe Core Infrastructure · Austin, TX

I build the parts of the backend that decide where requests go.

Last summer I rebuilt load balancing in Stripe's service mesh. Since then I've been applying the same ideas to LLM serving, and, for fun, to rendering the clouds behind this text.

The sky is a live shader. Move the mouse to move the sun.

Work

Stripe Software Engineer Intern, Core Infrastructure Summer 2026 · returning Spring 2027

Worked on the service mesh that routes traffic between Stripe's internal services. The mesh picked backends in a way that couldn't tell when one was overloaded, so I rebuilt it around power-of-two-choices weighted by the CPU and queue depth each backend reports. Overload errors dropped 40% across 50+ services handling 400M+ requests a day, and the services could stop over-provisioning for their hottest replica, which came to roughly $200K a year.

Then added zone-aware routing that spills traffic to neighboring zones when one gets hot, cutting p99 latency 23%, and ran the production rollout through feature-flagged canary ramps gated on error and latency metrics. No incidents.

Trend Micro Software Automation Intern 2025 – 2026

Python data pipelines for internal workflows: a scheduled ETL for payroll reconciliation with schema validation and fuzzy record matching across Excel and shared-drive sources, and a network log pipeline that sessionizes raw logs into SQL for Power BI dashboards.

Mercor Machine Learning Intern Spring 2025

Benchmarked six fine-tuned BERT variants with a reusable Hugging Face evaluation script, exported the best to ONNX with int8 quantization for 3× faster CPU inference, and wrote the data checks that removed 5% noisy labels from a 1M+ ticket dataset, raising baseline F1 by 2 points.

Why the routing policy matters

Eight backends, two of them running at half capacity. Requests arrive at random. Pick a policy and watch where the queues build up. This is a small simulation, not the production system, but the shape of the result is the same one I saw at Stripe and in Herd.

p50 latency–
p99 latency–
shed (queue full)0
served0

Round robin gives every backend an equal share, so the two slow ones fall behind and never catch up.

Projects

Herd routing dashboard

Herd Go · Envoy · gRPC · Kubernetes · Prometheus

An OpenAI-compatible inference gateway for self-hosted LLM servers. It routes each request by live KV-cache utilization and prefix-cache affinity, sheds and queues by criticality and tenant, spills over to a cloud provider within a budget, and runs as an Envoy ext_proc endpoint picker.

I built it to see whether the Stripe approach holds up when request cost depends on prompt length and what's already cached. On an 8-replica benchmark it cut p99 time-to-first-token 55% versus round-robin, and with two degraded replicas it held p99 at 12.6s where round-robin reached 292s.

Concertify recommendations page

Concertify Go · Python · PyTorch · Node.js · Redis

Finds concerts near you and ranks them by how much you actually listen to the artists. Two-stage retrieval and ranking over Spotify listening history and Ticketmaster events, with a Go gRPC ranking service and per-user weights trained in PyTorch from thumbs up and down. 500+ users.

The interesting part was the upstream quota: Ticketmaster allows 5 requests a second, so cold recommendations went from 9s to 2.5s through a single-flight Redis cache, priority rate limiting and async profile warming.

Rendered clouds seen from above the layer

Volumetric Cloud Renderer C++ · OpenGL · GLSL

Real-time clouds, ray-marched through 3D Perlin-Worley noise generated by compute shaders, with a multiple-scattering lighting approximation. The cloud pass renders at half resolution and a temporal pass reprojects each frame against the last, which makes it 3.5× cheaper for the same converged image.

The sky at the top of this page is a much smaller cousin: a single-layer 2D version in WebGL, about 60 lines of GLSL.

About

I'm a junior studying computer science at UT Austin. I like problems where correctness is measurable and the fix ships to real traffic: load balancing, caching, queuing, the plumbing between services. Lately that has meant model serving, where the same questions show up with a different cost model.

I work in Go, Python, C++ and Java, and I've spent a lot of time with gRPC, Kubernetes, Envoy, Redis and Prometheus. Outside of work I co-authored a peer-reviewed astronomy paper on galaxy morphology from SDSS data, which is where I first learned to be careful with statistics.

The best way to reach me is email.