Senior Embedded Software Engineer

Job Description

Top 3 must haves skillset:

  • 5+ years of embedded software development
  • Experience in C/C++14/Linux
  • Strong understanding of OOP Principles

Summary:

Our Client is looking for a Senior Embedded Software Engineer to support their growing team in the Renton office. In this new role, you will be responsible for software development activities for the Positive Train Control (PTC) Communication System (“the communication system”). Within an Agile/Scrum development environment, you will design, develop, test, and maintain software for radio communication networks and the peripheral devices used in these networks. Primarily this involves firmware as well as high level software embedded in MCC radio products and peripherals but could also include desktop computer applications for test or production support or for customer network applications.

Qualifications:

  • Master’s or Bachelor’s degree in Electrical Engineering, Computer Science, Software Engineering or equivalent.
  • Over 5 years of experience in embedded software development.
  • Well versed in monitoring and diagnostic tools necessary for software development.
  • Ability to develop embedded software using C/C++14/Linux.
  • Knowledge of modern C++/STL (C++14 or later) features and best practices.
  • Strong understanding of OOP principals.
  • Understanding of modern software design patterns and methodology (SOLID, etc.).
  • Have a strong ability to create and apply methods to trap and analyze software defects.
  • Ability to work as a team member within an Agile/Scrum environment.
  • Excellent time management and organizational skills.
  • Excellent written and verbal communication skills.

Desired Qualifications:

  • Strong experience with C++14 or later.
  • Experience with real time operating systems.
  • Familiarity with embedded Linux development.
  • Experience with protocol stacks (such as TCP/IP).

Nice to Have Qualifications:

  • Understanding of communication network architectures and their implementation in software.
  • Familiarity with SNMP, DHCP, UDP, TCP.
  • Familiarity with wireless communications systems.
  • Familiarity with Coldfire processor platform or similar embedded processors.
  • Knowledge on Linux OS/Processor running on ARM Cortex-Ax.
  • Familiarity with developing in a Windows environment.
  • Comfortable using basic hardware debugging tools such as Oscilloscopes or Logic Analyzers.
  • Experience with development for software safety.
  • Familiarity with network security practices

Reference Number: 5416