From calculators to cars, embedded systems are everywhere we look. As you read this article, the device you’re using relies on dozens of these systems – characterized by software enmeshed and serving a purpose within a piece of hardware – to display text and react to your commands. Embedded systems, it’s safe to say, are fundamental to daily life for individuals and entire industries alike.
Embedded systems design has become even more vital and ubiquitous with the rise of the “Internet of Things” (IoT). The IoT is powered by embedded systems, and its scope is rapidly expanding.
A 2013 study issued by McKinsey & Co. estimated that by 2020, roughly 30 billion objects could be connected to the IoT. A 2017 study conducted by the Boston Consulting Group found further that companies are poised to spend over $250 billion on IoT applications and infrastructure in 2020 alone. Though such estimates may ultimately miss the mark, the IoT’s future importance to both businesses and consumers seems assured.
Given the IoT’s significant impact on consumers and huge economic potential, it’s no surprise that top engineers capable of designing and developing embedded systems are in high demand. In some industries, however, the changes brought by the IoT are outpacing the ability of companies to hire such talent and build in-house teams.
This problem is particularly acute in industries traditionally centered on hardware and heavy machinery, rather than software development and fields like machine learning and artificial intelligence. Further, these industries are often located far from tech epicenters on the East and West coasts of the U.S., making it even more difficult to persuade top talent in the job market to choose them over high tech Silicon Valley alternatives. The need for these industries to hire experts in embedded systems has never been greater and will only increase.
The need for these industries to hire experts in embedded systems has never been greater and will only increase.
In this article, we will see that agile talent – essentially defined as expert freelancers – can enable these industries to successfully adapt to the challenges posed by the ever-increasing importance of embedded systems. Using the automotive industry as an example, we will also gain an understanding of some of the primary obstacles to using agile embedded systems developers, and how they can be overcome.
Agile Embedded Systems Development – Challenges and Solutions
Two of the biggest challenges that companies seeking to build embedded systems development expertise face – finding the right talent and incentivizing talent to relocate – can be solved with the use of agile engineers, who can work in-house or remotely.
Embedded systems engineers are in short supply. While empirical estimates on the number of embedded systems developers currently in the workforce are difficult to come by, a variety of data on the demand for such talent provide a sense of the relative size of the embedded systems market.
The Bureau of Labor Statistics found that in 2016, there were roughly 1.3 million jobs in software engineering, versus 74,000 jobs in computer hardware engineering. A basic search on Indeed, an employment search engine, yields roughly 63,000 open positions in application development, versus roughly 12,000 positions in embedded systems. Though these are highly imperfect metrics, they suggest that the embedded systems market is dwarfed by that of traditional software engineering.
The shortage of embedded systems experts can be explained, at least in part, by education. In a 2014 article, Robert Dewar, an emeritus Professor at New York University, argued that computer science departments have deemphasized skills – such as advanced mathematics, teamwork, understanding big picture systems, and knowledge of a wide range of programming languages – that are essential to embedded systems development.
With insufficient training, there is a significant gap between the best embedded systems developers and the rest. Marcos Oviedo, an embedded systems engineer at Toptal and longtime software architect at Intel, says that in his experience, many engineers lack the blend of hardware and software development expertise essential to successful embedded systems design. Using agile talent, he says, can give companies a solution to this problem.
Remote talent, in particular, can yield significant benefits, as it enables companies to access a deep pool of talent with a wide range of skills: “Being able to deliver good, mature software development practices [along with hardware expertise] will increase the quality of the product,” Oviedo says. “That’s definitely something that remote talent can bring to the table.”
Location, Location, Location
With much of the tech world concentrated on the East and West coasts of the U.S., it may be difficult to motivate top tech talent to work – and settle down – elsewhere.
While this problem applies to companies that need tech talent of all stripes, it is particularly pressing for companies looking for talent in areas, such as embedded systems, in short supply.
Agile talent can meaningfully contribute to projects that rely on standardized, easy-to-handle hardware components.
Agile talent can solve this issue by enabling companies to hire top engineers who can live where they choose. Instead of fighting an uphill battle in trying to persuade embedded systems engineers to relocate – and therefore being limited to hiring only those engineers willing to make such a move – companies can hire talent working from anywhere. This eliminates a major barrier to hiring the best engineers for the job at hand and better equips companies to quickly and successfully build expertise in embedded systems.
Now that we understand some of the key problems agile talent can solve, we can turn to exploring conditions that enable companies to use such talent and conditions that make this more difficult.
When Are Agile Embedded Systems Developers Viable?
For some embedded systems developers, working remotely is easier said than done. While an engineer may work on a mobile app from the comfort of any coffee shop around the world, developing software-based systems for large pieces of hardware demands in-depth knowledge of the hardware in question, which may be difficult for to gain without physical proximity to the hardware itself.
It is important to understand when such talent is appropriate, and when it may not be.
When agile or remote talent is viable: Agile talent can meaningfully contribute to projects that rely on standardized, easy-to-handle hardware components. In these cases, companies can provide embedded engineers with hardware specifications or general Software Development Kits (SDKs) that engineers can modify and use to develop their products from anywhere.
Flavio de Castro Alves Filho, an embedded systems developer based in São Paulo, Brazil, has found that companies often provide him and his team with the tools necessary to complete projects remotely. When working on developing embedded systems for electrocardiogram (ECG) equipment, for example, Filho was provided with many of the basic pieces of hardware – digital converters, microprocessors, and microcontrollers – necessary to complete his task. “If we have the final hardware, that’s good, but it’s not a requirement,” Filho said.
When agile or remote talent may not be viable: Conversely, using remote agile talent may be challenging for projects that involve stringent safety standards or particularly large hardware components. It behooves freelance embedded systems developers to secure physical spaces and equipment that allow them to work remotely in a broad range of cases. Still, these cases (explored more in the automotive case study below) may demand workspaces that are prohibitively large for remote work or tools that may be inaccessible.
Further, companies may opt to hire full time engineers over agile talent for certain “mission critical” embedded systems projects. These projects may last for extended periods – sometimes years – and involve systems so sensitive that companies must keep them strictly in-house.
Hayram Nicacio, Chairman of the Society of Automotive Engineers Brasil, makes this point with regard to control systems in vehicles: “They don’t keep [the development of the control systems] inside a safe with seven keys; they keep it inside seven safes, one inside the other.” In some cases, companies simply won’t feel comfortable hiring agile talent due to the highly sensitive or proprietary nature of the project.
While these challenges are real, the following case study will show that they are not insurmountable.
Case Study: The Automotive Industry
As a legacy industry, predicated on embedded systems and undergoing rapid technological change, the automotive industry provides a useful illustration of both the necessity of embedded systems expertise and the challenges in using agile talent to meet this need.
The Rise of the Digital Car
On a fundamental level, cars have always been intricate collections of embedded systems, and to say their complexity has increased over time would be a gross understatement. A brief look at vintage versus modern vehicle design demonstrates this point.
The Ford Model T, produced between 1908 and 1927, is, by today’s standards, relatively simple in its design and construction. A single Model T consisted of roughly 1,500 distinct parts that mechanical engineers and others put together on Ford’s innovative assembly lines. A modern vehicle, by contrast, has roughly 15,000 distinct parts.
Yet the increase in automotive complexity has resulted not just from an increase in the sheer number of parts used, but from an expansion in the different types of parts used. While the Model T included some basic electrical components, it was primarily constructed using mechanical parts. A modern vehicle is a far more varied blend of mechanical, electrical, and software components. As a 2015 article in The New York Times points out, premium vehicles produced today are “among the most sophisticated machines on the planet, containing 100 million or more lines of code.” Though today’s vehicle designs still rely heavily on mechanical components and electromechanical engineering, they have become increasingly dependent on software and computing power.
New Kind of Talent Needed for a New Kind of Car
As a century-old industry traditionally centered on electromechanical systems, now transitioning to more advanced software-based technologies, the relative shortage of software engineers in the auto sector is understandable.
The auto industry needs more embedded systems engineers to successfully navigate the increasingly complex software-driven future.
Historically based in Detroit, Michigan, the U.S. auto industry has also faced difficulty in luring top software talent away from Silicon Valley. This issue is compounded further by high tech companies, such as Alphabet’s Waymo, making aggressive forays into the auto space. Auto companies have addressed this threat in a number of ways. Some have partnered with high tech industry players, while others have successfully built high tech expertise in-house. The auto industry needs more embedded systems engineers, among other advanced technology experts, to successfully navigate the increasingly complex software-driven future.
Overcoming Agile Talent Challenges
Though the auto industry may face challenges in using agile embedded systems developers, there are a number of potential solutions that must be understood:
Challenge: The auto industry has strict functional safety standards, namely ISO 26262, that shape the way systems and components are developed. Though not a strict requirement, it is helpful for embedded systems developers in this field to have qualifications in compliance with these standards.
Solution: Attaining the proper certifications in ISO 26262 is not prohibitively difficult for embedded systems developers, and can be done through taking a series of courses. Further, ISO 26262 follows essential principles of functional safety found in the IEC 61508 standard, intended to apply to industries like rail and nuclear power. Auto makers and suppliers can target embedded systems talent with prior experience in these other fields to better ensure adherence with ISO 26262.
Challenge: Vehicles, particularly given their complexity, have many components that require specific domain expertise. The auto industry depends on hardware knowledge and techniques – including lockstep MCU architectures, CAN, and LIN communication – in which many engineers may not have expertise. Because these domain experts are in short supply, auto companies may be reluctant to hire freelancers out of fear of an engineer with a unique skillset leaving the project partway through, particularly when projects last many months or even a number of years.
Solution: Agile talent can gain specific expertise in some of the systems employed by the auto industry through specific courses on AUTOSAR and ASPICE, for example. If an agile engineer has expertise in a relevant domain (MCUs, FPGAs, for example) but lacks experience in the auto space specifically, he or she can be guided and mentored by others who have such experience. Further, some agile engineers may not be time-constrained, and for some – particularly those willing to work on-site – these projects may represent attractive opportunities.
Challenge: Vehicles consist of large hardware components. Depending on the specific component and project, embedded systems developers in the auto space may need specialized lab equipment or physical proximity to the hardware being developed. This may force auto companies to exclude remote freelancers from consideration.
Solution: Agile embedded systems designers can acquire their own equipment – such as oscilloscopes, multimeters, CAN, FlexRay, LIN tools for debugging, battery cell simulators, and ESD testing tools – as well as lab spaces large enough to accommodate a broad range of components. In cases involving projects that cannot be done remotely, agile talent willing to travel and work on-site may still find success.
Agile Embedded Systems Talent as A Way to Innovate
It’s true that remote, agile talent may not, in itself, be a panacea for all embedded systems design challenges. Rather, it is crucial to understand some of the conditions that may make using agile and remote embedded systems developers difficult and how those challenges can be overcome.
It is also important to underscore the intangible benefits agile talent can bring. Using agile talent can not only help companies conveniently solve problems, but also inject a dose of creativity that may prove essential to a product’s design and success.
When Marcos Oviedo was hired to work remotely for a Silicon Valley startup, the company’s product – a headband to help teach basketball players how best to throw a ball into the net – had no prototype, and the company had no clearly-defined plan on how to develop it. Though working from a different continent, Oviedo built the company’s first prototype through purchasing basic, readily-accessible hardware and repurposing hardware from other devices. For this company, agile embedded systems design talent served as an innovative spark that proved instrumental to successful product development.
Whether through mechanical headbands, wristwatches, or cars, the IoT will continue to expand and rely on embedded systems. Companies will need fluency in embedded systems design to thrive, and agile talent represents a resource that should not be ignored.