Senior Embedded Software Engineer Job Description

Senior Embedded Software Engineer Job Description Template

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

Responsibilities:

  • Create maintainable, well documented code and tests; participate in code reviews; troubleshoot issues; optimize system performance;
  • Keep abreast of the latest technology trends & best practices, and understand when might be the appropriate time to adopt them;
  • Participate in agile software development practices such as standups, estimating, prioritization, and retrospectives;
  • Support algorithm implementation, system integration, test, and debug;
  • Implement drivers in C/C++ and write test scripts to verify them across a variety of operating scenarios;
  • Identify points of weakness in the software and electronics; help develop plans for improving and robustifying the product;
  • Participate in interviewing and onboarding new team members;
  • Interface with hardware design and development;
  • Coordinate technical approach with cross-discipline team members;
  • Review code and design;
  • Develop and improve software development processes and procedures;
  • Perform analysis, resolution, and tracking of defects and improvement to closure;
  • Design, develop, code, test and debug system software;
  • Contribute to the continuous improvement of best practices and processes within the engineering department;
  • Design systems that can include components from embedded electronics to firmware to frontend, in collaboration with clients and teammates.

Requirements:

  • Travel as needed, up to 10% throughout year;
  • Confidence to represent organization as a technical contact on projects;
  • Support various amounts of overtime (paid) depending on project needs;
  • Ability to follow good software engineers processes;
  • Proficient knowledge of software tools supporting Integrated Development Environments (IDE), version control, defect reporting and scripting;
  • Exercises independent judgment and sometimes defines new procedures and practices to improve team and company performance;
  • Proficient in Microsoft Office applications;
  • Proficient ability to use the appropriate processes, procedures, and tools throughout the software development life cycle;
  • Familiarity setting up various embedded toolchains, build, and debugging environments;
  • Proficient programming in ROS, C, Python;
  • Experience in reading schematics and data sheets;
  • Experience writing unit test, code coverage profiling, and static analysis tools;
  • Strong interpersonal and communication skills;
  • Strong C++ skills, Object Oriented Design concepts, UML, and experience in real time operating systems for embedded systems;
  • 5+ years experience in systems testing or equivalent field.