From Software Engineer to Embedded software engineer
Posted by Cutting-Chaii@reddit | ExperiencedDevs | View on Reddit | 11 comments
Hi folks,
I’m a 2024 grad from Computer Science and working as a software engineer.
I want to switch my carrier to embedded software engineer.
Please guide me in terms of how should i prepare for the interview as well as how to convince to HR and all to pass my CV as my experience is in software developer.
PS: I am doing some project to enhance my resume.
Please give your advice/guidance.
juan_furia@reddit
You’re not by any chace in Spain? I have a friend who’s hiring
Cutting-Chaii@reddit (OP)
Hey, unfortunately I’m not but I’m open for overseas opportunities
ContraryConman@reddit
I was a software engineer doing embedded Linux and regular C++ microservices that recently switched to a role that does embedded Linux, and bare metal/RTOS. Embedded systems is a pretty wide field.
Any job posting that says "embedded Linux" on it may be easier to get into from a regular SWE role because it's mostly similar to regular Linux programming, except you use mostly C or C++, you're interfacing with or even writing kernel drivers for special peripherals, and your code has to be memory and space conscious.
Anything that says "bare metal" or "RTOS" on it, you can maybe get into, but you'll have to study. For these roles, it's really not enough to just know C or C++. In these interviews, they are liable to ask you about DMA, I2C vs SPI vs UART, cachable and non cachable memory, intricacies in FreeRTOS and when you'd use queues, semaphores, event groups, and mutexes, and when you'd use each, your experience with interrupts, your experience with using fault registers to debug firmware, and more. Truthfully, I think a lot of this is stuff you could learn on the job. However, in my experience, interviewers for these roles tend to view whatever they are asking you as foundational low level knowledge. If you can't answer any one of their questions, they won't pass you, even for entry level roles.
If you're anything like me, you'll want to steer clear from roles that say anything about FPGAs, Verilog or HDL, oscilloscopes, antenna design, circuit design, whatever. These are mostly roles for electrical engineers and computer engineers who happen to know a little C. Nothing is impossible, but imo unless you have that background, it will be next to impossible to cram and fake that amount of knowledge. You'll need to buy actual textbooks in these things to be competitive for these postings.
I would largely focus on being fluent enough in C and C++ to do a coding interview, and then pick a microcontroller to do a serious project with. I've been having luck with the STM32 Blue Pill running FreeRTOS. But any combination of common microcontroller platforms (AtTiny/AtMega, ESP32, STM32, Raspberry Pi Pico) with bare metal or an RTOS (FreeRTOS, Zephyr). Just don't do micro python and stay away from the Arduino IDE/environment. They won't teach you the things you need for interviews. This will prepare you for the embedded Linux type role or the bare metal/RTOS type role
ExperiencedDevs-ModTeam@reddit
Rule 1: Do not participate unless experienced
If you have less than 3 years of experience as a developer, do not make a post, nor participate in comments threads except for the weekly “Ask Experienced Devs” auto-thread.
abrahamguo@reddit
Well, have you started learning about embedded systems?
Cutting-Chaii@reddit (OP)
Yes I have a good knowledge of C/C++
Blrfl@reddit
Embedded systems I is more than just things you do in a language that run in a box with a computer inside. There are entire subgenres of software engineering that involve things like safety and meeting hard real-time requirements.
steve_333@reddit
Those are two different languages. If you list them that way then people will know you are a novice.
frustrated_dev@reddit
I'd say with From software, they make very good games
PippinOfAstora@reddit
yeah, this post got me too lmao
blacklig@reddit
1) Find an embedded software job advert
2) Apply
You convince HR to accept your application to that role by having a CV that passes their screening checks for that role