Skip to content
Yassir Halaoui
Lire en français

Competence

Java and Spring Boot, from Java 8 to 21

Java is the language I've shipped production code in since 2017, across two banks, a payments group and an insurance platform. Today that means Java 21 and Spring Boot 3.5.

In short

Yassir Halaoui is a senior Java developer working with Java 8 through 21 and Spring Boot up to 3.5, including Spring Batch, Spring Data JPA, Spring AOP and Hibernate. He has built Java services from scratch in banking and payments, migrated batch jobs onto Spring Boot, and designed idempotent asynchronous processing for payment card workflows.

Where I've used it

  1. Pluxee · 2025 to now

    Built a Java 21 and Spring Boot 3.5 service from scratch that secures PIN retrieval between a card processor and a mobile app, with idempotent, webhook-driven processing and a reusable audit trail built on Spring AOP.

  2. Docaposte · 2024 to 2025

    Designed and built features of an electronic record exchanged between insurers, on Spring Boot 3 and Java 21, and handled its production incidents and performance work.

  3. Société Générale · 2022 to 2024

    As lead developer, built a centralized fee-declaration platform for a public administration from scratch on Java 11, Spring Boot and Spring Batch, and brought two junior developers up to speed.

  4. Consulting · 2022

    Migrated legacy batch processing to Spring Boot for an automotive rental platform, and replaced hand-written JDBC with Spring Data JPA.

  5. CIH Bank · 2017 to 2022

    Built the batch that executes standing-order transfers automatically, and an ATM cash-deposit API in Spring Boot behind a secured API gateway.

Everything in this area

Java
  • Java 8
  • Java 11
  • Java 17
  • Java 21
Spring
  • Spring Boot 3.5
  • Spring Batch
  • Spring Data JPA
  • Spring AOP
  • Spring Security
  • Spring Web Services
Persistence and APIs
  • Hibernate
  • Flyway
  • OpenAPI / Swagger
  • REST
  • Microservices
Testing
  • JUnit
  • Mockito
  • Spring Boot Test
  • Testcontainers
  • TDD
Build
  • Maven
Also on the backend
  • Python
  • FastAPI
  • Node.js

In depth

Java 8 to 21, and the migrations in between

I've worked on every long-term-support version from 8 to 21, which mostly means I've done the upgrades. The hard part of a Java migration is rarely the language. It's the libraries that moved from javax to jakarta, the JAXB that left the JDK, and the batch job nobody has run on a laptop in years.

Spring Batch still has a job

Not everything is a stream. Month-end processing, file ingestion and reconciliation have a start, an end and a question someone asks the next morning: did it finish? Spring Batch answers that with restartable chunks and run identity, and I'd rather use it than rebuild it on top of Kafka.

Tested against real infrastructure

The bugs that hurt in payment systems live in transactions, unique constraints and concurrency, and a mocked repository can't see any of them. My integration tests run against a real PostgreSQL in Testcontainers, including one that fires the same message from eight threads at once.

Questions

Are you available as a senior Java Spring Boot developer?

For missions in Paris and Île-de-France, on-site or remote across France. Send the dates and the stack and I'll answer the same day.

Can you migrate an application from Java 8 or 11 to Java 21?

Yes. I've worked on every LTS from 8 to 21. A migration plan starts with the dependencies that changed namespace or left the JDK, because that's where the breakage hides, then moves module by module behind the existing tests.

Spring Batch or Kafka: which should we use?

Spring Batch when the work is bounded, restartable and reconciled against a source of truth. Kafka when it's unbounded and latency matters. Most real systems use both, with a clear boundary between per-run and per-message guarantees.

Do you write tests?

Always. Unit tests for logic, and integration tests against a real database in Testcontainers for anything touching transactions, constraints or concurrency.

Field notes

Shipped work

Related competences