Job Type: Long-term contract
Job Summary:
We are seeking an experienced Firmware Engineer to develop embedded software for magnetic resonance (MR) platforms. This role requires strong C++ programming skills, hands-on embedded development experience, and the ability to learn complex systems independently and deliver results with minimal supervision.
Key Responsibilities:
Develop firmware features from requirements analysis through design, implementation, integration, testing, and defect resolution.
Write maintainable embedded software using modern C++, object-oriented design, clear interfaces, and appropriate error handling.
Learn existing codebases, hardware interfaces, development tools, and system behavior.
Collaborate with systems, hardware, FPGA, software, and architecture teams to clarify requirements and resolve technical issues.
Diagnose software and hardware interaction problems using debuggers, emulators, analyzers, and system logs.
Create unit and integration tests, support automated testing, and contribute to continuous integration.
Participate in design and code reviews.
Estimate and track work, communicate progress, and identify risks and technical blockers.
Maintain technical documentation and follow applicable quality processes.
Work with globally distributed engineering teams.
Required Qualifications:
Bachelor's degree in Computer Engineering, Electrical Engineering, Computer Science, or a related field, or equivalent practical experience.5+ years of professional experience developing embedded software or firmware.
Strong C++ programming skills, including object-oriented design, memory management, concurrency fundamentals, and debugging.
Hands-on experience with hardware interfaces, real-time systems, or resource-constrained embedded platforms.
Experience with embedded diagnostic tools, including debuggers, emulators, protocol or logic analyzers, and logs.
Experience with Linux development environments, Git, and build or container-based workflows.
Experience with continuous integration, automated testing, and software reviews.
Ability to learn unfamiliar technologies independently and solve problems with limited guidance.
Strong written and verbal communication skills.
Preferred Qualifications:
Experience with real-time operating systems (RTOS) and multithreaded or concurrent software.
Experience with hardware bring-up, board-level debugging, device drivers, communication protocols, or FPGA and firmware integration.
Experience in regulated, safety-critical, or quality-controlled product development.
Experience working in Agile teams using user stories and iterative delivery.