top | item 34196163

(no title)

scottwick | 3 years ago

I feel the same way. I've been doing web-related stuff for about 13 years now and have lost much of my interest. Started dabbling with electronics and embedded systems about 5 years ago and it completely re-piqued my interest in writing software. I'm still doing backendy web things for money but would love to move away from that. Any recommendations for moving into the embedded field professionally? What sort of companies are you working for?

discuss

order

fest|3 years ago

Well, I don't think there is an easy way- I just walked away from the startup and lived on ramen for a couple of years, doing odd-ball contracts just to afford rent. During that time I learned a lot, essentially by telling prospective customers: "I do not have direct experience in this, but I have a pretty good idea on the involved steps. I am willing to do this as learning experience at a reduced rate". Many did agree, some projects turned out better than others- but eventually I did acquire enough experience to pass interviews at "real" companies.

Past two companies hired me specifically for UAV projects, so my professional experience has been in this field- however, it is so wide, that you can easily branch out:

  * design one-off test hardware for various bench/field tests where an off the shelf solution doesn't fit (custom thrust stand, spring constant measurement jig to determine properties of vibration isolation solutions, simple blackbody for QA to determine if the LWIR payload meets specifications)

  * like physics/control systems? Lot of work on tuning PID controllers, implementing simulators for pure SWEs to not crash your expensive prototypes

  * hmm, it looks like we have excessive vibrations on the frame- whip up a small battery powered, WiFi enabled high-frequency accelerometer logger to dig deeper into it.

pedrosorio|3 years ago

How does one get contracting opportunities to deliver projects before being able to pass interviews to get a full time job? Where would on find these opportunities today?

I always assumed it was the other way around (experienced full time engineer becomes a specialized contractor).

m-ee|3 years ago

Think hard about it, personally I think everything has a shelf life. You might be more engaged for 5 years or so then back at square one within a less profitable industry.

I went straight to embedded after grad school. I enjoy it well enough, more than I think I'd enjoy pure software/web stuff. But at the end of the day it's a job not a passion. If I won the lottery I think I'd be perfectly happy never touching it again. I wonder if I should have gone the software route and taken a job I might even actively dislike for 1.5-2x the the money and remote work which would put more time and money into the rest of my life.

If you still want to go down that path look into embedded Linux for IOT type applications. My product has both microcontroller firmware and a Linux SBC. Hiring for the Linux side is difficult, currently we farm it out to a good but not great team overseas. If you have solid Linux skills, a good handle on build systems, and the ability to bring up modern software best practices in testing and deployment from scratch (most embedded shops are way behind the curve here) you'll be seen as a rockstar. Can probably command a higher salary than the average firmware dev since you're "software" but still a hit compared to FAANG/Unicorn web programming.

mafuyu|3 years ago

Ironically, I've been feeling the opposite lately- my day job is embedded, and I was reminiscing about my childhood days when I was learning to code with Scheme and Processing. There's something beautiful about a single laptop being a fully enclosed ecosystem to just play around with pure code, and I basically haven't coded for fun in my free time in a few years. I was even considering trying to learn some webdev to make my own personal site. :P

I still love embedded, and I think it's great for all the reasons mentioned in the thread. As for your question, firmware is quite broad, and there are lots of different routes people take to break into it as a career. At its core, it's a lot of writing systems code, or feature code that runs on constrained systems. Something like CS undergrad systems programming + OS or equivalent should be enough.

After that, I would make sure you have decent breadth: knowing how to read datasheets, bringing up parts, writing a linker script, using peripherals, grokking some standard protocols like I2C/SPI/SDIO, basic circuits knowledge, basic comparch knowledge, etc. The nice part of all this stuff is that you can totally get there with just hobby projects and Adafruit boards. If you find yourself using the batteries included in the Arduino or Adafruit libraries, maybe push yourself to write more of it from scratch. eg. write an SDIO driver to read from an SD card and parse a FAT filesystem.

People with solid software engineering backgrounds are pretty valuable in embedded, so I'd emphasize that as well. Knowing that git exists, unit tests, API design, CI tooling, etc. If you're a Linux kernel hacker, embedded linux is also kind of its own separate world, so that might be a good direction if you have experience there.

lelanthran|3 years ago

I moved out of embedded.

It pays very little, there's very few opportunities to move around, you need to have relatively good practical electrical/electronic skills and the technical skills you do get don't contribute at all if you're trying to bootstrap side-projects.

fest|3 years ago

Yes, that probably depends on the relative availabilty/demand in your location. I personally __probably__ would have earned a bit more overall if I had done web stuff, but at least in Eastern Europe, experienced embedded people can get similar comp than they would at web/mobile/enterprise jobs.

m-ee|3 years ago

Congrats on moving out. I'd say the need for electrical skills depends a lot on what you're doing and the state of your company. $BIGTECH with large EE team or embedded linux? Probably ok if you can read a schematic and nothing else. Microcontroller firmware at a small/medium company? Better bring it then. Hardware issues can show up in strange ways. I had some firmware hardfaults that seemed to be stack corruption, root cause was a completely screwed up analog circuit.

mkoubaa|3 years ago

Alternatively you can build software tools for electrical engineers and the like. It's usually desktop applications but backendy web dev skills do translate