3 ms·
When I was writing firmware, I worked for a product development contractor; clients would hire us to prototype some piece of hardware they wanted to sell, then
by marssaxman 2y ago
When I was writing firmware, I worked for a product development contractor; clients would hire us to prototype some piece of hardware they wanted to sell, then we'd pass the design off to a manufacturer. I worked on medical devices, fitness trackers, even a little renewable energy stuff.
It was interesting work, and sometimes I miss it. There were immovable resource constraints which required careful thinking, and that felt like doing real engineering in a way that everyday software development usually doesn't. Debugging could be a significant challenge. Sometimes you can plug in a JTAG header and use a source-level debugger, or you can print to a serial port, but sometimes you have to get creative with spare I/O pins and and LEDs or an oscilloscope. I had opportunities to feel proud of my cleverness. One has to think carefully about time and power use and sleep modes and interrupts; your world is a state machine. It can be delightful to have complete control; often there's no operating system at all, except to whatever degree you end up writing one in the course of your project.
On the down side, the work came to feel repetitive. Here's a project, here's a dev board; bring up the devices, write the application, test it, ship it, repeat. Also, the firmware is kind of an afterthought compared to the mechanical & electrical engineering. You live on the hardware's timetable, which is slow and frustrating when you are used to just recompiling & running tests at the drop of a hat. Also slow and frustrating were the weird proprietary IDEs and generally old-fashioned engineering practices (though this was over a decade ago, and perhaps things have improved since).
If by "in demand" you mean "high-paying", I'm afraid not; there's a significant pay gap. You can make a comfortable living, but it's not a path to wealth like the tech bigcos offer.