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

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!
---

MashedBearings - Parametric Roller Bearing Generator for Rhino3D

A plugin for Rhino3D developed in C# which provides an easy, visual, and parametric method of generating a variety of types of roller bearings, with parameters provided to allow 3D printable results (variable clearance and support pillars).
---

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

A unique and effective g-code compression scheme 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.
---

Open Source Contributions

MeatPack - 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

Languages
• 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
• IDA
• 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)
Platforms
• Microsoft Windows
• Linux/UNIX (POSIX)
• Embedded (Linux/WinCE/Windows 10 IoT)
Libraries/APIs
Computing, Machine Learning, and Parallelism
	- CUDA
	- OpenCL
	- OpenMP
	- TensorFlow
	- Keras
	- Torch
	- CuBLAS/CuFFT/CuDNN/NPP
• Web, Data, and DB Frameworks
	- Flask
	- Django
	- Apache
	- PostgreSQL
	- SQLite
	- Plotly
	- Bokeh
• 3D Graphics
	- OpenGL
	- DirectX
	- Vulkan
	- Shader Language (GLSL/HLSL)
	- GLFW
	- VTK
	- SDL
	- GLEW
• GUI
	- Qt
	- GTK
	- Win32/MFC
	- TKinter
	- ImGui
	- Custom portable GUI (OpenGL-based)
• Input
	- Gainput
	- GLFW
	- 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
	- YAML/XML/JSON
	- CANopen/CANbus
• And many more
Toolchains/Tools
• GNU GCC
• MSVC/.NET
• CMake
• Git/Mercurial
• GDB/WinDBG/x64dbg
• Valgrind
• Bash
• Scons