The Three Ways of DevOps

If you ask three people to describe DevOps, you’ll get four different answers. This post tries to shed some light on the meaning of DevOps by summarizing the key principles from The DevOps Handbook.
Pattern Matching for instanceOf in Java 14

Pattern matching capabilities added to the instanceOf operator in Java 14 is going to enhance the programming language.
Helpful NullPointerExceptions in Java 14

Helpful NullPointerExceptions in Java 14 improve NPE error messages by describing precisely which variable was null.
Java 14 Records

Java 14 introduces a new preview feature to the language—Records—with a goal to provide a compact syntax for declaring containers of shallowly immutable data.
Running Spring Boot apps as GraalVM native images

GraalVM is a high-performance polyglot virtual machine. It’s ability to create ahead-of-time compiled native images considerably speed up Spring Boot startup times.
Misusing Java’s Optional type

Java’s Optional type has been criticised for its flaws. It’s also being used for things it was perhaps not designed. This post shows some situations where I think Optional is being misused.
How to Invalidate JSON Web Tokens

JWTs allow us to implement stateless authentication. We don’t have to query a central database to validate the token. But how do we invalidate them?
Rock-solid Consumer Driven Contract Testing Workflow With Pact

To make the most out of Pact, you should put some time into automation. This post will cover the steps you need to take to create a rock-solid workflow that helps you to reap the benefits of consumer driven contract testing.
Consumer Driven Contract Testing with Pact

Consumer driven contract testing is a method that can be used to verify that services speak the same language. It is an alternative to traditional integration testing that gives you faster feedback.