Skip to main content

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.