Contract Senior Software Engineer - WebGPU-Firefox/Gecko (Rust)
Remote Canada; Remote US·Posted today
rust
<h2><span style="font-size: 12pt;"><strong>The role</strong></span></h2> <p><span style="font-weight: 400; font-size: 12pt;">You will help the Firefox WebGPU team clear its backlog of correctness and security bugs in wgpu, Firefox’s WebGPU implementation, so WebGPU can ship on Linux and Android. You will take on well-defined, prioritized issues, land fixes upstream in the open-source wgpu project and in Gecko, and free the core team to focus on the remaining release-blocking work.</span></p> <h2><span style="font-size: 12pt;"><strong>Responsibilities</strong></span></h2> <ul> <li style="font-weight: 400; font-size: 12pt;"><span style="font-weight: 400; font-size: 12pt;">Fix prioritized correctness and validation bugs from the wgpu "WebGPU for Firefox" project (the “Current”, “CTS Burndown”, “Linux release” and “Android release” columns), plus security and fuzzer-reported bugs.</span></li> <li style="font-weight: 400; font-size: 12pt;"><span style="font-weight: 400; font-size: 12pt;">Diagnose and fix application blockers, real apps and demos that do not yet work in Firefox Nightly (the webgpu-apps meta-bug).</span></li> <li style="font-weight: 400; font-size: 12pt;"><span style="font-weight: 400; font-size: 12pt;">Work through WebGPU conformance test suite (CTS) failures.</span></li> <li style="font-weight: 400; font-size: 12pt;"><span style="font-weight: 400; font-size: 12pt;">Write and pass tests, work through code review with wgpu maintainers and Gecko module owners, and land upstream.</span></li> <li style="font-weight: 400; font-size: 12pt;"><span style="font-weight: 400; font-size: 12pt;">Coordinate with the Firefox WebGPU team on task selection and priority.</span></li> </ul> <h2><span style="font-size: 12pt;"><strong>Scope and references</strong></span></h2> <ul> <li style="font-weight: 400; font-size: 12pt;"><span style="font-weight: 400; font-size: 12pt;">wgpu "WebGPU for Firefox" GitHub project </span></li> <li style="font-weight: 400; font-size: 12pt;"><span style="font-weight: 400; font-size: 12pt;">webgpu-apps meta-bug (Bugzilla) blockers</span></li> <li style="font-weight: 400; font-size: 12pt;"><span style="font-weight: 400; font-size: 12pt;">WebGPU conformance test suite (CTS) expected-failure lists</span></li> <li style="font-weight: 400; font-size: 12pt;"><span style="font-weight: 400; font-size: 12pt;">Specific issue lists to be provided by the WebGPU team</span></li> </ul> <h2><span style="font-size: 12pt;"><strong>Definition of done</strong></span></h2> <p><span style="font-weight: 400; font-size: 12pt;">Reviewed fixes landed upstream in wgpu and in Gecko, with tests, measurably reducing the P2/P3 backlog, app blockers, and CTS failures, contributing to WebGPU riding the trains on Linux and Android.</span></p> <h2><span style="font-size: 12pt;"><strong>Required qualifications</strong></span></h2> <ul> <li style="font-weight: 400; font-size: 12pt;"><span style="font-weight: 400; font-size: 12pt;">Strong Rust.</span></li> <li style="font-weight: 400; font-size: 12pt;"><span style="font-weight: 400; font-size: 12pt;">Experience in a large systems or graphics codebase, and the ability to ramp on wgpu quickly.</span></li> <li style="font-weight: 400; font-size: 12pt;"><span style="font-weight: 400; font-size: 12pt;">Comfort working upstream in an open-source project (public issues and code review).</span></li> <li style="font-weight: 400; font-size: 12pt;"><span style="font-weight: 400; font-size: 12pt;">Solid debugging skills (validation bugs, corner cases, fuzz findings).</span></li> </ul> <h2><span style="font-size: 12pt;"><strong>Preferred</strong></span></h2> <ul> <li style="font-weight: 400; font-size: 12pt;"><span style="font-weight: 400; font-size: 12pt;">Prior contributions to wgpu (the team can onboard an existing wgpu contributor fastest).</span></li> <li style="font-weight: 400; font-size: 12pt;"><span style="font-weight: 400; font-size: 12pt;">WebGPU / graphics / GPU experience. Modern graphics APIs: Vulkan, DirectX/D3D 11/12, Metal. Shader languages: WGSL, HLSL, MSL, SPIR-V.</span></li> <li style="font-weight: 400; font-size: 12pt;"><span style="font-weight: 400; font-size: 12pt;">Low-level Android graphics experience</span></li> <li style="font-weight: 400; font-size: 12pt;"><span style="font-weight: 400; font-size: 12pt;">Security or fuzzing experience. Web security model.</span></li> </ul>