remote
Software Engineer, Device - Johnson Controls
Software Engineer
Develop and maintain embedded firmware for mission‑critical devices, integrating hardware and software while ensuring reliability, performance, and security using C++, Linux, and modern development tools.
About the role
Key Responsibilities
- Design, implement, and test embedded firmware for device platforms supporting thermal management and energy‑efficiency applications.
- Develop device drivers and low‑level software for Linux‑based systems, ensuring real‑time performance and reliability.
- Collaborate with hardware engineers to define interfaces, perform integration testing, and resolve hardware‑software issues.
- Maintain code quality through code reviews, unit testing, and continuous integration pipelines using Git.
- Document firmware architecture, APIs, and troubleshooting procedures for field support teams.
Requirements
- Bachelor’s degree in Computer Engineering, Electrical Engineering, or related field with 3+ years of embedded software development experience.
- Proficiency in C++ and Embedded C for Linux‑based devices.
- Hands‑on experience with device driver development, hardware bring‑up, and debugging tools (e.g., JTAG, oscilloscopes).
- Familiarity with Python scripting for test automation and build processes.
- Experience using Git, CI/CD pipelines, and Agile development methodologies.