From getting familiar with open source software to developing apps, industry professionals are urging embedded engineers to get out of their comfort zone and acquire new skills to stay relevant.
Back in the early days of embedded in the 1980s, the guy (and it was mostly guys then) who designed the mixed signal circuits, the guy who connected the microcontroller, the guy who wrote a bunch of low-level assembly code, and the guy who got the prototype out the door—well, it was all the same guy.
One engineer pretty much did it all.
Then, as embedded systems became bigger and more complex—millions of lines of code now ship with devices–embedded skill sets became partitioned by discipline: hardware developer, firmware developer, software developer.
In many big companies that is still the case. But the pendulum appears to be swinging back, as more and more companies are consolidating engineering roles, looking for developers who are fluent in both hardware and software, and trying to accomplish more with less. Certainly a bigger percent of engineers say they work on both hardware software, as compared to the group that only does one or the other.
Given that it’s not possible to keep up with everything embedded, how do you make sure that the new skills you acquire are the most relevant?
EE Times turned to nine embedded professionals and a recruiter and asked them to tell us what they think are the most important things engineers should learn now.
Though opinions differed on the specific skills that are most important, they all agreed on one thing all engineers should do: Never stop learning.
Join over 2,000 technical professionals and embedded systems hardware, software, and firmware developers at ESC Boston May 6-7, 2015 and learn about the latest techniques and tips for reducing time, cost, and complexity in the embedded development process.
Passes for the ESC Boston 2015 Technical Conference are available at the conference’s official site with discounted advance pricing until May 1, 2015. Make sure to follow updates about ESC Boston’s other talks, programs, and announcements via the Destination ESC blog on embedded.com and social media accounts Twitter, Facebook, LinkedIn, and Google+.
The Embedded Systems Conference and EE Times are owned by UBM Canon.
By and large, if you can do mixed signal design and code in C orC++, you are pretty much good to go in the embedded world. Infact, just knowing how to write code in C or C++ may be enough inmany cases.
But I would advocate that learning the technologies that make theInternet possible is a big plus for an engineer’s career. As amatter of fact, I am currently working on several initiatives thatinvolve embedding a “virtual” XML into embedded systems. We areusing this technology to allow for autonomous meta-datatransaction processing with disparate devices communicating–usingdifferent low-level standard and proprietary protocols to affect anetwork abstraction layer.
I suppose that one can think of this as the “Plug and Play” modelfor small devices on the Internet.
Source : Ken Wada
Title & Company : President, AuriumTechnologies, an independent product design and consulting firm
What I do: I have 30 years experience in thefield. Now I architect and design products and systems for varioushigh-tech industries. I am unique in that I’m split between beinga generalist and a hardcore theoretical type.
Don’t waste your time reinventing the wheel, take advantage ofall of the open source stuff that is out there. I suspect thatsomeone else has already written just about any piece of code youcould ever want.
There are exceptions, of course, when you're doing things likebleeding-edge research. But most of us work to solve everydayproblems. So take advantage of all of the code and all thebrilliant folks available via the Internet.
Don't sit in your cubbyhole trying to puzzle through the issue(unless that's your “thing”). You should become a member ofthe community. Help folks out when you can, and they'lllikely do the same. Open source is a wonderfully powerfultool that only works if people cooperate.
Source : Michael Anderson:
Title & Company : Chief Scientist, The PTRGroup
What I do : I’ve been an engineer for 35 years. Idescribe myself as a software guy who can read schematics. Iwork on low-level development primarily–porting operatingsystems, device drivers, kernel-level work, etc. Thatunderstanding now helps me as a systems architect who can see howa whole project fits together.
Although spending some time chasing the latest fad is useful andfun, the biggest benefits come from either deepening or expandingyour domain of expertise. Challenge yourself to learnsomething outside your comfort zone such as hardware, yourcompany's or customers' domain expertise, or project management.
At the same time, focus on improving your fundamental skills andinherent strengths. Work hard to develop a political sense thatwill help you understand the motivations of the people around you.Engineering is fundamentally a human endeavor, and the key is tomaintain that balance. Too many young engineers focus tooheavily on people or too heavily on engineering. I know that it isnot easy, but you really benefit by working on both sets ofskills.
Source: Matt Liberty
Title & Company : Founder of Jetperch LLC, acompany that provides DSP and embedded software consultingservices
What I do : I’ve been an engineer for 18 years. Ithink of myself as a generalist who understands the business ofengineering and systems engineering while still being skilled atembedded software and DSP algorithm development.
Engineers who learn a formal structured development processeswhile working with a real time operating system (RTOS) are in highdemand today and command bigger salaries. That’s because they haveacquired the necessary discipline to develop any kind of safetycritical product and they also understand the idea of concurrency:Given that at any given point the CPU can be called to run adifferent task, they know how to make sure that the resource theyare currently using is not going to be trampled on. In short, theyknow how to protect resources from other tasks using the serviceunexpectedly, while maintaining performance.
So I would encourage engineers who are working with smallerdevices who had not worked with an RTOS to get some hands-ondevelopment experience–whether it’s VxWorks or Green HillsINTEGRITYor Micrium’s μC/OS. I am also starting to see a call fora lot of embedded Linux. That’s because Linux (in general) is avery scalable operating system. You can strip it down to the bareoperation for timing and scheduling and then load it on towhatever hardware you want and do kernel development for greateroptimization and control.
Source : Henry Wintz
Title & Company : Solutions Manager for theEmbedded Industry Practice at Randstad Technologies, anengineering and employment hiring services firm
What I do: Simply put, I’m in the business ofmaking things happen.
If you are still working barebones or on smaller MCUs, I advisetaking a Linux driver class. It will make it easier to move toAndroid later. And—although there is possibly less value–if youare used to working on large systems, try working barebones.
Move up the stack: Make a mobile app or learn some back-endserver stuff. It will give you a new vocabulary and perspective.
And become familiar with open source hardware. The projects I did8 years ago required me to spin my own HW and so on, so I couldnot focus on the algorithm development. Today, there are plenty ofoff-the-shelf boards that allow me to focus on the hard, uniquestuff.
Sure, it can make me feel like my whole existence of firmware hasbeen nullified and in many ways the fun of board bring up has beentaken away from me, but sometimes, we have to focus on the endgame. Unfortunately, this means I meet fewer and fewer people withthose particular skills, and those who do are literally a dyingbreed.
Source : Jen Costillo
Title & Company : Consultant, Rebelbot
What I do : I’ve been an engineer for almost 20years. I consider myself a jack-of-all-trades, in that I haveexperience in so many different areas. I’ve worked as low as acircuit designer and as high as making apps on Android or Windows.I’ve also worked in broad tech support and as an R&Dengineer.
It is good to know a few languages, some people recommendlearning one new language a year. However, while pure softwareengineers need to learn languages to fit specific needs, embeddedengineers need to learn chips. A deep understanding of C or C++ iscritical but the newest trendy language is not as important as thenewest, trendy processor technology.
It’s important to know about processors, that’s just the natureof embedded. Because we have resource-limited systems, we need tounderstand those resources we have available. A new and niftylanguage like Go might be incredibly powerful, but it’s verylikely that it doesn’t run in our resource-limited environment.
In the end, you should acquire lots of shallow breadth and a fewareas of deep depth. Keeping current is important but learning allyou can about a few areas makes you an expert.
Source : Elecia White
Title & Company : Embedded Software Engineer,Embedded.fm
What I do : I have been an embedded softwareengineer for over 15 years. I did normal (server) software before.I've done some management over the years but I enjoy the hands-ontechnical aspects more.
There are literally thousands of software packages that customerswant integrated into their systems, so this is an area where allembedded engineers need to feel comfortable.
I would also stress that you should avoid pigeonholing yourselfinto one area, as the skills you have will almost inevitablybecome obsolete and/or prevent growth.
And make sure that you understand both hardware and software;engineers who know both are the most valuable.
Source : Rob Oshana
Title & Company : Distinguished Member ofTechnical Staff and Director of Global Software R&D forDigital Networking, Freescale Semiconductor
What I do : I have been an engineer for 31 years.I was educated as a EE, but I have been doing software engineeringmost of my career.
It’s critical for embedded engineers to have a systemsorientation. I have seen a number of projects suffer becausethings like a clear defined requirement baseline, verificationstrategy and a plan for demonstrating compliance was notconsidered these early enough in the project. And every engineershould acquire good project management skills as you will be askedto commit to achieving deadlines. Having the ability to sensiblyexplain the risk in terms of technical and project risk will serveyou well in your career.
Source : Adam Taylor
Title & Company : Chief Engineer ElectricalSystems, E2V
What I do : I have been an engineer for 15 years.If I had to pigeonhole myself I would say that I am ahigh-reliability embedded system specialist. However, I have beenvery lucky in my career and have had the opportunity to design fora number of applications.
Engineers of all types need to be able to effectively expressthoughts and ideas and often the best way to do that isgraphically. Too often I have asked junior engineers to explain aconcept, only to cringe as they ramble on without being able tofocus on exactly what it is that they are trying to explain.
We used to use flow charts to explain concepts. Maybe those aresomewhat obsolete today, but every engineer should have as afundamental skill the ability to use block diagrams, state machinediagrams, pictures or clouds or light boxes or whatever tool canaid in conveying concepts. Particularly if they are trying toexplain how something works.
Can you imagine trying to explain to a developer who is writingthe software for a controller how the machine works using atext-based document?
Source : Jean LaBrosse
Title & Company : President, Micrum
What I do : I am an EE by training and I have amasters in computer science. As an engineer, I like to look atthings that are complicated and simplify them.
The one thing I would recommend embedded engineers learn in thenext 1-3 years is wireless connectivity, specifically wifi and/orBluetooth low energy (BLE).
The primary (and sometimes only) way to interact with embeddeddevices is moving to the end user's smart phones, at least inconsumer electronics. Consumer electronics companies know that asmart phone is a much better user experience than most embeddedsystems can hope to provide on their own. And other industries andproduct categories are figuring it out too.
Our embedded systems are going to need to to talk to an app on asmart phone or an internet-based service in order to do anything -communicate with the user, get firmware updates, troubleshootproblems, etc.
It might be going a bit too far to say that wifi and BLE willsoon be as common as the UART is today, but it's not too farfetched, and it's a good tool to have in your toolbox.
Source : Chris Svec
Title & Company : Senior Principal SoftwareEngineer, iRobot
What I do : I’ve been an engineer for 13 years. Ithink of myself as a “low level” embedded engineer. I like livingat the hardware/software interface. But I’m also a “big picture”kind of guy, which means that I need to understand the fullcontext of the product I’m working on to really enjoy my work.
Join over 2,000 technical professionals and embedded systemshardware, software, and firmware developers at ESCBoston May 6-7, 2015 and learn about the latesttechniques and tips for reducing time, cost, and complexity in theembedded development process.
Passes for the ESCBoston 2015 Technical Conference are available at theconference’s official site with discounted advance pricing. Makesure to follow updates about ESC Boston’s other talks, programs,and announcements via the DestinationESC blog on embedded.com and social mediaaccounts Twitter, Facebook, LinkedIn,and Google+.
Embedded.com , the Embedded Systems Conference, and EE Times areowned by UBMCanon.