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.

Keeping a Record of Software Architecture Decisions

The need for asynchronous communication in organisations has become particularly obvious since 2020, when remote work and distributed work environments rapidly became the default setting for knowledge workers. Asynchronous communication essentially means that instead of exclusively communicating objectives, goals and the way by which to achieve them in-person (i.e. synchronously with everyone involved present at the same time - whether on-site or in a virtual space such as Slack or Zoom) we try and keep a digital record of decisions, the decision ... Read more

Cloud Design Patterns

In the past few months, I've been working a lot with distributed applications and more complex cloud architectures, both in terms of Stratospheric - From Zero to Production with Spring Boot and AWS (the eBook I'm currently writing together with Tom Hombergs and Philip Riecks) and client work. Microsoft's library of Cloud Design Patterns (as previously mentioned in this blog post) is a collection of cloud-related software and infrastructure design patterns that can help you with weighing up the merits of common ... Read more

Five Articles on Software Quality and Design Patterns

This week I'd like to point you to five articles I previously posted on this blog and from which I think that they're as relevant as they were at the time. The first three are about general software design principles, software architecture and software quality while the final two refer to specific best practices and common design patterns for Angular: Writing Disposable Code, Not Reusable Code (November 06, 2016) What Causes Over-engineering and How Can You Prevent It? (April 16, 2017) Less Is More ... Read more

API-First Development with Spring Boot and Swagger at Reflectoring

When I recently had to look into some of the specifics of using Swagger and OpenAPI for designing an API specification and generating a Spring Boot application skeleton from that specification (using OpenAPI Generator) I came across this very useful and comprehensive article on the subject on the Reflectoring blog: API-First Development with Spring Boot and Swagger From creating an API specification with the Swagger editor to generating code (with the OpenAPI Generator Maven plugin, specifically) and implementing the generated interfaces the article ... Read more

The Mother of All Leaky Abstractions: The 500-mile Email

In last week's musings I complained about leaky abstraction on two counts, which reminded me of what in my opinion must be the mother of all leaky abstractions: The notorious 500-mile email. Impedance mismatches and TCP connections seeping through the cracks of the latest reactive programming frameworks certainly at times are difficult to deal with but the actual underlying transmission protocol of the relativistic universe shining through when trying to send an email? It can't get any better than that ... Read more

Musings of a Greybeard on the State of Software Engineering

Two days ago software engineer and fellow blogger Tom Hombergs asked on Twitter if software development had grown harder over recent years, to which I replied: "Incoherent ramblings of a greybeard (without a beard, which is weird; these words rhyme, which is even weirder ...), who has seen at least 3 fat-client-thin-client cycles (the standard time unit in software architecture): As usual it depends. Just a few examples:" For the purpose of this blog post I just deemed it more sophisticated to call ... Read more

Repost from 16 June 2020: COVID-19 Tracing App for Germany

Repost from 16 June 2020: German COVID-19 tracing app available now. Read more

German COVID-19 Tracing App Available Now

Earlier today, the highly anticipated COVID-19 tracing app for Germany, called Corona-Warn-App, has been released. The iOS version is available on the App Store. The Android version can be downloaded at Google Play. The Corona-Warn-App is based on the DP3T (Decentralized Privacy-Preserving Proximity Tracing) architecture and the joint specification by Apple and Google for privacy-preserving exposure notification, which implements this architecture as an API for official public health providers to draw upon. The app is developed and published as open source under the Apache ... Read more

Monoliths Aren’t Inherently Bad

Self-professed minimalist developer Kelsey Hightower a few months ago wrote about monoliths being the future. The microservice design pattern has been trending in software development for quite some now. Unfortunately, more often than not it's been indiscriminately treated as a panacea to every software architecture and design problem out there. Microservices can help with one aspect specifically: Reducing deployment risk. If you have a large monolith and frequently need to make changes to a specific part or feature provided by that monolith the whole ... Read more

Konrad Zuse: Not the most correct but the least complicated theories find practical application.

Not the most correct but the least complicated theories find practical application. - Konrad Zuse A translated quote from one of the inventors of computers and modern computer science I read last year under a bust of Zuse near Kleiner Tiergarten in Berlin this statement is more relevant today than ever. In software development in particular we often attempt to design solutions that cover each and every possible use case - however unlikely or even virtually non-existent that use case might be. ... Read more
Next Page »