Designs, Develops, and maintains products with embedded systems. Designs and develops software and supports hardware design for real-time control and data acquisition in embedded product platforms with diverse scope and complexity. Develops and recommends solutions to a variety of complex engineering requirements to ensure that design objectives are met, including required program scope, cost, and schedule constraints. Projects at this level are assigned to develop in-depth knowledge and skills and to build knowledge of the organization, processes, and customers.

.




  • Produce software designs that meets requirements
  • Responsible for architecture design and implementation of software to interface with existing and future systems
  • Define software systems required to support Design Verification and Function Testing
  • Work with Electronics Developers to ensure that electrical designs meet software requirements
  • Study electrical designs to ensure correct use of all facilities within the software being implemented
  • Write source code required for completed designs
  • Ensure that source code is properly unit tested and historically tracked
  • Ensure that designs, design decisions, and implementations are documented
  • Provides technical information for review with product engineering teams applying consistent engineering practices, standards, and documentation methods (e.g., structured design process; customer design reviews). 
  • Compiles and analyzes operation, test, and research data, develop acceptance, engineering evaluation, development and qualification/certification test plans, procedures, and reports.






  • Bachelor's degree (BS) in Computer Science, Electrical Engineering, or relevant engineering discipline.  Master's degree (MS preferred).
  • Extensive experience in embedded software development using C and C++
  • Familiar with scripting languages (bash, cmake, python) 
  • Competent in Test Driven Development (TDD), version control, and use of automation tools
  • Competent understanding of microcontroller systems
  • Strong experience in RTOS
  • Experience with troubleshooting tools (JTAG, SWD, oscilloscopes, logic analyzers).
  • Experience in low-pin-count chip communication buses (I2C, UART, SPI).