Embedded systems engineers design, develop, and maintain the hardware and software that runs on embedded systems. As advances and investments in smart technology continue to grow, so does the demand for embedded systems engineers. In 2017, the role of embedded systems engineer was listed as one of the five best engineering jobs.
Finding a qualified embedded systems engineer can take some time. This article will help you streamline the process and find the right resource for your next embedded system design project.
Why do you need an embedded systems engineer?
There are two common scenarios that would lead you to look for an embedded systems engineer. You may be new to this and have zero in-house embedded engineers and little to no knowledge around embedded system design. Or, you may have a dedicated in-house engineering team, but additional resources are required. These extra resources may be permanent, or you may have a new project that requires additional, yet temporary, assistance.
Depending on which scenario matches your business, you will need to ask yourself certain questions to find the right resource. Once you define your needs, you need to know what to look for.
Qualities to look for in an embedded systems engineer
The most important thing to do before searching for an embedded systems engineer is to set the right expectation. It is unlikely you will find someone who is already knowledgeable in the specific domain in which you operate because there are so many narrow domains in embedded systems. This is a key differentiator from other software fields, making it an important factor to keep in mind during your search process.
Your focus should instead be on finding someone who has a general knowledge of embedded systems in your industry. For example, if you operate within the medical industry, you may not find someone who has worked specifically in the narrow area in which you focus, but any embedded engineer who has worked in the larger medical field will have a valuable understanding of the regulations and certifications pertinent to this area.
Remember, the role of the embedded engineer is to deliver the hands-on work required for implementation. If you have a large in-house team, then you already have a lot of domain knowledge. You can focus purely on searching for an experienced embedded engineer, regardless of specific industry experience. The engineer can easily be brought up to speed on domain-specific issues by in-house resources. Even if this is your first embedded engineer, narrow domain-specific experience is not a requirement, so don’t get hung up looking for it.
Key qualities to look for in an embedded systems engineer are:
- Comfort working in a mixed hardware and software environment
- Ability to work within the restrictions of having test hardware on their desktop
- Ability to work in an environment that is not a standard desktop or web application environment. Embedded systems typically have constraints placed on them in terms of RAM, ROM, and power. Many contemporary software developers, especially computer science grads, have never known such limitations. A good embedded engineer knows how to design within these constraints.
- Knowledge of IoT is becoming more important. As IoT continues to grow, embedded engineers must stay up to date on the latest sensors and cloud infrastructure.
In addition to these qualities, some specific skills to look for are:
- An understanding of operating systems
- Competency in C, C++, and at least one assembly language – a level of comfort in programming at the machine level is critical even when the work is done in higher-level languages
- Knowledge in algorithms, microprocessors, microcontrollers, basic and advanced protocols, and build environments
- Familiarity with in-circuit debug tools, oscilloscopes, and other diagnostic equipment
Hiring an FTE versus a consultant
As you search, you need to know if you’re better off hiring a full-time equivalent (FTE) or a consultant. If you need an additional resource for the long-term, then an FTE is the way to go. There are three situations where hiring a consultant may be a better move.
- A new project requires a lot of upfront work, but after the first release is in production, the demand for resources decreases.
- You need legacy support for older systems while in-house resources are redirected to a new project. As an added bonus, using consultants for legacy work keeps your in-house engineers happy, as they are able to work on new and exciting projects as they arise.
- You need expertise beyond basic programming. Hiring a new FTE restricts you to benefitting from that one individual’s specific skill set. A consultant has access to a larger network of resources within their organization. In other words, the engineering consultant works with a team of other embedded engineers who can be brought in to help if needed. In fact, some consulting firms take a team approach, providing you with one FTE divided among individuals with varying skills such as quality control, embedded software development, usability, and documentation. This gives you multiple resources for the price of one.
Spending some time upfront to define your needs and understanding what to look for in an embedded systems engineer will help you identify the right match for your business. Weighing the options of a FTE versus a consultant is an important part of the process. You must be realistic about whether your needs are long or short-term, and if one engineer can meet the skills required of the job. Consulting provides a great alternative for shorter, temporary projects that can benefit from a mixed skill set.