Backend Engineer
Perk · January 2024 - present · Zurich, Switzerland
Expense and business-travel spend platform for enterprises. I joined Yokoy, which TravelPerk later acquired and rebranded as Perk. TypeScript and Node.js microservices on GCP (Cloud Run, Cloud Functions), Firestore, MongoDB, PostgreSQL, Terraform, Datadog.
- Led France receipt digitization from refinement to full rollout in about a month: receipts converted to digitally signed, timestamped PDF/A-3. A compliance prerequisite for French customers going paperless, and a sales blocker in France without it.
- Found, while verifying that rollout, that receipts for Spanish legal entities had been signed for months with an expired certificate, making them legally invalid, with nothing watching for it. Scoped the affected records and built the certificate-expiry monitoring and alerting now in place.
- Owned travel-to-expense integrations (TravelPerk, Egencia). Built the trip import: each TravelPerk trip arrives pre-filled with its itinerary and booking expenses, so the traveler only adds other receipts before submitting.
- Built the first outbound integration to Egencia, using its Custom Data Fields API, so bookings from a company with several billable entities reach the right legal entity. Designed the OAuth 2.0 flow, including where the credentials and tokens are stored, and worked out authentication and per-company permissions with Egencia.
- Led auto-submission end to end in a cross-company squad after TravelPerk acquired Yokoy, so bookings already approved in TravelPerk go straight to finance review without a second approval.
- Extended the expense import: real-time invoice ingestion, tax-item enrichment, duplicates, refunds and credit notes, lodge-card matching, and transaction matching for expenses with flexible-booking credits.
- Within six weeks of joining, implemented the expense workflow action API and the permission matrix behind it, so a stale client could no longer silently overwrite a document.
- Standardized user-facing errors and workflow notifications onto a localization-key contract across the expense backend, so users can see what went wrong and fix it themselves instead of opening a support ticket, against a team goal of halving support volume.
- Implemented the expense API for loading and saving custom fields in the new web expense form.
- Reliability: incident commander on production incidents, a regular firefighter rotation, Datadog monitors and structured audit logs for the signing pipeline, and a zero-downtime PostgreSQL migration in another team's Python service. Traced a callback race from production logs that had been silently orphaning expense records for 20 months.
- Led a production incident from diagnosis through fixes in the expense and mobile backends to a verified repair of incorrect employee details on expenses.
- Hardened receipt processing against repeated callbacks and fixed a conversion path that could leave receipts stuck processing.
- Work agent-first in Cursor: I plan and design the change, delegate implementation to MCP-connected agents, and verify the result myself.
