Discover the requirements, duties, responsibilities, and skills that an embedded developer job description should include.
An embedded developer develops, designs, and tests the software and hardware that makeup embedded systems. Embedded systems are computing systems that are integrated into other devices and products. You’ll find embedded systems in all of your electronic devices. These are things like microprocessors, microcontrollers, and Graphic Processing Units (GPUs).
The primary responsibility of an embedded developer is to create efficient, reliable, and high-quality software that meets the specific requirements of a device or product the software that will be integrated with.
Embedded developer job description template
We are seeking a highly skilled embedded developer to design, develop, and maintain software and firmware for our embedded systems. The successful candidate will work closely with our hardware team to ensure seamless integration of software and firmware with our products. The ideal candidate will have a strong background in embedded systems development, experience with programming languages such as C and C++, and a passion for solving complex problems.
- Co-design, program, and test the firmware of our IoT devices
- Collaborate with hardware teams to ensure software integration
- Work with the Network, Backend, and DevOps engineers to maintain and optimize the communication system between our IoT devices and our cloud infrastructure.
- Work with the team on testing the complete system
- Write unit/ integration/ functional tests and keep high code quality
- Research for, and evaluate new technologies to improve the processes or the code bases
- Bachelor's degree (or higher degree) in electrical engineering, embedded systems, control engineering, communications engineering, robotics, or similar fields
- +3 years of experience with programming microcontrollers, and working with digital buses, communication protocols, memories, ADCs, etc.
- +3 years of experience with C/C++
- +2 years of experience in Python, Unix shell
- Experience with software development tools such as debuggers, emulators, and compilers
- Experience in programming system-on-chip modules (e.g. u-Blox, Nordic Semiconductor, and Quectel RF modules for IoT)
- Experience with different communication protocols (TCP/ IP, MQTT, CoAP, etc)
- Experience with Real-time Operating Systems (e.g., FreeRTOS, Zephyr and Mbed OS) and Unix
- Master's degree in Computer Science, Electrical Engineering, or a related field
- Experience with low-level programming and device driver development
- Knowledge of networking protocols and communication interfaces such as Bluetooth, Wi-Fi, USB, CAN, Ethernet, and SPI/IPC
- Familiarity with agile software development methodologies
- Experience with version control systems such as Git
The job description explained
Our embedded developer job description is just an example of what you’ll most likely find when you search for embedded jobs advertised on LinkedIn, Glassdoor, and Joberty. There will be some key differences between each job description. We’ll explain these differences so that you can avoid setting expectations too high or too low.
Degree - Almost all embedded developers hold a Bachelors's or Masters's degree. The bar to entry for embedded roles is far higher than other developer roles like Frontend, Backend or Fullstack. Most (if not all) embedded jobs will require an Electrical Engineering degree or Computer Science degree (this is highly dependent on the type of hardware)
Years of experience - Is the company looking for a Junior, mid or senior embedded developer? The sample job description above shows what a typical mid-level embedded job will look like — let’s go through the different experience brackets. Entry-level positions will require a degree and usually 0-2 years of work experience (i.e. an internship). Junior positions could be anywhere from 2 years to 3 years of experience. Mid-level is from 3 years upwards to 5 years. And usually, a senior-level position starts with 5 years of experience.
Programming languages - Every embedded developer (even entry-level) must be proficient in C and C++. These are the languages chosen for the majority of hardware. Years of experience will coincide with the experience bracket (junior, mid, and senior). Many job descriptions will also seek Python or SQL experience (usually as a secondary skillset) so that you can read and write scripts. If your product doesn’t use Python or SQL, go ahead and remove them from the job description.
Operating Systems - This will vary depending on what system your product or team uses. An embedded developer building firmware for an electronic vehicle is going to be using a different OS than one creating firmware for an Android device. Real-time Operating System experience is going to depend on what type of embedded developer the company is looking for and what industry they are working in.
Communication protocols - Communication protocols in embedded engineering are sets of rules and standards that govern the exchange of data between two or more devices. These protocols ensure that the data is transmitted accurately, efficiently, and securely. It’s essential that an embedded developer understand the most common protocols (TCP/ IP, MQTT, CAN, CoAP)
Types of Embedded developer - There are a few types of embedded developers with different specialisations: 1) Microcontroller firmware engineer, 2) Embedded Linux engineer, 3) Embedded applications engineer, 4) Embedded network engineer, 5) Embedded IoT application developer, and 6) Cybersecurity embedded developer.
Embedded Systems Engineer Industry Statistics
If you are working in Europe there may be additional language requirements based on the country that you are working in. Even if the embedded team is English-speaking, the hardware teams might be communicating in a different language, so it’ll be advantageous for efficient collaboration if you are proficient in both languages.
Companies that hire embedded developers
Here are some of the companies that hire the most embedded developer in Europe:
|Siemens AG||Munich, Germany||Electrical Engineering|
|Robert Bosch GmbH||Stuttgart, Germany||Engineering and Technology|
|Continental AG||Hanover, Germany||Automotive|
|STMicroelectronics||Geneva, Switzerland||Semiconductor Manufacturing|
|Thales Group||Paris, France||Telecommunications|
|ABB||Zurich, Switzerland||Electrical Engineering|
|Infineon Technologies||Munich, Germany||Semiconductor Manufacturing|
|Volvo Group||Gothenburg, Sweden||Automotive and Transport|
|BMW Group||Munich, Germany||Automotive|