# Yonatan Karp-Rudin > Staff Software Engineer based in Berlin. Building payment, compliance, and platform systems at Billie. Open source contributor. ## Use and attribution This site is public personal writing by Yonatan Karp-Rudin. AI agents, search engines, and research tools may read, summarize, quote short excerpts, and link back to the canonical pages on https://yonatankarp.com/. When using material from this site: - Attribute Yonatan Karp-Rudin by name. - Prefer linking to the original page instead of copying full articles. - Do not present the writing, CV, projects, or opinions as someone else's work. - Do not use contact details or profile text for spam, impersonation, credential attacks, or unsolicited recruiting automation. ## Key pages - [Projects](https://yonatankarp.com/projects/): Libraries, tools, open-source contributions, and a few games. - [Blog](https://yonatankarp.com/blog/): Articles on Kotlin, Spring Boot, backend systems, APIs, and engineering practice. - [CV](https://yonatankarp.com/cv/): Background, experience, and skills. ## Blog posts - [I Stopped Being My AI Agent's Memory: Building a Self-Compiling Second Brain](https://yonatankarp.com/blog/self-compiling-second-brain/): 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. - [XKCD: From Tile to Picture - Seeing the Full Image](https://yonatankarp.com/blog/xkcd-from-tile-to-picture/): A step-by-step walkthrough of reconstructing the massive XKCD #1110 Click and Drag comic from its individual tile images using Kotlin. - [How to Fix Misconfigurations in RedisTemplate](https://yonatankarp.com/blog/fix-misconfigurations-redistemplate/): A practical guide to identifying and fixing common RedisTemplate misconfiguration pitfalls in Spring Boot, with a focus on serialization issues. - [Observability in Action: How to Use OpenTelemetry](https://yonatankarp.com/blog/observability-in-action-opentelemetry/): A hands-on guide to adding distributed tracing and observability to a Kotlin/Spring Boot service using OpenTelemetry and HoneyComb. - [[Interview Questions] Concurrency vs. Parallelism: Decoding the Simultaneous Illusion](https://yonatankarp.com/blog/interview-questions-concurrency-parallelism/): A clear explanation of the difference between concurrency and parallelism, illustrated with practical JVM-based examples commonly asked about in technical interviews. - [Real-Life Problem Solving: Lessons from My Engineering Principles](https://yonatankarp.com/blog/real-life-problem-solving-engineering-principles/): How software engineering problem-solving principles, usually applied to code, turned out to be surprisingly effective for navigating real-life challenges during a trip to Asia. - [How To Build Your Domain Gateway With OpenAPI](https://yonatankarp.com/blog/build-domain-gateway-openapi/): An introduction to the domain gateway pattern and a practical tutorial for building one in Kotlin using OpenAPI code generation. - [How to Use OpenAPI to Build a Robust RESTful API](https://yonatankarp.com/blog/openapi-robust-restful-api/): How to adopt a spec-first approach with OpenAPI to design and generate a robust, well-typed REST API using Spring Boot, Kotlin, and Gradle. - [Create a Custom Spring Boot App Banner](https://yonatankarp.com/blog/custom-spring-boot-banner/): A fun walkthrough of how to replace the default Spring Boot startup banner with custom text and ASCII art to give your application a personal touch. - [How does HashMap work in Java?](https://yonatankarp.com/blog/how-hashmap-works-java/): A deep dive into the internal mechanics of Java's HashMap, covering the equals/hashCode contract, bucket distribution, and the binary tree optimization introduced in Java 8. - [How to Break Your HashMap in Less Than a Minute](https://yonatankarp.com/blog/break-hashmap-less-than-a-minute/): A cautionary demonstration of how using mutable objects as HashMap keys silently corrupts lookups, and the simple rule that prevents it. - [How to inject multiple implementations in the Spring Framework](https://yonatankarp.com/blog/inject-multiple-implementations-spring/): An exploration of the different strategies Spring Framework offers for injecting multiple implementations of the same interface into a single bean. - [4 Reasons Why Amazon Keyspaces is Problematic!](https://yonatankarp.com/blog/amazon-keyspaces-problematic/): Four concrete production problems the author encountered with Amazon Keyspaces (managed Cassandra), and why the service may not be ready for every workload. - [Build your own Twitter Bot with Kotlin](https://yonatankarp.com/blog/build-twitter-bot-kotlin/): A beginner-friendly tutorial for building and deploying a fully functional Twitter bot from scratch using Kotlin and the Twitter4J library.