Blog & Articles

Blog Post

Verschachtelte Tests mit Minitest

Über das Schreiben von Tests in Ruby in Rails-Anwendungen wurde in den letzten Jahrzehnten wohl alles geschrieben, was man sich ausdenken kann. Es wurden alle erdenklichen Frameworks entwickelt, mit denen das Schreiben von Tests “Spaß” machen soll. Mit RSpec/Cucumber sollten Tests sogar optimalerweise von der Fachabteilung verfasst oder wenigstens gelesen werden können. So jedenfalls das Heilversprechen. Der Autor dieses Posts war nie bekannt für seine Rigorosität, was Testabdeckung seiner Anwendungen betrifft. Software soll ausgeliefert werden und tun, was sie soll. Ein formaler Korrektheitsbeweis im Kopf sowie händisches Testen des Restes wird meist/oft/manchmal auch ausreichen, außerdem steht da noch die Feststellung im Raum, dass 100% Testabdeckung ohnehin nicht erreichbar sind. Manchmal wird man im Alter aber doch weiser (und fauler).

Blog Post

Buttons, Links und die Magie von HTML

Web Accessibility ist nicht nur eine trockene gesetzliche Anforderung: Für viele bedeutet sie die Möglichkeit, überhaupt am digitalen Leben teilzunehmen. Web Accessibility ist aber auch ein Fass, in das man ziemlich tief abtauchen kann. Ein Blick auf einige Aha-Erlebnisse und Fallstricke, die mir beim Entwickeln einer Webanwendung begegnet sind. Teil 1.

Article

Building Standardized AI Tools with the Model Context Protocol (MCP)

Blog Post

Digitale Souveränität

Digitale Souveränität bedeutet letztlich, dass Europa die Kontrolle über seine digitale Zukunft behält – technologisch, wirtschaftlich und regulatorisch. Für Unternehmen ist dies nicht nur ein politisches Schlagwort, sondern ein handfester Faktor für Risiko- und Erfolgsbewertung. Doch warum genau sollten Unternehmen bei Entscheidungen zur digitalen Transformation den Aspekt der europäischen Souveränität berücksichtigen?

Article

Von Legacy-Monolithen zu Self-contained Systems

Moderne Architektursysteme teilen die Arbeit in voneinander unabhängige Teams auf. Eine bestehende, monolithische Anwendung muss dafür zerlegt werden.

Blog Post

Rules, Tools, and Teamwork

Getting Static Code Analysis Right

Blog Post

Soziale Bewährtheit - die Macht der Herde

Microservices, Kubernetes, Scrum – was alle nutzen, kann nicht falsch sein, oder? Soziale Bewährtheit beeinflusst Entscheidungen, spart Zeit, kann aber auch in die falsche Richtung führen. In IT-Projekten heißt das oft: Trends werden übernommen, ohne sie kritisch zu hinterfragen. Wann das nützt und wann es schadet – darum geht es in diesem Beitrag.

Blog Post

Transcribing podcasts with large language models

Automatically transcribing podcasts with multimodal AI sounds like a no-brainer, but the devil is in the details.

Blog Post

Canvas 101

One-Pager für bessere Kommunikation

Article

Der Kleber macht’s

Auch bei Webprojekten ist es sinnvoll, mit modularisierten Teilsystemen zu arbeiten. Fehler bei der Implementierung können aber zu trägen Modulithen führen.

Blog Post

Eine kurze Geschichte von HTTP

HTTP hat sich seit der Gründung des Internets im Jahr 1989 kontinuierlich weiterentwickelt. Das erste RFC-Dokument, das von der Internet Engineering Task Force (IETF) veröffentlicht wurde, erschien 1996. Verfolgen wir die Geschichte von HTTP über die Jahre hinweg bis Juni 2022, als eine neue Reihe von RFC-Dokumenten veröffentlicht wurde, die HTTP/1.1, HTTP/2 und HTTP/3 standardisieren.

Blog Post

RAG: The Architecture of Reliable AI

Annotated Talk+ for later reference

Blog Post

Document Ingestion

How can we transform a pile of diverse documents into a high-quality knowledge base for AI systems? Document ingestion is the critical first step in any Retrieval-Augmented Generation (RAG) system—and often the reason why these systems fail.

Blog Post

Retrieval-Augmented Generation

How do we handle situations where an LLM-driven system requires highly specialized enterprise knowledge that wasn’t included in the original model training? While LLMs have enormous potential to answer generic queries based on their comprehensive knowledge from training, they show limitations when it comes to current, specialized, or verified information.

Blog Post

Bessere APIs, aber wie?

API Linting mit Spectral verbessert die Qualität von APIs

Article

APIs als strategische digitale Bausteine

Organisationen müssen heute balancieren, ihre aktuellen Aufgaben effizient zu erfüllen, aber sie müssen ebenso in der Lage sein, auf neue Anforderungen schnell und flexibel reagieren zu können. “Unbundling the Enterprise” ist ein neues Buch, das untersucht und beschreibt, wie sich Unternehmen durch systematisches Entflechten mehr Optionen verschaffen können, und somit besser in der Lage sind, auf neue Anforderungen zu reagieren.

Blog Post

Survivorship Bias

Erfolgsgeschichten inspirieren uns. Sie prägen unser Bild davon, was möglich ist – und manchmal auch, was wir für wahrscheinlich halten. Doch der Schein trügt: Wer nur auf die sichtbaren Erfolge blickt, ignoriert all jene, die es nicht geschafft haben. Dieses Phänomen nennt sich Survivorship Bias. Der folgende Blogpost zeigt anhand von Beispielen aus IT-Projekten, Wirtschaft und Medizin, warum diese Wahrnehmungsverzerrung gefährlich ist – und wie man ihr entgegenwirken kann.

Article

Implementing GitOps without Kubernetes

Blog Post

API Drift

API Drift passiert immer dann, wenn das Verhalten eines APIs von der Beschreibung des APIs abweicht. Dies liegt oft daran, dass Beschreibungen separat erstellt und nicht nachgeführt werden. API Drift kann zu Problemen führen, vor allem wenn sich Konsumenten darauf verlassen, dass sich ein API wie beschrieben verhält.

Article

Back to Basics: Gute Architektur muss nicht „trendy“ sein

Schlägt man ein IT-Magazin oder das Programm einer IT-Konferenz auf, springt dem Leser sofort der Hype ins Gesicht: Gestern waren es Microservices, die uns vor den zu groß geratenen Monolithen retten werden, heute ist es die generative KI, die als Heilsbringer oder Unheilstifter stilisiert wird. Dabei ist es auch ohne dieses Hintergrundrauschen nicht einfach, gute Architekturentscheidungen zu treffen.

Blog Post

When the Worldview is Shifting

Sometimes it is the small details that change our worldview; when the veil of magic lifts and the magician’s craft shines through

Blog Post

Better RAG With Hybrid Search

One component of RAG (retrieval-augmented generation) is the retrieval. In other words: we have to solve a search problem. Reading articles about RAG, one can get the impression that vector search is the essential or even the only piece of the puzzle. In this blogpost you’ll see why this does not bring us close enough to the goal.

Article

LLMs mit Spring AI integrieren

Die gesamte Welt spricht aktuell über Generative KI und Large Language Models (LLMs). Und auch wenn ich persönlich das Thema aktuell als zu sehr gehypt empfinde, sollten wir solche Trends nicht komplett verschlafen. Daher zeigt dieser Artikel, wie sich LLMs mit Spring AI integrieren lassen.

Blog Post

Monokausalität: Warum wir einfache Erklärungen lieben

Menschen, Muster, Motivation: Sozialpsychologie in der IT

Blog Post

Use webjars-locator-lite with internal WebJars

Switching to the new webjars-locator-lite, e.g. by following the Spring Boot 3.4 Release Notes, may result in errors when loading your internal WebJars. This post explains why that is the case and what you can and should do to fix that.