Corporate · onsite · online training worldwide
contact@DevOpsSchool.com· +91 99057 40781·
> Programming Language & Platform · DevOpsSchool Trainer

Java Trainer

Private corporate batches, live online cohorts and 1-on-1 mentoring in the language and the JVM together — object design, collections, streams, concurrency, JDBC and running Java in production — taught by a practitioner who runs it in production.

20 years across DevOps, SRE and Security · 10,000+ engineers trained · Trained teams at JPMorgan Chase, Verizon, Nokia and the World Bank

DeliveryOnline · Onsite · Hybrid
FormatsCorporate · 1-on-1 · Cohort
AgendaCustomisable
Batch size8–30 engineers
Engineers we've trained work at
JPMorgan ChaseBank of AmericaWells FargoVerizonNokiaWorld BankGE HealthcareVMwareOracleQualcommMercedes-BenzAirbusDatadogSplunkDeloitteInfosysWiproCapgemini
# who teaches it

Your Java trainer

Rajesh Kumar

Principal DevOps Engineer & Architect

20 years in productionPrincipal / architect roles10,000+ engineers trainedM.Tech BITS Pilani25+ certifications

Rajesh teaches Java as a language on a runtime rather than as syntax in isolation: what the JVM does with a class at load time, why the memory model matters before you write your first synchronized block, and how bytecode, just-in-time compilation and garbage collection explain the behaviour engineers actually observe in production. Sessions work the full progression — types and control flow, object design with classes, interfaces, records and sealed types, generics and the collections framework, exceptions and resource handling, IO and NIO, then the functional half of modern Java with lambdas, streams, Optional and java.time. The concurrency module covers threads, the executor framework, CompletableFuture, the concurrent collections and virtual threads. Database work is taught through JDBC directly — drivers, connections, statements, result sets, metadata and CRUD — so that what a framework does later is visible rather than magical, and the final module works against a running application: heap dumps, garbage collection logs, Flight Recorder, and Java inside a container.

Twenty years across DevOps, SRE and Security, in principal and architect roles at PayPay, SoftwareAG, ServiceNow, JDA Software, Intuit, Adobe and others. He has trained engineers at JPMorgan Chase, Verizon, Nokia, the World Bank, VMware, Oracle, Mercedes-Benz and Airbus — more than 10,000 people personally. He teaches what he runs, not what he reads.

One practitioner, not a bench

You are booked with a named engineer, and that is who turns up. Marketplaces and larger providers rotate whoever is free, so the person who sold you the agenda is rarely the person teaching it.

The same trainer is available for the next engagement, which matters when a team builds on what it learned last time.

18,000+certified learners
500+corporate batches delivered
50+countries served
100+certification programmes
# faculty

Who delivers Java engagements

Your batch is assigned a named trainer before it starts, and that is who teaches it. See the full faculty.

How your Java trainer is chosen

Engagements are matched on the tool, not the calendar. For Java that means a trainer who has run it in production — the language and the JVM together — object design, collections, streams, concurrency, JDBC and running Java in production — rather than whoever is free that week. You are told who is teaching before you commit, and that person is on the discovery call that shapes the agenda.

Where a batch is large enough to need a second trainer, the pairing is declared up front. The lead trainer stays accountable for the syllabus and the assessment either way.

Rajesh Kumar

Principal DevOps Engineer & Architect

India20 yrsLead trainer

Twenty years across DevOps, SRE and Security in principal and architect roles at PayPay, SoftwareAG, ServiceNow, JDA Software, Intuit, Adobe, IBM/Emptoris, Ness, MindTree and Accenture. He has trained more than 10,000 engineers personally, at organisations including JPMorgan Chase, Verizon, Nokia, the World Bank, VMware, Oracle, Mercedes-Benz and Airbus. He teaches what he runs, not what he reads.

Kapil Gupta

IndiaInstructorCoach

Kunal Jain

IndiaInstructorCoach

Nikhil Gupta

IndiaInstructorCoach

Pranab Kumar

IndiaInstructorCoach

Rohit Ghatol

IndiaInstructorCoach

Amit Agarwal

IndiaInstructorCoach

Anil Kumar

IndiaInstructorCoach

Balachandran Anbalagan

IndiaInstructorCoach

Durga Prasad

IndiaInstructorCoach

Gaurav Aggarwal

IndiaInstructorCoach

Harsh Mehta

IndiaInstructorCoach

# how to engage

Four ways to work with this trainer

Private corporate batch

Teams of 8–30

Custom agenda, your timezone, onsite or online, NDA-friendly.

Request a quote

1-on-1 mentoring

Individual engineers

A private instructor and a curriculum built around your goal.

₹99,999

Live & Interactive cohort

Individuals who want peers

Scheduled batch, max 8 to 10 hours of live instruction.

₹34,999

Self-paced video

Self-starters

Full LMS access — 20+ courses and 50+ tools included.

₹833/mo
# private batches

Private Java training for your team

A private batch starts with a discovery call. We look at the stack you actually run — the CI system, the cloud, the constraints — and map the agenda onto it, so examples use your topology rather than a generic one.

Delivery is onsite at your premises, live online, or hybrid, scheduled around your release calendar rather than ours. Batches run 8 to 30 engineers.

Every attendee leaves with recordings, slides, lab repositories and a completion certificate. You receive an attendance and assessment report. Invoicing supports PO and GST.

Talk to us about a private Java batch

What you provide vs what we bring

  • You: the room or the call, and the engineers
  • Us: trainer, agenda, labs, assessment, certificates
  • Labs: we guide your team through provisioning their own free-tier cloud environment — the skill goes with them
# the technology

What is Java?

Java is a statically typed, object-oriented programming language and, just as importantly, a runtime platform. Source compiles to bytecode rather than to machine instructions, and that bytecode executes on the Java Virtual Machine, which loads classes, verifies them, manages memory and — through just-in-time compilation — turns the hot paths into native code while the program runs. This is why a Java application is portable across operating systems and why its performance characteristics are those of a managed runtime: excellent throughput once warm, with garbage collection and startup cost as the trade-offs.

The language has changed substantially since the versions most people learned. Lambdas and the Stream API made collection processing declarative. Optional gave a type-level answer to null. The module system, records, sealed types, pattern matching for switch, text blocks and local variable type inference removed a great deal of the ceremony Java was criticised for. Virtual threads changed the economics of concurrent server code by making a blocking thread cheap again. The six-month release cadence with long-term-support versions means a real project decision is now which Java to target, not whether to upgrade.

What keeps Java central is the platform around it. The standard library covers collections, IO and NIO, time, concurrency and JDBC for database access. Maven and Gradle handle builds and dependencies; JUnit and Mockito handle testing. Spring, Jakarta EE, Hibernate, Kafka clients, Hadoop and Spark are all Java or JVM projects, which means enterprise back ends, Android applications, data platforms and streaming systems all sit on the same runtime — and the same skills in reading a heap dump or a garbage collection log apply across all of them.

Why this skill matters now

Java runs a very large share of the systems organisations cannot switch off: banking cores, insurance platforms, telecom billing, retail back ends, government systems and the data infrastructure underneath analytics. That installed base is not shrinking, and it generates sustained demand for engineers who can both maintain it and modernise it.

The modernisation part is where the current opportunity sits. A great deal of production Java was written against Java 8 idioms and is now being moved onto supported long-term-support releases, restructured into services, and containerised. That work needs people who understand the newer language features well enough to use them properly rather than cosmetically, who know what the module system and the removed internal APIs will break, and who can reason about memory and garbage collection when an application is suddenly running inside a container with a hard limit.

The second driver is that Java skills transfer unusually well. The JVM underneath Kotlin, Scala and Clojure is the same; the concurrency model, the memory model, the profiling tools and the build ecosystem are shared. An engineer who genuinely understands the platform is employable across a much wider surface than the language alone suggests.

Java training
# outcomes

What your team can do afterwards

Explain the Java platform properly — JDK, JRE, JVM, bytecode, class loading, just-in-time compilation and garbage collection
Write idiomatic modern Java using records, sealed types, pattern matching, var and text blocks where they genuinely help
Design types well: interfaces, abstract classes, composition over inheritance, immutability and correct equals and hashCode
Use generics and the collections framework fluently, and choose the right collection for a stated access pattern
Handle failure deliberately — checked and unchecked exceptions, try-with-resources, and exceptions that carry useful information
Process data declaratively with lambdas, method references, the Stream API, collectors and Optional
Write correct concurrent code with the executor framework, concurrent collections, CompletableFuture and virtual threads
Access databases directly through JDBC — drivers, connections, prepared and callable statements, result sets and metadata
Build, test and package with Maven or Gradle, JUnit 5 and Mockito, and produce a runnable artifact
Diagnose a running Java application: heap dumps, garbage collection logs, thread dumps, profiling and container memory limits
# curriculum

10 modules. Live demos in a real lab, not slides.

01The Java platformLive & Interactive5 hrs · 2 assignments · 1 capstone

What you are actually programming against. JDK, JRE and JVM distinguished properly; the compile-to-bytecode model; class loading, verification and linking; just-in-time compilation and why a Java application is slow for its first few seconds; the memory areas; and the release train that decides which Java version a project should target.

Topics: JDK, JRE and JVM: what each contains · Source to bytecode to native: the compilation model · Class loading, verification, linking and initialisation · Class loaders and the delegation model · Just-in-time compilation, tiered compilation and warm-up · JVM memory areas: heap, stack, metaspace, code cache · Garbage collection at a conceptual level · The six-month release cadence and long-term-support versions · Choosing a JDK distribution · Setting up a development environment and an IDE · javac, java, jshell and the command-line tools

  • Assignments: (1) Compile a class, inspect its bytecode with javap and explain what you see; (2) Run the same program on two JDK versions and account for any difference
  • Capstone: Produce a written recommendation on target Java version and JDK distribution for a stated project
02Language core — types, control flow and stringsLive & Interactive5 hrs · 2 assignments · 1 capstone

The foundation, taught with the traps included. Primitives against their wrappers and the autoboxing cost; integer overflow and floating point behaviour engineers get bitten by; arrays; control flow including enhanced switch; and strings, where the pool, immutability and the difference between concatenation strategies actually matter for performance.

Topics: Primitives, wrappers, autoboxing and its cost · Integer overflow, floating point precision and BigDecimal · var and local variable type inference · Operators, precedence and the ternary · Conditionals, loops and labelled breaks · Enhanced switch expressions and pattern matching · Arrays, multidimensional arrays and the Arrays utility class · Strings: immutability, the string pool and interning · StringBuilder and concatenation performance · Text blocks and formatting · Enums and enums with behaviour · Varargs and method overload resolution

  • Assignments: (1) Fix a set of programs that fail on overflow, floating point comparison and string identity; (2) Rewrite a chain of if-else conditions as a switch expression with pattern matching
  • Capstone: Build a command-line utility that parses, validates and transforms structured input correctly
03Object orientation and type designLive & Interactive5 hrs · 2 assignments · 1 capstone

Designing types rather than just declaring them. Classes, constructors and initialisation order; encapsulation; inheritance and polymorphism with the cases where composition is the better answer; interfaces with default and static methods; abstract classes; then the modern additions — records for data carriers and sealed types for closed hierarchies — and the object contracts every class inherits.

Topics: Classes, fields, methods and constructors · Initialisation order, instance and static initialiser blocks · Encapsulation and access modifiers · Inheritance, method overriding and super · Polymorphism and dynamic dispatch · Composition over inheritance, with real examples · Interfaces, default methods and static methods · Abstract classes and when to prefer each · Records as transparent data carriers · Sealed classes and interfaces · equals, hashCode and toString contracts · Immutability and defensive copying · Nested, inner, local and anonymous classes · Object cloning and why it is usually the wrong tool

  • Assignments: (1) Refactor a deep inheritance hierarchy into composition and interfaces; (2) Write a value type with correct equals, hashCode and immutability, and prove both with tests
  • Capstone: Design the domain model for a stated problem using records, sealed types and interfaces, and defend the structure
04Generics and the collections frameworkLive & Interactive5 hrs · 2 assignments · 1 capstone

The part of the standard library used in every non-trivial program. Generics, type erasure and what it prevents; bounded types and wildcards with the producer-extends, consumer-super rule; then the collection interfaces and implementations compared by actual behaviour — ordering, null handling, iteration cost and thread safety — and the utility methods that shorten most code.

Topics: Generic classes, methods and type parameters · Type erasure and its consequences · Bounded type parameters and wildcards · Producer extends, consumer super · The collection hierarchy: Collection, List, Set, Queue, Map · ArrayList vs LinkedList, and why the answer is usually ArrayList · HashSet, LinkedHashSet and TreeSet · HashMap internals, load factor and collision behaviour · LinkedHashMap, TreeMap and NavigableMap · Deque, PriorityQueue and the queue implementations · Comparable, Comparator and sorting · Iterator, ListIterator and ConcurrentModificationException · Collections and List.of, Map.of and immutable factories · Choosing a collection for a stated access pattern

  • Assignments: (1) Benchmark three collection choices against one access pattern and justify the winner; (2) Fix code that fails at runtime because of erasure or an unsafe cast
  • Capstone: Implement a data structure with generics and a custom comparator, covered by a full test suite
05Exceptions, resources and IOLive & Interactive5 hrs · 2 assignments · 1 capstone

Handling failure and talking to the outside world. The exception hierarchy, checked against unchecked and the genuine argument on both sides, try-with-resources and AutoCloseable, custom exceptions that carry context, and then IO: streams and readers, the NIO.2 file APIs, serialisation and its risks, and character encoding, which causes more production bugs than it should.

Topics: The Throwable hierarchy: Error, Exception, RuntimeException · Checked versus unchecked exceptions and the design argument · try, catch, finally and multi-catch · try-with-resources and AutoCloseable · Suppressed exceptions and exception chaining · Designing custom exceptions that carry context · Anti-patterns: swallowing, logging-and-rethrowing, catching Exception · Byte streams and character streams · Buffering and why unbuffered IO is slow · NIO.2: Path, Files and directory walking · Character encoding, charsets and the default charset trap · Serialisation, transient fields and its security risks · Working with JSON and properties files

  • Assignments: (1) Rewrite a resource-leaking IO routine with try-with-resources and prove no descriptors leak; (2) Diagnose and fix three encoding bugs in file handling
  • Capstone: Build a file processing pipeline with correct resource handling, encoding and failure reporting
06Functional Java — lambdas, streams and timeLive & Interactive5 hrs · 2 assignments · 1 capstone

Modern Java's declarative half. Functional interfaces and lambdas, method references, and the built-in function types; the Stream API from source through intermediate operations to terminal operations, with collectors, grouping and reduction; Optional used as designed rather than as a null check; and java.time, which finally made date and time handling correct.

Topics: Functional interfaces and lambda syntax · Method and constructor references · Function, Supplier, Consumer, Predicate and the primitive variants · Stream sources, intermediate and terminal operations · map, filter, flatMap and the laziness model · Collectors: toList, joining, groupingBy, partitioningBy, teeing · Reduction, summary statistics and custom collectors · Parallel streams, and when they actually help · Optional: creation, mapping, and how not to use it · java.time: Instant, LocalDate, LocalDateTime, ZonedDateTime, Duration, Period · Time zones, daylight saving and formatting · Refactoring imperative loops into streams, and when not to

  • Assignments: (1) Rewrite five imperative data-processing methods as streams, and one stream back as a loop with justification; (2) Fix a date handling bug involving time zones and daylight saving
  • Capstone: Build a reporting component that aggregates a dataset with streams and collectors, fully tested
07Concurrency and the memory modelLive & Interactive5 hrs · 2 assignments · 1 capstone

The subject that separates competent Java from safe Java. The memory model, visibility and happens-before before any locking is discussed; threads and their lifecycle; synchronized, volatile and the lock objects; the executor framework as the correct abstraction; concurrent collections and atomics; CompletableFuture for composition; then virtual threads and what they change for server workloads.

Topics: The Java memory model: visibility, ordering and happens-before · Threads, lifecycle, interruption and daemon threads · Race conditions, deadlock, livelock and starvation · synchronized, intrinsic locks and volatile · ReentrantLock, ReadWriteLock and Condition · The executor framework: thread pools, sizing and rejection policies · Callable, Future and shutdown handling · Concurrent collections and atomic classes · CompletableFuture and composing asynchronous work · The fork/join framework and work stealing · Virtual threads and structured concurrency · Thread confinement, immutability and avoiding shared state · Testing and debugging concurrent code

  • Assignments: (1) Diagnose and fix a race condition and a deadlock in supplied code; (2) Convert a thread-per-request component to an executor and then to virtual threads, measuring each
  • Capstone: Build a concurrent processing component with bounded pools, correct shutdown and no shared mutable state
08JDBC and database accessLive & Interactive5 hrs · 2 assignments · 1 capstone

Talking to a database directly, so that what an ORM does later is visible rather than mysterious. JDBC architecture and driver types, installing the driver, obtaining connections, the three statement types and why prepared statements are both faster and the answer to SQL injection, result sets, metadata, transactions, and connection pooling.

Topics: Java database connectivity and JDBC architecture · Driver types, and the Type 4 driver for MySQL · Installing the MySQL connector or ojdbc driver and the classpath · DriverManager, DataSource and the Connection object · Statement, PreparedStatement and CallableStatement · Why PreparedStatement prevents SQL injection · The ResultSet interface and its methods · ResultSetMetaData and its methods · DatabaseMetaData and its methods · Sample programs performing CRUD operations · Transactions, commit, rollback and isolation levels · Batch updates and performance · Connection pooling with HikariCP · Where JPA and Hibernate take over, and what they generate

  • Assignments: (1) Write a complete CRUD data access layer with prepared statements and transaction handling; (2) Demonstrate a SQL injection against a Statement, then close it with a PreparedStatement
  • Capstone: Deliver a pooled, transactional data access layer with metadata-driven mapping and an integration test suite
09Build, test and packageLive & Interactive5 hrs · 2 assignments · 1 capstone

Turning code into a deliverable. Maven and Gradle project structure, dependency resolution and conflict mediation, the build lifecycle and useful plugins; JUnit 5 with parameterised tests and assertions; Mockito for isolation and its limits; coverage as a signal rather than a target; then packaging — fat jars, the module system, jlink and container images.

Topics: Maven project structure, POM and the build lifecycle · Gradle and the build script model · Dependency resolution, scopes, transitive dependencies and conflict mediation · Dependency locking and reproducible builds · Multi-module projects · JUnit 5: lifecycle, assertions, assumptions, parameterised and nested tests · Mockito: mocks, stubs, spies, argument captors and when not to mock · Test doubles, integration tests and Testcontainers · Code coverage with JaCoCo, and its honest limits · Static analysis: SpotBugs, Checkstyle, SonarQube quality gates · Packaging: jars, fat jars and the manifest · The module system, module-info and the migration path · jlink and custom runtime images · Building container images for Java applications

  • Assignments: (1) Convert a single-module project into a multi-module build with a shared dependency version policy; (2) Bring an untested class to meaningful coverage with unit and integration tests
  • Capstone: Deliver a built, tested, statically analysed and packaged application with a reproducible build
10Running Java in productionLive & Interactive5 hrs · 2 assignments · 1 capstone

What happens after deployment. Garbage collectors and how to choose between them; reading garbage collection logs; heap dumps and finding a leak; thread dumps and diagnosing a stall; Flight Recorder and profiling; JVM flags that matter and the many that do not; and the container question — heap sizing under a cgroup limit, startup time, and what breaks when memory is capped.

Topics: Garbage collection algorithms: G1, Parallel, ZGC, Shenandoah · Generational collection, allocation and promotion · Choosing and configuring a collector for a workload · Reading garbage collection logs and pause distributions · Heap sizing, and why the default is often wrong · Heap dumps: capturing and analysing a memory leak · Thread dumps: capturing and diagnosing a stall or deadlock · Java Flight Recorder and Mission Control · Profiling: CPU, allocation and lock contention · JVM flags that matter, and cargo-cult flags that do not · Java in containers: cgroup awareness and heap percentage flags · Startup time, class data sharing and ahead-of-time options · JMX, metrics and application observability · Common production failure modes and their signatures

  • Assignments: (1) Find and fix a memory leak from a heap dump alone; (2) Diagnose an application stall from a thread dump and correct the cause
  • Capstone: Deliver a production readiness note for one application: collector choice, sizing, flags, metrics and incident signatures

Need this mapped to your stack?

We rebuild the agenda around the tools you actually run.

Request a custom agenda
# hands-on

Labs and capstones your engineers actually build

LAB · TYPE DESIGN

Refactor a hierarchy that fights you

Take a deep inheritance tree with broken equals and hashCode, rebuild it with composition, interfaces, records and sealed types, and prove the contracts with tests.

ooprecordsequals
LAB · COLLECTIONS

Pick the right collection, with evidence

Benchmark list, set, map and deque implementations against a stated access pattern, then justify the choice from the measurements rather than from habit.

collectionsgenericsbenchmarking
LAB · CONCURRENCY

Break it, then make it safe

Diagnose a race condition and a deadlock in running code, fix both, then migrate the component from a thread pool to virtual threads and measure the difference.

concurrencyexecutorsvirtual threads
LAB · JDBC

Inject, then prevent

Build a data access layer with Statement, demonstrate a working SQL injection against it, then rebuild with prepared statements, transactions and a connection pool.

jdbcsql injectiontransactions
LAB · DIAGNOSTICS

The application that eats memory

Capture a heap dump from a leaking application, find the retaining path, fix the leak, and confirm with garbage collection logs that the pattern is gone.

heap dumpgc logsprofiling
CAPSTONE · SERVICE

Build it, test it, run it

Deliver a complete Java component — designed types, streams, concurrent processing, JDBC persistence, full test suite, reproducible build and a tuned runtime configuration.

capstonemavenproduction
# ecosystem

The tools Java sits next to

Maven
Gradle
JUnit
Mockito
Spring Boot
Hibernate
IntelliJ IDEA
Git
Docker
PostgreSQL
MySQL
Kafka
SonarQube
Jenkins
Kotlin

Who this is for

  • Developers moving into Java from another language
  • Java developers who learned Java 8 idioms and need the modern language properly
  • Backend engineers maintaining or modernising a large existing Java codebase
  • Android and JVM-language developers who want the platform underneath explained
  • SREs and platform engineers who have to diagnose Java applications they did not write
  • Technical leads setting code standards, build policy and target runtime versions

Pre-requisites

  • Programming experience in any language — variables, functions, conditionals and loops
  • Comfortable on a command line and with a code editor or IDE
  • Basic understanding of how a program is compiled and run
  • Familiarity with SQL is useful for the JDBC module but is not assumed
  • A machine with a JDK, an IDE and Docker available for the database and container labs
# pricing

Straightforward pricing

Every plan includes 1 year of full LMS access — not just this course, the entire DevOpsSchool LMS: 20+ courses, 50+ tools, videos, quizzes, assignments and projects.

Self-paced video

₹833/mo

Billed yearly at ₹9,996

Enroll now

1-on-1 mentorship

₹99,999

Full program, private instructor

Enroll 1-on-1

Corporate / private batch

8–30 engineers · custom agenda · onsite or online · PO and GST invoicing

Get a custom quote

Refunds. If we cancel or postpone a cohort, you get a full refund within 15 days. There is no money-back guarantee otherwise.

Terms. Course material remains licensed to the attendee. Read the terms.

Your data. We don't share it with third parties. Privacy policy.

Every attendee gets a verifiable certificate

  • Issued per attendee on completion
  • Verifiable at devopsschool.com/certificates
  • Hard copy available on request
  • Corporate batches receive an attendance and assessment report
DevOpsSchool

Java Training

Certificate of completion

# feedback

What engineers say

4.4 / 5 from 26 reviews on Trustpilot.

★★★★★
Basics explanation was exemplary from Rajesh where he dealt with complicated topics to be simple. Great learning stuff personally for me.
Krishna Mohan Yelleti · Trustpilot
★★★★★
Very detailed explanation and has lots of patience in attending the questionnaire. Thanks again for your wonderful sessions.
Uttam Samudrala · Trustpilot
★★★★★
Good discussion, helped us to understand different tools in SRE.
Prashant Saxena · Trustpilot
★★★★★
Got good lab sessions which kept the new DevOps tool learnings to the point and it helped a lot in my career.
robin son · Trustpilot
★★★★★
I took Terraform training with the tutor named Mithilesh. I requested to tailor the course curriculum for my needs. He did an excellent job of showing me how to write the Terraform script per the instructions provided.
jason smith · Trustpilot
★★★★★
My experience with the AIOps training was positive. The course covered important topics in a structured way, and Rajesh Kumar explained the concepts patiently. I found the practical aspects particularly helpful because they made the technical content easier to understand.
AARTI KUMARI · Trustpilot
# comparison

Why a named practitioner beats a marketplace listing

What mattersYouTube + blogsGeneric online courseFreelance marketplaceDevOpsSchool
Named practitionerNoRarelyVaries per bookingYes — same trainer each time
Production experienceUnknownUnknownUnverified20 years, named employers
Custom agendaNoNoSometimesBuilt from your stack
Onsite deliveryNoNoSometimesYes
Lab environmentNoneSandbox that expiresVariesYour own cloud — skill goes with you
AssessmentNoneQuizRarelyAssignments + capstone per module
Per-attendee certificatesNoSometimesRarelyYes
Corporate invoicingNoLimitedVariesPO and GST
Post-training supportNoneForum, time-limitedNoneLifetime forum access
# questions

Frequently asked

Which Java version do you teach?
A current long-term-support release by default, with the features that arrived along the way flagged by the version that introduced them. If your production estate targets an older version we teach against that and mark clearly what you gain by upgrading, which is often the most useful part of the course for a modernisation team.
Can the agenda be customised for our stack?
Yes — that is the normal case for a private batch. We start with a discovery call, look at your target Java version, build tool, database, frameworks and whether the priority is new development or modernisation, and rebuild the module list around them.
Do you cover Spring and Spring Boot?
Not in this course, deliberately. This is the language and the platform — the material a Spring developer needs underneath the framework, including the JDBC layer that Spring Data is built on. Spring Boot is a separate track, and taking them in that order works considerably better than the reverse.
Do you deliver onsite?
Yes. Private batches run onsite at your premises, live online, or hybrid. You provide the room and the engineers; we bring the trainer, agenda, labs, assessment and certificates.
What lab environment do we need?
A laptop per attendee with a JDK, an IDE and Docker for the database and container work. Attendees keep everything they build. We deliberately do not hand out temporary sandboxes, because the environment they build is the one they keep.
How long does a private Java batch take?
Typically five days for the full programme. A three-day core covers the platform, language, object design, collections and exceptions; the remaining two cover streams, concurrency, JDBC, build and testing, and production diagnostics.
Is this useful for engineers who already write Java daily?
Usually yes, and those batches tend to move fastest through the early modules and spend the time on concurrency, the memory model, streams used properly, and production diagnostics — which is where most experienced Java developers have gaps, because those skills are only exercised during incidents.
Do you cover the JVM tuning and troubleshooting side?
A full module, worked against a running application rather than on slides. Garbage collector choice and configuration, reading collection logs, capturing and analysing heap and thread dumps, Flight Recorder profiling, and the container-specific memory behaviour that catches teams moving Java onto Kubernetes.
What size are batches?
Private corporate batches run 8 to 30 engineers. Public Live & Interactive cohorts are capped at 10 so everyone gets time with the trainer.
Do attendees get a certificate?
Yes — every attendee receives a completion certificate, verifiable at devopsschool.com/certificates. Corporate batches also receive an attendance and assessment report.
What happens if someone misses a session?
Sessions are recorded and available in the LMS, and attendees keep LMS access for a year. For public cohorts, a missed session can be picked up in a later batch.
What is your refund position?
If we cancel or postpone a cohort, you receive a full refund within 15 days. There is no general money-back guarantee, and GST and gateway fees are not refunded.

Still deciding?

Tell us the team, the stack and the timeline. You'll get a straight answer, not a sales sequence.

Talk to an advisor
# ready when you are

Book a Java trainer — or ask a question first.

  • No spam, no drip sequence
  • Syllabus in 60 seconds
  • A human reply within one business day

Prefer to call or email?

More ways to reach us on the contact page.

Talk to an advisorRequest a quote