About Me

I am a senior software engineer located in the DC Metropolitan area with 8 years of professional experience creating and designing software powering medical devices, robotics, and other embedded applications, and many more years of personal experience developing a wide array of software projects. I have additional professional experience in parametric and algorithmic design, 2D/3D product and industrial design, CAD/CAM, multi-axis CNC programming and operations, rapid prototyping, and general 3D modeling.
I have experience in the pre-clinical and clinical design process, medical imaging, computer vision, 3D vision and reconstruction, reverse engineering, machine learning, and kinematic modeling and control.
I am inspired by and extensively involved with 3D printing, designing projects in CAD, developing personal software projects, reading, writing, playing music, and gardening

Latest Personal Projects

RSAye - Automatic MFA Decoder

Automatic MFA Decoder for RSA Tokens. Tired of trying to read and enter those 6-digits in time? Well now you don't have to! OpenCV, python, and an ESP32-CAM module can do it for you!

OpenSesame - Curtain Automation with Google Integration

OpenSesame is comprised of a physical product design, an electronics design, and a software package, all rolled together to allow easy and automatic opening and closing of my home’s curtains.

MeatPack - Real-time G-Code Compression for 3D Printing

A unique and effective firmware-level g-code compression method capable of doubling the effective data throughput, byte-for-byte. Being open source, it has been adopted into Marlin and is set to be adopted into the Prusa MK3 firmware in the next major release.

RHEG - Rigid Harmonic Epicyclic Gearing

This gearing system design provides an incredibly high and incredibly reliable gear reduction in a very small package. It also uses one of the cheapest and common stepper motors available. And it's entirely 3D printable!

Open Source Contributions

SegoDec - Fast and Efficient Seven-Segment OCRMeatPack - Real-time G-Code Compression for 3D PrintingMeatPack-compatible Prusa MK3/3S Firmware
• PrusaSlicer
• TensorFlow
• WDL-ol
• asciimatics
• Gainput
• Mido
• ImGui
• libSerialPort
• Many smaller projects

Professional Skills

• C/C++
• Embedded C 
• C#/.NET
• Java
• Javascript
• Python
• Grasshopper 3D
• X86/X86_64 Assembly
• ARM Assembly
Software & Frameworks
• Microsoft Visual Studio
• Eclipse
• Netbrains Suite (IntelliJ, CLion, etc)
• STM32 Software Suite (STM32Cube)
• NVIDIA Nsight
• x64dbg & Windbg
• Ghidra
• Cypress FX3 SDK
• Rhinoceros 3D
• Grasshopper 3D
• ZBrush
• Blender
• Adobe Products (Photoshop, Premiere, Illustrator, etc)
• Rapid Prototyping Tools (CAM generators, Cura/PrusaSlicer, Netfabb, etc)
• Audio/DAWs (Audacity, Bitwig Studio, Ableton Live, REAPER, etc)
• Microsoft Windows
• Linux/UNIX (POSIX)
• Embedded (Linux/WinCE/Windows 10 IoT)
Computing, Machine Learning, and Parallelism
	- OpenCL
	- OpenMP
	- TensorFlow
	- Keras
	- Torch
• Web, Data, and DB Frameworks
	- Flask
	- Django
	- Apache
	- PostgreSQL
	- SQLite
	- Plotly
	- Bokeh
• 3D Graphics
	- OpenGL
	- DirectX
	- Vulkan
	- Shader Language (GLSL/HLSL)
	- VTK
	- SDL
	- Qt
	- GTK
	- Win32/MFC
	- TKinter
	- ImGui
	- Custom portable GUI (OpenGL-based)
• Input
	- Gainput
	- Native
• Computer Vision & Robotics
	- OpenCV
	- ROS
	- ViSP
	- TracIK
	- Orocos/KDL
	- PCL
	- KinectFusion
	- libSGM
	- ElasticFusion
	- Many SFM/MVS/Visual Odometry libraries
• Networking and Utility
	- Boost
	- Protocol Buffers
	- Flat Buffers
	- Cereal
	- ZeroMQ
	- CANopen/CANbus
• And many more
• CMake
• Git/Mercurial
• GDB/WinDBG/x64dbg
• Valgrind
• Bash
• Scons