The definition of embedded system has broadened over the years. The initial definition said that an embedded system is anything that is application-specific, but, today, an embedded device like a mobile phone can do much more than just calling—it can play FM radio, click pictures and so on.
“Whatever be the additional feature, an embedded system will always be resource-constrained. The challenge to design with limited power, limited processing speed, limited memory and limited input/output (I/O) will always be there,” says Robert Oshana, director of software research and development, networking and multimedia group, Freescale Semiconductor.
Embedded engineers always need to optimise what they are doing, unlike desktop engineers who can push more memory or more processing speed. If we look around, there are many examples of pure embedded devices, and of larger systems built using multiple embedded sub-systems.
Here are some suggestions for those who aspire to become an embedded engineer and also for those who are already an embedded engineer.
Be an all-rounder
The embedded world is outside the desktop world, where pressing the ‘on’ button will not boot the system. An embedded engineer needs to be an all-rounder. “He has to know much more than just writing the code. He has to understand the hardware, how it interacts with the environment, how to use controls, sensors and actuators, and how to integrate all together,” says Oshana.
Today’s education system will teach you either hardware in electrical engineering or software in computer science. Even the computer engineering courses do not cover embedded systems completely. “Embedded engineers need a broader set of educational qualification. Cross-functional curriculum for the embedded discipline tailored to embedded career will be useful,” suggests Oshana.
Buy a development board
It’s said that if a kid can take a thing apart and then put it back together such that it still works, he will become an engineer. Gary Stringham, president, Gary Stringham & Associates, believes the same as he feels that engineering is a lot about self-learning through experimentation. He suggests, “You need to buy a development board and play with it. Program it, and get one LED to blink. Then program it to blink fast and slow. Learn how to connect it to your computer.
Get a piece of display hardware and interface it with this board. Try putting some smileys on it. Playing with electronics teaches you a lot. Doing actual stuff is very important.”
Lately, open source hardware has become very popular in the hobbyist community. Beagle board, Arduino and many such boards help you to create a new project altogether.
Choosing the right set of projects is very important. the project you choose should be influenced by the application domain in which you want to become an expert
“Open source concept helps to see how a piece of hardware works. It also helps to understand what happens if you change the code a little bit, how does your hardware function, or what happens if you change some hardware component. Playing with this, you learn and understand the functionality of a lot of things,” says Stringham.
Work on multiple projects
One thing that is really important is hands-on training. “You need to take up as many projects as possible to gain expertise in an area,” shares Oshana. Multiple projects will give you varied experience, increasing your analytical skills. However, choosing the right set of projects is very important. The project you choose should be influenced by the application domain in which you want to become an expert.
“If I see a list of projects like project in audio, project in power electronics, etc, I believe that the person has very little or no knowledge of one particular domain. It’s like jack of all and master of none. The projects need to be of similar nature or using similar components. If you become an expert in that, you certainly have the capability to pick up another domain and become expert in something else,” shares Stringham.
Oshana says, “It depends on the application area. When I try to place someone in the networking job, I look for varied projects. Instead of hiring an expert in just Cisco or in Sun, I would like to have someone who has exposure to most of the networking devices and protocols.”
Produce quality work
Embedded devices are being used in more and more safety-critical applications. “One of my friends who is an embedded engineer looked at the code written for an aeroplane and his immediate reaction was, “I do not want to fly on that airplane!” This was because the quality of code was very poor. We come across examples like pacemaker where even a minute mistake or bad-quality code may lead to death of the patient, just because the device took a few extra milliseconds to process,” shares Stringham.
Quality testing is very important. “Earlier, there were just a few hundred lines of code and now there are millions of lines of code. As embedded systems become more and more complex, it increases the code size, which is a big challenge. When you start controlling safety-critical applications, the quality of code becomes very important,” says Oshana.
Oshana adds, “One of the problems with software engineering is that the quality of the embedded software really has not improved over the years. We have not solved this problem even when the code size has become millions of lines.”
Experience at least three generations of the same product
“In India, it is very common to see the engineers change their jobs and companies every two years, the reason mainly being greener pastures on the other side. But if they keep on changing jobs, how are they going to learn about the organisation or its technology and gain expertise in that? They are not there long enough to learn something completely,” says Stringham.
Stringham shares an interesting experience, “When at HP, we were trying to move some of the code to an outsourcing company in India. The engineer in the US said that he had trained four engineers, but they left after the training was complete. So the US engineer in that project is still doing the same job as he can’t find someone here to stay in the job. It a mobile society, it may be difficult. But to really know the embedded systems, to really know safety-critical systems like pacemaker, you need to be in the job for several years to gain expertise.”
There is a weird belief in India and many other countries that if you are not a manager or a senior member in the organisation in five years of your job, you are not a good performer. But this may not be the correct way to gain experience and expertise. Newer technologies are shortening the life-cycle of embedded products.
Stringham believes, “The life-cycle of a technology or product could be up to three years. Take the example of Apple’s iPhone. You will not see anyone buying iPhone of the first generation or even second when the fourth-generation is already in the market. The engineer should see and experience designs of at least three generations of the same product in order to become fairly knowledgeable in that domain.” “In fields like defence, the number of years are longer, the projects run longer. So it really is consumer-driven,” Oshana adds.
Summing it all…
India has become an expert in software and now is the time to tap another upcoming and interesting field— embedded. Considering the multi-faceted structure of the embedded world, an engineer definitely needs to be an all-rounder. But apart from being ‘jack of all,’ he needs to be ‘master of some’ (an expert in some domain)!
The author is a senior technology journalist at EFY