Clarify the problem
Turn domain ambiguity into service boundaries, contracts, examples, and failure modes.
Staff Software Engineer · Payments, risk, and compliance
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.

Yonatan Karp-Rudin
Staff Software Engineer, Payments Builder · explainer · team multiplierTurn domain ambiguity into service boundaries, contracts, examples, and failure modes.
Ship the integration, migration plan, internal tool, or reference implementation that makes the decision real.
Leave specs, runbooks, templates, and upstream fixes so the work does not stay trapped in one person's head.
Proof
Compliance platform
Risk architecture
Engineering leverage

How I work
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.
Track record
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.
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.
Selected work
Self-hosted tool
AI-powered TTRPG session recorder with live transcription, speaker diarization, and session summaries. Python/FastAPI backend + Svelte 5 frontend. Fully self-hosted.
Open source library
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.
Upstream contribution
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.
Technical writing / docs
Software design patterns implemented in idiomatic Kotlin. Actively maintained with MkDocs documentation site.
Writing
Jun 11, 2026
How I gave my AI coding agent a real long-term memory using Claude Code hooks: a self-compiling wiki it writes to itself, with capture, ingest, and recall wired into the session lifecycle.
Read articleJun 26, 2024
A step-by-step walkthrough of reconstructing the massive XKCD #1110 Click and Drag comic from its individual tile images using Kotlin.
Read articleJun 5, 2024
A practical guide to identifying and fixing common RedisTemplate misconfiguration pitfalls in Spring Boot, with a focus on serialization issues.
Read articleRecommendations

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.

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.

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
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.
I am useful when the team needs clarity as much as code.