JOBSEARCHER

Embedded Software Engineer

Job Title: Embedded Firmware EngineerLocations: Redmond, WA (Preference) or Sunnyvale, CA - OnsiteDuration: 12 Months (Possibility of extensions)We are looking for a seasoned Embedded Firmware Engineer with deep experience in low‑level firmware development for embedded systems. The ideal candidate brings strong C/C++ expertise, RTOS experience, and a solid understanding of the full software development lifecycle, with exposure to graphics/display or AR/VR systems being a strong plus.Must‑Have Qualifications8+ years of industry experience developing and testing low‑level firmware for embedded systems10+ years of strong programming experience in C and C++, including production‑quality codeHands‑on experience across the full software development lifecycle: requirements, design, development, testing, and deliveryExperience developing firmware for embedded environments with portability across processors and platformsStrong experience with RTOS and multi‑threaded applicationsExperience working with CI/CD tools and processesScripting experience (Python or similar) for test automation and utilitiesStrong debugging skills across the full software stack, including hardware interactionsBachelor’s degree in Computer Science, Software Engineering, or a related field.Nice‑to‑Have / PreferredKnowledge or exposure to Graphics and Display systemsExperience with or exposure to AR/VR technologiesBackground in developing or optimizing firmware for graphics/display pipelinesExperience collaborating with vendors and cross‑functional internal teamsStrong ability to work independently and manage priorities effectivelyResponsibilities:Develop high‑quality, efficient embedded firmware using C and C++Design and optimize firmware for graphics and display pipelines to support product use casesModify, enhance, and integrate firmware, device drivers, and software stacks to meet project needsDebug and resolve complex issues across firmware, software, and hardware layersDeliver quick workarounds for time‑critical issues while developing long‑term solutionsWrite new tests and maintain existing unit tests, manual tests, and CI‑based automationCollaborate with internal engineering teams and external vendors throughout the development lifecycle