I spent my first six years as an engineer where most of the hard problems live — behind the interface. Designing API architectures that serve hundreds of thousands of requests, building queue-based ingestion systems that compress 30-minute ETL jobs into 2-minute pipelines, and deploying production infrastructure on bare-metal VPS when managed services weren’t an option.
I don’t just write endpoints. I design the data flow, the failure modes, and the recovery paths.
At Northeastern, I turned that operational intuition toward ML and distributed real-time systems. I built NLP classifiers for clinical urgency detection on messy, imbalanced EHR data. I architected a server-authoritative multiplayer VR environment where terrain state synchronizes across Meta Quest headsets at frame-level precision. I designed a cross-chain analytics platform that ingests and indexes 17,000+ decentralized applications through concurrent Redis-backed pipelines.
The thread across all of it: I build systems that handle complexity at the infrastructure layer so the product layer can be simple. Whether that means a BullMQ pipeline with dead-letter recovery, a Netcode authority model that prevents client-side state drift, or a vector similarity engine that returns semantically relevant results in under 50ms.