I build robots and the embedded systems inside them. I hold two bachelor's degrees from the University of Colorado Boulder, in mechanical engineering and in electrical and computer engineering, and a master's degree from Johns Hopkins University in robotics and autonomous systems. That mix lets me work across the whole machine: the mechanism, the electronics, the firmware, and the simulation that proves it before anything is built.
I like systems that are portable, testable and documented well enough that someone else can pick them up.
HardFOC · Robots and simulation · Embedded Linux · Toolbox
HardFOC is the open-source organization I maintain for a hardware-based FOC (field-oriented control) motor driver board and the software around it. It has 40+ public repositories, more than twenty of them drivers, and most have their own documentation site.
| Start here | What it is |
|---|---|
hf-core · docs |
The shared platform layer: handlers, RTOS utilities, driver integration and CANopen, in C++20. |
hardfoc-vortex-v1 |
Firmware for the Vortex v1 controller board. |
hf-tmc9660-driver · docs |
Hardware-agnostic driver for the TMC9660 motor controller. A good example of the driver pattern. |
hf-tmc5160-driver · docs |
Hardware-agnostic driver for the TMC5160 stepper driver. |
hf-internal-interface-wrap · docs |
The ESP-IDF wrappers that keep drivers free of platform code. |
hf-general-ci-tools · docs |
Shared CI for the whole ecosystem. |
hf-espidf-ci-tools · docs |
CI for ESP-IDF projects with one or many applications, driven by a YAML file. |
All repositories are on the HardFOC organization page. Issues and discussions are welcome there.
I design robots to perform the eskista, an Ethiopian shoulder dance, and I build the tools that take them from CAD to a trained policy. This work is in development and the repositories are private, so this section shows how it fits together rather than the code.
| Project | Status | What it does |
|---|---|---|
| sw2sim | private, in development | A SOLIDWORKS add-in that keeps one canonical graph of links, frames and joints, and exports MuJoCo, URDF and USD without silently dropping parallel closures. |
| SimPrep Studio | private, in development | A browser tool, run locally, that makes a robot simulation-ready: carves bearing clearances, generates collision meshes, sets motors and joint limits, and runs training. |
| ESKISTA Studio | private, in development | A cross-platform desktop app that brings together robot visualization, motion capture, policy training and hardware control. |
| Robot assets | private | Versioned robot packages (EB1, EB2) that studios pin as a submodule, so a robot never changes under a consumer. |
Two problems drove the design of the first two tools:
embedded-linux-primer builds the whole software stack of an embedded Linux
board from source, one small board directory at a time, from the boot ROM to the root filesystem. It is public and aimed at
anyone who wants to understand what a distribution build tool does for them.
| Repository | What it is |
|---|---|
openballbot-rl |
Fork of salehiac/OpenBallBot-RL: a MuJoCo ballbot simulator with reinforcement-learning tools for uneven terrain. |
EyeTrackerEmbed |
Fork of JEOresearch/EyeTracker: a lightweight Python eye tracker. |
Languages: C and C++ (up to C++20), Python and Shell. Embedded: ESP-IDF and RTOS portability layers, CANopen, peripheral drivers, and embedded Linux built from source. Robotics: SOLIDWORKS, URDF and MJCF, MuJoCo, reinforcement-learning training, motion capture. Engineering practice: GitHub Actions with reusable workflows, static analysis and linting in CI, generated documentation sites, and design notes kept next to the code.
Most of my work lives in private repositories, so the public profile is a small slice of it.




