Skip to main content
DevScallix

Advanced Java Backend

JVM, concurrency, JPA/SQL and testing depth for running real services on your own.

This program is planned and not scheduled yet. No date, price or cohort has been announced. If you register interest, we contact you when it is scheduled or to discuss an individual format.

Objective

This program supports the step from junior developer to someone who can own a real service independently. It concentrates on how the JVM and memory behave, on getting concurrency and database work right, and on diagnosing problems in production-like conditions. Code review is practised from both sides, as author and as reviewer.

Who it's for

  • Junior developers with at least 1 year of Java who have written CRUD services in Spring Boot
  • Engineers who want to understand why code behaves as it does (memory, threads, query plans)
  • People who want to own a task end to end and defend their decisions in review
  • Engineers closing gaps on the way to the middle level in a systematic way

Who it's not for

  • Complete beginners in Java: start with the Java Backend Career Track instead
  • Anyone who only wants framework configuration recipes: this program works on the underlying depth
  • Anyone looking for Kubernetes and infrastructure automation: that is not its subject

Prerequisites

  • Comfortable with Java 17+ syntax, collections, exceptions and generics
  • Hands-on experience with a simple REST service in Spring Boot and basic CRUD with JPA
  • SQL fundamentals: JOIN, GROUP BY and the idea of an index
  • Familiarity with Git and the Pull Request workflow

What you will be able to do

What you will be able to do

  • Explain heap, stack, GC and class loading with a simple diagram and draw first conclusions from a heap dump
  • Choose between executors, CompletableFuture and virtual threads for a given problem and justify the choice
  • Reproduce a race condition or deadlock with a test and a thread dump, then fix it
  • Find N+1, lazy loading and transaction-boundary problems and resolve them at the JPA/SQL level
  • Read an EXPLAIN plan and justify an index or query change with measurements
  • Build a sensible test strategy made of unit, slice and integration tests
  • Diagnose a production-like performance problem with logs, metrics and a profiler
  • Present a Pull Request and review someone else's constructively

No education program can guarantee employment or a promotion.

Curriculum

Curriculum

  1. 01

    The JVM and memory

    How the JVM manages code and memory, and how to investigate memory problems with measurements.

    • Heap, stack, metaspace and object lifetime
    • Garbage collectors (G1, ZGC) and the notion of pauses
    • Class loading and JIT compilation
    • Reading heap dumps and GC logs
    • Typical leak sources (caches, listeners, ThreadLocal)

    Hands-on lab: Analyse a service with a deliberate memory leak using a heap dump, locate the source and fix it.

  2. 02

    Concurrency and virtual threads

    From the Java Memory Model to virtual threads: writing parallel code that is correct and safe.

    • Java Memory Model, happens-before and visibility
    • synchronized, Lock, atomics and concurrent collections
    • ExecutorService, CompletableFuture and structured concurrency
    • Virtual threads: when they help, and the pinning problem
    • Diagnosing deadlock, livelock and starvation
    • Reading thread dumps

    Hands-on lab: Create a race condition in code that updates a shared balance, reproduce it with a test, then fix it in two different ways and compare.

  3. 03

    JPA and Hibernate in depth

    Safe work with JPA requires knowing how the persistence context, flush and lazy loading actually behave.

    • Persistence context, dirty checking and flush modes
    • Lazy versus eager loading and the N+1 problem
    • Fetch joins, entity graphs and projections
    • Batch insert/update and optimistic locking
    • Transaction boundaries and the causes of LazyInitializationException

    Hands-on lab: Measure an endpoint with an N+1 problem through SQL logs, fix it in three different ways and compare query counts.

  4. 04

    SQL and query performance

    Finding out why a query is slow from its plan and choosing the right index.

    • Reading EXPLAIN / EXPLAIN ANALYZE
    • B-tree indexes, composite indexes and column order
    • Covering indexes and selectivity
    • Pagination: offset versus keyset
    • Isolation levels and locking behaviour

    Hands-on lab: Analyse a slow query on a large table with its plan, add an index, and present before/after measurements in a written note.

  5. 05

    Testing strategy

    Deciding what to test at which level so that tests stay cheap and trustworthy.

    • The test pyramid and its limits
    • JUnit 5, Mockito and the over-use of mocks
    • Integration tests against a real database with Testcontainers
    • Slice tests (@DataJpaTest, @WebMvcTest)
    • Causes of flaky tests and how to remove them

    Hands-on lab: Write a test strategy document for an existing service and add a Testcontainers integration test for its critical flow.

  6. 06

    Clean code in a growing codebase

    Managing structure, naming and dependencies as a codebase grows.

    • Package structure and dependency rules between layers
    • Separating the domain model from service code
    • Refactoring techniques and test-protected change
    • Designing exceptions and an error model
    • Making technical debt visible

    Hands-on lab: Split a complex service class into small parts with clear responsibilities while keeping the tests green.

  7. 07

    Diagnosing production-like problems

    A systematic approach to slowness, memory growth and quiet failures.

    • Structured logging and correlation IDs
    • Micrometer metrics and the key signals
    • Reading profilers and flame graphs
    • Connection pool exhaustion and thread pool saturation
    • A hypothesis-driven diagnosis method

    Hands-on lab: Diagnose a deliberately broken service (pool exhaustion, slow query) using only logs, metrics and a profiler, and write up a postmortem.

  8. 08

    Code review practice

    Review is both a skill and a team habit; we practise it from both sides.

    • Preparing small, well-explained Pull Requests
    • A review checklist: correctness, readability, tests, risk
    • Writing constructive feedback and responding to it
    • Security and performance signals in review

    Hands-on lab: Review a given Pull Request in writing, then answer the comments on your own Pull Request with reasoned replies.

Practice assignments

  • Heap dump analysis with a written conclusion
  • A test that reproduces and then guards a concurrency bug
  • Measuring and reducing JPA query counts
  • Justifying an index decision with EXPLAIN
  • Reviewing two Pull Requests

Portfolio deliverables

  • A load-tested service with a short capacity note
  • A test strategy document and Testcontainers tests
  • A written postmortem of a performance diagnosis
  • A portfolio sample of written code reviews

How learning is assessed

  • Mentor code review of your Pull Requests
  • Defense of the diagnosis postmortem
  • A practical check on concurrency and JPA
  • A short technical discussion in which you explain your own code

Tools and technologies

  • Java 21
  • Spring Boot
  • PostgreSQL
  • JUnit 5 and Mockito
  • Testcontainers
  • VisualVM and JDK Flight Recorder
  • Eclipse MAT
  • Micrometer
  • Git

Level progression

Before
Before: the Java Backend Career Track, or at least 1 year of practical junior-level experience.
After
After: Enterprise Spring Boot, then Microservices and Distributed Systems.
Length and format
Length and format are not set yet; the program is planned and not scheduled.

Frequently asked questions

Frequently asked questions

Is this program available now?

No. It is planned and not scheduled yet. No dates or prices have been announced. You can register interest or request a consultation.

I have not taken the Java Backend Career Track. Can I join?

Possibly, if you have at least 1 year of real work with Java and Spring Boot. If your fundamentals are weak, the Career Track is the better route. A consultation can help assess your level together.

Do I need Java 21 for virtual threads?

Yes, the program is built on Java 21. Earlier versions have no virtual threads, although the other topics (JVM, JPA, SQL, testing) apply to earlier versions too.

Will the program give a certificate?

No certificate is promised. Evaluation takes the form of mentor feedback, reviews and defenses, and is a recommendation only.

Register interest

This is not an application and creates no payment obligation. We contact you when the program is scheduled or to discuss a format that suits you.

How should we contact you?