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.
Responsibilities:
- 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.
Requirements:
- 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.