Pasha Finkelshteyn
Developer Advocate, BellSoft
Berlin, Germany
Actions
Years of experience in software engineering and the team's leading roles combined with his passion for Java made Pasha know all the hidden details in this IT niche. As a Developer Advocate for @Bellsoft, he educates the public on the latest software tools built by BellSoft and helps to create and test instruments for developers. He writes in Kotlin, speaks at conferences, composes a new articles, or maintains his pet projects.
Area of Expertise
Topics
It’s Fine Actually: Doing Better in Legacy Java
Still on Java 8 or 11? No judgment, most of us are. Maybe the rewrite isn’t coming. Maybe the upgrade to Java 17 or 21 is always six months away. Maybe that old system just… works.
This talk is about what to do when you're not moving on. Because staying doesn’t have to mean suffering, and it definitely doesn’t mean giving up on good engineering.
We’ll walk through four practical ways to make life in legacy Java better:
Code: How to write cleaner, more modern-feeling Java even when older language versions limit you.
Architecture & Testing: How to add structure, testability, and confidence without needing a complete rewrite.
Performance: How to get speed and efficiency gains while sticking to your current runtime.
Security: How to stay protected without constantly firefighting vulnerabilities or risking instability from rushed upgrades.
Legacy isn’t going away. But you can live in it with confidence, and you don’t have to let it get in the way of your love of software engineering.
Kotlin Goodies for Testing
Kotlin is known for its DSL-building capabilities. Some would think - but how can it help me in testing? The answer is: oh, it really can! In this talk, we will talk about different aspects of testing, from unit testing to integration; about several lesser-known technics of testing like property-based testing and how Kotlin and its libraries can help with them, as well as make tests more readable.
The Ultimate Showdown of Database Migration Tools
When it comes to database migration in the Spring ecosystem, two heavyweights dominate: Liquibase and Flyway. While both tools bring unique strengths to the table, only one can claim victory in this exciting technical showdown.
* Which languages support migrations, and how do the costs compare?
* What features do the rollbacks offer?
* What versioning schemes and strategies do they utilize?
* How do their runtimes operate?
No stone left unturned! Which migration tool will reign supreme in your Spring project? Join us to learn the differences between tools and cast your vote to make the ultimate decision!
Ktor+htmx: the perfect mix for a software Craftsman
There is a well-established framework for development in high enterprises: Spring Framework. It fits amazingly complex enterprise processes and integrations. It has a lot of magic, which we can avoid learning how it works inside. But what if we need to craft something working quickly, avoiding the hidden complexity and within a small team? Comes in the mix of ktor and htmx. The perfect cocktail of a dictate craftsman, allowing to build amazing things without diving into traps of complexities of Spring and "modern frontend".
From ChatGPT User to RAG Implementer: A Developer's Journey
For ages, I was just another ChatGPT user—searching, brainstorming, you know the drill. But then Spring AI was released, and a light bulb went off: what if I index all our documentation and blog posts to build a bot that could actually answer users' questions about our products? As it turns out, there's a name for this magic trick—Retrieval-Augmented Generation (RAG).
Visit my talk for a wild ride as we break the RAG concept down bit by bit. We'll understand embeddings, figure out how to obtain and store them, and how we further work with them. And of course, the grand finale: creating a simple bot that knows our docs inside and out. Join me and let’s turn the Spring AI foundation into a really useful knowledge base helper!
The Epic Battle of Kotlin and C#
It is hard to find an enterprise language as modern and powerful as Kotlin. It is hard to find an innovative enterprise language such as C#. In this epic battle, you, the attendee, will help us to understand which language we should pick for a new project (yes, we believe you will be impartial). And we will try to provide you with facts and points for your judgment. As unbiased as we can.
Platform, language features, ecosystems — we have them all covered! Come to our session, and you will become our judge. You will be presented with a series of topics with solutions in both languages, and you will vote for a winner in each category. Perhaps you can make a choice for your own future?
Himalayan Peaks of Testing Data Pipelines
Everybody knows how to test backend applications: usually, it's just unit tests and API calls. Things are a bit more complex when interfaces are involved. But here is the question: how to test data pipelines? There is so much data, and the pipelines are so slow!
Let's discuss!
Breaking Boundaries with Advanced Kotlin Testing Techniques
In this session, you'll learn the ins and outs of testing in Kotlin. I'll start with the basics, covering the current widespread problems of tests. But don't worry; I won't bore you with endless slides full of code snippets. Instead, it will mostly be a live coding session with real-life examples.
I'll also explore advanced testing techniques, such as property testing and organizing your tests into a hierarchical structure, and show you how to put them into practice. We will use Kotest, MockK, Atrium and more! Whether you're a seasoned tester, developer, or newcomer to the testing field, you'll come away from this talk with a better understanding of testing with Kotlin and, hopefully, a smile.
Advanced Kotlin Techniques for Spring Developers
As a seasoned developer, you're likely already familiar with Spring. But Kotlin can take your developer experience with Spring to the next level!
Join this session and learn how to:
- Add new functionality to existing classes with Kotlin extension functions.
- Use Kotlin bean definition DSL.
- How ot use varags to improve on 3rd party libraries
- How to use coroutines with Spring idiomatically
By the end of this talk, you'll have a deeper understanding of the advanced Kotlin techniques that are available to you as a Spring developer and be able to use them effectively in your projects.
Crafting the Ultimate Docker Image for Spring Applications
Docker is the cornerstone of today's development! Let's overview quickly how we use it in JVM development, and then transition to practical examples. We will start with a simple Docker image containing a popular "one fat JAR" and look into its downsides (deployment speed, traffic volume). To address them, we will discuss the strategy of splitting the JAR into multiple layers and using multistage Dockerfiles, gradually improving our image. Join me to learn how to build the ultimate Docker image for Spring applications.
CRaCing Java Snapshots
Imagine your Java application starting up in just 5 milliseconds. Sounds incredible, right? Almost too good to be true? And no, this isn’t about native images. There's an innovative solution called Coordinated Restore at Checkpoint (CRaC).
Initially, this concept emerged from the Linux CRIU project: Checkpoint/Restore In Userspace. However, CRIU doesn't always deliver reliable results. That’s where CRaC comes in, offering a JVM-specific implementation.
In this talk, we’ll look into the complexities of CRIU and after that, we will turn to CRaC. We will discuss how CRaC operates within the Java ecosystem, its integration with Spring, and how you can use it in your own applications for near-instant startup times.
From this talk you will learn what is possible to CRaC and what is not, what are the benefits and limitations, and what is the cost of CRaC-ing.
From Git Panic to Git Zen: With a Little Help from AI
Every developer can push, pull, and commit. But when something goes wrong — a force-push that ate your work, a regression that snuck in months ago, a PR with twelve "fix typo" commits — most developers freeze. The tools that actually rescue you (reflog, bisect, interactive rebase) feel like high-stakes surgery: powerful, but the syntax is gnarly, and the mistakes feel irreversible.
This talk reframes those three commands as one toolkit: Git's recovery layer. We'll walk through three real disasters and the recovery flow for each. Then we'll plug in a custom MCP server that lets an AI assistant drive those same flows in natural language — with previews before anything destructive — so you stop avoiding the commands you most need.
In this session, you will learn to:
- Recognize which of the three tools fits which kind of Git emergency
- Run each one by hand when AI isn't available
- Decide where AI-assisted Git earns its keep — and where it doesn't
From Git Panic to Git Zen, with a little help from AI.
Spring, Start My World. Boosting your development performance with Spring Dev Services
Let Spring run the show! Setting up local environments can be frustrating, especially when working with multiple custom services. Spring development-time services simplify this by automating service startup and configuration. We’ll look at ConnectionDetails (it's an empty interface in Spring 😉), then I'll build a custom dev service live, and show how to use and test it. I'll also cover usage of such a service in the testing environment.
Join me to make your team’s local development effortless and enjoyable!
Hardening Docker Images Is Easy. You'd Think.
You can pull `alpine:latest`, run `apk add` a few times, and ship a container that "looks fine." That container also has 47 known vulnerabilities. Hardening is the gap between those two facts — and most teams either don't know how big that gap is, or they know and pretend they're handling it.
I'll walk you through what Docker hardening involves in practice: package management with `--virtual` and multi-stage builds, dropping privileges and Linux capabilities, getting rootless containers to work on Alpine without musl/glibc accidents, the patching treadmill (CVE feeds, backports when there's no upstream fix, cache gotchas that hide stale layers, prioritization when Trivy hands you 47 CVEs at once), and the supply-chain pillar most teams haven't started on — SLSA provenance, Sigstore signatures, SBOMs.
You leave with a complete checklist you can put into your build pipeline tomorrow.
You also leave with an honest count of what running that checklist costs in engineering hours, week after week, forever. Sometimes the math says "we should keep doing this ourselves." Sometimes it says "We should buy expert-managed images." I do the math out loud, both ways, so you can make the call for your own team.
For DevOps and SRE practitioners running Alpine-based containers in production, `docker build` familiarity is the only prerequisite.
DevNexus
Liquibase vs Flyway
DevCon
Crafting the Ultimate Docker Image for Spring Applications
BED-Con 2025 Sessionize Event
Devoxx Belgium 2025
It’s Fine Actually: Doing Better in Legacy Java
The Ultimate Showdown of Database Migration Tools
dev2next 2025
Presentation: From Mystery to Mastery: Decoding the JVM with Observability Tools
WeAreDevelopers World Congress 2025 Sessionize Event
Voxxed Days Luxembourg 2025
From ChatGPT User to RAG Implementer: A Developer's Journey
Tech Internals Conf Berlin 2025 Sessionize Event
Spring I/O 2025 Sessionize Event
jPrime 2025
Crafting the Ultimate Docker Image for Spring Applications
JCON EUROPE 2025 Sessionize Event
Javaday Istanbul 2025
CRaCing Java Snapshots
Devnexus 2025 Sessionize Event
Voxxed CERN 2025
Ktor+htmx: the perfect mix for a software Craftsman
DevOps Vision and MLOps Vision 2024 Sessionize Event
Devfest Pescara 2024 Sessionize Event
JavaCro'24 Sessionize Event
Java Forum Nord 2024 Sessionize Event
Spring I/O 2024 Sessionize Event
Azure Community Conference 2021 Sessionize Event
Please note that Sessionize is not responsible for the accuracy or validity of the data provided by speakers. If you suspect this profile to be fake or spam, please let us know.
Jump to top