General > General Technical Chat

From hardware to firmware development

(1/3) > >>

mrburnzie:
Hi!
I'm interested if there is anyone reading this that started with hardware and switched to firmware development (C/C++/Rust or something else).
What was the reason behind it?

I'm asking this, because I'm looking at the job market as a hardware engineer (with experience with firmware, almost parallel), and just can't look away from the fact that there is more opportunity when it comes to firmware, but also it is much more flexible, especially talking remote.

RoGeorge:
You know the saying, any new design needs 1 analog engineer, 10 digital engineers and 100 software engineers.  ;D

dobsonr741:
IMO an EE should have all the analog/RTL/software engineering flavors in education, and try out all in practice. I like firmware b/c it’s gets to what I want the fastest. Not to mention software pays the most, and you can move around much more easily than in hardware.

hans:
I first learned to code in PHP/JS to build websites with my brother, back when I was a kid. I dove into C#/Python during secondary school. Was fascinated by electronics, so completed bachelor in EE. Worked few years as electrical design engineer where I also wrote my own firmware and software in C#. In a small firm, those other skills were very appreciated. However, it also made me realize what I want in a job.

I love doing HW. But not so much as a day job. I like design and tinkering (which I still have whilst doing a PhD), but I don't like design for manufacturing. Production jigs. Quality assurance. EMC/CE certification. Explaining to my boss how I think I will fix those 'whoopsies' that appear in HW due to inexperience/ignorance. (OR worse, how much effort a recall is going to cost.) Ugh.

Maybe it's better in a bigger firm where you'll have test engineers, etc. But in a small firm, it was tiring. Not implying I made a ton of 'whoopsies' or whatever; but I found it mostly a grind. I found FW far more fun/suitable for me. Sure FW has arguably more invisible ways of going wrong (atleast EE is a hard discipline), there are also ways of doing it 'properly'. I feel FW suits my background profile much more, as someone that self-taught SW and did EE in education.

Now, from this point on in my reasoning, I may use "HW" and "FW" in perhaps some gray area. When I think of "HW": I think of precision/audio analog circuit design, RF circuits, power supplies, or high-speed digital board designs. I would not consider hooking up an ESP32 to some sensors as HW. Sure, it includes electronics and soldering. But 95% of the magic work is done in firmware. And if it needs to be low power; then I also think that's mostly software work nowadays. Well, unless you picked the wrong sensors/chips that don't support a good low power state ;-)

With that, I come to a 2nd problem I've with doing HW for the sake of HW design, which is the approachability from a single person with limited budgets. It becomes prohibitively expensive to work with the shiniest toys or chips. The shiniest FPGAs and MCUs will require high layer count (>4) boards with small pitch BGAs and high-speed memory buses. The last board I did was with a STM32H7 (still in QFP), dual HyperRAM memories and high-speed USB. Very pleased it all worked first-go. That project was not that expensive. The components were 40-50EUR/board and 4L PCBs are cheap nowadays.
But what's the next step? try a design with a 400+ball FPGA and some DDR3 buses? Sure; sounds fun.. until you get to costs and reworking options. A first run can cost hundreds of euros, hours of tinkering till you'll know for certain if the hardware is OK, and if its not, need to spend hundreds of euros again to fix it. It could be nice to put down as experience, but I don't see it being worth my time as of right now. So HW for the sake of HW has lost my interest a bit..

In FW, I don't feel these problems really exist. You can write the neatest code with splendid structure and speed/codesize for a 8-bit AVR or Cortex-m0 with 2KB of RAM, if you want. If you get into FPGAs, you get a taste of designing your own MCU and adding custom instructions or peripherals. Need to change something? It will be running on the target device in minutes. The devboards needed to get some decent mileage are not that expensive.

In my work/study, I'm doing all-digital radio (think SDR with some RF stuff)/DSP/ultra low power/embedded systems and I think the systems design aspects is what I like most. And with everything getting converted to digital ASAP (MCU or FPGA), I feel that's mostly FW work. In my PhD work I probably do 25% LaTeX, 70% code and 5% solder/CAD.

Berni:
It is a broad field out there. Being a HW engineer could go in a lot of directions. It could have to do with high speed analog, precision analog, digital logic, high speed digital stuff like computing, could be RF in various ways, perhaps power electronics, could be just PCB design of very advanced and dense boards, could even be someone who just integrated existing modules together into a system (more like an automation engineer)

But i general as said above, Typical projects these days need way more man hours of work on the software side, so they need to hire more programmers than engineers.

You however have a valuable combination of skillsets of knowing both. Most programmers have no clue what so ever about electronics, like not even what a pullup is. This can cause a lot of issues in low level firmware development where the software is very much intimately in touch with the hardware. At the same time the software is not as complicated in that area, so as long as you know your way about plain old C (not even C++) you will do great.

But the question really should be what YOU want to be doing as a job. If you don't think you would enjoy writing code for 8 hours per day, then stick to electronics. Sure you might have to cast a bit of a wider net when looking for jobs, but once you find an opening you will easily land the job as long as you have experience. Since experienced electronics engineers are very hard to find.

Navigation

[0] Message Index

[#] Next page

There was an error while thanking
Thanking...
Go to full version
Powered by SMFPacks Advanced Attachments Uploader Mod