Search by job, company or skills

Lead Backend Engineer (Java/Database)

  • Posted 3 hours ago
  • Be among the first 10 applicants

Job Description

About the role

We are re-platforming a national public-sector system in the EU: 750 screens of a legacy client-server 4GL, rebuilt as a modern Spring Boot / Spring Modulith application — on top of an Oracle database whose PL/SQL API is contractually frozen.

That constraint is what makes this role interesting. The business logic stays in Oracle; the new Java system must wrap it cleanly, coexist for months with the legacy application writing to the same database, and retire it agenda by agenda. This is greenfield Java engineering on top of a genuinely hard integration problem.

What you will do
  • The anti-corruption layer over the frozen PL/SQL API — hexagonal ports-and-adapters, one typesafe adapter per Oracle package (jOOQ codegen), so the domain layer never sees JDBC or PL/SQL types.
  • Transaction correctness across two writers — audit COMMIT ownership per package, mirror the legacy app's optimistic locking, and keep both systems consistent on one live database.
  • Modules as bounded contexts — build features inside enforced Spring Modulith boundaries, verified in CI; your module is yours end-to-end, from REST API to Oracle call.
  • Read-side performance — CQRS-lite query views and DB-driven cache invalidation, because the legacy system keeps writing concurrently.
  • Batch orchestration — Spring Batch jobs that partition mass runs and invoke PL/SQL packages, restartable and observable on Kubernetes.
What we expect (must-have)
  • Deep Java/Spring experience in production — you've owned a Spring service end-to-end (design, build, run), not just contributed features
  • Strong Oracle skills — confident with PL/SQL (calling and reasoning about packages, transactions, locking), performant SQL, and how Java talks to Oracle (JDBC internals, connection pooling)
  • One real system-design ownership story — you can walk us through an architecture you shaped and the trade-offs you made
  • Good knowledge of Keycloak — realms, clients, OIDC flows, token handling; you've integrated it (or an equivalent IdP) into a production system
  • Strong skills with AI coding tools — Claude (Claude Code) or Codex — you use them daily and effectively for designing, coding, and reviewing; we work AI-first and expect you to multiply your output with them
  • Testing discipline — module tests, integration tests against a real database (e.g. Testcontainers), CI as a habit
  • Good English — daily written and spoken communication in an international team
  • Senior-level ownership — owns a bounded context end-to-end, drives design decisions (transaction boundaries, adapter patterns, module contracts), reviews others work, mentors
Nice to have
  • Has led or been in charge of migrating a legacy system (Uniface, Oracle Forms, other 4GL/client-server) to a modern stack — strangler-fig experience is a big plus
  • Domain knowledge in social insurance (or pensions, benefits, other public-sector welfare systems)
  • jOOQ, or codegen against database contracts
  • Kubernetes / OpenShift in production
  • Kafka / Debezium / CDC pipelines
  • Public-sector or regulated-industry projects
Why this role is interesting
  • A hard problem with no copy-paste answer — two-writer coexistence over a frozen PL/SQL contract has no published pattern; we're engineering it explicitly.
  • Modern stack, real constraints — Java 25, Spring Boot 4, Modulith, OpenShift; you build new code every day, against a system that matters nationally.
  • Architecture you can audit — enforced module boundaries, ADRs, fitness functions in CI. Decisions are written down and defensible.
  • Long-horizon project — multi-year modernization program, not a three-month body-shop gig.
Tech stack
  • Core: Java 25 LTS, Spring Boot 4.x, Spring Modulith, Spring Batch
  • Database: Oracle — a large, frozen PL/SQL package API is the integration contract; jOOQ for typesafe adapters
  • Platform: OpenShift (Kubernetes), GitOps
  • Around it: Keycloak (OIDC), React SPA frontend (separate lane)
Working setup
  • Team: dedicated backend lane within the project team, working alongside frontend (React) and platform lanes
  • Working language: English

More Info

Job Type:
Industry:
Function:
Employment Type:

About Company

Job ID: 152837823

Beware of Scammers

We don’t charge money for job offers