It used to be a joke that one day you would have a
computer in your toaster. Microprocessors are fast becoming
ubiquitous, and many of the commonplace gadgets in your house and
car rely on them. Even groceries are becoming technology dependent,
with the advent ofRFID supply chain management. And that
means developers are in demand to create the code hidden inside
these everyday objects.
Glenn Needham, a systems and applications engineer with
Innovision Research and Technology, a Gloucestershire-based company
that designs and develops systems using RFID and
near-field communications systems that can communicate over
short distances, says that one of the most attractive aspects of
working in
embedded
computing is the sheer diversity of opportunities. "The basic
knowledge and skills are much the same, regardless of whether you
are developing an engine-management unit for a car, a contactless
smartcard reader for a turnstile, or a video quiz game," he says.
"So you do not have to be committed to a particular kind of product
or marketplace."
Martin Constantinides, a director at ECM, a Cambridge-based
recruitment agency specialising in placing staff in embedded
computing roles, whose own consultants all have a background in the
industry, agrees that "experience with specific environments or
languages is less important than experience of dealing with the
constraints of developing for embedded systems". Those constraints
include fitting code into extremely limited memory space, ensuring
processes work well in a time-critical situation, and developing
for safety-critical environments.
Constantinides says that this is one reason why many people in
embedded computing roles have spent their whole career in this
area, rather than coming in from a background in application
development, where the constraints tend to be very different.
Moreover, in contrast to many other IT roles where people have
diverse educational backgrounds, most staff working in this area
have a degree in a technical discipline such as electrical
engineering or electronics, physics or mathematics, or software
engineering. However, Phil Johnson, strategic account manager with
CBSbutler, a recruitment agency that specialises in placing
technical and engineering staff, sees an increasing number of staff
making the transition from application development in C and C++ to
embedded development roles simply because of the acute shortage of
suitably qualified candidates.
Nevertheless, Needham's background is more typical. He started
out as a hardware engineer for a company developing video gaming
machines, writing software for embedded processors as a hobby,
before taking a chance to move into a role as a junior software
developer with the same company. After rising to become a senior
software developer, he took on his current position as a systems
architect, looking strategically at how Innovision can use
available technologies to develop new products for customers.
The culmination of this career path would be as a technical
director. Other possible moves for embedded software developers
include becoming a technical consultant for one of the many
chip-design houses, or providing presales or postsales consultancy
for an embedded component developer, where a development background
would provide the necessary credibility to talk with customers' own
technical staff. Constantinides says that experienced developers
can also find work writing development tools, which helps others
create embedded code.
At present, Constantinides sees high demand for developers of
consumer products in two areas: gadgets such as IPTVs, digital
set-top boxes and digital radios, and wireless devices such as
mobile phones and PDAs. Johnson says that there is also a call for
developers who can create or port applications to the relatively
limited hardware capabilities and cut-down operating systems such
as Windows CE and Epoc and found on mobile devices.
Business to business work is typically focused in very
specialised products for the defence, automotive and aerospace
industries or for the emergency services.Another specialised role
is developing the RFID devices used to track items through the
retail supply chain. Employers range from the large telcos and
defence contractors to chip intellectual property houses, which
design chips for licence to several customers, or contract design
companies working on specific projects for manufacturers.
In terms of skills, embedded C and, increasingly, embedded C++
are the main programming languages in demand, although Needham also
sometimes works in Java, and began his career in embedded software
using assembly language. The pay for these roles compares
favourably with other sectors, with £40,000 to £70,000 typical for
a hands-on development position. The majority of roles are based
outside London, with strong concentrations around university towns
such as Cambridge, Oxford, Southampton and Bristol.
A significant proportion of employers are spin-offs from
university research efforts, and Constantinides says that one of
the attractions of embedded computing work is the intellectual
stimulation it provides. "Those working in these roles are bright
people who have been through many years of education - many have
higher degrees - and who are motivated by technical challenges." He
says that it is a fast-moving sector, so you need to be comfortable
picking up new technologies and tools on a regular basis, and
formal training can be sketchy in the many smaller companies in the
sector, so you have to be a self-starter and able to cope with
being thrown in at the deep end.
Another reason why embedded developers love working in the
sector, Needham says, is that although the code you develop might
be less visible than an application running on a PC, there is a
real buzz from developing code for a tangible product that does
something obviously practical, and seeing it in action in everyday
life.