Job Description
The Embedded Controls Software Engineer will utilize state of the art software development processes and tools including Model Based Design to create, verify and document software/firmware programs.
This position will be primarily focused on embedded controls design and integration, specifically the design and implementation of real time control logic that governs the functioning of a refrigeration unit, as well as communicating with the outside world via display user interfaces and in other forms (IoT devices, Apps, flash drives).
* Applying agile software lifecycle management and model based design principles and tools to design and implement real time embedded software solutions for our controls platforms
* Interface with refrigeration systems engineers to understand requirements and applications and translate them into specific hardware and software specifications.
* Develop and maintain specification documents.
* Design, implement, and automate unit tests.
* Prototype new solutions to prove technology concepts.
* Participate in sprint and release planning activities, sizing of work tasks.
* Contribute to improving software development processes with new ideas and introducing new tools, including model based design.
Education
* BS degree in Computer or Electrical Engineering with 4 to 7 years of embedded controls experience
* MS degree in Computer or Electrical Engineering with 3 to 5 years of embedded controls experience
* PhD degree in Computer or Electrical Engineering with 1+ years of embedded controls experience
Required Skills
* Strong C++ and C programming skills for embedded systems applications
* Development of real time applications with use of RTOS including Embedded Linux
* Design of embedded software modules as part of an overall architecture
* Proposal, implementation, and validation of architectures of control modules.
* Formulation and execution of unit testing, debugging, and troubleshooting
* Experience with PIC, Renasas, X86 and ARM Microcontrollers or similar
* Experience with model based design tools and methods including software modeling (UML/Rhapsody, Simulink/Stateflow), autocode generation, testing and verification
* Familiarity with software development and lifecycle management tools (e.g. IBM Jazz RTC)
Desired Skills:
Software Development:
* Actively participate in the project planning, sizing of development tasks
* Write specifications, test plans and document designs
* Participate in software code or model inspections and design reviews
* Develop software using C++ with Object Oriented Design methods
* Knowledge of control system and system diagnostics algorithms and their design process
* Use of field communication protocols (CAN, MODBUS) and other interface protocols, wired and wireless (USB, Wi-Fi, BT).