E X P E R I E N C E

T E C H N I C A L  E X P E R I E N C E

Robotics Engineer | H3D, Inc.

As H3D's first and only full-time robotics software engineer, I developed real-time robotic systems and software for the next generation of hand-held imaging spectrometer systems. I was a primary developer for real-time SLAM on a handheld radiation mapping system and a navigation stack for radiation mapping system on a ground robot. I did extensive ROS and ROS2 development, integrated new sensors including depth cameras, IMUs, GPS, and LiDAR, and wrote system control architecture software on an NVIDIA Jetson. 

Research Assistant | UM Ford Center for Autonomous Vehicles

As a research assistant at the UM Ford Center for Autonomous Vehicles, I did extensive work with uncooled thermal cameras for autonomous vehicle perception. The main focus of my work was to advance its use for the SLAM (Simultaneous Localization and Mapping) task using state-of-the-art algorithms. Part of this entails restoring thermal images to a usable state as uncooled thermal cameras employ a rolling shutter and, thus, the resulting images require motion deblurring and restoration. I benchmarked machine learning algorithms for thermal image restoration using a newly collected dataset that encompasses all 6 degrees of motion (x-y-z and roll-pitch-yaw). On the SLAM side, I adapted a state-of-the-art direct SLAM algorithm to perform SLAM on thermal camera data that was collected on our custom sensor platform. I then did a preliminary qualitative evaluation to inform on the next steps to adapt SLAM algorithms for use with thermal cameras.

As a part of extrinsically calibrating sensors to collect data on our autonomous vehicle test platform, I did the initial work necessary for extrinsic LiDAR/GNSS calibration. This involved an extensive literature review of various calibration works, selecting a research method based on this review, and collecting data on our autonomous vehicle test platform using the recommended method. 

Lastly, I did an overlapping project between my ML class and FCAV in which I explored various methods for efficient data labeling using active learning for the object detection task using their newly released NSAVP dataset. This showed some promising results as a way forward for current work in object detection using this data and similar data.

Autonomy Engineering Intern | May Mobility

I worked at May Mobility over the summer of my master's degree and part-time during my final semester. Over the summer, I developed a complete proof-of-concept mapping system that leverages a large lake of prior driving logs to accumulate pedestrian and vehicle object tracks as probability distributions in the global reference frame. The distributions are overlaid on the ego's predetermined route map and these heatmaps would be provided to the multiple object tracker. I developed this proof-of-concept from scratch in Python and C using their prior driving logs and presented a strong case with promising results to the company leadership by the end of the summer in a presentation. This was an important development to provide the object tracker expectations of what could be in the environment at specific locations based on what it has seen in historical drives. During the fall, I made a focused effort to add important sets of perception-related driving scenarios for a major software release, including cross-traffic, low object, and pedestrian detection scenarios. Overall, I added ~50 scenarios to the test suite.

Software Engineer (C/Rust) | Disney Streaming

Before returning to UM for my master's, I was a full-time software engineer in the Native Client Platform (NCP) Core team, which develops a custom operating system interface in C that renders graphics and runs apps from the Disney Bundle (Disney+, ESPN+, Hulu, Star+) on high-end and low-end devices. It enables the NCP Client team to seamlessly perform UI/frontend changes without having to worry about the computing (timing, memory, etc) limitations of the device it runs on. You can read more about the overall Disney+ ADK effort on Medium here.

As an individual contributor to NCP Core's software, I developed a Rust-based CLI tool for our team that creates customized builds for supported devices, implemented a long-term solution for including our patches in large-scale external library upgrades (and did upgrades of various libraries), and performed regular release validation on devices. Additionally, I proposed a complete redesign of Core's sample applications by authoring an RFC document (with a proof-of-concept branch) and leading user story ticket generation. Towards the end of my time at Disney, I co-authored an RFC for enabling increased control of our Core functionalities given specific app state behavior. I also developed a crash reporting mechanism via Sentry for important program-related information.

Alongside initiatives, I also worked on smaller bug fixes and optimizations related to fixing certain graphics capabilities, memory management, input handling, and unit tests across all of the sprints.  

Outside of my code contributions, I authored setup guides for developers to deploy and run the Client (frontend) and Core apps on various low-end devices such as set-top boxes and Raspberry Pi, helped interview/evaluate candidates for mid-level & senior-level roles, onboarded two software engineers, and contributed to our company hackathon (where my team received second place in technical execution!).

Working on the Disney Bundle supplemented my research/startup-heavy experiences as it gave me an understanding of developing and supporting production software at a large scale. 

Software Engineering Intern | R2 Space, Inc.

I worked remotely on the Radar Image Processing team to optimize digital signal processing algorithms used to process SAR data. As an integrated team member, I took on and completed tasks in two-week sprints alongside other full-time engineers and interns. All of my work was done in Python through the PyCharm IDE. Outside of processing, I also gave a tech talk on parallel processing with GPUs and CPUs in Python, organized and led an interactive workshop on version control, and created an electrical block diagram for a small satellite's proposed power distribution system.

Embedded Electronics Intern | SkySpecs, Inc.

For my second internship, I worked for SkySpecs, Inc, an Ann Arbor startup that develops autonomous drones for wind turbine inspections. My work ranged from operational deployment tasks to hardware design. While in this role, I worked on both PCB design in EAGLE for two circuit boards and embedded programming on an Arduino for a pilot radio transmitter recording device. 

I continued prototyping and testing one of my R&D projects started over the summer into the school year in a part-time role, which was a circuit board to protect a solid-state drive from saltwater for offshore inspections and a black box device to track pilot inputs and transitions between autonomy and manual modes. I then stress-tested the protective solid-state drive board by writing Python scripts that would read and write the data transfer speed to a CSV over varying amounts of time in different environmental conditions. For electrical testing, I also created the initial design of a test board that could test every input on the SSD at high voltages using muxes and relays.


Undergraduate Researcher | Michigan eXploration Laboratory

My primary role in MXL was to assist in Electrical Power Systems (EPS) testing and deployment for various small satellite missions, including MARIO (Measurement of Actuator Response and Impedance on Orbit) and LITE (LED Initial Testing Experiment). Projects included authoring the battery cutoff board test document in LaTeX, writing tests in C++ to check undervoltage, overvoltage and shortcircuit for a battery pack, and preparing a 4S1P battery pack for a high altitude balloon mission.


Electrical Engineering Intern | LG Chem Michigan, Inc.

After my freshman year, I did my first internship at LG. My main projects included verifying a 400V battery pack's BMS buck/boost circuit. To verify the current rating and monitor the voltage ripple of the buck/boost circuit, I worked with electrical test equipment such as oscilloscopes, multimeters, and a DC power supply. I then analyzed this data in excel, graphed it and reported on it in a presentation. In addition to this project, I also devised a plan to test thousands of cooling fans and verified the cooling system for a 48V pack.

T E A C H I N G

Graduate Student Instructor | Introduction to Computers & Programming (ENGR 101)

I was a GSI for ENGR 101, Michigan Engineering's primary freshman programming course. I dedicated 20 hours a week to running two lab sections, office hours, organizing professional development for course staff, and cheat checking. The video to the left is a demonstration of my teaching (my GSI application video). I am also a first author on Piloting a Flexible Deadline Policy for a First-Year Computer Programming Course, which is published in the ASEE National Conference 2023. I presented this paper at the conference.

Instructional Aide | Introductory Programming & Data Structures (EECS 280)

My involvement on staff included leading a coaching group, running a weekly two-hour lab, weekly office hours, grading midterm and final exams on Gradescope, and working on the cheat checking team. I also served as the primary Cheat-Checking Lead for Fall 2020.