Blog

Blog Post

Automated code maintenance with OpenRewrite (Part 2)

In part 1 of this series, I showed how OpenRewrite can be used to automate code maintenance tasks for software development projects in your organisation. In this post, I will demonstrate how to write your own OpenRewrite refactoring recipe. This will not only help you to perform refactoring tasks for which no recipe is publicly available, but will also deepen your knowledge and understanding of how OpenRewrite works under the hood.

Blog Post

Modules – Microservices – Monoliths

Microservices were supposed to solve every architectural problem conceivable. Not too surprisingly, that was not the case. Now themonoliths thatwe have been developing for decades are supposed to be the solutionagain. Inthis discussion, the foundation for developing complex software systems has been forgotten: Modularization, which is far more important than the question of monoliths vs. microservices.

Blog Post

Automated code maintenance with OpenRewrite (Part 1)

Blog Post

Kustomize Enhancement with KRM Functions

For a while, Kustomize has offered the possibility to extend its functionality with plugins that can be implemented in different ways. A new way is to use KRM functions that are not proprietary and can also work with other tools.

Blog Post

Round-robin coding

Remote mob programming typically means one person takes on the role of typist at the screen with an open IDE, more or less typing what the others tell them to. To ensure that everyone stays on top of the work, the role of typist is frequently changed up and the current state of the code is handed over to the new typist. Our simple CLI tool called mob enables such a handover in just a few seconds by bundling the necessary Git operations into concise commands.

Blog Post

How to use Apple Shortcuts to integrate GPT-4o in macOS and iOS

Hey GPT, what’s this email about?

Blog Post

Blueprints

JavaScript’s approach to object orientation is different from other languages. This hasn’t been changed by the introduction of classes, even if it looks that way at first glance. Read on to learn how this unusual system works.

Blog Post

What is Sustainable Software?

Environmental sustainability is a very important issue, but software is something virtual, so it doesn’t seem to have an impact, right? Wrong! As software creators, we have a significant impact and can make a difference by incorporating the principles of eco-friendly software development into our understanding and practices.

Blog Post

Shortcomings of ISO 25010

Blog Post

How to use and build your own distroless images

Security and efficiency are key goals in production systems. This begins when we build our application images and look for a suitable base image. So what are good base images and how do distroless images fit into this picture?

Blog Post

How AI will replace my job

In late 2022, I decided to try to use ChatGPT, an AI language processor, to do some of my daily software development work. Now, only a few weeks later, I am convinced AI might soon do most of my current work, at least measured by hours.

Blog Post

How to prepare a (not only technical) talk

Blog Post

Custom Elements are NOT for Templating

Custom elements are a main technology included in the Web Components Browser specification. They provide a set of APIs for adding custom behavior and interactions to an HTML element – and they do this very well. However, they often are unfairly compared with JavaScript component frameworks. Custom elements were never intended to be a drop-in replacement for a JavaScript framework. This article focuses on what custom elements are, what they do well, and, most importantly, what they do not do.

Blog Post

Behaviour over structure

We, developers, often forget why we even exist. We quite often don’t remember that our purpose is not to write software, but to solve problems. Those come in different forms, but can be generalized as “we need to start doing this”, “we need to stop doing this” or “we need to do this differently”. Those “do” and “doing” are the key, whatever “this” is. It’s the behaviour our software exhibits that is most important, almost everything else is secondary.

Blog Post

Frontend integration options

Blog Post

Processing medical study data with Data Mesh technologies

Together with our customer CluePoints, we evaluated new technologies, tools and standards for data storage, data processing, data versioning, and data lineage. These might become useful for refactoring their self-serve data platform.

Blog Post

Logging in Java

Logback, Log4j, SLF4J, and many more. Anyone working with automatic logging in Java will immediately come across an entire range of libraries that, at first glance, seem to do the same thing: issue log messages. So, in this article, we want to look at why there are so many libraries in Java and how they actually differ from each other upon closer inspection.

Blog Post

Direnv: Automatic environment care

Blog Post

Documenting software architecture with arc42

arc42 is a template for architecture communication and documentation. It is a proven, practical and highly pragmatic approach and takes the pain out of documentation.

Blog Post

How I regained concentration and focus

For years, I enthusiastically produced content: books, articles, blog posts, and talks – averaging a book and a half plus five articles per year. Since about 2020, my productivity has plummeted – leaving me totally frustrated. There were no external causes, even the pandemic didn’t affect me, thanks to a nice home office and online work options — so no excuses. To find a way out of the misery, I put my own working habits to the test – and diagnosed a massive loss of concentration. ​ ​

Blog Post

Offline with redux

A different approach to Web applications that work offline

Blog Post

Advanced Kustomize features

Kustomize’s strength lies in its simplicity, but now and then we have use-cases that need more flexibility and more dynamic behavior. For some of them, Kustomize offers additional features. But as with everything good, it should be used wisely. Otherwise, we fall into the trap of complexity and lose all the good parts of Kustomize.

Blog Post

Infrastructure Self-Service with Crossplane

Introducing container technology and Kubernetes to the development and deployment process allows developers to independently manage deployments of their services without needing to interact with the platform team. This is true for applications but not necessarily for external resources like databases which are probably still in the hands of the platform team because the access management and tooling differs. Crossplane could fill this gap towards a full self-service capability.

Blog Post

We Are Developers World Congress 2022 in Berlin

Our Experience Report

Blog Post

Dependently-Typed TypeScript

TypeScript is a programming language with some special features: Unlike most other typed programming languages, it was developed as an add-on for JavaScript (JS). In the process, Microsoft has placed great value on ensuring that the language integrates as seamlessly as possible into the existing ecosystems (Node.js and browser). TypeScript’s syntax “merely” adds types to JavaScript, while the compilation “merely” removes the type annotations. This has made TypeScript the de-facto standard for building type-safe JS-based applications.