my blog. for you.

Let’s talk digital.

I’m an independent IT consultant and entrepreneur in the Internet and software business. I’m interested in design, enterprise applications, web apps and SaaS products. I design and develop business solutions and applications. I help companies in terms of software quality and knowledge transfer, e.g. with Angular and Spring Boot.

Aborting UNIX Processes Running Under a Specific TCP Port

As a longtime UNIX (of the macOS variety) / Linux user, it's kind of embarrassing that only recently I was made aware of this single command (or rather - in a true UNIX fashion: a composition of two commands) that allows you to stop a UNIX process running under a specific TCP port (e.g., a Spring Boot application or an Angular front-end during development) - rather than browsing for that port in a process list first and then manually using the ... Read more

Upgrading to Spring Boot 3 Using Spring Boot Migrator

Even though the upgrade process for Spring Boot 3 is pretty straightforward - in case you need to migrate a more than moderately complex project (or several thereof), upgrading Spring Boot applications indeed can become quite tedious and error-prone, too. To alleviate this potential problem, and in order to automate the Spring Boot upgrade process, there's Spring Boot Migrator. Based on the terrific OpenRewrite toolkit for automated large-scale refactoring efforts, Spring Boot Migrator provides you with recipes for migrating both Spring Boot 2.7.x ... Read more

Java Design Patterns

Based on Christopher Alexander's pattern language, design patterns in software allow us to apply reusable patterns to common use cases and scenarios in software development instead of having to reinvent the proverbial wheel each time we're facing similar problems. If you'd like to brush up on design patterns in the context of Java as a programming language, Java Design Patterns has you covered. Java Design Patterns is a website "showcasing Java-based design patterns, principles, and code snippets". For a more general, language-independent overview ... Read more

Code Review Checklist and Tool Recommendations

Quite some time ago, both the code quality tool provider Codacy and the software architect Surender Reddy Gutha individually published useful resources on how to do effective code reviews and which tools to use for those: Code Review Checklist – To Perform Effective Code Reviews List of tools for code review engineers While unfortunately the two Pull Panda tools and ReadyforReview from the latter list are no longer available, the remaining tools as well as the checklist from the first article can be still ... Read more

Schematic – A Database Management UI for Spring Boot

Out of my own need for an embedded database management tool for Spring Boot web applications, similar to the H2 Console, but for non-embedded databases, I've created Schematic - a database management UI for Spring Boot. Specifically, for the Workshops.DE Spring Boot course, some time ago we had decided to replace a development-time, embedded H2 database (and the console application that comes with it) with a more realistic (in that it brings our code closer to an assumed dev / prod parity, ... Read more

Just – A Command Line Toolkit for Spring Boot Applications

In December last year, freelance software consultant Maciej Walkowiak, who also is the lead developer of Spring Cloud AWS, released just, a command-line toolkit for developing Spring Boot applications. I've been using just since then and I'm extremely happy with this tool and how it has improved my development experience with Spring Boot. Although Spring Boot already provides a more than decent developer experience - especially when it comes to getting up and running quickly and integrating technologies and data sources - compared ... Read more

Client-Side Rendering on the Web: Approaches and Frameworks

Exploring Potential Benefits of Client-Side Rendering Client-side rendering is a powerful tool for web developers, offering a range of benefits that can help to improve the user experience and performance of a website. In this article, we will explore the advantages of client-side rendering and how it can be used to create a better user experience. Client-side rendering is a process in which the browser is used to render the HTML, CSS, and JavaScript of a web page. This is in contrast to ... Read more

Faster Maven Builds With mvnd – A Maven Daemon

Maven is a popular build tool for Java projects. It allows developers to easily manage dependencies, build and test their code, and package it for distribution. However, one downside of Maven is that it can be slow to start up, especially on large projects. This is where the Maven Daemon, or mvnd, comes in. mvnd is a tool that allows Maven to run in the background as a daemon process, rather than as a one-off command. This means that when you run ... Read more

Inheriting Properties for Lombok @Builders and JPA Entities

Lombok is one of those helpful developer tools for the Java language ecosystem that streamline (or even do away with entirely) the more tedious and mundane tasks in software development. Lombok in particular vastly reduces the boilerplate code Java developers have to write by providing annotations that have code for common structures and patterns such as constructors, getters and setters, and builders automatically generated. While tremendously helpful, sometimes edge cases can occur when working with theses kinds of abstractions and as a ... Read more

Bootify: Rapid Prototyping for Spring Boot

Bootify is a rapid prototyping and code generation tool for Spring Boot that aims at improving developer experience for when getting started with a new Spring Boot application. While of course there is Spring Initializr, which serves a similar purpose, Bootify not just generates a minimal Spring Boot application with the desired dependencies but, on top of that and amongst other features, also adds database schema and model generation, REST API and CRUD capabilities, and front-end code generation. With those features, Bootify is ... Read more
Next Page »