3 Essential Skills To Survive Embedded Career
Bob is an embedded software engineer, he thinks that writing well-crafted software is all he needs, so he learns and practices:
Clean and beautiful software architecture
Best design patterns and each use case
Algorithms for many problems
While his software is beautiful and readable, he is also:
Struggling to bring up a new development board his boss asked 2 weeks ago
Confused why the device he is working on cannot last long, even with a 10000mAh battery
Angry when the sensor is outputting messy data that breaks his algorithm
Bob is a good and disciplined engineer, but his boss needs to hire Arjun, another embedded engineer to back him up.
Arjun believes that embedded software β computer software. Because embedded systems are a combination of hardware and software, he thinks that you need to understand electronics and software engineering to make things happen, fast (heβs right, you know).
But because he has weak software skills, the firmware he wrote is hard to maintain and unreadable. Arjun needs to consult a lot to Bob about modular firmware design, and coding best practices.
Yeah, I solved the dev board and the battery issue. The messy output from sensor is because of unstable Vref and incorrect instrumentation op-amp choice. Bob sucks, I love working with him though.
Arjun
Arjunβs code is a mess. Weβre best friends now.
Bob
Now, while the story (and the quotes above) is 100% fabricated, I have seen and heard many similar stories: engineers struggle to move forward because of lack of basic understanding of electronics and software design.
To successfully work on Embedded Systems, you actually need 3 main skills:
π Computer Science
π Electrical Engineering
π A third field depending on your interest
Take a look at this interesting diagram:
Β
We need CS because there are programming aspects in Embedded Systems. We have to create robust, and efficient code for the device. Bob is the best example of this.
We need EE because we will be interfacing with electronic devices like sensors and actuators (thanks Arjun for solving the op-amp problem!).
Understanding the electronics under the hoods will make your life as an embedded engineer easy.
Lastly, we need a third field. It means that if we work on embedded devices on vehicles then we need to learn and understand automotive: its standards, the rules, the principles in auto.
The same with other fields.
I used to work in mining and marine, so I need to learn and understand how mining processes are done, how harsh the environment is, etc.
If we become just either Bob or Arjun, we are crippled.
If we become both Bob and Arjun, we are unstoppable.
Whenever you're ready, there are 2 ways I can help you:
1. FREE Firmware Development Email Course. A free 7-Day Email Course to teach you the foundational concepts you should know to start firmware development. Full of practical tips and industrial insights.
2. FREE Embedded Freelancing Email Course. Another free Email Course to help you grasp the basics of embedded freelancing and make more money as an embedded engineer.