| tl;dr: I'm an embedded systems engineer who programs on bare-metal micros. I feel my domain will be obsolete in coming decades and want to pivot to either embedded linux development, pentesting/reversing, or robotics. The question is, which one? I have some interest in each of these areas, and given enough time and effort, I believe I could work my way up to an acceptable level of ability. However, I don't really have a good pulse on how these industries are going and what it's actually like to work in one of these fields. Here are my preliminary thoughts about each: Embedded linux engineer:
+field doesn't change quickly, is similar to my current embedded work, which I do enjoy
-might get boring; kernel debugging sounds somewhat stressful Pentester/reverse engineering:
+very exciting work, lots of interesting tools and sometimes assembly (I love looking at ARM disassembly and poking registers!)
-minimum bar might be exceedingly high, making it hard to break into the field
-may not be very stable as a career choice Robotics engineer:
+many interesting applications of machine learning and state-of-the-art techniques
-requires a hardcore math background to understand things at a deep level (I've only studied up to intro-level linear algebra)
-field changes rapidly every single year (hello CNNs) Do you work in one of these fields? What is work like for you day-to-day? Where do you see your industry going, and do you believe you've made a good long-term career choice? |
You don't need to kernel hack all day. I would say most of the major SoCs I work with already have a stable tree and anything that's not super-exotic already has a driver or can be adapted from another. I haven't seen the need to fine-tune kernel performance to any serious degree.
One area that companies always need is experienced bootloader and BSP work. That lets you tinker at the register level as well as understand the build process. The demand for secure bootloaders/HAB and secure field upgrades over IoT will definitely be increasing as time goes on, and that can be very specialized work based on the SoC and platform. That also kind of ticks the security aspect of the role...maybe look into that?