Firmware Engineer
Royalla Santhosh RajUnited StatesMIDPosted 46m ago
C++Embedded DevelopmentObject-Oriented DesignFPGADebuggingUnit TestingIntegration TestingContinuous Integration
About the Role
We are seeking an experienced Firmware Engineer to contribute to embedded software development for MR platforms. The engineer will work across firmware, systems, hardware, and architecture teams to translate requirements into reliable software.
Key Responsibilities
• Own assigned firmware features or components from requirements analysis through design, implementation, integration, verification, and defect resolution
• Independently learn existing code, hardware interfaces, development tools, and system behavior; identify the right technical resources and ask focused questions when needed
• Develop maintainable embedded software in modern C++ using sound object-oriented design, clear interfaces, and appropriate error handling
• Collaborate with systems, hardware, FPGA, software, and architecture teams to clarify requirements, evaluate tradeoffs, and resolve cross-functional issues
• Use debuggers, emulators, analyzers, logs, and other diagnostic methods to isolate complex software and hardware interaction problems
• Create unit and integration tests, contribute to automated testing, and support continuous integration to improve software quality and regression coverage
• Participate in design and code reviews; provide constructive feedback and incorporate review input promptly
• Estimate, plan, and track work through user stories; communicate status, risks, dependencies, and technical blockers early and clearly
• Follow applicable quality processes and produce clear technical documentation that supports design traceability, testing, and long-term maintenance
• Work effectively with globally distributed teams and contribute to consistent design and architectural improvements across MR platforms
Requirements
• 5-7 years of experience in firmware engineering
• Strong C++ fundamentals and practical embedded development experience
• Disciplined engineering practices and the ability to quickly learn a complex technical environment
• Experience with hardware interfaces, development tools, and system behavior
• Knowledge of object-oriented design, clear interfaces, and appropriate error handling
• Familiarity with debuggers, emulators, analyzers, logs, and other diagnostic methods
• Experience with unit and integration testing, automated testing, and continuous integration
• Ability to participate in design and code reviews and provide constructive feedback
• Experience with quality processes and technical documentation
• Ability to work effectively with globally distributed teams