Passionate about software development, programming and software design - that's me.
My experience in software development ranges from simple bash scripts over assembler routines and Linux device drivers to large cloud based business applications with web UIs.
Since ~2017 I've gathered a lot of experience with applications in the cloud hosted by AWS infrastructure. Being key designer and architect of a rather large JVM based application running in the cloud with cluster and failover features.
I work extensively with the Java Virtual Machine. Writing Java code since 2000, and Scala code since 2010. I've also been using Kotlin, Clojure and other languages running on the JVM.
Web technologies like Apache Wicket I use for more than 14 years and gained expert knowledge.
For many years my interest was focused on macOS and Cocoa. So I've developed larger projects on macOS and apps on iOS as well as native apps for Android. Some time ago there was also .Net with C# and ASP.Net, C++, C, Python in the mix.
Elixir (and the whole Erlang landscape) is interessting enough :) to develop a few smaller projects with it. It is a really attractive purely functional language with immutable data types, running on the battle proven Erlang VM. Indeed very interessting. I wish I could do more with it.
Since early 2019 I found the world of Common Lisp, or the world of Lisps in general. I kind of got hooked with Lisps and Common Lisp in particular. The simplicity and the beauty and yet the power makes it a great experience to write applications with it.
I like writing code, clean code. Maintainability of code is key. Quality is key. And it's the right thing to do. For the businesses and our own sake (developers), to improve ourselves and what we do.
But what is 'clean-code'? Isn't this subjective?
Start with Robert C. Martin's book 'Clean Code'. It describes principles that are today more and more commonly accepted.
This quote from Michael Feathers also is quite on spot: "Clean code always looks like it was written by someone who cares."
I like good software-design and I strive to know more and do better. That means I follow and apply the principles of SOLID and various software patterns. That also includes various architectural patterns. I try to think of the bigger picture of the software, looking at it from a higher-level.
I do practice the discipline of test-driven development (TDD). It is part of my daily job since ca. 2014 and I must say that I wouldn't want to do serious development without TDD anymore.
Why? Because it is a superior technique to reduce software defects to a minimum. Also does it help with designing testable, separated and decoupled code.
I'm an advocate of software craftsmanship. It is a growing community of developers that adhere to the principles of master, journeyman and apprentice together with a mindset of teaching and learning and helping each other.
But most of all does it bring back the principles of writing good software as they were envisioned by the people that did originally sign the Agile Manifesto.
Here are a few links where you might get more information about what I do:
In 2003 I received the degree in computer science at the Georg Simon Ohm university in Nuremberg, Germany.