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 frequently. 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 deeply into the interesting language features. I expect this to change as I work more with ROS.
I can't share much of my 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
- C driver code for I2C and SPI peripherals
- 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 teleoperation 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.