Description

Title: Embedded Software Engineer

Location: Menomonee Falls, Wisconsin
Job Description

The Lead Embedded Software Engineer will develop embedded software/firmware for high performance, real-time controls and protective relays used for smart grid applications in the electrical power distribution industry.

In this role, you will collaborate with a multi-discipline engineering team (software, hardware, and test) to perform the following functions

In This Function You Will
Define requirements between hardware and software subsystems. . Design and implement features for power system intelligent electronic devices, including power system protection algorithms, system diagnostics/prognostics, communication protocols, cybersecurity, and other relay, control and monitoring functions using C/C++. . Lead high-level design activities for new product features. . Lead system interface design activities and lead the resolution of integration issues. Participate in tasks related to new product development/feature development including planning, task estimation, design, programming, unit testing, peer review, integration and release. . Collaborate with external and internal customers, such as Marketing, Service, Operations and other engineering teams throughout the product development life cycle. Participate in the analysis and specification of embedded software subsystems. . Design and implement unit test in support of developer testing activities and integration with Continuous Integration (CI) pipelines. . Participate and lead design and code reviews. . Plan and execute tasks in collaboration with the product team to ensure project objectives are met. . Evaluate and recommend software development process improvements in collaboration with engineering management

Qualifications

Bachelor's degree in Engineering, Computer Science, Physics or Mathematics from an accredited institution. . Five (5) years' experience working in embedded software. . Experience with C/C++ . Embedded Linux experience. . Ability to work effectively in an Agile Scrum (or other iterative development) environment. . Strong understanding of Object Oriented Design (OOD) principles. . Strong understanding of real-time operating system (RTOS) concepts. . Experience with test-driven development (TDD) and a good familiarity with unit test frameworks (e.g. GoogleTest, GoogleMock, xUnit++, etc.). . Experience with multi-core embedded systems
 

Education

Bachelor's degree