I am a senior software engineer in Munich, where I have lived since January 2026. My last contract, the shared frontend platform at Alaska Airlines, ended the same month we moved. Since then I have been building: a Rust and PostgreSQL ingestion backend that keeps imported values non-canonical until a curator accepts them, the concurrent scraper that feeds it, a robot telemetry console that treats silence as an event, a reproducible text-to-speech pipeline, and this site. Each has a page under projects stating what was checked against source and what was not. I am looking for a permanent role and I am available now.
My first engineering work was greenhouse monitoring. I wrote Python agents that read pH and conductivity probes over FTDI serial, pushed a reference temperature to each probe before every reading, and fanned the results out to independent sinks so that losing one service did not lose the data. Full-stack product work came next, at Migo, then Lululemon, then Volume Media, where I led the incremental migration of a four-thousand-file Django monolith onto Next.js one page at a time rather than in one cutover. After that came the deepest backend work I have done, on Nike's consent platform: event-driven and serverless across four AWS regions including China. I also got a taste for huge ETL jobs when I migrated roughly twenty million consent records off a third-party vendor and fixed the failure modes the first attempt had surfaced. Most recently, shared frontend platforms at Alaska Airlines, where I architected Borealis, a Lit and Web Components platform that four to five product teams adopted across Next.js, Svelte, React, Vue, and .NET.
I prefer boring tooling and explicit contracts. What I am most useful for is the unglamorous half of platform work: migration planning, integration boundaries, versioned contracts, test infrastructure, and documentation good enough that another team can ship against it without me in the room. Borealis held together across five frameworks because its props and events carried semver and a deprecation policy. Consuming teams could upgrade on their own schedule instead of on mine. I have kept daily engineering notes for about a decade, so the write-up usually exists before anyone asks for it. I have taught alongside the engineering for most of my career. I worked for six years as a substitute instructor at the University of Washington and a teaching fellowship before it.
My German residence permit carries unrestricted work authorization, so no employer needs to sponsor me and no work permit is required. I am a native English speaker and I am learning German. My last three roles were contracts, which let me work across three very different platforms in quick succession. In my next role I want one platform owned over years rather than months. I also photograph and am learning to play the cello. Code is on GitHub, and email is the fastest way to reach me.