Back to Spotlight
Markus Winter works as a software engineer at SAP SE and is based in Wiesloch, Germany. He has been contributing to Jenkins since 2016, providing bug fixes and enhancements in core and various plugins. Outside of his work, Markus enjoys traveling, reading books (mostly Sci-Fi), watching movies, and working on his Jenkins plugins.
After graduating in Physics I soon realized that I wanted to be more involved in computer science. I then began my career in an unfamiliar area, in build systems. I worked with Make and Apache Ant (Maven was yet to be invented), and later in my career, I discovered Maven and Jenkins.
My first introduction to Jenkins (Hudson) was in 2010; it was a solution provided to allow teams to build subprojects of a bigger project though I was not really involved in this project. It really began in 2013 when our team took over an existing build system based on Jenkins. A lot of things we invented in the first few years are still in use, like running Jenkins in a Docker container or having a 100% configuration as code approach (at the time JCasC was not yet in existence).
We inherited an existing solution while evaluating other solutions. In the end, we came to the conclusion that Jenkins, due to its big plugin ecosystem, was the best choice. And because we had specific needs and requirements, we were able to write our own plugins, in which case we did.
We were able to build a single, huge C/C++ project on Jenkins with 170 agents. It provided a centralized build service (backed by 6 Jenkins instances, each with 10k+ jobs) for thousands of developers to build small projects, of any kind, on multiple platforms.
I like working on UI/UX improvements but also working on topics that do not belong to Jenkins core but yet bring value to everyone as a plugin Agent Maintenance plugin, Pipeline Agent Build History plugin.
Developing the Customizable Header plugin was the most impactful for me. It allowed for customization, giving your Jenkins a personal touch, and making it very easy to see and access multiple instances. I typically have 7 to 8 instances where I regularly need to access. But also contributing the dialogs to Jenkins core was a great experience.
Try things out when you have an idea and see if it works. If it doesn’t work the way you thought it should, try to understand why you failed. You will learn more from doing and failing than from reading documentation.