Blog

Blog Post

We Are Developers World Congress 2022 in Berlin

Our colleagues were on site, staffing the booth, speaking with fellow developers, and delivering two talks.

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.

Blog Post

cards42 English edition

The activity cards for software architects

Blog Post

Rich code documentation with Jekyll

Static site generation is a perfect fit for publishing documentation. In a recent project, we chose to use a combination of Jekyll and NGINX to build and host the documentation. In this post, I show how to process and include other types of assets.

Blog Post

Customer-specific documentation with Jekyll

Static site generation is a perfect fit for publishing documentation. In a recent project, we chose to use Jekyll for rendering our content. As a special requirement, we had to build different “flavours” for different customers.

Blog Post

Data Mesh: Decentralized Data Analytics for Software Engineers

Blog Post

Querying DNS and LDAP Using JNDI

The Log4Shell vulnerability has also placed JNDI in the spotlight. Although JNDI has been around since 1997, many developers have never heard of it or don’t know exactly what it’s for. To change this, in this article we’ll look at what JNDI is and how we can use it.

Blog Post

TypeScript – Taming the Complexity of JavaScript 

TypeScript celebrates its tenth anniversary in 2022. A good reason to look back at its beginnings – and to provide beginners with everything they need to know for working with this programming language.

Blog Post

INNOQ and Family

Or: Perceptions of working as a Consultant

Blog Post

Next Please!

Despite modern multicore processors, website code usually runs in only one thread. True parallelism therefore does not exist, but a clever programming model still allows “asynchronous” code that is not processed linearly.

Blog Post

Managing Kubernetes Resources with Kustomize

Helm is the de-facto standard for managing groups of Kubernetes resources that belong to an application as a package. It comes with its own ecosystem to build, configure and distribute these packages. In some cases, this is an appropriate approach but sometimes we just want to manage our resources as yaml files and need a simple way to slightly modify the resources for different environments. In this article we will have a look at how Kustomize can help us with this.

Blog Post

Fairness and Artificial Intelligence

Why Metrics Are Not Enough

Blog Post

Processing JSON in Java

In contrast to many other programming languages, JDK for Java does not provide an out-of-the-box solution for the reading and writing of data in JavaScript Object Notation (JSON). So we have to find a suitable library for performing this task. In this article we therefore look at a selection of appropriate libraries.

Blog Post

CORS extension “Private Network Access”

Chrome rolled out the “Private Network Access” extension for its CORS handling. Let’s try to understand the why and how this is affecting us.

Blog Post

Ethics and Artificial Intelligence

A New Approach with AI Systems

Blog Post

Principles of technical documentation

This article collects fundamental requirements for technical documentation, especially software architecture documentation, together with ideas how to satisfy those.

Blog Post

Libraries for command-line applications

Command-line applications are admittedly not the most common due to the start time of the JVM. Their development for internal applications can however be appropriate, depending on the level of knowledge of the team. And thanks to the native compiling with GraalVM, the start time is accelerated. Much of the work involved in a command-line application involves parsing and use of the provided arguments and options. We look at four possible libraries that can assist us.

Blog Post

Awesome presentations deserve beautiful code

Blog Post

MLOps and Model Governance

MLOps and model governance are often viewed as separate processes. And yet they rely heavily on one another. In this article we therefore propose the integration of these frameworks and explain the most important principles and technical components of MLOps and ML model governance.

Blog Post

A Comparison of Java HTTP Clients

In addition to databases, communication via HTTP to other services is nowadays found in almost every project. A large number of libraries have been built within Java that can be used for this purpose. In this article we will take a closer look at four of these candidates and see in which aspects they differ from one another.

Blog Post

Authoring Markdown with Zotero - My Workflow

Combining simple writing with powerful references

Blog Post

What Does a Bundler Actually Do?

Frontend development without JavaScript is rarely possible. Seasoned backend developers are then confronted with a completely new toolchain overflowing with unknown technical terms. But there is method behind the complexity.

Blog Post

Data Mesh to Go: How to Get the Data Product

You know what a data mesh is? You understand its basic principles? But you don’t know how on earth to get the data product? Then I will show you how to extract your data product from your Domain-driven Design (DDD) artifacts.

Blog Post

HTTP Feeds

Asynchronous Interfaces without Kafka or RabbitMQ

Blog Post

The Way of the Request

The Play Framework is a web application framework for Scala and Java inspired by Ruby on Rails. Although I like the official documentation, I always found it lacking in how requests runs through the framework. This article takes the reader on a journey tracing a request through the framework.