Jeff McBride
Background

I have a B.S. and M.S. in electrical engineering from Virginia Commonwealth University. In school, I built robots for competitions and spent a few years building flight control systems for autonomous unmanned aerial vehicles -- some with jet engines!
- I spent 6 years building stabilized camera systems for UAVs and more at Aerovironment.
- I helped start a company to develop sensors for agricultural aerial survey, and along the way got to dive into the world of cloud computing. For several years I spent much of my development time there building SaaS products on AWS, along with the more typical hardware development.
- I spent 3 years working with researchers at the UW Molecular Information Systems Lab on using biological molecules for data storage and computing. While there I developed digital microfluidic systems, trained tensorflow models, built electrophoretic DNA dispensers, and generally got a crash course on molecular biology by hanging around people way smarter than me.
- Most recently, I am offering freelance product development services, helping companies advance their designs quickly. Projects include building prototypes for underwater acoustic sensors, and developing rocket flight control software in Rust.
Skills / Experience
I'm a generalist, with a broad range of hardware, software and FPGA design experience. I have managed multi-displinary teams and love taking on interesting system design problems.
Software
- My go-to embedded systems programming languages these days is Rust. The ecosystem is quickly growing, and it provides a safety and feature set improvement over C++ while not compromising on run-time performance, so it is great for safety-critical embedded targets, and any applications where performance is important.
- I write a lot of C/C++ because it's the traditional choice for embedded systems, when you need performance, or if you need a linux kernel driver for your custom FPGA peripheral.
- Python is my goto for quick prototyping, image processnig, or number crunching and data analysis: it's hard to beat the language with Jupyter, numpy, pandas, scipy, scikit, matplotlib...the list goes on.
- I end up writing a lot of Javascript because running in the browser and having a GUI is useful, and javascript is a powerful way to do that. I prefer to use React when building javascript front-ends.
- I've done some machine learning here and there, using Matlab ages ago and Tensorflow more recently.
Hardware
- I love FPGAs. I've built products with Cyclone Vs, Zynqs, and the tiny Igloo
- I've built several cameras from the CMOS chips up.
- I've been through several design iterations on small inertial stabilization systems (gimbals); enough to have learned a lot about what works well and what doesn't.
- I've developed a number of motor control projects, having worked with a variety of motor types, position encoders, and kinematics problems.
- I've built various radiometry based products, and the fixtures to support them like apparatus for detector calibration, determining materials for diffusers, lenses, minimizing stray light, etc.
- I've worked on electrowetting-on-dielectric (EWOD)/digital microfluidics devices for small-volume liquid handling
- I am proficient in PCB design, having used both Altium Designer and KiCad extensively.
- I'm moderatly proficient in mechanical CAD programs -- Fusion 360 and Solidworks.