Blog

Guides, notes and opinion pieces
guide∼4 min
Using Git LFS in CI
Git LFS is a great way to version large binary files alongside the source code in Git. It replaces the actual files with text pointers in the Git repository and stores them on a remote server that...
note∼1 min
Parsing varargs as array with Jackson
Consider the following Java class where the setter for the author property accepts the values as varargs. class Book { private String[] author; public String[] getAuthor() { return...
note∼1 min
Skipping the GitLab CI
GitLab CI is a pretty nifty tool to run your CI pipelines using Docker. At times, you may want to skip it, though, e.g., when you update a README or LICENSE. There are multiple ways to do that...
guide∼14 min
Error handling for a Spring-based REST API
Spring Boot provides pretty nifty defaults to handle exceptions and formulate a helpful response in case anything goes wrong. Still, for any number of reasons, an exception can be thrown at runtime...
guide∼8 min
API Documentation with springdoc-openapi
OpenAPI Initiative is a widely adopted industry standard to describe and document APIs, with Swagger being one of its most well-known implementations. For years, Springfox, using Swagger, has...
note∼1 min
Customize the PowerShell prompt
I've been using the PowerShell Core on Windows Terminal for a while. I wanted to customize the prompt to display > on a newline and the current Git branch along with the working directory. You can...
guide∼14 min
Securing Spring Boot APIs with JWT Authentication
JSON Web Tokens (JWTs) are stateless, compact, and self-contained standard to transmit the information as a JSON object. This object is usually encoded and encrypted to ensure the authenticity of the...
guide∼5 min
Querying Postgres with Spring Data and Micronaut Data
Repository API of Spring Data is one of the most elegant and compelling features of Spring framework. It generates runtime implementations of the repositories. But what if those implementations can...
guide∼1 min
Logging on Node.js with winston
winston is very popular logger for Node.js, providing simple API to store and format the logs. It provides support for custom logging levels, streaming logs and custom transports to save the logs...
guide∼5 min
Building Docker images for Java applications
With the rise of the container-first Java frameworks (Micronaut, Quarkus, etc) and the JVM itself evolving to work smoothly with containers, there's been never a better time to embrace Java in a...