I spend a lot of my professional time these days writing code. I'd consider myself proficient in Python and C, and work with both daily. I'm starting to work with ROS a lot more, and I'm developing a decent familiarity. I used to spend a lot of time with Matlab, but I've moved completely over to a data analysis and visualization workflow based on Numpy, Matplotlib, and Jupyter notebooks. I mainly write robot control firmware and other embedded software in C. I've got some basic familiarity with C++ but haven't delved that deeply into anything interesting so far. I expect this to change as I work more with ROS.
I'm not at liberty to share my most interesting code, since it's proprietary. But check out the side menu for things that I've worked on in academic settings or in my spare time.
Some software and firmware projects I've executed include:
- Python libraries for automated parametric Abaqus FEA model builds, result postprocessing, and simulation metadata management
- Python experimental control and data acquisition for static thrust testing of underwater thrusters
- Neural-inspired motion control firmware in C for biomorphic underwater robots
- Driver code to use peripherals like IMU and depth sensors with the Cypress PSoC platform
- ROS computer vision motion tracking for robot performance testing and position estimation
- Custom ROS nodes for logging LabJack data measurements and robot control data along with motion tracking data
- A simple multithreaded Python GUI and microcontroller firmware for network control of an 80kW power supply
- Embedded MAVLink communications to QGroundControl for robot remote control and telemetry.
- Reproducible data analysis and reporting workflows using Jupyter Notebooks
- Magnetic field analysis and visualization in Matlab.
- A quick and ugly static site generator in Python for maintaining this website.