
Senior Embedded Software Engineer
- New Castle, DE
- Permanent
- Full-time
- Specify, design, implement, test, and support embedded systems for new and existing instrument systems
- Design, implement, and test C and C++ applications in embedded environments including bare-metal, RTOS, and Linux
- Apply knowledge of signal processing and filtering and also control systems to maximize performance of instrument subsystems, including motors and heating elements
- Follow and participate in software development best-practices, including code and design reviews, automated testing at various levels of integration, SOLID principles, etc.
- Analyze and improve efficiency, stability, and scalability of system processing resources
- Collaborate with a broad range of stakeholders, including:
- Product Management and Applications Specialists to define requirements and customer acceptance criteria
- Hardware Engineering to satisfy system-level design goals
- System Test Engineering to ensure robust and reliable systems
- Very strong C and/or C++ software development skills for embedded targets, including real-time
- Very strong embedded system architecture skills, including:
- Device interfaces (ADC, DAC, PWM, etc.) and protocols (CAN, SPI, I2C, Ethernet, etc.)
- Processing environments e.g. bare-metal, RTOS, and Linux technology stacks
- Microarchitectures including a variety of ARM, x86, PIC, and DSP
- Strong analytical and communication skills
- Familiarity with HW design and troubleshooting
- Familiarity with modern communication protocols and security
- Advanced networking topics, including REST APIs and web technologies
- Digital signal processing analysis and simulation
- PID control for stepper and three-phase motor servos
- 5+ years of experience
- Bachelor of Science in Electrical Engineering or equivalent field
#LI-Onsite