My name is Matthias Kainer. I'm a Software Developer, Manager and Consultant. This site will help you to get an idea about what I do , who I am , what I accomplished in my career , and some more stuff about me.

Creative Commons Lizenzvertrag
All Pictures on this page were taken by Matthias Kainer and are available under Creative Commons Attribution 4.0 International (CC BY 4.0). Logos are property of the respective company/event.


A code example of the js pipe operator from the article

Why the New JS Pipeline Operator Is a Terrible Idea

Functional programming styles have some advantages, like predictability and great debugability. Those rely on well-defined patterns that implicitly avoid that you end up shooting yourself in the foot. The newly proposed JavaScript pipe operator comes without this protection and has a good chance of introducing hard-to-understand code and bad bugs. Here's why.


#Functional #F #Javascript #Pipe

A fizzbuzz implementation in rust

A fizzbuzz example: specialisation vs reusability

One of the more difficult decisions in software development is choosing between specialised and reusable solutions. So let us look at both and see if we can understand when to use which.


#Fizzbuzz #Rust #Reusability

Functional example of pipes in Python.

The beginners guide to why some people prefer functional programming and others object-oriented

For a few years now, discussions rage on between two seemingly different programming paradigms: functional and object-oriented. But what are the reasons some people prefer functional and is there a clear winner?


#Functional-Programming #Object-Oriented-Programming

Call to the verifyContract method from the provider

A PoC for Contract Testing in the Frontend

With methodologies like microfrontends and atomic design, and techniques like module federation and import maps, we steadily walk in a direction where our frontend is composed during runtime. And yet, we lack the tools to have cheap tests that ensure that we won't break the system. Let's take a look at a possible solution: contract tests for components.


#Microfrontends #Contract-Testing #Test #Testing-Library

The 'perfect team'-checklist for the perfect company!

Why team building fails

Team building is often seen as a tool to help a dysfunctional team to get back on track. And just as often, it fails to achieve this goal. Let's take a look at what the team needs and how I as a leader can help.


#Team-Building #Servant-Leadership #Delegation #Goal-Setting

A microfrontend composition from the past

20 years of microfrontends

Microfrontends is a term that has come up in recent years, but in reality, we have been doing it for decades. Let's take a look at my journey and the lessons I learned on the way.


#Microfrontend #Custom-Element #Web-Components #Frames #Ssi #Microservices #Monolith

screenshot of the surveytool I build

The impact of Covid on my leadership style

I send out an anonymous survey twice every year - but never during that time were we facing a pandemic. Let's take a look at the impact that this has had on my results.


#Leadership #Remote-Work #Trust

Bring the Guardians of the galaxy and lego-city together and it won't end well

The fallacy of multi-vendor teams

Your multi-vendor teams are not performing and you're trying to turn it around? Well, you can't - and here's why


#Software #Delivery #Outsourcing #Multi-Vendor #Consultancy

Picture by https://ccnull.de/fotograf/tim-reckmann under [CC 2.0](https://creativecommons.org/licenses/by/2.0/)

Why "Made In Germany" ain't a thing in software

Software created in Germany never had the same flavour as cars. It's actually more of a smell. And this smell is gradually leaking into the other products. But what can we do to change that? I have three ideas.


#Software #Craftmanship

A sample test with web components and dom-testing-tools

Testing Your Web Components

Creating a custom element for a demo todo list in a test driven fashion, using jest, dom-testing-tools, LitElement and pure-lit.


#Web-Components #Custom-Elements #Jest #Jest-Dom #Dom-Testing-Tools


What is it I do?

I'm playing around with software since I was 8, and was lucky enough to make this hobby my work.

I was founder of two companies, and worked with some german and international companies as Software Developer and Manager, most notably Microsoft, AutoScout24 and 1&1.

Since August 2017 I'm working as lead developer at ThoughtWorks, with a strong focus on consulting.


Who am I

I'm a dreamer, who loves to dive into a chaotic, complex environment finding the best way to optimize the system. I'm a coach, helping people to develop themselves, and work in a group. I'm a manager, who is striving to create teams that do not require his management. I'm a developer, who loves to write code and make the world a little easier. I'm a dreamer, hoping to improve the world.

Also I'm into sport, married with children and love my life.


Where I've been, where I am

During my career I worked on a lot of projects in a number of companies. Click on the images for more information.

Companies & Projects


I'm a regular speaker on conferences in Germany, mostly around the topics organizational development, agile and teambuilding (i.e. in 2017 on the ScrumDay) and successful DevOps and agile implementations using bottom-up change processes (i.e. in 2017 DevOpsCon and XP-Days). I published the article “Reinvent your workplace” in the iX in 2016 with a collegue at 1&1 following a talk on the continuous lifecycle conference around how to change a department in both technical and organizational dimension.

Selected Slides & eBooks