Career in embedded systems demands a discussion in continuation with my article last month on the vocational challenges in the microcontroller industry. Embedded systems are the platform for the application of microcontrollers. So I put everything away, dug deep into these and came out with a laundry list that should never, and I mean never, be neglected if you want to be in this sector. Here’s your what-will-get-youhired guide.
What’s the market like?
Embedded systems are omnipresent. These are there in your home, college, office, shopping mall and so on and so forth. Even while you are on the move—either on a most basic two-wheeler or on an advanced aircraft— you are still amidst embedded systems. They are a unique combination of computer hardware, software and perhaps additional mechanical or other parts, designed to perform a specific function within a given time frame.
Our campus recruitment is based on a written test and an interview. The written test is separate for hardware and software engineers. The hardware paper has a section on aptitude, a section on digital design and a section on analogue design—we ask the students to select any one section between digital and analogue design. The software paper has an aptitude section and a section on software. Candidates who fare well in the written test are shortlisted for interview. From my experience, the interviews are mostly based on problemsolving exercises and test the conceptual understanding rather than rote learning.
—C.P. Ravikumar, technical director, university relations, Texas Instruments
The embedded software is required for all real-time applications and developed using a real-time operating system (RTOS), as it helps to schedule and execute tasks based on the priority in a predictable manner. To cite just a few examples, embedded software allow your washing machine to choose speed according to the type of cloth, confer thinking power to the microwave ovens and propel rocket launchers into space.
Industry analysts estimate that over 54 per cent of future software development will be in the embedded technology space. According to an IDC report, the international market as a whole expects product development worth $75 billion.
The indian scenario
In spite of job cuts due to recession, semiconductor companies in India are in hiring mode. India is considered one of the emerging markets in the semiconductor space. According to an ISA-IDC report on the Indian semiconductor and embedded design service industry (2007-10), the Indian semiconductor design market is expected to cross $7.37 billion (Rs 317 million) in 2008. The Indian design market is pegged to grow at a compounded annual growth rate (CAGR) of around 21.7 per cent between 2007 and 2010.
This tremendous rate of growth will require a large number of skilled professionals. The semiconductor design services industry in India employed an estimated 150,000 people in 2007-08. Of this, the bulk of the jobs were in embedded software (82 per cent).
Expansion plans by MNCs and NASSCOM suggest embedded systems to be the next sunrise sector.
Where do I fit?
If you delve a little deeper, you will find that any embedded system is teamwork of three different sets of people: hardware engineers, software engineers and application domain experts. So you can locate your place under any one of these broad categories.
As a hardware engineer, you will be responsible for hardware platform and module prototyping, debugging and testing. Also, you have to ensure compliance with standards and product specifications and initiate design changes as necessary.
If you are comfortable in the software domain, you can start as an embedded systems programmer. This role will engage you in activities like analysis and optimisation of embedded software for the targeted RTOS. Your tasks may include developing installable and built-in device drivers, kernel modifications and embedded application.
Want to explore the application possibilities of the domain? Give a thought to beginning as a wireless protocol engineer. You will be assigned a task for the development, integration and testing of various protocols within an embedded firmware stack used in mobile devices.
India has always had a pool of talent in the embedded system space. With the complete ownership of the projects on the rise in India, the talent requirement has grown qualitatively as well. Professionals with experience of around five years can command close to Rs 2 million per annum.
—Sunirmal Sen, management consultant, SAP Practice, HCL Technologies
Almost all industry segments are increasing the use of embedded systems for increased sophistication in the areas of networking, automation and control. As a result, software, tele communication and electronics companies are heavily diversifying into it. As the application increases, the list of stakeholders can move only one way. The maximum demand is for professionals with 2-5 years of experience. Entry-level hiring is around 20 per cent of the total talent acquisition.
The major recruiters, however, are big players like Texas Instruments, STMicroelectronics, Cadence Design Systems, Honeywell, Delphi, TCS, Wipro, HCL, Infosys, Huawei, Tata Elxsi, Mistral, Poseidon Technologies, Visteon, LG, Portal Player, eInfochips, Pace Soft Silicon, CMC, GDA Technologies, Future Software, ATS, Sankhya Technologies, Bluefont, Intoto, DCM Technologies and Serveen. The list in all probabilities is bound to grow. Further, you should also take into account the SME players in this field. In fact, these are more than 50 per cent stakeholders of the Indian job market.
Do I have it in me?
So now you are seeking the basic criteria for entry, is it? Starting from diploma holders, engineering (as well as science) graduates, postgraduates and even doctorates with the background of electronics/electrical engineering or computer science may try their luck here.
If you consider entry-level recruitment, it is dependent on some predefined skillsets. On the software side, the basic knowledge of ‘C’ and Assembly language programming is a must. On the other side, sound knowledge of basic electronics, especially digital and analogue design techniques, micro-controllers and microprocessors (e.g., RISC processor or 8051), and system knowledge related to communication protocol and real-time operating system can be helpful in getting a strong foothold in the field.
If we compare the basic skillsets required by any industry segment in India with the knowledge level of a fresher, a significant drawback of our educational system is revealed. The same holds true for the embedded sector too, which suffers from the lack of quality manpower. In fact, people with knowledge of embedded system design are very rare despite the fact that this is one of the fastest growing sectors of electronics. More so, finding a fresher with a good grasp of the basic electronics and designing concepts is a significant challenge.
What’s on ‘offer’?
Due to the huge gap between demand and supply of quality human resource, an experienced embedded system engineer may be the most sought after professional in the electronics industry now. In the private sector, the global recession has hugely affected the starting salaries at present. However, analysis of previous year’s industry feedback reveals a range between Rs 1.2 million to Rs 2 million per annum for someone with 4-5 years of experience. The compensation depends on the nature of organisation, competency level, academic background of the candidate, etc.
The existing government or public-sector players offer a starting salary in the range of Rs 8000 to Rs 10,000 per month (excluding allowances) for diploma holders and Rs 15,000 to Rs 20,000 for degree holders. Whereas, the private sector is always ready to offer
The subject of embedded system development is quite vast. It is not fair to expect both breadth and depth from a fresh recruit. At the undergraduate level, we expect a good understanding of fundamental concepts of electronics and exposure to various design modules (both digital and analogue) from practical point of view.
—K.S. Mittal, additional general manager, ECIL
more lofty figures for candidates with suitable exposure. The ability to multi-task may be a defining factor.
You could begin with a purely technical role and continue as per your aptitude within the chip-to-ship chain of the embedded system. A strong technical foothold along with a desire for innovation can lead you to senior positions in research and development. Nonetheless, it is always advisable to explore the business processes as that can accelerate the climb to the top.
Though embedded system itself is a specialisation, the industry expects you to have super specialisations within the field like embedded ‘C’ programming, exploring controller-specific features under embedded ‘C,’ RTOS porting and application development, and special networking protocols along with the fundamentals. In addition, there are certain other skills which are categorised as ‘must-haves.’ Knowledge of ‘C’ programming and operating system concepts, and exposure to microcontrollers and basic electronics are typical examples.
In addition to the basic electronics that I discussed in the microcontrollers article last month, knowledge of KEIL compiler and designing concept (both analogue and digital) would be an advantage for any aspiring candidate.
From my interaction with different industry spokespersons, I inferred that communication gap among team members could create a roadblock in any given project. A lot of it has to do with the specific jargon used by the different groups such as the software engineers and the hardware engineers; both also find it difficult to communicate with application domain experts. To avoid this hazard, your employer may want to judge your overall knowledge base and communication skills at the interview table. The necessary foundations of both the hardware building blocks and the software tools are equally important to learn as you embark on your journey.
Additionally, try to understand the basics of any one of the representative application domains of your choice so that, in future, you can take up the challenge of embedded system development in any application area.
How to begin?
From an application perspective, knowledge of embedded ‘C,’ processor cores, communication protocols like SPI and i2c, network protocols, interfacing with analogue and digital signals, and RTOS is invaluable for those who will design and develop embedded systems.
—Sanjay Mittal, director, Yogasa Systems
The best way of starting work on embedded systems is to work on the evaluation boards of popular micro-controllers or processors. Understand the system. Then try to write the software that works on these boards. In due course you can reveal the architecture of the system as well as the utilisation of software tools. Even if you do not have access to an evaluation board, you can get preliminary idea of embedded software development by experimenting with the code on any desktop computer. After gaining the necessary knowledge of the hardware to write the firmware, you will be in a position to be a member of any embedded system project team.
The first and foremost thing you need to know is the categorisation of embedded systems based on their functionality. All embedded systems may be bucketed under some broad categories like standalone system, real-time systems, network information appliances and mobile devices. Each of them is unique with respect to inputs, outputs and custom-built hardware architecture. Some exposure to different architectures (advantages and philosophy) and their comparative study (RISC vs CISC) are must. Try to deal with the building blocks of the hardware like processors, RAMs, ROMs, clock circuitry to generate clock signal, input/output devices, sensors and transducers, ADCs and DACs, DMA controllers, timers and power supply units.
Now you have to make the embedded system communicate with the external world. Always keep in mind that embedded software development involves cross-platform development as the software is initially developed on a host system and then the executable image is transferred to the target system. The know-how of board details and specifications and other hardware tools (digital multimeters, logic analysers and oscilloscopes), system clock and fuse bits, Linux and various distributions, operating system development suite (API calls), cross-platform development tools (overall GNU Project), Free Software Foundation (FSF) philosophy, ROM emulator, EPROM programmer, etc may be turnkey for this purpose.
Learn now to make the system work. At this point of execution, you have to write a program for the embedded system. As compared to writing application software, writing embedded software is a different ball-game. You need to manipulate at bit level and use operands, operations, comments and mnemonics to carry out specific functionalities such as remote control. In this process, you may get acquainted with a number of productivity tools (makefiles), debuggers (gdb and kgdb) and profilers (gprof) of industrial importance.
While dealing with the instruction set, try to customise yourself for the industry. Sharpen your skill sets by learning to use Gedit as a programmers editor, work with ‘make’ files and configure Gtkterm for serial data handling (UART) and understanding the AVR instruction set, embedded ‘C’ programming, variable scopes, qualifiers (volatile) and modifiers, program structures, pre-processor directives and determination of endianness (byte/bit ordering) of processors. Implementation knowledge of basic data structures like stacks and queues using above concepts may provide you an extra edge.
The instruction set is ready—what’s next? Let’s explore controller-specific features under the programming environment. At this point you need to know the aspects related to configuring ports and controlling their status. You have to assimilate memory and device interfacing, reading and writing EPROM as well as use of supported communication protocols and network protocols like SPI and i2c to get control over the system.
Try to dig a little deeper. Approach the critical parameters like interrupts, timers and boot loader in a realistic way, which I had already explained last month.
The last frontier
Now, it’s the time to address the real-world need. You may start RTOS porting and application development by using the skills you have gained so far. Try to proceed in a step-by-step manner. Review your real-time system concepts with respect to their need and constituting components. You may try to run a demo application to clarify the idea of RTOS porting and for better understanding of the firmware activities. If you are confident up to that level, proceed to acquire some nice-to-have skillsets. Developing libraries and applications using inter-process communication mechanisms like mail boxes, priority inheritance under mutexes and semaphores can prove beneficial in the long run.
From classroom to industry
It is possible that your awareness of most of the above-mentioned terms is from a notional perspective only. But the industry needs something ex-tra—the actual hands-on experience is indispensable. In fact, being in embedded systems means experiencing the great technological revolution. Your bookish knowledge might not be sufficient to catch the speed.
So be a go-getter, dig all the possibilities to get a practical exposure. At the same time, be up-to-date about the latest technological trends. Newspapers, technical magazines, various technical seminars and, last but not the least, trade fairs may provide you with the opportunity to get an edge over your possible competitors.
You can learn about ‘chip to ship’ of an embedded system only after completing a proper project. Instead of depending only on your institutional projects, explore the possibilities to be a part of a live industrial project.
Various private- and public-sector organisations accommodate final-year and pre-final-year students in their live projects. I had discussed the relevant primary to-do steps in my article last month. Additionally, you may try to understand the project requirements in a better way with respect to design and documentation, development of prototype modules, coding and unit testing.
You may find various training institutes mushrooming all around. Before joining any course, be sure to compare the course curriculum with the skill sets discussed so far. Besides, you can always rely on vocational courses offered by the institutes of repute (see Institute Watch).
There has been a lot of speculation about the impact of the global recession on hiring in any industrial segment. As a budding professional, you could use this opportunity to improve your qualifications and inculcate additional skills that will come in handy once the market picks up again.
The author is a research analyst cum journalist at EFY