Firmware Engineer (C++)

Techclub, Inc
Wisconsin Dells, WI, United States
21 days ago
Apply on www.dice.com
Prepare application

Role details

Contract type
Contract
Employment type
Full-time (> 32 hours)
Experience level
Expert
Experience required
5 years minimum
Working hours
Regular working hours
Job source

Tech stack

Board Bringup Adobe InDesign Agile Methodology Automation of Tests C++ (Programming Language) Software Quality Code Review Communications Protocols Computer Engineering Continuous Integration Software Debugging Linux
+23 more
Programming Tools Device Drivers Memory Management Embedded Software Emulators Firmware Field-Programmable Gate Array (FPGA) Hardware Interface Design Integrated Development Environments Object-Oriented Software Development Real-Time Operating Systems Software Engineering Software Technical Review Diagnostic Tools Multithreading Real Time Systems Concurrency Git Integration Tests Information Technology Production Code C++14 Software Version Control

Job description

Role Focus: Deliver high-quality firmware while independently learning unfamiliar systems, resolving technical ambiguity, and progressing work with minimal day-to-day guidance., We are seeking a self-directed 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. Success in this role requires strong C++ fundamentals, practical embedded development experience, disciplined engineering practices, and the ability to quickly learn a complex technical environment and make progress with limited supervision., * End-to-End Ownership: Own assigned firmware features or components from requirements analysis through design, implementation, integration, verification, and defect resolution.

  • System Understanding: Independently learn existing code, hardware interfaces, development tools, and system behavior; identify the right technical resources and ask focused questions when needed.

  • Software Development: Develop maintainable embedded software in modern C++ using sound object-oriented design, clear interfaces, and appropriate error handling.

  • Cross-Functional Collaboration: Collaborate with systems, hardware, FPGA, software, and architecture teams to clarify requirements, evaluate tradeoffs, and resolve cross-functional issues.

  • Debugging & Diagnostics: Use debuggers, emulators, analyzers, logs, and other diagnostic methods to isolate complex software and hardware interaction problems.

  • Testing & CI/CD: Create unit and integration tests, contribute to automated testing, and support continuous integration to improve software quality and regression coverage.

  • Code Reviews: Participate in design and code reviews; provide constructive feedback and incorporate review input promptly.

  • Agile Planning: Estimate, plan, and track work through user stories; communicate status, risks, dependencies, and technical blockers early and clearly.

  • Documentation: Follow applicable quality processes and produce clear technical documentation that supports design traceability, testing, and long-term maintenance.

  • Teamwork: Work effectively with globally distributed teams and contribute to consistent design and architectural improvements across MR platforms.

Requirements

  • Education: Bachelor’s degree, or equivalent practical experience, in Computer Engineering, Electrical Engineering, Computer Science, or a related field.

  • Experience: 5+ years of professional experience developing embedded or firmware software.

  • C++ Expertise: Strong C++ programming skills, including object-oriented design, memory management, concurrency fundamentals, debugging, and writing maintainable production code.

  • Embedded Systems: Hands-on experience developing software that interacts with hardware, real-time systems, device interfaces, or resource-constrained embedded platforms.

  • Problem Solving: Proven ability to learn unfamiliar technologies and codebases independently, break down ambiguous problems, and deliver results with minimal guidance.

  • Diagnostic Tools: Experience with embedded development and diagnostic tools such as debuggers, emulators, protocol or logic analyzers, and system logs.

  • Dev Tools & OS: Experience with Linux-based development environments, source control such as Git, and build or container-based workflows.

  • Software Practices: Experience with continuous integration, automated testing, and disciplined software review practices.

  • Communication: Clear written and verbal communication skills, including the ability to explain technical decisions, raise risks, and collaborate across functions.

Preferred Qualifications

  • Experience with a real-time operating system (RTOS) and multi-threaded or concurrent software.

  • Experience with hardware bring-up, board-level debugging, device drivers, communication protocols, or FPGA and firmware integration.

  • Experience working in a regulated, safety-critical, or quality-controlled product-development environment.

  • Experience working in Agile teams and planning work through user stories and iterative delivery.

Apply for this position

This job is hosted externally. Click below to view the full posting and apply.

Apply on www.dice.com
Prepare application

Good distractions

Loading talks and stories from around this role…