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:
- Build and support validation infrastructure through the development of embedded software, device drivers, and test tools;
- Participate in design and code reviews;
- Manage software deployment and update procedures for Raspberry Pi and other embedded platforms;
- Design and develop embedded and application software solutions from requirements to production;
- Typical duties/responsibilities may include, but are not limited to, the following;
- Reviews program for correction, enhancements, or system environment changes;
- Design, develop, code, test and debug system software;
- Working with external partners to acquire & maintain specialized software components;
- Creates software design based on specifications and consultation with manager, product managers, other programmers, and end users;
- Authoring embedded software specifications and validation plans;
- Development of core software and support in the SmartThings Hub software suite;
- Share engineering information and promote open dialogue;
- Design and implement real-time applications on ARM processors interfacing with multiple sensors in C++
- Designing, implementing and testing production level software for embedded microcontrollers;
- Model and implement closed loop digital control (PI, PID) for same. Assembly language as required for critical speed fault detection and protection.
Requirements:
- Strong analytical and interpersonal skills;
- Experience on software systems developed to DO-178B/C Level C or higher;
- Must be willing to work out of an office located in Niskayuna, NY;
- BS degree in computer science, electrical engineering or electrical & computer engineering paired with 2-4 years of work/internship experience;
- Experience in working independently in small cross-functional teams and environments;
- Familiarity of software verification under DO-178B/C is a plus;
- C/C++ programming experience;
- Bachelors degree in Computer Science or Electrical Engineering;
- An understanding of best security practices in software development, especially using the C programming language;
- 5 to 10 years experience in embedded programming in C;
- Ability to architect software from a clean-sheet to full product family with multiple variants;
- Familiarity with high assurance development practices and tools (Polarion, ISO-26262, MISRA C/C++, etc.);
- Familiar with data bus protocols (1553, ARINC 429, RS232/485, CDN or AFDX);
- Bachelor’s Degree in Computer Science or Engineering;
- Familiarity with software configuration management tools such as ClearCase/Mantis.