Experience
Software Engineer · Robotics & AI Institute
Cambridge, MA · 2024-02-12 – present
- Drove requirements gathering and architecture decisions of multiple software projects, including kinematics & dynamics solvers (C++ and Python), inverse-dynamics impedance controllers (C++), motor controller drivers (C++), and motion planning software suites (C++ and Python).
- Independently designed and developed real-time control laws abstractions using C++ concepts and templates.
- Developed lock-free data structures (C++) and accompanying primitives for IPC (ROS, DDS) in real-time control threads.
- Led the evaluation of third-party software and hardware products, informing $500k in purchasing decisions.
- Identified and resolved process friction across four research teams, resulting in substantially more reliable infrastructure and a new senior lab manager hire.
- Represented the full Software Engineering team to senior leadership in multiple company-wide meetings.
- Created and co-led bi-weekly Research Software Reading Group to share knowledge across the institute.
Integrated GN&C Analyst · NASA Johnson Space Center
Houston, Texas · 2021-07-01 – 2024-01-31
- Supported Orion's Launch Abort System GN&C development, analysis, and verification as full-time employee.
- Integrated flexible structure model with linear and nonlinear simulation frameworks (MATLAB, C++).
- Conducted frequent dynamical studies through large-scale monte-carlo simulations; authored 150 pages of technical reports in 2022.
- Used linear analysis to analyze vehicle performance, verify stability margins; validated linear models.
- Served as backup regression data approver for simulated Orion Launch Abort System performance.
- Led development for polarity tests; created novel 6DOF kinematics simulation (Julia, Python); represented Orion GN&C at multiple lab tests in three states.
- Developed LaTeX packages and classes to improve technical writing workflows.
Graduate Research Assistant · Space Systems Laboratory
College Park, Maryland · 2019-08-01 – 2021-05-31
- Led core robot software development (C++, Orocos, ROS, CAN) as Graduate Assistant under Dr. Dave Akin.
- Developed novel Julia package to generate C++ codes for kinematics solvers; implemented and merged required changes to Symbolics.jl.
- Achieved substantially improved intermediate Jacobian performance over Orocos iterative solvers; implemented improved inverse-kinematics algorithm.
- Created C++ interfaces (templates) and implementations for control, including force/torque control.
- Maintained operator GUI (Python); served as certified diver for Neutral Buoyancy Research Facility maintenance.
Education
Master of Science in Aerospace Engineering · University of Maryland, College Park
College Park, Maryland
- Research assistant under Dr. Akin; space robotics (manipulator) software lead and primary robot operator.
- Halo orbit & invariant-manifold research project with Instructor Barbee; now open-source as GeneralAstrodynamics.jl.
- Research emphasis in space robotics systems, prioritized dynamics & controls in coursework and performant solver implementations (C/C++, Julia) in research.
Bachelor of Science in Electrical Engineering · University of Maryland, College Park
College Park, Maryland
- Undergraduate Research Assistant under Dr. Akin at SSL; software lead during third year.
- Implemented inertial and viscous friction compensation for SSL's MGA Exoskeleton (Galil, UART).
Internships
Cooperative Intern · NASA Johnson Space Center
Houston, Texas · 2017-01-01 – 2020-12-31
- Cooperative internships across avionics, flight operations, and flight dynamics groups.
- Cumulative 2 years of full-time work, spread across 4 years undergraduate and graduate study.
Undergraduate Research Assistant · Space Systems Laboratory
College Park, Maryland · 2017-01-01 – 2019-08-01
- ROS/Orocos software lead in summer after third undergraduate year, under supervision of Dr. Akin.
- Implemented inertial and viscous friction compensation for SSL's MGA Exoskeleton (Galil, UART).
Electrical Engineering Intern · Harris Corporation
Bowie, Maryland · 2016-05-01 – 2016-08-31
- Implemented rain attenuation ITU Propagation Model components; MATLAB functions written to implement model calculations, C\# used to gather terrain data.
- Developed VBA workflows for automatic data processing procedures.
Data Annotation Intern · SRI International
Princeton, New Jersey · 2015-05-01 – 2015-12-31
- Annotated images and videos for deep learning research applications.
- Designed LED Array and circuit layouts for gaze tracking project using Eagle CAD.
Projects
Personal
- A collection of Git extensions in Rust that collectively provide local-first forge infrastructure.
- Recently released git-vendor: an alternative to Git submodules and subtrees with in-source content.
- Currently developing forge: local first issues, comments, code reviews, and releases, all in Git's object database.
- Currently developing git-kiln and git-hearth: reference implementations for a cross-language build system and container alternative that leverages Git's object store for replicable and verifiable builds and environments.
Personal
- Experimental wrappers (with safe abstractions) around Metal API bindings in Rust.
JuliaAstro
- Metapackage for three subpackages; provides general calculations, visualizations, halo orbit solvers, and invariant manifold solvers; integrated with the SciML Julia ecosystem.
- Presented at JuliaCon 2021: Going to Jupiter with Julia.
JuliaAstro
- Metapackage for four subpackages; provides utilities for fetching and parsing ephemeris data from Horizons and JPL's publicly available Generic Kernels.
- Related paper published in the Journal of Open Source Software.
Personal
- Provides select scalar potential field equations commonly used in galactic dynamics research; integrated with the SciML Julia ecosystem.
- Selected potentials are ported from popular galactic dynamics Python packages gala and galpy.
Personal
- Provides approximate polynomial model for longitudinal flight dynamics of a passenger plane.
- Model is integrated with the SciML Julia ecosystem.
Personal
- Integrates Documenter.jl syntax with Quarto for automatic package documentation.
Personal
- Extends rich (Python) with callout or admonition blocks.
Personal
- Provides an `__export__` key for namespace hygiene in Python.
Personal
- Allows for local or block scoping in Python through the `with` keyword.
Publications
EphemerisSources.jl: Idiomatic Ephemeris Sourcing and Parsing in Julia
Journal of Open Source Software · 2024-10-10
- Paper presents multiple software packages which ease solar system ephemeris fetching, caching, and interpolation.
Advancing The Robotics Software Development Experience
ArXiv · 2024-06-06
- Described software performance improvements achieved through writing core solver algorithms in Julia.
- Presented poster at International Conference on Robotics and Automation (ICRA) in 2024.
Presentations
JuliaCon 2021 · 2021-07-30
- Presented a Julia package I developed (`GeneralAstrodynamics.jl`) which provides astrodynamics calculations and modeling tools for researchers.
Skills
Programming Languages
- Experienced: C++, Rust, Python, Julia, MATLAB
Programming Languages
- Proficient: C, C\#
Tools
- Experienced: Git, GitHub Actions, Docker, Dev Containers, CMAKE, Bazel, Typst
Tools
- Familiar: GDB, Eagle CAD
Frameworks
- Experienced: ROS, CAN
Frameworks
- Familiar: Metal