What are the responsibilities and job description for the Embedded C++ Engineer position at Reqroute, Inc?
Embedded Linux Software Engineer
Location: Andover, MA – Onsite
Job Summary
We are seeking an experienced Embedded Linux Software Engineer with strong hands-on expertise in C/C and Linux to support the development of embedded software for medical device applications. The ideal candidate will have experience with multithreaded Linux applications, hardware interfaces, Linux internals, Qt-based UI development, networking, automated testing, and CI/CD.
The engineer will work closely with a team of 7 software engineers, contribute to sprint commitments and program increment objectives, and collaborate with internal and external technical teams.
Key Responsibilities
- Develop and maintain embedded software using C/C on Linux platforms.
- Develop, debug, and optimize multithreaded applications in Linux environments.
- Work hands-on with hardware interfaces including PCIe, CAN, I2C, I2S, UART, SPI, USB, and similar interfaces.
- Troubleshoot hardware/software integration issues in embedded Linux environments.
- Work with Linux internals, including device drivers, bootloaders, kernel, and root file systems.
- Develop and debug Linux-based UI applications using the Qt framework.
- Develop and support applications using TCP/IP and RESTful APIs.
- Work extensively from the Linux command line using tools/editors such as Vim.
- Develop and maintain CI/CD pipelines using tools such as Jenkins or GitLab CI.
- Create and execute unit and component-level tests for C/C applications, both manually and through automation.
- Use testing frameworks such as GoogleTest, Unity, or similar frameworks.
- Develop automation, testing, and tooling scripts using Lua, Python, or Shell.
- Troubleshoot complex software and system-level issues and provide effective solutions.
- Collaborate with internal engineering teams and external contractors.
- Review technical deliverables and ensure software development activities meet project requirements.
- Support a fast-paced, dynamic development environment while managing multiple priorities.
Required Qualifications
- 5 years of professional software development experience.
- Strong hands-on experience with C/C and Linux.
- Experience in embedded systems, preferably within the medical device industry.
- Proven experience developing and debugging multithreaded Linux applications.
- Hands-on experience with multiple hardware interfaces such as:
- PCIe
- CAN
- I2C
- I2S
- UART
- SPI
- USB
- Strong understanding of Linux internals, including:
- Device Drivers
- Bootloader
- Linux Kernel
- Root File System
- Hands-on experience developing and debugging Qt-based UI applications on Linux.
- Experience with TCP/IP and RESTful API-based applications is preferred.
- Strong Linux command-line experience and familiarity with Vim or similar code editors.
- Solid understanding of CI/CD pipelines, preferably with Jenkins or GitLab CI.
- Experience writing unit and component-level tests for C/C applications.
- Experience with testing frameworks such as GoogleTest or Unity.
- Experience with Lua, Python, or Shell scripting for automation, testing, and tooling.
- Strong problem-solving and troubleshooting skills.
- Excellent written and verbal communication skills.
- Ability to collaborate effectively with external contractors and review technical deliverables.
Top Skills
- C/C Embedded Software Development
- Linux
- Embedded Systems
- Multithreading
- Hardware Interface Integration
- Linux Kernel / Drivers / Bootloader
- Qt
- TCP/IP & REST APIs
- CI/CD – Jenkins / GitLab CI
- GoogleTest / Unity
- Python / Lua / Shell Scripting
Team & Project Expectations
- Develop hands-on C/C software.
- Support and augment an internal team of 7 software engineers.
- Deliver against sprint commitments and program increment objectives.
- Collaborate with cross-functional engineering teams and external contractors.
- Contribute to technical reviews, testing, debugging, and software delivery.