May 6, 2026
AWS
Managing Secrets Securely with AWS Secrets Manager and Spring Boot
How to load secrets from AWS Secrets Manager into Spring Boot at startup, wire IAM least-privilege access, enable automatic rotation, and avoid the common configuration anti-patterns.
Java
Spring Boot
AWS
May 5, 2026
Java
Optional Done Right — Patterns That Actually Improve Readability
The Optional patterns that improve readability and the anti-patterns that make code worse — covering map, flatMap, or, ifPresentOrElse, and stream() with Java 9+ additions.
Java
Functional Programming
May 4, 2026
Betfair
Parsing Best Available to Back and Lay Prices from the Streaming API
How the Betfair Streaming API represents best available back and lay prices, how delta updates work, and how to reconstruct a clean order book view in Java without the full ladder overhead.
Java
Betfair
Trading
May 3, 2026
Spring Boot
Custom Health Indicators with Spring Boot Actuator
How to write custom HealthIndicator and CompositeHealthContributor implementations in Spring Boot Actuator — with real examples for external service checks and IAM-aware AWS dependencies.
Java
Spring Boot
Observability
May 2, 2026
Spring Boot
Exception Handling with @ControllerAdvice and RFC 7807 Problem Details
How to build consistent, standards-compliant error responses in Spring Boot 3 using @ControllerAdvice and the RFC 7807 ProblemDetail class.
Java
Spring Boot
REST API
May 1, 2026
Spring Boot
@ConfigurationProperties — Type-Safe Configuration Done Right
How to replace @Value sprawl with @ConfigurationProperties for type-safe, validated, and testable configuration in Spring Boot microservices.
Java
Spring Boot
Configuration
Apr 30, 2026
AWS
Provisioning Cloud Infrastructure with CDK for Java
How to define, deploy, and manage AWS infrastructure using the CDK for Java — stacks, constructs, environment separation, and the patterns that make CDK codebases maintainable at scale.
Java
AWS
CDK
Apr 29, 2026
Spring Boot
Real-Time Stream Processing with Kafka Streams
How to build real-time stream processing pipelines with Kafka Streams and Spring Boot — the Streams DSL, stateful operations, KTable joins, windowing, exactly-once processing, and production topology design.
Java
Spring Boot
Apache Kafka
Apr 28, 2026
Betfair
In-Play Trading Architecture — How Everything Changes at the Off
How the architecture of an automated Betfair trading system must change when transitioning from pre-race to in-play — latency requirements, signal sources, order management constraints, and the state machine that keeps it safe.
Java
Betfair
Trading
Apr 27, 2026
Betfair
Handling Market Suspension and Streaming Reconnection in Java
How to handle Betfair Streaming API disconnections, market suspensions, and state recovery correctly in Java — connection lifecycle management, exponential backoff reconnection, market status tracking, and safe order management during suspension.
Java
Betfair
Trading
Apr 26, 2026
Kubernetes
Health Probes and Spring Boot Actuator — Getting Them Right
How to wire Kubernetes liveness, readiness, and startup probes to Spring Boot Actuator health endpoints — and avoid the configuration mistakes that cause unnecessary pod restarts.
Java
Spring Boot
Kubernetes
Apr 25, 2026
Spring Boot
Distributed Locking with Redis — Preventing Concurrent Execution
How to use Redis-backed distributed locks to prevent duplicate execution across multiple application instances — with Redisson and Spring Integration.
Java
Spring Boot
Redis
Apr 24, 2026
Spring Boot
Graceful Shutdown — Draining Requests Before the JVM Exits
How to configure Spring Boot graceful shutdown correctly, what it protects against, and how to wire it safely with Kubernetes terminationGracePeriodSeconds.
Java
Spring Boot
Production
Apr 23, 2026
Betfair
Commission Modelling — Calculating True Net P&L
How Betfair commission really works — market base rate, Premium Charge, discount tiers — and how to model it correctly in a Java P&L calculator.
Betfair
Trading
Java
Apr 22, 2026
JPA
Performance Tuning — Solving the N+1 Query Problem for Good
How to identify and eliminate the N+1 query problem in JPA/Hibernate applications before it reaches production.
Java
JPA
Hibernate
Apr 21, 2026
Spring Batch
Processing Large Datasets Without Killing Your Database
A practical guide to Spring Batch for bulk data processing — chunk-based processing, JdbcCursorItemReader, skip and retry policies, restartability, and parallel partitioning at scale.
Java
Spring Batch
Performance
Apr 20, 2026
Spring Boot
Transaction Management Deep Dive
A thorough guide to Spring transaction management — how @Transactional actually works, propagation behaviours, common failure modes, transaction boundaries with MongoDB and JPA, and the patterns that keep complex services correct under failure.
Java
Spring Boot
MongoDB
Apr 19, 2026
Reflections
A Year of Java Posts — What I've Learned and What's Next
Reflecting on a year of writing about Java, Betfair trading systems, and software architecture — what resonated, what I got wrong, and what's ahead.
Java
Career
Software Development
Apr 18, 2026
Java
Pattern Matching — instanceof and Switch Expressions Done Right
A practical guide to pattern matching in modern Java — instanceof pattern variables, guarded patterns, switch expressions, sealed classes, and record patterns done properly.
Java
Pattern Matching
Modern Java
Apr 17, 2026
Betfair
In-Play Betting Automation — Latency, Execution, and Survival
The reality of automated in-play betting on Betfair — API vs Streaming API latency, market suspension cascades, hedging open positions, and building a Java system that survives the chaos.
Java
Betfair
In-Play
Apr 16, 2026
Betfair
BSP Starting Price — How It Works and How to Trade Around It
A practical guide to Betfair Starting Price — how the BSP algorithm works, when to use it, how to place BSP bets via the API, and how to use BSP as a model performance benchmark.
Betfair
BSP
Trading
Apr 15, 2026
Spring Boot
@Async — Offloading Work Without Blocking the Request Thread
How to use @Async in Spring Boot correctly — including the executor configuration, exception handling, and the proxy gotcha that trips everyone up.
Java
Spring Boot
Async
Apr 14, 2026
Architecture
The Twelve-Factor App Applied to Spring Boot
Applying the Twelve-Factor App methodology to Spring Boot microservices — what each factor means in practice, how Spring Boot supports it, and where developers commonly go wrong.
Java
Spring Boot
Architecture
Apr 13, 2026
Java
ExecutorService and Thread Pools — Getting Concurrency Right
Stop creating raw threads. Learn how to size and manage Java thread pools correctly, avoid Future.get() traps, and use CompletableFuture for everything new.
Java
Concurrency
Threading
Apr 12, 2026
AWS
SQS Messaging Patterns for Spring Boot Microservices
Practical SQS patterns for Spring Boot microservices — standard vs FIFO queues, @SqsListener, dead letter queues, idempotency, and visibility timeout tuning.
AWS
SQS
Spring Boot
Apr 11, 2026
Java
Enums as State Machines — Beyond Simple Constants
Use Java enums to build self-contained, type-safe state machines with validated transitions and behaviour attached directly to each state.
Java
Design Patterns
Architecture
Apr 10, 2026
AWS
Deploying Spring Boot to AWS ECS with Fargate
A practical guide to deploying containerised Spring Boot applications on AWS ECS with Fargate — Dockerfile, ECR, task definitions, ALB, Parameter Store, and GitHub Actions CI/CD.
Java
Spring Boot
AWS
Apr 9, 2026
Spring Boot
WebClient — Reactive HTTP Without the Complexity
How to use Spring WebClient as a modern, non-blocking replacement for RestTemplate — including when it's fine to just call .block().
Java
Spring Boot
WebClient
Apr 8, 2026
Betfair
Greening Up — Locking In Profits Before the Off
How to implement greening up on Betfair in Java — the maths, a GreenUpCalculator class, when to trigger it, handling partial greens, rounding, and the edge cases that catch out new traders.
Betfair
Trading
Java
Apr 7, 2026
Betfair
Integrating Live Sports Data Feeds with Betfair Java Systems
How to integrate live sports data feeds alongside Betfair market data in Java — correlating events to markets, consuming score signals, and meeting in-play latency requirements.
Java
Betfair
Sports Data
Apr 6, 2026
Java
The Java Time API — A Practical Field Guide
A no-nonsense guide to java.time — when to use LocalDate vs ZonedDateTime vs Instant, how to handle timezones correctly, formatting, Jackson serialisation, and the pitfalls to avoid.
Java
Date and Time
Best Practices
Apr 5, 2026
Java
MapStruct — Eliminating DTO Mapping Boilerplate
How MapStruct's annotation processor generates type-safe, compile-time DTO mapping code — removing the fragile handwritten boilerplate that breaks silently when your model changes.
Java
MapStruct
Spring Boot
Apr 4, 2026
Java
Foreign Function and Memory API — Project Panama Explained
How to use Java 21's Foreign Function and Memory API — MemorySegment, Arena, native function calls via MethodHandles, jextract, and when to use FFM over JNI or JNA.
Java
Java 21
Project Panama
Apr 3, 2026
Architecture
The Saga Pattern for Distributed Transactions with Kafka
How to implement the Saga pattern for distributed transactions in Java with Kafka — choreography vs orchestration, compensating transactions, state tracking, and the failure modes that trip up every first implementation.
Java
Spring Boot
Apache Kafka
Apr 2, 2026
AWS
Lambda SnapStart — Java Cold Start Solved?
What Lambda SnapStart actually does, how to configure it for Java, what changes in your application code to make it work correctly, and whether it actually solves the Java cold start problem in practice.
Java
AWS
Lambda
Apr 1, 2026
Betfair
Reading Ladder Depth — Beyond the Top 3 Levels
How to read and analyse full ladder depth from the Betfair Streaming API in Java — representing the full order book, detecting iceberg orders, measuring liquidity distribution, and using depth signals that the top 3 levels miss.
Java
Betfair
Trading
Mar 31, 2026
Betfair
Market Liquidity Analysis — Measuring Tradable Depth in Java
How to measure real-time market liquidity on Betfair in Java — available depth, spread analysis, matched volume, liquidity build patterns, and minimum thresholds for safe automated trading.
Java
Betfair
Liquidity
Mar 30, 2026
Kafka
Consumer Offset Management and Commit Strategies in Spring Boot
How Kafka consumer offsets work, the trade-offs between auto and manual commit, and how to implement at-least-once and exactly-once semantics correctly in a Spring Boot consumer.
Java
Kafka
Spring Boot
Mar 29, 2026
Betfair
Large Order Detection from Ladder Depth in Java
How to detect large orders and sudden liquidity changes in the Betfair Exchange ladder, what the signals mean for price movement, and how to implement the detection logic in Java.
Java
Betfair
Trading
Mar 28, 2026
Spring Boot
Structuring a Multi-Module Maven Project
How to structure a Spring Boot application as a multi-module Maven project — parent POM, dependency management, module layout, and keeping the domain module dependency-free.
Java
Spring Boot
Maven
Mar 27, 2026
Betfair
Building a Backtesting Framework for Trading Strategies in Java
How to build a Betfair backtesting framework in Java — streaming data replay, realistic order fill simulation, P&L tracking, Sharpe ratio, and the limitations you must understand.
Java
Betfair
Backtesting
Mar 26, 2026
Architecture
Idempotency Patterns in Event-Driven Java Systems
How to implement idempotency in event-driven Java systems — idempotency keys, at-least-once delivery, the outbox pattern, Redis deduplication, and Kafka consumer patterns.
Java
Architecture
Idempotency
Mar 25, 2026
Java
CompletableFuture vs Virtual Threads — Choosing the Right Async Model
When to use CompletableFuture vs Java 21 virtual threads — comparing programming models, error handling, debugging, and performance for real concurrent IO workloads.
Java
Java 21
CompletableFuture
Mar 24, 2026
Betfair
Multi-Exchange Abstraction — Betfair, Betdaq, and Smarkets in One Framework
How to design a Java trading framework that targets Betfair, Betdaq, and Smarkets through a common abstraction — covering adapters, data normalisation, and unified order management.
Java
Betfair
Betdaq
Mar 23, 2026
Betfair
Handling Non-Runners and Reduction Factors in the Streaming API
How the Betfair Streaming API signals non-runner removals, how reduction factors work, and how to update open positions and historical signals correctly when a runner is withdrawn.
Java
Betfair
Trading
Mar 22, 2026
Spring Boot
Consumer-Driven Contract Testing with Spring Cloud Contract
Consumer-driven contract testing with Spring Cloud Contract — covering the contract DSL, stub generation, stub runner, and integrating contract verification into CI/CD pipelines.
Java
Spring Boot
Spring Cloud Contract
Mar 21, 2026
Testing
BDD with Cucumber and Spring Boot
How to use Cucumber for Behaviour-Driven Development in Spring Boot — covering feature files, step definitions, Spring context wiring, shared state, and Testcontainers.
Java
Spring Boot
Cucumber
Mar 20, 2026
Spring Boot
Distributed Caching with Redis and Spring Cache
How to implement distributed caching in Spring Boot with Redis — @Cacheable, cache configuration, TTL strategies, cache-aside pattern, eviction, and the failure modes that catch teams out in production.
Java
Spring Boot
Redis
Mar 19, 2026
Betfair
Building a Market Data Recorder in Java
How to build a Betfair market data recorder in Java — capturing live Streaming API data to disk for backtesting, replay, and strategy analysis.
Java
Betfair
Data Recording
Mar 18, 2026
Java
SequencedCollections and Modern Collection APIs in Java 21
Java 21's SequencedCollection, SequencedSet, and SequencedMap — getFirst, getLast, reversed, and the modern collection utilities that tidy up everyday Spring Boot application code.
Java
Java 21
Collections
Mar 17, 2026
Spring Boot
Spring Cloud Gateway — API Gateway Patterns
Building an API gateway with Spring Cloud Gateway — route configuration, predicates, filters, Redis rate limiting, circuit breaking, auth forwarding, and when a gateway adds value vs complexity.
Java
Spring Boot
Spring Cloud Gateway
Mar 16, 2026
DevOps
CI/CD for Spring Boot Microservices with GitHub Actions
How to build a production-grade CI/CD pipeline for Spring Boot microservices using GitHub Actions — build, test, Docker image publishing, environment promotion, and the patterns that keep pipelines fast and reliable.
Java
Spring Boot
GitHub Actions
Mar 15, 2026
Testing
Testcontainers for Kafka — Real Broker Integration Tests
How to write real Kafka integration tests in Spring Boot using Testcontainers — spinning up a real broker, testing producers and consumers end-to-end, verifying exactly-once behaviour, and structuring tests that are fast and reliable.
Java
Spring Boot
Apache Kafka
Mar 14, 2026
Betfair
Efficient Market Filtering and Catalogue Queries in Java
How to query the Betfair catalogue API efficiently in Java — filtering markets by event type, competition, time window, and status, caching catalogue data, and structuring queries to stay within API rate limits.
Java
Betfair
Trading
Mar 13, 2026
Betfair
Price Velocity and Market Momentum in Java
How to calculate price velocity and market momentum from Betfair Streaming data in Java — tracking LTP movement rate, detecting steam and drift signals, and combining velocity with Weight of Money for a composite entry signal.
Java
Betfair
Trading
Mar 12, 2026
Betfair
API Rate Limiting — Managing Quotas in High-Frequency Systems
How to manage Betfair API rate limits in a Java trading system — data request quotas, charge model, request batching, the Streaming API, and monitoring quota usage in production.
Java
Betfair
Rate Limiting
Mar 11, 2026
Architecture
Saga Pattern for Distributed Transactions in Spring Boot
Implementing the Saga pattern for distributed transactions in Spring Boot with Kafka — choreography vs orchestration, compensating transactions, failure handling, and saga state persistence.
Java
Spring Boot
Saga
Mar 10, 2026
Java
Performance Profiling with JDK Flight Recorder and Mission Control
Use JDK Flight Recorder and Mission Control to profile Java services in production — flame graphs, allocation hotspots, lock contention, and GC analysis with near-zero overhead.
Java
Performance
JFR
Mar 9, 2026
Spring Boot
Testing REST Controllers with @WebMvcTest and MockMvc
How to test Spring Boot REST controllers in isolation using @WebMvcTest and MockMvc — without starting a full server — covering request building, response assertions, and security wiring.
Java
Spring Boot
Testing
Mar 8, 2026
Java
Text Blocks, String Templates, and Modern String Handling
How Java text blocks and string templates clean up multi-line strings, SQL, JSON, and HTML — with practical examples for Spring Boot and API clients.
Java
Java 21
Text Blocks
Mar 7, 2026
Matchbook
Integrating the Matchbook Exchange API in Java
A practical guide to integrating with the Matchbook Exchange API in Java — authentication, REST client setup, placing and managing orders, reading market prices, and the key differences from the Betfair API.
Java
Matchbook
Trading
Mar 6, 2026
Testing
Mutation Testing with PITest in Java
What mutation testing reveals that code coverage misses, how to configure PITest in a Java Spring Boot project, and how to act on surviving mutants effectively.
Java
Testing
PITest
Mar 5, 2026
Apache Kafka
Consumer Patterns — Idempotency and Exactly-Once Processing
Building idempotent Kafka consumers in Java — deduplication patterns, idempotency keys, outbox integration, and when to reach for Kafka transactions.
Java
Apache Kafka
Idempotency
Mar 4, 2026
Java
Immutable Design Beyond Records — Defensive Copies, Value Objects, and Wither Methods
A practical guide to immutable design in Java — when to use records, when to write manual value objects, how to handle collections correctly, and the wither pattern for clean modification.
Java
Architecture
DDD
Mar 3, 2026
Betfair
Market Suspension Handling in Java Trading Systems
How to handle Betfair market suspension events correctly in a Java trading system — state machines, safe position management, and re-entry logic after resumption.
Java
Betfair
Trading
Mar 2, 2026
Betfair
API Authentication and Non-Interactive Login from Java
How to authenticate with the Betfair Exchange API from a server-side Java application using certificate-based non-interactive login, session token management, and automatic renewal.
Java
Betfair
Trading
Mar 1, 2026
Spring Boot
Spring Security — JWT Authentication for REST APIs
How to implement stateless JWT authentication in Spring Boot REST APIs — filter chain, token generation, validation, refresh tokens, and role-based access control.
Java
Spring Boot
Spring Security
Feb 6, 2026
Kafka
Exactly-Once Semantics — What It Actually Means in Practice
What Kafka's exactly-once semantics actually guarantee, how idempotent producers and transactions work under the hood, how to configure them in Spring Boot, and when the cost is worth paying.
Java
Spring Boot
Apache Kafka
Jan 29, 2026
Spring Boot
The Transactional Outbox Pattern with Kafka and MongoDB
How to guarantee at-least-once event delivery from a Spring Boot service to Kafka — implementing the Transactional Outbox Pattern with MongoDB, a polling publisher, and an idempotent consumer.
Java
Spring Boot
Apache Kafka
Jan 23, 2026
Java
Profiling Production JVMs with JFR and JMC
How to use Java Flight Recorder and Java Mission Control to profile production JVMs — recording CPU, memory, GC, and thread behaviour without significant overhead, interpreting flame graphs, and diagnosing real performance problems.
Java
Performance
Observability
Dec 21, 2025
Architecture
Object-Oriented vs Functional Programming (And Why the Argument Is Wrong)
Object-Oriented vs Functional Programming in Java — a senior developer's take after 20 years building production systems. Polymorphism, immutability, and why combining both produces the best Java code.
Architecture
Object-Oriented Programming
Functional Programming
Dec 20, 2025
Architecture
Hexagonal vs Clean Architecture in Spring Boot
Hexagonal vs Clean Architecture in Java Spring Boot — a practical comparison from a senior developer who has applied both in production across event-driven, microservices, and government-scale systems.
Architecture
Hexagonal Architecture
Clean Architecture
Dec 15, 2025
Architecture
Hexagonal Architecture for Real-World Systems
How I use Hexagonal Architecture (Ports and Adapters) in Java Spring Boot systems — from Betfair trading frameworks to DWP Digital's benefit platform. Practical patterns for keeping domain logic clean and independently testable.
Architecture
Hexagonal Architecture
Clean Code
Oct 7, 2025
Spring Boot
Adding Robustness with Spring Retry Annotations
How to use Spring Retry @Retryable and @Backoff in Spring Boot to handle transient failures cleanly — configurable retry logic with exponential backoff, selective exception handling, and real-world examples from Java integration services.
Spring Boot
Retryable
Backoff
Oct 3, 2025
Java
Java Memory Management and GC Tuning for Low-Latency Systems
JVM memory management and GC tuning for Java low-latency systems — G1GC vs ZGC, key JVM flags, allocation pressure reduction, and GC monitoring with JFR for Betfair trading and financial data pipelines.
Java
JVM
GC
Sep 26, 2025
Smarkets
Smarkets API Integration for Java Developers
Integrating with the Smarkets Exchange API in Java — REST and streaming authentication, market browsing, order placement, and building a multi-exchange abstraction alongside Betfair.
Java
Smarkets
Betting Exchange
Sep 19, 2025
Spring Boot
Production Observability with Actuator, Micrometer, and Prometheus
Building production-grade observability into Spring Boot — Actuator health endpoints, custom health indicators, Micrometer metrics, Prometheus export, and instrumenting business-level metrics.
Java
Spring Boot
Observability
Sep 12, 2025
Betfair
Pre-Race vs In-Play Trading — Technical Architecture
The technical and strategic differences between pre-race and in-play Betfair trading — market state transitions, streaming API indicators, latency requirements, and Java architecture for both modes.
Java
Betfair
Trading
Sep 5, 2025
AWS
AWS Lambda with Spring Boot — Cold Start Optimisation
Deploying Spring Boot to AWS Lambda and tackling cold start latency — GraalVM native image, SnapStart, tiered compilation, and knowing when Lambda is the wrong choice for Java workloads.
Java
AWS
Lambda
Aug 29, 2025
Java
Structured Concurrency in Java 21
Structured concurrency in Java 21 — StructuredTaskScope, ShutdownOnFailure, ShutdownOnSuccess, how it prevents thread leaks, and where it produces cleaner code than CompletableFuture.
Java
Java 21
Structured Concurrency
Aug 22, 2025
Betdaq
Betdaq API Integration for Java Developers
A practical guide to integrating with the Betdaq Exchange API in Java — authentication, market browsing, placing orders, and building an abstraction layer for multi-exchange trading systems.
Java
Betdaq
Betting Exchange
Aug 15, 2025
Java
Event Sourcing with Spring Boot and MongoDB
Implementing event sourcing in Java Spring Boot with MongoDB as the event store — event appending, aggregate reconstruction, snapshots, and publishing events to Kafka for downstream projections.
Java
Spring Boot
Event Sourcing
Aug 8, 2025
Betfair
Risk Management in Automated Betting Systems
Risk management architecture for automated Betfair trading in Java — stake limits, liability caps, drawdown monitoring, kill switch implementation, and graceful shutdown on API disconnection.
Java
Betfair
Risk Management
Aug 1, 2025
Spring Boot
Spring Data MongoDB — Modelling and Querying Documents
Using Spring Data MongoDB in Spring Boot — @Document modelling, repositories, MongoTemplate for complex queries, aggregation pipelines, indexing, and avoiding the N+1 problem.
Java
Spring Boot
MongoDB
Jul 25, 2025
Betfair
Placing and Managing Orders with the Betfair API in Java
How to place, update, cancel, and replace orders on Betfair in Java — covering placeOrders, cancelOrders, replaceOrders, listCurrentOrders, error handling, and reconciliation.
Java
Betfair
Exchange API
Jul 18, 2025
Resilience4j
Circuit Breakers, Rate Limiters, and Bulkheads in Spring Boot
Practical guide to Resilience4j in Spring Boot — configuring @CircuitBreaker, @RateLimiter, @Bulkhead, and @Retry annotations, and testing resilience patterns in integration tests.
Java
Spring Boot
Resilience4j
Jul 11, 2025
Java
Sealed Classes and Pattern Matching — Modern Java Features
Sealed classes and pattern matching in switch expressions (Java 17–21) — replacing instanceof chains with exhaustive pattern matching, guarded patterns, and record deconstruction.
Java
Java 17
Java 21
Jul 4, 2025
Betfair
Building a Spring Boot Trading Strategy Engine
How to architect a pluggable trading strategy engine in Spring Boot for Betfair — strategy interfaces, event-driven signal evaluation, lifecycle management, and risk controls.
Java
Spring Boot
Betfair
Jun 27, 2025
Spring Boot
CQRS Pattern with Kafka and Spring Boot
Implementing CQRS in Spring Boot with Kafka — separating command and query models, publishing events, building read projections, and knowing when CQRS is worth the complexity.
Java
Spring Boot
CQRS
Jun 20, 2025
Betfair
Order Flow Imbalance — A Java Implementation
Order flow imbalance (OFI) as a trading signal on Betfair — what it is, how to calculate it from streaming data, and how to build a real-time OFI indicator in Java.
Java
Betfair
Trading
Jun 13, 2025
Architecture
Domain-Driven Design in Java Spring Boot
A practical DDD guide for Java Spring Boot developers — covering aggregates, value objects, domain events, bounded contexts, and how to keep JPA out of your domain model.
Java
Spring Boot
DDD
Jun 6, 2025
Java
CompletableFuture — Mastering Async Programming
A comprehensive guide to CompletableFuture in Java — covering thenApply, thenCompose, allOf, exception handling, custom executors, and the pitfalls to avoid in real-world async pipelines.
Java
CompletableFuture
Async
May 30, 2025
Betfair
Last Traded Price Dynamics — Reading Market Direction
How Last Traded Price data from the Betfair Streaming API reveals market momentum — building a sliding window LTP analyser in Java to calculate price velocity and identify drift patterns.
Java
Betfair
Trading
May 26, 2025
Java
Java NullPointerException Avoidance and Enhancement Tactics
Java NullPointerException avoidance — comprehensive guide to null-safe String handling, Objects utility methods, Optional, enum comparisons, and enhanced NPE messages in JDK 15+. Practical Java null-handling tactics for cleaner, safer code.
Java
NullPointerException
TimeUnit
May 23, 2025
Testing
Testcontainers for Spring Boot — Real Databases, Real Confidence
Why Testcontainers beats mocked repositories for integration testing, and how to use it in Spring Boot with PostgreSQL, MongoDB, and Kafka — with real container setup and test speed tips.
Java
Spring Boot
Testcontainers
May 22, 2025
Java
Pattern match Optional in Java 21
A clever Java 21 trick for combining Optional with pattern matching using instanceof — when it's useful, how it works, and why true Optional pattern matching support in a future Java version will make this obsolete.
Java
Pattern Matching
Optional
May 21, 2025
Apache HttpClient Classic APIs
A Quick Guide
Apache HttpClient Classic APIs in Java — complete guide to synchronous HTTP with POST, GET, PUT, PATCH, DELETE, HEAD, and OPTIONS. Response handlers, error handling, and full working examples tested against a REST API.
Java
HttpClient
Apache
May 16, 2025
Betfair
Weight of Money — Implementing WoM Calculations in Java
How to calculate Weight of Money (WoM) from live Betfair Streaming data in Java — including the formula, rolling trend signals, Spring Boot wiring, and when the signal is and isn't reliable.
Java
Betfair
Trading
May 9, 2025
Spring Boot
Deep Dive into Apache Kafka Consumers
A thorough guide to robust Kafka consumers in Spring Boot — covering @KafkaListener, consumer groups, manual commit, error handling, dead letter topics, and idempotent processing patterns.
Java
Spring Boot
Apache Kafka
May 8, 2025
Java
Formatting Code Snippets in Javadoc
How to correctly format code snippets in Javadoc — when to use <pre>, <code>, and {@code} for annotations, generics, and multi-line blocks. Practical guide to clean, renderable Javadoc for Java API documentation.
Java
Javadoc
Documentation
May 7, 2025
Java
Why I Avoid Checked Exceptions
Why Java checked exceptions cause more problems than they solve — and how to replace them with clean unchecked exceptions, custom RuntimeException subclasses, and Spring Boot’s @ControllerAdvice for global error handling.
Java
Exceptions
Clean Code
May 6, 2025
Java
Hashing for Secure and Efficient Code
Java hashing guide — MD5, SHA-256, PBKDF2, and bcrypt with MessageDigest, Apache Commons Codec, Guava, and jBCrypt. When to use each algorithm, how to avoid common mistakes, and practical examples for data integrity and password storage.
Java
Hashing
Security
May 5, 2025
Java, Spring Boot & AWS
Publisher-Subscriber Pattern Using SNS & SQS
Implementing the publisher-subscriber pattern in Java Spring Boot using AWS SNS and SQS — full working example with Spring Cloud AWS, decoupled microservices, and real-world event-driven architecture patterns.
Java
AWS
Spring Boot
May 4, 2025
Java
Records for Simpler, Cleaner Code
Java Records — a practical guide to replacing boilerplate data classes with immutable, concise records in Java 16+. Covers constructors, validation, factory methods, and when to use records vs classes vs Lombok.
Java
Records
Clean Code
May 3, 2025
Java
Functional Interfaces for Cleaner Code
Java Functional Interfaces deep dive — Predicate, Function, Consumer, Supplier, BiFunction, and more. Practical examples with lambdas, method references, and stream pipelines from real-world Spring Boot applications.
Java
Functional Programming
Lambda Expressions
May 2, 2025
Betfair
Understanding the Betfair Streaming API in Java
How the Betfair Streaming API (ESA) works and how to build a robust Java WebSocket client — covering the protocol, market change messages, local state caching, and reconnection logic.
Java
Betfair
Streaming API
May 1, 2025
Java
A Random Pitfall
java.util.Random is a hidden performance bottleneck in multi-threaded Java systems — here’s why, and how switching to ThreadLocalRandom eliminates CAS contention and restores throughput in high-concurrency Spring Boot applications.
Java
Random
Math
Apr 30, 2025
Java
Immutables - No Setters Allowed
Immutable objects in Java — why they matter for thread safety, how to build them correctly with final fields, factory methods, and validation, and why setters undermine everything. Practical examples from production Spring Boot systems.
Java
Immutables
Lombok
Apr 28, 2025
Clean Coding
Four Principles to Boost Your Team’s Productivity
Four clean code principles every Java developer should apply — rigorous testing, meaningful naming, Single Responsibility, and side-effect-free functions. Real examples from Spring Boot, Kafka, and microservices projects.
Software Development
Clean Code
Junit
Apr 27, 2025
Git
How to Undo Your Git Failure?
How to recover lost commits, undone resets, and dropped stashes in Git using git reflog and git reset. Step-by-step recovery guide for the most common Git disasters, with practical examples every Java developer will recognise.
Git
Version Control
Development
Apr 26, 2025
GitHub Flow
A Java Developer’s Guide to Streamlined Collaboration
GitHub Flow for Java developers — how the branch-based workflow keeps teams productive and main always deployable. Practical guide with branching strategy, pull request reviews, CI/CD integration, and real examples from Spring Boot projects.
GitHub
Workflow
Java
Apr 25, 2025
Java 21
Virtual Threads and Project Loom — A Practical Guide
Deep dive into Java 21 virtual threads — how they work, how to enable them in Spring Boot 3, where they shine for IO-bound workloads, and where they won't help you.
Java
Java 21
Virtual Threads
Apr 18, 2025
Betfair
Getting Started with the Betfair Exchange API in Java
A practical Java guide to the Betfair Exchange API — covering SSOID authentication, the non-interactive login flow, listing markets, retrieving runner prices, and placing your first bet.
Java
Betfair
Betting Exchange
Mar 20, 2025
Digital Minimalism
Staying Focused in a Noisy Tech World
Five digital minimalism strategies that help senior developers stay in flow state — managing inbox noise, social media, notifications, and screen time so you have the mental bandwidth for deep technical work.
Social Media
Minimalism
Technology