Backend Development

A growing collection of backend-development references — practical, example-driven documentation on the core technologies of server-side application development, from the Java language itself to the Spring Boot framework.

Sections

  • Java Reference — the Java language and its standard library: language fundamentals, object-oriented programming, records and sealed classes, pattern matching, generics, the Collections Framework, streams, java.time, I/O and NIO.2, concurrency and virtual threads, the module system, and unit testing with JUnit 5 and Mockito, plus a downloadable cheat sheet.

  • Hibernate Reference — Hibernate ORM as the Jakarta Persistence provider: entities, associations and inheritance mapping, the persistence context and entity lifecycle, locking, fetching and the N+1 problem, HQL/JPQL and the Criteria API, second-level caching, schema generation, Envers auditing, multitenancy, Hibernate Search (Lucene vs. Elasticsearch backends), Hibernate Reactive and Data Repositories, and Bean Validation with Hibernate Validator, plus a downloadable cheat sheet.

  • SpringBoot Reference — Spring Data across SQL, MongoDB, Couchbase, and Neo4j, transaction isolation and locking, local and distributed caching, REST and gRPC APIs, Spring Security (annotations, the security context, OAuth2/OIDC authorization server and social login), server-side web UI frameworks, Kafka messaging, scheduling, observability (Micrometer, OpenTelemetry, Prometheus, Grafana), reactive programming with Project Reactor, concurrency alternatives (virtual threads, Kotlin coroutines), developer productivity tools (Lombok, MapStruct), testing (JUnit, Mockito, Testcontainers, JMeter), contract-first API development (OpenAPI, protobuf, AsyncAPI, Avro), Maven quality plugins, hexagonal/DDD architectural patterns, and Java vs. Kotlin guidance, plus a downloadable cheat sheet.

  • GraphQL Reference — GraphQL as a query language and runtime: the schema and type system, execution and resolvers, pagination, security and demand control, and federation, with dedicated Spring for GraphQL (Java) and Strawberry/Ariadne (Python/FastAPI) integration coverage plus configuring Apollo Client, urql, Relay and other clients, and a downloadable cheat sheet.

  • Spring Batch Reference — finite, bounded batch processing: the Job/Step/JobRepository domain model, configuring and running jobs, chunk-oriented and tasklet steps, fault tolerance (skip & retry), ItemReader/ItemProcessor/ItemWriter, scaling and partitioning, Spring Batch Integration, observability, cloud-native batch, and testing, plus a downloadable cheat sheet.

  • OAuth Reference — OAuth as a protocol rather than a framework binding: OAuth 1.0a and its evolution into OAuth 2.0 and the OAuth 2.1 draft, access/refresh/ID tokens and the JOSE family, every grant type from authorization code with PKCE to the device grant and token exchange, the native-app and single-page-app profiles, the Security BCP, sender-constrained tokens (DPoP and mTLS), PAR/JAR and the FAPI profiles, OpenID Connect with discovery, logout and social login, passwordless and multi-factor authentication methods, and how all of it maps onto Spring Security 7, plus a downloadable cheat sheet.