
About Me
I design and build distributed systems using Kotlin and Java. Over the past two decades, my work has focused on payment systems, real-time trading platforms, SaaS backends, and messaging infrastructure.
My current interests center on building non-blocking services with Kotlin coroutines and integrating AI capabilities into backend systems using tools such as Koog, Spring AI, and LangChain4j. I focus on making these systems practical, observable, and maintainable in real-world environments.
Approach
I value:
- Acceptance-test-driven development as a foundation for reliability
- SOLID principles to keep systems adaptable over time
- Simplicity in design, guided by Ockham’s razor
- Clear boundaries and explicit control over system behavior
My work favors asynchronous, non-blocking architectures on the JVM, using coroutines to model concurrency, handle failures, and manage resource usage predictably.
Focus Areas
- Designing systems that support rapid iteration without degrading maintainability
- Applying structured concurrency to real-world backend services
- Integrating AI capabilities while preserving testability and control
- Building developer tooling and libraries that improve the Java and Kotlin ecosystems
Perspective
I approach software design as a balance between correctness, simplicity, and long-term evolution. Systems should be easy to reason about, straightforward to test, and resilient under change.