Blog & Articles

Blog Post

Entwickeln mit ChatGPT

In der Welt der Softwareentwicklung ist das Wissen darüber, wo man Informationen findet, oft wertvoller als alles auswendig zu wissen. Doch was, wenn ein Werkzeug nicht nur Informationen liefert, sondern auch lernt, Probleme zu lösen und beim Entwickeln zu assistieren? In diesem Blog Post berichte ich aus meinem Alltag als Entwicklerin und wie mich ChatGPT bei beruflichen Aufgaben unterstützt - sei es bei der Einarbeitung in neue Programmiersprachen, dem Schreiben von Skripten oder dem Umsetzen von kreativen Ideen.

Article

The Evolutionist

The current training and further education of software developers strongly focuses on the development of new software. Conferences and trade magazines are full of new programming languages, new tools, new hypes, which seemingly never cease to amaze. Quick results, direct feedback, and unprecedented productivity are suggested. The urge to incorporate the new into one’s software is awakened – until one is brought back to reality: their own legacy system.

Article

Building, purpose, aesthetics

Fundamentals of software architecture - Part 1

Article

Terms

Welcome to the second part in the mini-series on software architecture.

Blog Post

Rate Limiting with Spring Boot, Bucket4j, and Redis

Let’s implement rate-limiting protection for multiple Spring Boot server instances using bucket4j and redis to have the solution on application level.

Blog Post

Rate Limiting with Spring Boot

Blog Post

Lokale LLMs mit Ollama und Spring AI nutzen

Egal, ob wir wollen oder nicht, um AI und speziell Large Language Models (LLM) kommen wir aktuell nicht herum. Mich schrecken solche Hypes zwar aus Reflex eher ab. Allerdings sieht es so aus, als würde von diesem Hype mehr bleiben als vom letzten, der Blockchain. Deshalb wollen wir uns in diesem Post einmal anschauen, wie man ein LLM lokal aufsetzen kann und dieses mittels Spring AI in eine Spring Boot-Anwendung einbinden kann.

Blog Post

Compacted State Feeds

Event notification vs. Event-carried State Transfer vs. Delta loads. How to design good event architectures for mutable data?

Article

Es lebe die Bürokratie!

Soziotechnische Welten - Teil 10

Blog Post

Was treibt dich an?

In der heutigen schnelllebigen Welt der Softwareentwicklung ist die Modernisierung von Software eine unerlässliche Aufgabe, um mit ständig ändernden Anforderungen und Technologien Schritt zu halten. Es gibt immens viele Ansätze zur Modernisierung von Software. Aber es ist eine Herausforderung, die richtigen Werkzeugkästen in den richtigen Situationen zu finden. Wie schön wäre es, die eine «Ultimative Softwaremodernisierungsmethode™️» in den Händen zu halten, die all die Probleme mit den in die Jahre gekommenen Softwaresysteme lösen kann?

Article

Automatisierte Code-Wartung mit OpenRewrite

In Teil 1 dieser Serie habe ich gezeigt, wie OpenRewrite im Rahmen von Softwareentwicklungsprojekten zur Automatisierung von Code-Wartungsaufgaben verwendet werden kann. In diesem Beitrag zeige ich nun, wie man eigene OpenRewrite-Rezepte schreibt. Das hilft Dir nicht nur dabei, Refactoring-Aufgaben auszuführen, für die es keine öffentlich zugänglichen Rezepte gibt, sondern auch dabei, zu verstehen, wie OpenRewrite unter der Haube funktioniert.

Blog Post

Rooting Out Issues: JPA and Lombok Combination Problems Demystified

Blog Post

Die Anatomie eines erfolgreichen Teams

Die Gründe für das Scheitern von Softwareentwicklungsprojekten sind vielfältig und zum Großteil nicht technischer, sondern organisatorischer Art: Zu hohe Komplexität, unklare Anforderungen, nicht-funktionale Teams, Fokus auf den falschen Dingen oder überhandnehmende Konzernpolitik. Bereits zum Projektstart können Maßnahmen getroffen werden, um einige dieser Risiken einzudämmen und die Aussicht auf einen Projekterfolg zu erhöhen. Dieser Artikel wird den Fokus auf ein funktionierendes, erfolgreiches Entwicklungsteam legen und erörtern, welche Stellschrauben Sie drehen können – und von welchen Sie lieber die Finger lassen sollten.

Blog Post

Schema Evolution

Using Kafka, sooner or later you might want to describe a schema to specify your data structures. Since software continuously changes during it’s lifetime you’ll also have to evolve your schema. In this article we’ll discuss approaches and tools which can guide you in the realization of your schema evolution.

Article

Automated code maintenance with OpenRewrite

Part 1

Blog Post

Micro Frontends With Ionic And Capacitor

We planned and set up a micro frontend architecture using Capacitor and Ionic. In this article, I talk about some of the challenges we faced and the ways we solved them.

Article

Die Ökonomie von Gut & Crypto I

Der Hype um Crypto-Technologien ist etwas abgeklungen. Ein guter Zeitpunkt, die Möglichkeiten und ihre soziotechnischen Aspekte strukturiert zu betrachten. Die folgenden Kolumnen betrachten einige der Themen, die im Zusammenhang mit Crypto-Technologien immer wieder benannt werden oder für die sie Lösungen versprechen.

Blog Post

Testing your GitLab CI/CD pipeline

Blog Post

Mit Reviews in Legacy-Situationen orientieren

In diesem Post möchte ich ein paar meiner Erfahrungen mit Legacy-Software teilen. Wir von INNOQ kommen meistens dazu, wenn die Entwicklung irgendwie stecken geblieben ist oder es unklar ist, wie es weiter gehen soll. Reviews, die in Zusammenarbeit von Beratern und Kunde durchgeführt werden, können in einer solchen Situation effektiv und schnell für Klarheit sorgen.

Article

JDK 21, the next long-term support release

The newest JDK release, version 21, appeared on September 19th. A number of developers view it as a long-term support release that will be supported for at least the next five years. As many applications will presumably be updated to version 21 from JDK 17, the last long-term support release, we would like to take this opportunity to examine the relevant changes from 17 to 21.

Article

Containers for tests and local development with Spring Boot 3.1

Spring Boot test containers & Docker Compose

Article

Testing in Spring Boot applications

In addition to production code, we typically also write tests to discover and correct possible errors as early as possible in the development process. For new functionality, it isn’t even uncommon to write more test code than production code. At the same time, the tests should be as fast as possible, so they can be executed frequently without causing long delays. In this article, we explore how this can be done in applications based on Spring Boot.

Blog Post

How to bootstrap a tech conference with a 100% women+ speaker lineup

A tech conference focused on data and AI in the midst of a hype around machine learning, and LLMs in particular. Fair enough. But what we had in mind when planning the first edition of the Women+ in Data and AI summer festival in 2023 went beyond the latest trends in data engineering, machine learning, data science, and MLOps. We wanted to celebrate the excellence of women+ in the field. And to take it a step further, we wanted to provide our speakers and attendees with a safe and supportive environment - not only for learning, but also for networking and personal growth. Did we succeed?

Article

No future-proof architectures!

Why future-proofing should not be an architecture design goal.

Article

Is Platform Engineering the new DevOps?

When companies transition to the cloud, they anticipate an improved developer workflow, shorter release cycles, and more robust end-to-end team responsibility. However, even after the admin team delivers the new platform with all its capabilities, software teams may hesitate to adopt it and assume responsibility. But why? Is it not every developer’s desire to control the process from committing code to deploying it to production? One possible explanation is a lack of emphasis on the developer experience during platform conceptualization. This article aims to identify common issues and explore whether platform engineering can help to address them.