Skip to main content
← All Series

Series · 9 parts · ~51 min total

Go for JVM Engineers

How Go's structural typing, value semantics, and absence of class hierarchies force a productive rethink for JVM engineers.

  1. 1

    The Mental Model Shift

    How Go's structural typing, value semantics, and absence of class hierarchies force a productive rethink for JVM engineers.

    6 min

    Nov 15, 2025

  2. 2

    Errors as Values

    How Go's explicit error returns replace exception hierarchies, and why errors.Is, errors.As, and wrapping make it more powerful than it looks.

    5 min

    Nov 22, 2025

  3. 3

    Concurrency: Goroutines and Channels

    How Go's CSP-based concurrency model compares to JVM threads, why channels beat shared-state synchronisation, and how context cancellation keeps goroutines tidy.

    5 min

    Nov 29, 2025

  4. 4

    Memory and GC Differences

    How Go's garbage collector and escape analysis differ from the JVM's generational GC, and what that means for latency-sensitive services.

    6 min

    Dec 6, 2025

  5. 5

    Modules and Tooling

    How Go modules, workspaces, and the standard toolchain map to Maven and Gradle workflows — and where Go's single-binary build model changes everything.

    5 min

    Dec 13, 2025

  6. 6

    Web Servers from net/http

    How to build production-grade HTTP services using Go's standard library, map Spring MVC patterns to http.ServeMux and middleware, and know when to reach for a router.

    5 min

    Dec 20, 2025

  7. 7

    Testing the Go Way

    How Go's testing package, table-driven tests, and testable examples replace JUnit's annotation model — and why Go tests are simpler than they look.

    6 min

    Dec 27, 2025

  8. 8

    Profiling

    How to use pprof, execution traces, and flamegraphs to find performance bottlenecks in Go services — and how these compare to JFR and async-profiler.

    6 min

    Jan 3, 2026

  9. 9

    When Go Is Wrong

    Honest assessment of where Go's design falls short for JVM engineers: domain modelling gaps, generics limitations, and ecosystem holes you should know before committing.

    7 min

    Jan 10, 2026