Skip to content

Menu

Posts

All posts on this blog in chronological order with newest first.

All Posts

Polyptych — turning one essay into many kinds of visuals
Jun 14, 2026 ai

Polyptych: One Essay, Many Pictures

I built my own slide and infographic generator because I couldn’t stop poking at Google’s NotebookLM. The toy has since grown into something I rely on. It’s called Polyptych, and...

#gen-ai #ai #infographics #image-gen #software-engineering
Read more
The seven wastes of software development
Jan 13, 2026 software-engineering

The seven wastes of software development

Lean Thinking is more than just a set of management tools; it is a philosophy centered on maximizing customer value while relentlessly eliminating waste. At its core, it challenges us...

#agile #project-management #quality-assurance
Read more
Nov 11, 2025 software-engineering

AI Crosses from Exploration into Engineering

The Thoughtworks Technology Radar has always been more than a list of tools. It captures what happens when technology moves from experimentation to everyday practice. In its 33rd edition, one...

#ai #gen-ai #thoughtworks
Read more
Nov 01, 2025 software-engineering

Announcing NKP 0.1: Static Analysis for Kotlin Projects

I’m excited to share the first MVP release of NKP (aNalysis of Kotlin Programs), a command-line tool for analyzing Kotlin codebases and uncovering architectural insights.

#jvm #architecture #kotlin #object-functional #quality-assurance
Read more
Java in the Technology Radar
Sep 03, 2025 software-engineering

Java in the Technology Radar (JavaSpektrum)

I’ve written a new article for JavaSpektrum: “Java im Technology Radar – Totgesagte leben länger”. The piece looks back at Java’s journey through the eyes of the Thoughtworks Technology Radar...

#java #article #jvm #thoughtworks
Read more
Structured Concurrency in Java 24
Mar 31, 2025 software-engineering

Structured Concurrency in Java 24 (JavaSpektrum)

I’ve written an article for JavaSpektrum 2/2025 about Structured Concurrency in Java 24. The article covers JEP 499, Java’s fourth preview of Structured Concurrency, which aims to make concurrent programming...

#java #concurrency #article #jvm #parallelism
Read more
Dec 31, 2023 ai

Generating dialogues with OpenAI's API

During the winter holidays I had some fun letting AIs discuss with each other about various topics. I personally like to chat with ChatGPT and challenge it (him/her) with difficult...

#python #gen-ai
Read more
Coroutines in Kotlin at KKon 2021 Warmup
Apr 23, 2021 software-engineering

Coroutines in Kotlin at KKon 2021 Warmup

In my talk “Nebenläufigkeit mit Koroutinen strukturieren” at the KKon 2021 Warmup I explained how to structure and organize concurrent programs with coroutines in Kotlin.

#kotlin #parallelism #concurrency #talk #slides
Read more
Refactoring with the Mikado Method
Apr 02, 2020 software-engineering

Refactoring with the Mikado Method

At a client of ThoughtWorks I gave a talk about refactoring in line with the book “Mikado Method”. The book describes a method to plan and perform non-trivial refactorings of...

#tdd #talk #slides #clean-code
Read more
Plain react, hooks and/or Redux
Mar 04, 2020 software-engineering

Plain react, hooks and/or Redux

At a client of ThoughtWorks I gave a short presentation about three different ways of state management in React.

#talk #slides #javascript #front-end
Read more
Weniger warten, asynchron arbeiten
May 06, 2019 software-engineering

Coroutines in Kotlin and Go on heise Developer

In the article “Weniger warten, asynchron arbeiten” (less waiting, asychronous working) published by heise Developer I explain the theoretical background of coroutines and how to use them in Kotlin and...

#article #kotlin #concurrency #parallelism #golang
Read more
Concurrency in Kotlin with coroutines
Apr 23, 2019 software-engineering

Concurrency in Kotlin with coroutines

Coroutines are a “new” way to handle concurrency on the JVM. I gave an introduction to coroutines in Kotlin at Thoughtworks. This is basically the translation of the german slides....

#slides #talk #kotlin #concurrency #parallelism #jvm
Read more
Jan 02, 2019 software-engineering

Fusion of object oriented and functional programming

The fusion of Object Oriented Programming (OOP) and Functional Programming (FP) languages has become increasingly popular in recent years, with many programming languages now offering features and constructs from both...

#kotlin #object-functional #scala #functional-programming
Read more
Unter der Haube - cuDNN schafft die Grundlage für Deep Learning mit GPUs
Dec 01, 2018 gpu-computing

Machine learning library 'cuDNN' explained in iX Developer

It’s very difficult to implement algorithms optimally for GPUs. Therefore NVIDIA provides the library cuDNN for deep learning with neural networks. This article published in the german magazine iX Developer...

#article #ai #parallelism #concurrency #machine-learning #data #nvidia-cuda #gpu-computing
Read more
Jul 22, 2017 software-engineering

EuroClojure 2017 in Berlin

In my first project for ThoughtWorks the backend is written in Clojure. Since the project was in Berlin, I visited the EuroClojure 2017 which takes place in Berlin this year,...

#jvm #functional-programming
Read more
Program of the parallel 2017
Apr 04, 2017 gpu-computing

Talk about GPU computing with CUDA and OpenCL

In March 2017 I gave a talk about GPU computing with CUDA and OpenCL at the para//el 2017 conference in Heidelberg, Germany.

#c++ #parallelism #concurrency #slides #talk #nvidia-cuda #gpu-computing #opencl
Read more
Feb 01, 2017 software-engineering

Working for ThoughtWorks

After long considerations i decided to quit being a freelancer and joined ThoughtWorks in Hamburg, Germany.

#thoughtworks
Read more
Nov 30, 2016 gpu-computing

CUDA 8.0 on Mac OS/X

CUDA 8.0 on Mac OS X 10.12 gave me the following error:

#c++ #parallelism #concurrency #nvidia-cuda #gpu-computing
Read more
Sep 07, 2016 work-related

A Good Novel About IT and DevOps

In the novel “The Phoenix Project: A Novel About IT, DevOps, and Helping Your Business Win”, the protagonist Bill is promoted against his will and must immediately take over, be...

#agile #project-management #devops #review
Read more
Jul 28, 2016 work-related

Planning is an Agile Process

In “Agile Estimating and Planning”, Mike Cohn excellently explains the problems associated with project planning and effort estimation and presents “agile estimating and planning” as a solution.

#agile #project-management #review
Read more
Jun 01, 2016 games

'Lag' and how to minimize it

Every multiplayer gamer knows it: “Lag”. When you see an opponent too late or you are certain you hit them a hundred percent, but the game decides otherwise: the culprit...

#review #c++
Read more
Apr 13, 2016 work-related

Good Presentations Make You Look Good

Neal Ford and Nathaniel Schutta have created a video training course for their 2012 book “Presentation Patterns: Techniques for Crafting Better Presentations”.

#review #agile
Read more
Aug 07, 2015 work-related

How Business Models Are Fun - A Reading Experience

“Business Model Generation” is an excellent introduction to the complex topic of “business models.” The book covers business models, their creation, and further adaptation using the “Business Model Canvas.”

#review
Read more
Ambient Occlusion example
Jul 08, 2015 software-engineering

Ray tracing with Groovy and Java

While I was reading the excellent book by Kevin Suffern "Ray tracing from the ground up", I implemented a ray tracer in Java and wrote a DSL in Groovy, to...

#groovy #java #model-driven #jvm #graphics
Read more
Jul 06, 2015 software-engineering

Covariance and Contravariance in Scala

The topic of covariance and contravariance is explained in many places (including Wikipedia). This post is my attempt to explain it in my own words, using Scala.

#scala #jvm #object-functional
Read more
Jul 06, 2015 big-data

Good Hands-on Introduction to Apache Spark

Anyone who wants to learn the basics of Spark is well-advised to read the book “Learning Spark”. I particularly liked that the book is very practice-oriented and that you can...

#review #distributed #object-functional
Read more
Jun 17, 2015 software-engineering

A very good introduction to Scala

Scala is an important milestone in the fusion of functional and object-oriented programming. This fusion is not yet complete, but rather a “discovery process” that will continue for a few...

#scala #review #jvm #object-functional
Read more
May 07, 2015 science

Essential Reading in the Field of Security

In the book “Beyond Fear: Thinking Sensibly About Security in an Uncertain World”, written back in 2003, Bruce Schneier writes about security in a very general sense. He specifically refers...

#review
Read more
May 05, 2015 gpu-computing

Heat diffusion on multiple GPUs

The implementation of the heat diffusion equation on multiple GPUs is explained in the talk (in german).

#c++ #graphics #parallelism #concurrency #nvidia-cuda #gpu-computing #opencl
Read more
May 02, 2015 science

3D Printing and Industry 4.0 for Small Businesses

In “Makers: The New Industrial Revolution” (German title: “Makers: Das Internet der Dinge: die nächste industrielle Revolution”), Chris Anderson describes how industrial manufacturing processes using CAD, 3D printing, and/or outsourcing...

#review
Read more
Apr 04, 2015 software-engineering

OO with JavaScript Excellently Explained

JavaScript has a prototype-based approach to object orientation. This makes it very different from the common object-oriented programming languages, such as Java, C++, and Ruby.

#javascript #review
Read more
Mar 27, 2015 big-data

Java MapReduce with Hadoop

MapReduce is a “corset” and forces the developer into narrow boundaries. Therefore, it makes sense to read “MapReduce Design Patterns” to quickly learn the common tricks and techniques. It is...

#review #data #distributed
Read more
Mar 16, 2015 gpu-computing

A Good Introduction to C++ AMP

“C++ AMP: Accelerated Massive Parallelism with Microsoft Visual C++” is a good introduction to programming with C++ AMP. Unfortunately, at the time of this review, it is the only book...

#review #c++ #parallelism #concurrency #gpu-computing
Read more
Mar 03, 2015 software-engineering

Examples for parallelism: ray tracer

I wanted to learn some frameworks for parallel computing and i decided to implement a simple ray tracer as a "visual benchmark".

#c++ #java #graphics #parallelism #concurrency
Read more
Feb 23, 2015 gpu-computing

The Best Book on OpenCL 1.x

What makes “OpenCL in Action: How to Accelerate Graphics and Computation” special is that the author, Matthew Scarpino, truly tries to explain the programs. You learn the reasons behind his...

#review #c++ #parallelism #concurrency #gpu-computing #opencl
Read more
Jan 29, 2015 software-engineering

Advanced 'git'

I have been using git for a few years now, but I wanted to gain more background knowledge and learn about more complex workflows. The book “Git in Practice” succeeded...

#review
Read more
Jan 27, 2015 software-engineering

Too Short an Introduction to PaaS

“Understanding PaaS” is a very small booklet about the basics of cloud computing. It can be read to get a very quick introduction to the topic. It is written more...

#review
Read more
Jan 26, 2015 gpu-computing

Solid Optimization Tips for CUDA

While browsing through “CUDA Fortran for Scientists and Engineers”, I noticed that the authors provide valuable optimization tips. That piqued my curiosity.

#review #c++ #parallelism #concurrency #nvidia-cuda #gpu-computing
Read more
Jan 16, 2015 software-engineering

An Almost Definitive Introduction to MongoDB

“MongoDB: The Definitive Guide” is a well-rounded overview of MongoDB from both a developer and a DBA perspective. At least as far as I can tell as a MongoDB beginner...

#review #data #javascript
Read more
Jan 12, 2015 science

Only partially elegant

In the first part of “The Elegant Universe: Superstrings, Hidden Dimensions, and the Quest for the Ultimate Theory”, the foundations of relativity and quantum mechanics are explained vividly and with...

#review
Read more
Jan 12, 2015 science

My Favorite History Book

James Gleick is an incredibly well-read person who, in this extensive and worthwhile book “The Information: A History, a Theory, a Flood”, presents the history of information and information processing....

#review
Read more
Java 8 in Action
Dec 17, 2014 software-engineering

Reviewer of Java 8 in Action

I bought the book in early access (MEAP) and decided to help as a reviewer.

#review #java #scala #jvm #object-functional
Read more
Dec 17, 2014 software-engineering

“Sophisticated” JavaScript

If there is such a thing as “sophisticated” literature, then there is now also “sophisticated” code. “If Hemingway Wrote JavaScript” contains many funny and educational examples.

#javascript #review
Read more
Apr 20, 2014 gpu-computing

Inspiration for CUDA Experts in the Natural Sciences

The book “GPU Computing Gems (Emerald Edition)” is a collection of 50 scientific articles about experiences using GPU computing in various subject areas.

#review #c++ #parallelism #concurrency #nvidia-cuda #gpu-computing
Read more
Apr 19, 2014 gpu-computing

Only recommended for die-hard CUDA fans

I had already read many articles from the series “CUDA, Supercomputing for the Masses” by Rob Farber on the Dr. Dobb’s website and was quite impressed. Back then in 2009,...

#review #c++ #parallelism #concurrency #nvidia-cuda #gpu-computing
Read more
Apr 16, 2014 gpu-computing

Best CUDA Book for Advanced Users

With CUDA, it’s easy to speed up a calculation by a factor of 2-5. How to achieve higher speedups is explained in “CUDA Programming” by Shane Cook.

#review #c++ #parallelism #concurrency #nvidia-cuda #gpu-computing
Read more
Apr 01, 2014 gpu-computing

Good Tips for Performance Optimization

In “The CUDA Handbook”, Nicholas Wilt proves himself to be very competent and keen to experiment with kernel optimization. Advanced readers will find this book very beneficial.

#review #c++ #parallelism #concurrency #gpu-computing #nvidia-cuda
Read more
Feb 11, 2014 software-engineering

A Good Overview of C++ 11

In this small book, the creator of C++ provides an overview of the new features in C++ 11 and the STL.

#c++ #review
Read more
Jul 30, 2013 software-engineering

Tips of very varying quality

The book “97 Things Every Programmer Should Know” consists of 97 sections by different authors regarding frequently occurring questions in software development.

#review
Read more
Jun 29, 2012 games

Good Overview

“Polygon Mesh Processing” is a “research monograph” on the processing of polygon meshes.

#review #graphics
Read more
Feb 21, 2012 gpu-computing

Essential for Performance Optimization

What distinguishes “Programming Massively Parallel Processors: A Hands-On Approach” from other books is the precise description of how the hardware works.

#review #c++ #gpu-computing #opencl #nvidia-cuda
Read more
Feb 08, 2012 work-related

The ABCs of Beautiful Slides

“Slide:ology: The Art and Science of Presentation Design” is a very well-designed and easy-to-read book. It definitely lives up to its subtitle.

#review
Read more
OpenCL in Action
Dec 03, 2011 gpu-computing

Technical proofer of 'OpenCL in Action'

The OpenCL standard is not always easy and the technical proof was a challenge, because the code had to run on different os'es and platforms.

#c++ #gpu-computing #parallelism #concurrency #opencl
Read more
Dec 01, 2011 software-engineering

Very good in places, unpolished and too brief in others

Programming parallel and concurrent programs with shared memory and threads is complicated and very error-prone. Approaches such as Software Transactional Memory (STM), message-passing architectures, and actor models have been developed...

#parallelism #concurrency #jvm #review #object-functional
Read more
Nov 15, 2011 software-engineering

Only for 'Thread Monkeys'

With the title “The Art of Concurrency”, high expectations are set that are not met. The subtitle “A Thread Monkey’s Guide to Writing Parallel Applications” is more fitting for the...

#review #parallelism #concurrency #c++
Read more
Aug 08, 2011 science

Review of 'Complexity - A Guided Tour'

“Complexity - A Guided Tour” is a worthwhile and interesting introduction. “Complexity” is a cross-disciplinary topic that permeates many fields, such as biology (immune system, brain, evolution), economics, computer science,...

#review #complex-systems
Read more
Apr 14, 2011 games

The Perfect Introduction to the Subject

The book “Real-time Rendering” is the perfect start to this field if you have prior knowledge of linear algebra and software development. It is up to date (as of April...

#review #games
Read more
Mar 13, 2011 gpu-computing

The best introduction to CUDA

“Cuda by Example” is the perfect start to CUDA for beginners. However, even some advanced users and professionals might enjoy the clear explanations and examples.

#parallelism #review #gpu-computing
Read more
Apr 07, 2010 software-engineering

Sony Alienates Early PlayStation 3 Fans

On April 1st, Sony released an update for the PlayStation 3 that discontinued support for Linux. This move angered many, sparking intense reactions and discussions.

#parallelism #concurrency
Read more
Jan 03, 2010 gpu-computing

CUDA Real-Time Ray Tracer

During the christmas holidays i rewrote my ray tracer for the NVIDIA CUDA architecture.

#parallelism #concurrency #graphics #gpu-computing
Read more
Training: Ant in Depth
Oct 09, 2009 software-engineering

Training: Ant in Depth

Apache Ant offers a lot of capabilities that many teams never end up using. This training dives into Ant’s more advanced features (as of 2009).

#slides #jvm
Read more
Aug 01, 2009 software-engineering

Groovy, EMF and UML2

I wrote the Groovy EMF builder and the Groovy UML2 builder. These tools use the builder concept of the programming language Groovy to ease the processing of Eclipse Modelling Framework...

#groovy #eclipse #model-driven #jvm #java
Read more
Feb 19, 2009 games

Little big planet and computer graphics

I am fascinated by the possibilities of modern computer graphics. It all began while playing the game Little Big Planet. It does not look like a computer game. It looks...

#graphics
Read more
Feb 27, 2008 software-engineering

Memoization in Groovy with a Decorator

Memoization is a well known optimization technique to avoid repeated calculations. With dynamic programming languages like Groovy it is possible to extend the behaviour of an already exisiting class at...

#groovy #jvm
Read more
Feb 01, 2008 games

Dynamic Languages Shootout / OOP 2008

The german magazine JavaSpektrum organized the "Dynamic Languages Shootout" contest for the OOP 2008 conference. The challenge was to create a computer game similiar to Scrabble in a dynamically typed...

#groovy #jvm #parallelism #concurrency
Read more
Jan 27, 2008 software-engineering

Accessing EMF models with JRuby

JRuby provides access to Java packages, so it is possible to use packages created with the Eclipse Modeling Framework (EMF).

#ruby #model-driven #jvm
Read more
Writing Eclipse plugins with Groovy
Jan 17, 2008 software-engineering

Writing Eclipse plugins with Groovy

Writing plugins for Eclipse with other languages than Java is not officially supported, but there is a way to write an Eclipse plugin with Groovy only.

#groovy #eclipse #jvm #java
Read more
Dec 01, 2007 software-engineering

Eclipse BugDays 2007

I participated at Eclipse BugDays in July, August, September, October, and November 2007 and helped debugging the Eclipse projects JDT, PDE/UI, and ECF.

#eclipse #jvm #java
Read more
Nov 29, 2007 software-engineering

Using UML2 with Groovy

The UML2 project provides an EMF based implementation of the UML 2.x metamodel in Java. With the EMFBuilder it is possible to create and process UML2 models.

#groovy #eclipse #model-driven #jvm
Read more
Rapid Application Development with Groovy
Nov 01, 2007 software-engineering

Rapid Application Development with Groovy

While i was cleaning up my hard disk on my Linux in 2007, i needed a program that displays the disk usage graphically. I didn't find a suitable one on...

#groovy #jvm #parallelism #concurrency
Read more
Using EMF with Groovy
Oct 22, 2007 software-engineering

Using EMF with Groovy

This article shows how Groovy can be used with the Eclipse Modeling Framework (EMF).

#groovy #eclipse #model-driven #jvm
Read more
Editor for the Common Warehouse Metamodel (CWM)
Oct 01, 2007 software-engineering

Editor for the Common Warehouse Metamodel (CWM)

The Common Warehouse Metamodel (CWM) is a standard by the Object Management Group (OMG). The intention of CWM is to define a standard for metadata in Data Warehouses and Business Intelligence applications.

#groovy #eclipse #model-driven #jvm #data
Read more
Eclipse SQL Editor Plugin
Mar 07, 2006 software-engineering

Eclipse SQL Editor Plugin

I wanted to find out how hard it is to build a language editor in Eclipse. Back then I didn’t know of any open-source SQL editor (and there wasn’t one...

#eclipse #jvm #java
Read more
The Graphical Editor Framework (GEF)
May 10, 2005 software-engineering

Graphical Editors with Eclipse

Over Christmas 2004, I built an EMF plugin for family trees. Around Easter 2005, I finally found the time to develop a GEF-based editor for it.

#eclipse #jvm #java
Read more
Jan 02, 2005 big-data

Fraud Detection with Artificial Intelligence

From 1999 to 2004, I collected information on the topic of ‘Fraud detection’ on my website. When I started this in 1999 as a research assistant at the University of...

#data #machine-learning #ai #data
Read more
May 07, 1996 software-engineering

Dynamic Scheduling in Real-Time Systems

In this seminar paper (1996), written during my graduate studies in computer science, I cover scheduling algorithms for distributed real-time systems.

#parallelism #concurrency #algorithms #distributed
Read more