Work · 2022– · 🇬🇧London

Senior Software Engineer

Meta

My motivating factor at Meta is building developer experiences and tooling that people didn’t think were possible.

Recognition

I’ve been rated Greatly Exceeds Expectations two years running, in 2024 and 2025 (at IC5). A few lines of peer feedback from the 2025 cycle:

Rainer’s ability to find high-leverage weak points in the development infrastructure and improve on them to completion despite their complexity seems well beyond his current level.

Rainer pursued this problem for months until he root-caused and fixed the issue. When I mentioned this post to an IC7 in my org that used to work on Windows DevX, he said ‘yes, this was a great fix. We should have done it years ago!’ Rainer exemplifies the behaviors that Meta values in a SWE.

Rainer can take on many hats; he can jump in as a generalist, a valuable ‘fixer’, and a potential TL - he can tackle and plan deeply technical work and has the soft-skills to rally teammates and other teams.

What I’m proudest of

  • DevAI champion for Horizon — delivered Horizon-wide training on Claude Code and our in-VSCode agent harness, and worked with adopters across teams on what AI-native development looks like on a codebase this size. Published the first “vibe coding” win in the org in April 2025: covered all of my oncall rotation’s Python code with code coverage in a single day.
  • Autonomous vision for AI agents. Built to enable agentic debugging and testing of Horizon Worlds on fully on-demand Linux servers. I’d previously ported Horizon Worlds to run on those Linux on-demand servers and built a workflow where developers stream the running app from the server back to their local machine. The vision layer exposes that as a tool agents can invoke agentically — when an agent decides it needs to see what’s happening in the running app, it calls the tool, captures the current frame, and acts on what it sees.
  • C++ Hot Reload on Windows for Horizon Worlds and the Meta Horizon Studio, integrated via Live++. Replaced the rebuild-and-relaunch cycle on both with edit-and-continue.
  • buck2 Fix of the Week on Windows. Traced a Windows-only build slowdown back to buck2 serialising IO through an internal queue. The fix was small — remove that queue and dispatch directly to Rust’s tokio IO scheduler — and took the workload from running on 4 threads to running on 512 threads — a 20% cold-build speedup for Windows builds company-wide. Won Boz’s Fix of the Week in December 2025 — the engineering shout-out from Meta CTO Andrew Bosworth.

What I’m working on now

I’m contributing heavily to Meta’s internal AI harnesses — a multi-agent orchestrator and an in-VSCode agent harness.

The technical problems I’m digging into:

  • Back pressure via generated hooks. A lot of harnesses already build context iteratively from past sessions — auto memory and the /dream command in Claude Code, the session-context layer in the Hermes agent harness. What I’m working on is a harness that also generates stop hooks and pre/post-tool-use hooks from past sessions. The hooks act as executable guardrails that prevent the agent from repeating known mistakes, which makes the whole workflow more deterministic.
  • Ultra-long-running autonomous work. Enabling agents to run autonomously against a single goal across hours or days — a next-level Ralph loop, closer in spirit to the /goal command in OpenAI’s Codex harness.
  • Shifting error detection left so failures get caught inside the harness, not in CI and not by a human reviewer. CI capacity and reviewer attention are both scarce; an agent that wastes either is doing net-negative work.

The shape I want at the end is a deterministic harness with a short iteration loop.

I dogfood the harnesses heavily — last I checked I’m a 99th-percentile token user across Meta.

How I got here

I was headhunted internally twice at Meta:

  1. Out of boot camp into Workrooms VR, Product Infra — DEVX work on what later became the unified Meta Horizon Engine.
  2. From Workrooms VR into Horizon Infrastructure and Tooling, to continue the DEVX work on the (then-new) Meta Horizon Engine. I founded its Product Infra group and still own that surface — build systems, developer experience, and the AI tooling the rest of Horizon’s engineers use day-to-day.

Selected work

  • Build Speed V-team Tech Lead — pulled in partners from Central DevX and DevInfra. Over 2025, builds got 33% faster while the C++ codebase doubled.
  • Multimodal vision in Meta’s in-VSCode agent harness — added image support to its read_file tool and fixed Meta’s internal LLM proxy to pass image content through cleanly.
  • Cut a flagship app’s build time by ~90% — p50 from 177s to 19s — by moving it to a content-addressed asset store, which also shrank the package and unlocked on-device hot-reload of assets and shaders.
  • Stood up a team’s CI test infrastructure from scratch — brought ~450 automated tests across 13 build modes onto the developer stable, and shifted OS-version tests onto emulators running in remote execution.
  • Built a “dev deploy” flow that let teams playtest uncommitted changes through the real store-distribution and matchmaking path. Adoption grew more than 10× through 2025 — from 175 builds across 30+ release channels to 2,390 across 360+.

Misc wins

A grab-bag of smaller fixes and speedups along the way:

  • Deleted 8.5 million lines of dead code in a single diff, as part of a company-wide dead-code cleanup.
  • Cut 40 seconds of build-tool overhead from a common edit→preview loop used by hundreds of developers, by merging two build modes into one.
  • Took a recurring asset-and-sanity workflow from 1.5 hours to 15 minutes by switching to an optimised asset-processing mode.
  • Brought a debugger’s launch time from 11 minutes down to 2.
  • Reduced CI diff “noise” by over 90% by fixing build-mode-compatibility macros.
  • Sped up “time to stable” from 100 to 65 minutes across several apps’ developer stables by fixing CI-orchestration scheduling.
  • Migrated a product’s entire build — CI and local development — to buck2.