Staff Software Engineer · Payments, risk, and compliance

I turn messy backend domains into systems teams can own.

I work where product rules, vendor integrations, event flows, and operational risk all meet. Recently that has meant shaping compliance services, risk orchestration, OpenAPI-first contracts, Backstage tooling, runbooks, and migration paths that give teams clearer ownership after the initial delivery.

Role Staff backend engineer
Current scope Payments and compliance platforms
Evidence Architecture, integrations, tools, and runbooks
Portrait of Yonatan Karp-Rudin

Yonatan Karp-Rudin

Staff Software Engineer, Payments Builder · explainer · team multiplier

How I multiply a team

01

Clarify the problem

Turn domain ambiguity into service boundaries, contracts, examples, and failure modes.

02

Build the path

Ship the integration, migration plan, internal tool, or reference implementation that makes the decision real.

03

Leave leverage

Leave specs, runbooks, templates, and upstream fixes so the work does not stay trapped in one person's head.

Payments / risk / compliance systems Kotlin/JVM, Spring Boot, Kafka, OpenAPI OSS, docs, templates, teaching

Proof

Examples of staff-level leverage beyond ticket delivery.

Compliance platform

Creating a new service boundary for compliance workflows.

Problem
Transaction monitoring, screening, and sanction checks crossed product rules, vendor behavior, operational alerts, and audit expectations.
Leverage
I authored the technical spec and interface definitions, led the ComplyAdvantage integration, and paired the service design with runbooks for Kafka DLT alerts, settlement reports, and compliance states.
Result
The domain moved from scattered operational knowledge toward an owned service with clearer contracts and recovery paths.

Risk architecture

Moving risk work toward explicit orchestration and contracts.

Problem
Risk decisions depended on multiple services, fraud providers, recurrent identification, tokenization, and direct debit behavior.
Leverage
I co-designed the Risk Orchestrator, drove OpenAPI-first contracts across risk services, led the Ravelin integration, and authored the Buyer Risk Assessment target architecture.
Result
The team got a clearer model for extending risk decisions and coordinating changes across service boundaries.

Engineering leverage

Turning repeated operational friction into shared tooling.

Problem
Platform work is expensive when each incident, cronjob, migration, or service setup depends on private memory.
Leverage
I build Backstage tools, templates, runbooks, migration plans, and upstream fixes when the reusable path is more valuable than another one-off patch.
Result
Engineers start from a known path and can challenge decisions through specs, dashboards, examples, and code.
Yonatan Karp-Rudin

How I work

I like the moment when a domain becomes specific enough to build.

The hard part of backend engineering is often not choosing a framework. It is finding the real boundary: which team owns the rule, which event is authoritative, what happens when a vendor disagrees, and how the next engineer will debug the failure at 2 a.m.

That is where I tend to be useful. I ask until the domain is crisp enough to model, then turn it into production code, API contracts, migration plans, dashboards, runbooks, or diagrams that survive the handoff.

I care about strong implementation, but the higher leverage is making the system easier for the whole team to operate, extend, and argue about with evidence.

Works across Backend systems, Kotlin/JVM, service design, OpenAPI, Kafka, internal tools, docs, and OSS
Bias toward Shared understanding, small useful abstractions, boring reliability, and explanations that survive handoff

Track record

Backend roles shaped by domain ownership and reusable engineering systems.

Oct 2025 - Present

Staff Software Engineer

Billie, Berlin, Germany

Staff Software Engineer - Payments

Established Compliance Service as an owned backend domain for transaction monitoring, screening, and sanction checks. Authored the technical spec and interface definitions, led the ComplyAdvantage integration, and paired the design with runbooks for Kafka DLT alerts, settlement reports, and compliance state handling. Built a Backstage cronjob monitor aggregating data across systems, joined the architecture team, and now focus on payments/compliance platform reliability, including Spring Boot 3 to 4 migration work and upstream openapi-generator support for Jackson 3.

Apr 2025 - Oct 2025

Staff Software Engineer

Billie, Berlin, Germany

Staff Software Engineer - Risk

Co-designed and built the Risk Orchestrator service using hexagonal architecture to make risk decisions easier to extend across service boundaries. Led the Ravelin fraud integration, including release planning and cross-team coordination. Authored the Buyer Risk Assessment target architecture and specs for tokenization, direct debit risk, and recurrent identification. Drove OpenAPI-first design across risk services and led “EDA 2.0” to improve event-driven architecture practices.

See the full history on the CV →

Selected work

Public work that turns repeated problems into reusable material.

01

Self-hosted tool

TaleKeeper

AI-powered TTRPG session recorder with live transcription, speaker diarization, and session summaries. Python/FastAPI backend + Svelte 5 frontend. Fully self-hosted.

02

Open source library

ff4k

Kotlin Multiplatform feature flags library with DSL configuration, multiple storage backends (JDBC, R2DBC, SQLite), and coroutine-safe context propagation. Built from scratch as a modern alternative to ff4j.

03

Upstream contribution

openapi-generator

Added Spring Boot 4 and Jackson 3 support for the Kotlin Spring generator. 10 PRs including fixes for Retrofit templates, Jackson converters, and hashmap model generation.

04

Technical writing / docs

kotlin-design-patterns

Software design patterns implemented in idiomatic Kotlin. Actively maintained with MkDocs documentation site.

View all projects →

Writing

Writing is how I turn hard-won context into something other people can reuse.

View all blog posts →

Recommendations

What people notice after working with me.

Blake Irvin
Blake Irvin Leading Observability Engineering at SumUp
I’d love to work with Yonatan again. He’s incredibly smart, cares deeply about quality but balances this with delivery speed, and (maybe most importantly) a great human to be teammates with.
Oren Hadry
Oren Hadry Former Engineering Manager at Inuitive
I was privileged to have Yonatan on my team for almost 3 years. Yonatan is a dedicated, intelligent, and hard-working team player who played a key role in our team and was the go-to person for almost any problem. I have seen few people who could match his skills at solving technical problems, coding and design.
Shimon Schocken
Shimon Schocken Computer Science Professor, Reichman University
Yonatan is a highly talented and disciplined software developer, with an excellent background in both computer science and programming. He is a people-person, with remarkable empathy and ability to recognize when and where students and developers need help and further guidelines. He is also a very pleasant and good-spirited colleague.

Contact

If your team needs clarity and code, let's talk.

I am most useful in Staff+ backend roles where the work is not only to deliver a system, but to make the team better at understanding, changing, and owning it.

  1. Permanent Staff+ backend roles
  2. Architecture and backend advisory
  3. OSS, writing, teaching, and collaboration

I am useful when the team needs clarity as much as code.

  • A problem is important, but the team is still arguing from different mental models.
  • A backend system works, but too much of it depends on hidden context and a few people's memory.
  • A repeated engineering problem deserves a reusable tool, template, library, or explanation.
  • A team needs a senior engineer who can clarify the work, build the path, and help others own it.
Based in Berlin, Germany
Best for Teams that need a strong engineer who can clarify, build, explain, and multiply the people around him