2024

How to Safely Alter a Busy Table in Postgres

When altering busy tables in Postgres, acquiring the required locks can lead to application downtime if not handled carefully. This post explains the potential pitfalls of using ALTER TABLE on high-traffic tables, and provides strategies for minimizing disruptions.

3 min read
Back to Top ↑

2020

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.

11 min read

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.

4 min read
Back to Top ↑

2019

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.

9 min read

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.

6 min read
Back to Top ↑

2018

Structuring packages in Java web applications

Often times in Java web applications we see that the package structure indicates that a layered architecture is used. In this post we’re going to explore the ideas around what would happen if layers were not the topmost level of organization in an application architecture.

7 min read
Back to Top ↑

2017

How to write a good commit message

Version control systems play a vital role in tracking the history of changes in a codebase. Knowing how to write good commit messages is an essential skill if you wish to have your project’s history well documented.

9 min read

Java’s Ternary Operator in Three Minutes

The ternary operator is a form of syntactic sugar for if-then-else statements. It is also known as the conditional operator, which is perhaps a more meaningful name because it evaluates conditions like if does.

3 min read

Externalized configuration in Spring Boot

Externalized configuration is essential if you wish to deploy the same deployable unit to different environments without modifying the source code. Spring Boot provides several easy methods of doing that.

3 min read
Back to Top ↑

2016

Getting started with Dropwizard

Dropwizard is a framework for building RESTful web services in Java. In this tutorial we’re going to have a look at how to get started with developing a Dropwizard application by building a new service from scratch.

12 min read

Practice programming with code katas

Kata is an exercise where the novice repeatedly tries to emulate a master. In karate, these kata are a sequence of basic moves, strung together in a way that makes sense. PragDave proposes the idea of doing the same with programming.

7 min read

Java 8 Puzzlers: Streams

In the spirit of the book Java Puzzlers by Joshua Bloch and Neal Gafter, this post discusses a Puzzler that can be found in Java 8 Streams.

2 min read

Java 8: CompletableFuture

CompletableFuture is an implementation of the Future interface but with a modern twist. It takes advantage of functional operations to promote asynchronous/event-driven programming model.

5 min read

Chaining Optionals in Java 8

Optionals in Java can help you to write a program without null checks. Chaining Optionals in a Stream enables to pick the first Optional which has a value and return it.

1 min read

Optionals in Java 8

If you have had any experience with Java, then you most likely have seen the NullPointerException. Optional in Java 8 are a way to fight them.

5 min read

The fork/join framework in Java

Introduced in Java 7, the fork/join framework is used to divide a parallelizable task into smaller ones and afterwards combine the intermediate results to get the end result.

2 min read
Back to Top ↑

2015

Java 8: Lambda expressions

In computer programming, an anonymous function (also function literal or lambda abstraction) is a function definition that is not bound to an identifier.

3 min read
Back to Top ↑

2014

Back to Top ↑

2013

Back to Top ↑