Karen Field, on Embedded.com, had an interesting article a few weeks back. In“10 Skills Embedded Engineers Need Now”, she asked a number of embedded development professionals (and one recruiter) what embedded engineers should have on their resume if they want to stay current. (This is the first of two posts keying off of this article. Too much ground to cover to do it in just one!)
While the shifts weren’t that dramatic, what I found of interest was that, in both 2010 and 2014, such a high proportion of engineers were/are doing both hardware and software work. With systems becoming more complex, not less, I found this a bit surprising. At Critical Link More to the point, I’m surprised that the shift to software-only (from 20 to 23%) is so small. From where I stand, software is just about everything these days. Hardware designs are important, and a significant portion of any project, but all of my customers are telling me that software is where the work is at.
Anyway, on to the roundup of the skills necessary for embedded engineers:
While Ken Wada noted that being able to write C or C++ code, along with the ability to handle mixed signal design, would make you “pretty much good to go in the embedded world,” he advises engineers to learn “the technologies that make the Internet possible,” e.g., XML. I completely disagree that C/C++ makes you “pretty much good to go in embedded”. If you don’t know how to interact with the hardware, then you’re not going to be successful in embedded. You have to know how to deal with an interrupt, when and how to use a critical region, how to write code that executes efficiently, and debug techniques for embedded software. It really is a different world.
Michael Anderson advises engineers to “take advantage of all of the open source stuff that is out there.” And while you’re at it, join the community. (While Anderson doesn’t mention it, grabbing available open source will certainly help the hardware engineers operate as hardware + software engineers.”) Rob Oshana is also in favor of “getting comfortable with open source software.” But don’t forget, embedded engineers should have a grasp on both software and hardware.
The header on the first point on open source was “You’ve got a search engine. Know how to use it.” This reminded me of the time before the internet became big. (Circa 1992: we’re talking way back here.) I was the only person in my company who knew about what were called “usenet newsgroups” back then. I was a hero because, before Google existed, I could “google” in the groups to find someone else’s solution to problems we were experiencing. I guess engineers have been trying not to reinvent the wheel since that first engineer came up with the wheel!
Anyway, I’ll be back with next week with the rest of the skills list.