My name is Mario Morgenthum. I am software developer and architect. My interests are software design, principles, patterns, paradigms, problem decomposition and abstraction in general.

I started developing professionally in 2008 with Java. During my apprenticeship I wanted to understand what's going on under the hood and how things like compiler and all the other magic stuff work. I learned C and C++ to understand the differences between low level and more high level languages like Java.

After I knew how things work, I focused on software design. How can one split up an application into interchangeable and loosely coupled pieces? Starting from modules down to interfaces, classes and methods. I learned a lot about principles and always recurring patterns. I tried to get a good taste of what is good and what is bad code.


From time to time I saw new features coming into our good old languages. Most of them were copied from so called functional programming languages. So I wanted to take a look at the way of programming in a real functional language. I thought it would be a good idea to take a closer look at Haskell, because it seemed to be the purest form of all functional languages. After I learned the core techniques, I started implementing small applications, which was mind blowing as soon as I could handle the features and the syntax.

Currently I dive deep into the world of functional programming and learn advanced topics. I recommend everyone who is interested in abstract software design to take a look at a functional language. It will expand your mind, change your point of view and enable you to think different about problems and solutions.