Menu

newsmode

Posts

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

All Posts

image
The seven wastes of software development

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

software-engineering agile project-management quality-assurance
image
Java in the Technology Radar

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

software-engineering java article jvm thoughtworks
image
Structured Concurrency in Java 24

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

software-engineering java concurrency article jvm parallelism
image
Coroutines in Kotlin at KKon 2021 Warmup

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.

software-engineering kotlin parallelism concurrency talk slides
image
Refactoring with the Mikado Method

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

software-engineering tdd talk slides clean-code
image
Weniger warten, asynchron arbeiten

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

software-engineering article kotlin concurrency parallelism golang
image
Concurrency in Kotlin with coroutines

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

software-engineering slides talk kotlin concurrency parallelism jvm

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

software-engineering kotlin object-functional scala functional-programming

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

software-engineering jvm functional-programming

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

work-related agile project-management devops review

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.

work-related agile project-management review
image
Ambient Occlusion example

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

software-engineering groovy java model-driven jvm graphics

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

software-engineering scala review jvm object-functional

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

big-data review data distributed

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

gpu-computing review c++ parallelism concurrency 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...

gpu-computing review c++ parallelism concurrency gpu-computing opencl

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

software-engineering review

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.

gpu-computing review c++ parallelism concurrency nvidia-cuda gpu-computing

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

science review

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

science review

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

software-engineering javascript review

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

gpu-computing review c++ parallelism concurrency nvidia-cuda 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.

gpu-computing review c++ parallelism concurrency nvidia-cuda 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.

gpu-computing review c++ parallelism concurrency gpu-computing nvidia-cuda

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

software-engineering parallelism concurrency jvm review object-functional

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

software-engineering review parallelism concurrency c++

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

science review complex-systems

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.

gpu-computing parallelism review gpu-computing
image
Training: Ant in Depth

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

software-engineering slides jvm

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

software-engineering groovy eclipse model-driven jvm java

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

games groovy jvm parallelism concurrency

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.

software-engineering eclipse jvm java

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.

software-engineering groovy eclipse model-driven jvm
image
Eclipse SQL Editor Plugin

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

software-engineering eclipse jvm java