this post was submitted on 15 Jul 2026
23 points (100.0% liked)

Programming

27716 readers
639 users here now

Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!

Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.

Hope you enjoy the instance!

Rules

Rules

  • Follow the programming.dev instance rules
  • Keep content related to programming in some way
  • If you're posting long videos try to add in some form of tldr for those who don't want to watch videos

Wormhole

Follow the wormhole through a path of communities !webdev@programming.dev



founded 3 years ago
MODERATORS
 

Hey, not sure where to post this but I'll give it a try.

I've changed jobs many times due to the economics of the construction sector in Sweden going to shit. So now I'm all but ready to change my career.

Would it be wise to get a 2 yr degree and start over as an embedded dev? Other programming jobs have been scarce and I wonder if that applies even for embedded.

Thanks :)

you are viewing a single comment's thread
view the rest of the comments
[–] litchralee@sh.itjust.works 20 points 18 hours ago* (last edited 18 hours ago) (2 children)

I'm an embedded software engineer, and IMO embedded software has the benefit and curse of being not-very-sexy, in comparison to web developers or database engineers or backend engineers. That is to say, it's really easy for front-end engineers to describe their work, because it'll be something that people have seen (eg a website, or a service like Netflix). And even for backend engineers, they can analogize to fields that are well-known, such as administration or utilities (ie everything goes to poo if the sewers fail).

But embedded engineering is a tough one to explain, and that also means prospective employers might not even know that they need an embedded engineer for their Whizz Bang 3000. It's not at all intuitive to most folks that there's a separate set of skills necessary to program a screen-less, keyboard-less, network-less tiny CPU that might not even run an OS.

On the flip side, it means that the job is fairly specialized and thus valuable. Most software engineers could probably figure out how to program a microcontroller using C, but the most talented embedded engineers can achieve the same in the smallest memory footprint, thus saving hardware costs. To shave off $1 off the cost of a product that will sell hundreds of thousands, that's something that companies will pay for.

Embedded is diametrically opposite of application development: basically everything is under constraints (eg RAM, CPU time, I/O, interfaces) and we just have to deal with it. At its core, the occupation seeks to do the most number of things with the fewest resources. Not everyone has to skills to optimize this hard, to strip down software to only its abject requirements.

I can't speak as to what any particular job markets looks like right now for embedded engineers. But given that the need for embedded software does not ramp up during hype cycles, I think it tends to be a fairly stable occupation. The trick is that it's not a huge market everywhere, so moving for work might be necessary.

TL;DR: embedded software is a small but stable occupation, IMO.

[–] Valmond@lemmy.dbzer0.com 3 points 15 hours ago (1 children)

As a senior c/c++ expert that has dabbled with the small cpus (8266, z80, nintendo, atmega, esp32 ...) how long time would it take for me to up my skills in an embedded job?

There are loads of them (embedded jobs) at the moment so I'm wondering.

[–] litchralee@sh.itjust.works 4 points 13 hours ago* (last edited 13 hours ago)

I would say that the crucial pillars of embedded work are: mastery of C, computer architecture, and data transfer. I say this because most embedded challenges can be framed in (and often are written in) the C language. The same problem-solving approach for C is very similar to solving problems in a microcontroller. I put specific focus on pointer arithmetic and alignment, because although higher level languages take care of these things automatically, it has to be handled eventually at the lower levels, usually by the embedded engineer.

For everything that isn't C, the next set of challenges are in integration: rarely does a microcontroller run on its own. It might coexist with a host computer, have its own serial interfaces or other peripherals, access memories or sensors through complex buses, and some even have a quantity of DDR (with all its required supports). I don't think it's absolutely necessary to enter the field knowing the ins-and-outs of ARM's AXI bus or how PCI/PCIe transactions propagate through a tree. But knowing the inspirations for commonplace things like Virtual Memory, IOMMU, DMAs, and memory bus width, those are foundational.

Finally, there's always data transfer. Some data here needs to go over there. This can include actual networking protocols (eg TCP/IP, WiFi, ZigBee) but can also be point to point (I2C, RS232). This is probably the part where people entering the field have to be generalists: there are just so many different ways to transfer data that it's basically impossible to study them all in advance. Instead, some things are common to all transfers: a specification of the start and end of the payload, why headers or sync patterns are used, error correction, medium arbitration, reliability guarantees (if any), and API considerations (eg conformity to BSD sockets).

To be abundantly clear, embedded is very hardware oriented. In my time, I've seen a lot of Electrical Engineers and even Mechanical Engineers successfully make the leap over to embedded software, because they already have the ability to efficiently absorb knowledge from data sheets and specification documents, and will work within the absolute limits given. If there is the aptitude to dive very deep into the details, to find truth where everyone else sees "magic", then embedded will not be too difficult.

[–] djsiete@sh.itjust.works 1 points 17 hours ago (1 children)

I see. These reasons are particularly why I've applied for embedded, as that was my guess. I've tinkered enough with Linux to get an appetite for it (I know it's different, but I'm fairly confident that I understand why embedded is different).

Reading this is comforting -- it feels like I wouldn't need to worry about a dip in the market in the case I to through with this degree.