Embedded Software Engineer Job Description

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.