Embedded Software Developer – Diagnostics
- Location: Murray Hill, New Jersey
- Type: Contract
- Job #35783
We are seeking a Diagnostic Software Engineer with strong embedded software and low-level hardware programming experience. The successful candidate will work closely with hardware and software teams to develop diagnostic solutions, troubleshoot complex issues, and thoroughly validate product hardware functionality.
Requirements
- Bachelor’s or Master’s degree in Electrical Engineering, Telecommunications Engineering, Computer Science, or a related field, with at least 3 years of recent, relevant experience.
- Strong understanding of low-level software development and direct hardware access, including the ability to work from device data sheets to access embedded controllers and peripherals.
- Knowledge of associated low-level hardware interface protocols.
- Experience working with software development tools and Linux operating environments.
- Understanding of Continuous Integration (CI) concepts and version control practices.
- Ability to read and interpret product hardware schematics and perform digital circuit analysis.
- Demonstrated experience analyzing, troubleshooting, and debugging hardware and software failure scenarios.
- Ability to develop comprehensive diagnostic code designed to thoroughly exercise and validate the hardware functionality of an assigned product.
- Strong problem-solving skills and a demonstrated ability to drive the investigation and resolution of complex product issues.
- Experience with embedded software development.
- Proven experience working with bus and interface technologies such as:
- SPI
- I2C
- MDIO
- PCIe
- Device drivers
- Strong programming experience with C/C++ and Python.
- Experience with Git or similar version control systems.
- Strong knowledge of the Linux operating system, including shell scripting.
- Strong teamwork and collaboration skills with a commitment to software quality and engineering excellence.
Nice to Have
The ideal candidate will also have experience working with optical telecommunications systems.