Embedded Software Engineer

Embedded Software Engineer I designs, develops, tests, debugs, and implements embedded software and systems. Develops software and firmwares source code in C/C++, Embedded C, and other languages. Being an Embedded Software Engineer I understanding of common communication interfaces like SPI, I2C, USB, UART, and others. Utilizes version control, simulation, debugging, and other development tools. Additionally, Embedded Software Engineer I collaborates cross functionally with hardware engineers. Provides engineering support for testing, deployment, and updates. Requires a bachelor’s degree in computer science, electrical engineering, or related field. Typically reports to a manager or head of a unit/department. The Embedded Software Engineer I work is closely managed. Works on projects/matters of limited complexity in a support role. To be an Embedded Software Engineer I typically requires 0-2 years of related experience.

Embedded Software Engineer Job Description Template

Our company is looking for a Embedded Software Engineer to join our team.


  • System and sub-system design and verification;
  • Team working, communicating with and providing technical support to other departments, although working independently if necessary;
  • Communications software;
  • Applying a variety of accepted technology concepts as well as having the resourcefulness to apply new methodologies and technologies;
  • Integration of new hardware and software systems;
  • Software architecture design;
  • Design, Implementation, Test, and Delivery of embedded systems;
  • Product / Project documentation (e.g. design notes, user manuals etc);
  • Design and development of embedded software-implementing functionality for audio SDKs;
  • Development and maintenance of in-house tools, demo systems, software specifications, instructions, application notes;
  • Supporting strategic technology direction through own work and by proposing innovative technology development, application and solutions;
  • Tablet and mobile app development;
  • Documenting the design and development process from requirements capture to verification and release;
  • Real-time embedded software development for DSP and micro-controllers;
  • Write C code for a processor inside an FPGA.


  • Software to handle various communications including – I2C, SPI, UART, USB, Ethernet etc;
  • Combination of C and assembler for optimising speed/memory usage;
  • Strong embedded software experience including Linux OS build, configuration and debug;
  • Network knowledge (IP stack);
  • 3+ years Embedded Software programming experience (happy to consider Graduate to Senior Engineer level);
  • Ideally some knowledge of Linux;
  • Using software IDE and compilers;
  • Professional experience as an embedded software engineer post-graduation;
  • Design and implement software to meet customer and internal requirements, defining interfaces to;
  • Experience with Acoustics;
  • ARM assembler knowledge is a bonus;
  • Highly proficient Embedded C programming;
  • Strong problem solving and communication skills are essential;
  • Experience working alongside and collaborating with controls and hardware engineering teams;
  • Ability to work as part of a team and individually.