Are we there yet? Can AI produce art? Part 2
I really enjoyed working on the first story, so I tried again — this time also generating images with Google’s Nano Banana Pro. What I like most about this new...
I have been working as a software developer, architect, and consultant for over 25 years. As a Lead Consultant at Thoughtworks, I help organizations build modern software products in an agile, secure, and reliable way.
I support teams methodically, technically, and personally—whether through coaching, architecture consulting, or hands-on pair programming.
I am a strong advocate of agile, TDD, CI/CD, DevOps practices, and Lean Thinking principles.
Jörn Dinkla
Software Engineer, Architect, Consultant
I really enjoyed working on the first story, so I tried again — this time also generating images with Google’s Nano Banana Pro. What I like most about this new...
This weekend I had a little time to play around — and ever since ChatGPT arrived back in 2022, I’ve been wondering when AI would be ready not just to...
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...
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.
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...
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...
As an external consultant in an Enabling Team for Cloud Architecture, I supported several teams and noticed that software development quality was lacking. This surprised me because the client was...
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...
The advances of artificial intelligence in the last months are simply breath taking. It is now very easy to use “intelligent” APIs in your web app. In this example application...
Concurrent and asynchronous applications can be written in Kotlin with coroutines in a precise and structured way. Unfortunately, concurrency often increases the complexity and it is difficult to create bug-free...
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.
During the chrismas holiday I started a new ray tracer in Kotlin while following the book “The Ray Tracer Challenge.
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...
At a client of ThoughtWorks I gave a talk about the advantages of Kotlin.
At a client of ThoughtWorks I gave a short presentation about three different ways of state management in React.
In the article “Verteilte Systeme: weniger warten, asynchron arbeiten” (distributed systems: less waiting, asychronous working) in the german magazine iX Developer Moderne Softwareentwicklung - code(), build(), deploy() I explain the...
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...
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....
Coroutines are a “new” way to handle concurrency on the JVM. At the para//el 2019 conference, I gave an introduction to coroutines in Kotlin.
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...
In March 2017 I gave a talk about GPU computing with CUDA and OpenCL at the para//el 2017 conference in Heidelberg, Germany.
Im Rahmen des Kultur-Hackathons Coding da Vinci Nord 2016 habe ich eine Web-Applikation für die Analyse und Visualisierung der Verbreitung von Familiennamen erstellt. Hierzu habe ich u. a. Node.js, Express,...
I bought the book in early access (MEAP) and decided to help as a reviewer.
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...
This article shows how to use k-d-trees with Apache Spark.
This article shows how to use Elastiksearch database with Spring Boot. It is the first in a series of four.
At the parallel 2015 conference I gave an introduction into Multi-GPU programming with Cuda, OpenCL and C++ AMP.
I bought the book in early access (MEAP) and decided to help as a reviewer.
At the parallel 2014 I gave an introduction into the optimization of GPU kernels.
"Massiv parallel - Grundlagen der GPU Programmierung"
"GPU-Programmierung in der Praxis mit CUDA"
At the parallel 2012 I presented my experiences and learnings I gathered in GPU computing projects.
These slides are for a course about parallel computing.
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.
Diese Schulung vermittelt die testgetriebene Entwicklung mit dem Schwerpunkt auf JUnit 4. Andere Frameworks wie JUnit 3 und TestNG werden kurz eingeführt (Stand 2009).
In der Schulung über Subversion geht es um die Versionsverwaltung.
Ant bietet immens viele Möglichkeiten, die den meisten nicht bekannt sind. Diese Schulung geht in die Tiefen von Ant (Stand 2009).
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...
The challenge was to implement Scrabble® in a dynamically typed programming language. I used Groovy and Grails.
I participated at Eclipse BugDays in July, August, September, October, and November 2007 and helped debugging the Eclipse projects JDT, PDE/UI, and ECF.
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...
In my diploma thesis I investigate functional programming and geometric algorithms
Programming TrueColor graphics with the Diamond Speedstar 24x