Embedded developer, what constitutes entry level?
levipearson at gmail.com
Tue Aug 28 15:42:50 MDT 2012
On Tue, Aug 28, 2012 at 2:52 PM, S. Dale Morrey <sdalemorrey at gmail.com>wrote:
> Hi Pluggers,
> Recently I was contacted by a medical device company who is looking to
> hire. They wanted some feedback on why their job ad wasn't generating
> any results.
> The ad states that they want an "Entry Level" embedded developer with
> over 2 years experience.
> My personal opinion is that you get 2 years of experience doing
> anything and you're no longer entry level.
> To my mind, entry level means you have less than 1 year experience.
> On the other hand I'm wondering if maybe things are different in the
> embedded world.
Things are different in the embedded world, yes. Embedded computing was
(and perhaps still is in the wider realm of embedded) dominated by
electrical engineers. Electrical engineering has a very different culture
than, say, web development or enterprise software. It's a very much more
established industry, the people tend to have been employed longer, and
things in general move more slowly. Software is kind of a necessary evil
for many electrical engineers, who would much rather be doing hardware
stuff and prefer the software to be as close to the hardware as possible.
Learning new software stuff is out of the question; it's probably not
supported on their hardware, and besides they've got their hands full
learning the new versions of their hardware design tools that come out
regularly and are full of new and exciting bugs!
Also, there is no standard architecture or standard set of tools (though
ports of gcc are pretty common, there are still plenty of proprietary
toolchains). You will be writing some, if not all, of the device drivers
for your system. Maybe even muck around with the OS, if there is one. You
typically have very constrained resources to work with, so you have to
develop many custom solutions and understand things at a lower level and
with more care towards managing resources than you would in some 'easier'
programming jobs. You have to be familiar enough with how hardware works
to be able to debug with a scope without frying your hardware and with
limited ability to run debuggers or even printfs. You have to know how to
read schematics, how to find and read datasheets, and at least the right
questions to ask the EE guys. If you are doing a system with real-time
constraints or particular safety requirements, there's a whole lot more
analysis of design and code that has to be done right in order to meet
requirements. There's usually a lot of domain knowledge that has to be
learned so that your device does the right thing; it's typically not dialog
boxes, buttons, or file manipulation!
So, yeah, it takes a bit more than 2 years for many to progress beyond
entry level, because during that time period you've maybe worked on one or
two systems, and the third may be completely different! It does depend a
lot on the person and what in particular they've done, though. Frankly, I
consider anyone who has only been doing any job for 2 years to be entry
level in the grand scheme of things. Anyone who thinks otherwise is
fooling themselves; you'll agree in ~10-15 years or so when you look back
to what your experience level was at 2 years.
More information about the PLUG