Blog & Articles

Blog Post

Clientseitige Speichertechnologien im Browser

Ein kurzer Überblick über diverse Technologien zur clientseitigen Speicherung von Daten und Zustand im Browser

Blog Post

Was ist ein Data Contract?

Ein Data Contract definiert die Struktur, das Format, die Semantik, die Qualität und die Nutzungsbedingungen für den Datenaustausch zwischen einem Datenanbieter und seinen Konsumenten. Es ist damit ein zentrales Werkzeug, damit sich Teams über Daten-Schnittstellen verständigen können und somit Stabilität, Datenqualität und Nachvollziehbarkeit in der Datenarchitektur gewährleisten.

Blog Post

AI Tools in Business Environments

and which also make your everyday life easier

Article

Build an internal development platform

We are currently breaking down our software into smaller pieces, such as SCS or microservices, and deploying them on cloud platforms to take advantage of their elasticity and flexibility. However, as our technology stack grows more complex, it has become increasingly challenging for our development teams to focus on business goals while also meeting operational requirements. In order to streamline the development process and provide easy self-service options, we are exploring the implementation of an internal development platform. To address these challenges, we have identified several open-source projects that can be integrated into our platform to enhance the development experience. Although this list is not exhaustive, it provides a solid foundation for creating a more effective platform. Our aim is to help development teams stay focused on business goals by minimising distractions and addressing operational needs.

Blog Post

Retrospektiven - Teil 4

Diese Blogpost-Serie fasst meine Erfahrung als Facilitator mit mehreren Remote-Teams in Software-Projekten über eineinhalb Jahre zusammen. Ich stelle Ihnen meine Grundsätze und alle Formate vor, die ich bislang entwickelt habe.

Blog Post

Evolving software like an orchardist

Comparing apple trees with software modernization

Blog Post

Drawers for Product Owners

The duties of the Product Owner role are a regular topic of discussion. Because the role is understood in a variety of different ways, new and different terms are regularly encountered. It is time to take a different view that considers the relevant context.

Blog Post

Retrospektiven - Teil 3

Diese Blogpost-Serie fasst meine Erfahrung als Facilitator mit mehreren Remote-Teams in Software-Projekten über eineinhalb Jahre zusammen. Ich stelle Ihnen meine Grundsätze und alle Formate vor, die ich bislang entwickelt habe.

Blog Post

Retrospektiven - Teil 2

#2 - Visuelle Abfragen

Blog Post

Retrospektiven - Teil 1

Diese Blogpost-Serie fasst meine Erfahrung als Facilitator mit mehreren Remote-Teams in Software-Projekten über eineinhalb Jahre zusammen. Ich stelle Ihnen meine Grundsätze und alle Formate vor, die ich bislang entwickelt habe. Hier kommt nichts von der Stange. Versprochen.

Blog Post

Running an AI Chatbot on Your Own PC

Llama.cpp, gpt4all and others make it very easy to try out large language models. Here’s a short guide to trying them out under Linux or macOS.

Blog Post

Why Your Team Needs Data Products

Blog Post

Draw The Diff

Software developers have an idiosyncratic penchant for boxes and arrows. Back when we used to go to the office we penned them on whiteboards. Later, as the force majeure accelerated the digital transformation of our economies, we drew them online.

Article

Babylon as a Feature

The Tower of Babylon is a myth meant to explain why the world’s peoples speak different languages. In modern IT systems, it’s often a requirement to support multiple languages. Such internationalization (i18n for short) is a tough challenge – and this post describes a simple solution to just the tiny part of multilingual documents. Our solution combines the simplicity of the plain-text format AsciiDoc with a simple yet versatile build script to support multiple languages (like EN and DE) and multiple output formats (like PDF and HTML).

Article

Assessing the Sustainability Impact of Startups

A Guide for Entrepreneurs

Article

An Introduction to TLA+ and Its Use in Parties

TLA+ is a system for modeling all possible states of a system. On this model, you can then verify certain properties of this system. Smart people can use this to check that their thread scheduling runs all threads equally, or that their work queue will never overflow. In this article, we’ll try and verify the fraught process of ordering pizza for a pizza party as a small introduction to the concepts and syntax of TLA+.

Article

Property-based Testing with “fast-check”

It isn’t exactly news that developers have to write not only code but also tests. Nevertheless, many find this to be burdensome and monotonous work. Plus, it is far from guaranteed that unit tests actually cover all the border and non-border cases. A modern approach is property-based testing, which consists of specifying an abstract condition that is then automatically checked by the test framework.

Blog Post

How to Encrypt a File on the JVM

Article

Creating data products with Terraform on AWS

Have you heard of data mesh? Are you intrigued by its potential but uncertain how to get started building data mesh and data products? If so, this article outlines a potential approach and delves into the key concepts behind it!

Article

Tracing in verteilten Anwendungen

Nicht nur, aber auch durch die DevOps-Bewegung machen sich Teams heute neben der Fachlichkeit vermehrt Gedanken um den Betrieb ihrer Anwendungen. Ein großes Thema ist hierbei Observability, also einen Einblick in den aktuellen Zustand des Systems zu haben. In dieser Kolumne betrachten wir mit Tracing einen der drei Bereiche von Observability und lernen anhand eines konkreten Beispiels, wie wir diesen umsetzen können.

Blog Post

Automated code maintenance with OpenRewrite (Part 2)

Article

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)

With the large number of software development projects in most organisations, keeping these projects up to date with the latest security patches and framework updates can be quite a task. OpenRewrite is a library that provides an automated solution to this problem. Using recipes written in Java, it can perform large-scale source code refactoring during the build process, preserving as much of the original code as possible. In this blog post, I will explain how OpenRewrite works and how you can use it to refactor your code base.

Blog Post

Kustomize Enhancement with KRM Functions

Article

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.