Menu

Posts in Software Engineering

All posts in Software Engineering in chronological order with newest first.

Posts in Software Engineering

image
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 arrow_forward
image
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 arrow_forward
image
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 arrow_forward
image
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 arrow_forward
image
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 arrow_forward
image
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 arrow_forward
image
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 arrow_forward
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 arrow_forward
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 arrow_forward
image
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 arrow_forward
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 arrow_forward
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...

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 arrow_forward
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 arrow_forward
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 arrow_forward
image
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).

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 arrow_forward
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...

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 arrow_forward
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 arrow_forward
image
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 arrow_forward
image
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 arrow_forward