Education
Bachelor of Science in Computer Science with Specialization in Machine Learning
University of Chicago
Relevant Course Work
Theory
Theory of Algorithms
Focuses on the design and analysis of efficient algorithms and data structures, covering techniques such as divide-and-conquer, dynamic programming, and greedy methods. Topics include graph algorithms, optimization, randomized algorithms, and computational complexity (P vs. NP).
Systems Programming (I & II)
A two-part sequence on systems programming in C, focusing on how computers execute programs and manage memory. Topics include pointers, data structures, machine-level programming, performance optimization, system I/O, and concurrency, with extensive practice using debugging and build tools like gdb, valgrind, and make.
Cryptography
Introduces the theory and design of modern cryptography, covering core concepts such as symmetric and asymmetric encryption, pseudorandomness, hashing, and digital signatures. Emphasizes formal security definitions and proofs, with occasional programming components to apply theoretical concepts.
Machine Learning
Machine Learning
Covers core concepts and algorithms in machine learning, including regression, classification, kernels, neural networks, clustering, and dimensionality reduction, with a focus on both practical methods and their statistical foundations. Topics include probabilistic models such as logistic regression, Gaussian mixtures, and GANs.
Neural Networks
Introduces fundamental concepts in deep learning and neural network design, including backpropagation, optimization, and regularization. Covers architectures such as CNNs, RNNs, and GANs, with applications in vision, language, and reinforcement learning.
Adversarial Machine Learning
Examines security and privacy challenges in machine learning, focusing on practical attacks (adversarial examples, poisoning, model extraction, membership inference) and defenses to improve robustness. Applies these concepts across classifiers and generative models (deep nets, LLMs, diffusion models) with hands-on study of attack methods and mitigation strategies.
Human-Computer Interaction
Designing Interaction
Introduces principles and practices of interaction design through critical reflection, ideation, and prototyping of interactive systems. Emphasizes user experience–centered approaches spanning HCI, industrial design, and communication design.
Inventing, Engineering and Understanding Interactive Devices
A physical computing class, dedicated to micro-controllers, sensors, actuators and fabrication techniques. The objective is that everyone creates their own, custom-made, functional I/O device.
Creative Machines and Innovative Instrumentation
Explores the intersection of creativity, technology, and design through hands-on projects involving sensors, actuators, and interactive systems. Emphasizes prototyping innovative instruments that merge art, engineering, and human interaction.
Experience
Embedded Software Intern
Rise Robotics Somerville, MA
Rise Robotics is developing beltdraulic actuator technology as a cleaner, more efficient alternative to traditional hydraulics — targeting heavy-duty construction and industrial equipment. As an embedded software engineering intern, I worked across the full stack of their data systems, from hardware assembly up to communication protocols and data logging. I also contributed hands-on to the development of a real deployed product: a beltdraulic liftgate installed on a Penske commercial truck.
A core part of my work involved integrating with their CANopen network — a higher-level protocol built on top of the CAN bus, widely used in industrial motion control. I configured nodes and object dictionaries to interface with encoders that track belt rotation, which the system uses to calculate precise linear cylinder position in real time. CAN's robustness and deterministic messaging made it well-suited for the high-load, noise-prone environments Rise Robotics operates in.
January 2026 - Present
Key contributions:
Configured CANopen nodes and objects to interface with cylinders
Built data logging pipelines to capture and store actuator performance data for diagnostics and analysis
Built the UI to view said data in a clean and easy to observe manner
Contributed to liftgate product development on a live Penske truck — running and routing wiring harnesses through the vehicle undercarriage, reassembling the battery box, soldering, wiring, and potting travel and column switches, and troubleshooting a new aluminium platform design
Assembled and soldered PCBs for embedded control hardware
Gained working knowledge of the CAN protocol stack — from raw frame structure up through the CANopen application layer
Haven
University of Chicago Weston Game Lab
This Metcalf internship will contribute to developing a substantive multi-linear game that uses both asynchronous and synchronous elements to enable first-year students at the University of Chicago to practice capacities linked to open discourse, free expression, and negotiation of difference.
I developed and implemented front-end elements and created various interactive puzzles in collaboration with game designers, using modern web technologies to enhance engagement and user experience. This Metcalf internship will contribute to developing a substantive multi-linear game that uses both asynchronous and synchronous elements to enable first-year students at the University of Chicago to practice capacities linked to open discourse, free expression, and negotiation of difference. I developed and implemented front-end elements and created various interactive puzzles in collaboration with game designers, using modern web technologies to enhance engagement and user experience.
June - August 2024
Website Development
Lewis & Clark College EarForest Project
EarForest is a site-specific 16-channel spatial audio installation at Lewis & Clark College, where visitors can select and play multi-channel audio compositions broadcast through speakers across an outdoor environment. I was brought on to maintain the existing Node.js/Express web system and develop new features for both the admin panel and public-facing player.
My contributions include building out the track editing interface — allowing admins to update artist metadata, descriptions, and visibility settings on existing uploads — as well as implementing volume control adjustments and an operational hours setting. I am currently developing a new filing system for improved audio asset management, which is in progress and not yet deployed.
Key technologies: Node.js, Express, Socket.io, JavaScript, HTML/CSS
January 2026 - Present
Projects
Designed and built a rubber-band–powered car featuring ball bearings, metal axles, and fully custom 3D-printed wheels, body, and propeller. Modeled all components in Fusion 360, assembled and tested for maximum distance.
Designed and programmed a pair of interactive smart glasses featuring motorized shades controlled through ultrasonic distance sensing, ambient light detection, and Bluetooth Low Energy (BLE) communication. Developed robust control logic using signal debouncing, hysteresis, and non-blocking timing to coordinate multiple asynchronous inputs. Integrated BLE-based remote operation with dynamic sensor prioritization and lockout timers for smooth, user-safe transitions between automatic and manual control modes. Collaborated on the full development cycle — from circuit design and servo integration to software calibration and real-time debugging — ensuring reliable performance in varied lighting and distance conditions.
Designed and built a self-driving maze robot from scratch using an Adafruit Feather ESP32, dual VL6180X time-of-flight sensors (front + left) for continuous wall-following, and a DRV8833 motor driver with 20 kHz PWM speed control. Implemented a left-hand-rule navigation stack that maintains forward motion (moving obstacle-avoidance pivots, proportional side-distance control, I²C multi-sensor address management via single XSHUT). All mechanical parts were 3D-modeled in Fusion 360, and all wiring/soldering was done by me. Firmware written in Arduino/ESP32 C++.
Developed an interactive system for real-time recognition of American Sign Language (ASL) alphabet letters using a custom-trained convolutional neural network (CNN) in PyTorch. The model was trained on the Sign Language MNIST dataset, achieving over 98% accuracy on many letters, and was optimized using data augmentation techniques including random rotation, translation, and contrast adjustments to improve generalization to live webcam input.
Integrated multiple technologies to create a complete real-time pipeline:
Used OpenCV for live video capture and frame processing.
Leveraged MediaPipe for real-time hand tracking and bounding box extraction.
Applied torchvision transforms to normalize hand images and ensure consistency with the training distribution.
Implemented inference smoothing by averaging predictions over a rolling time window to improve stability and user experience.
Designed a modular and extensible system for deployment on CPU-only devices without GPU dependencies.
The system successfully classifies static ASL letters and overlays predictions directly on the video feed with visual hand bounding boxes. Designed for accessibility, educational use, or as a baseline for future gesture-based communication tools.