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).