I’m a thirty year old boy, as the narrator would put it, who has found his passion in software development. I constantly read, think and write about it, code for a living as well as for fun, and am always thinking about ways to improve skills and workflows – mine as well as those of the people sharing their time with me.
Initially, I considered this whole blogging thing a hobby, aimed at improving my knowledge and giving back to the great community which enabled me to even call myself a developer (as opposed to just some guy hacking away at his keyboard). But after about a year and a half it turned into much more. Researching topics that really interested me, I inadvertently acquired knowledge that others seek.
This enabled me to speak at conferences and writing became a (semi-)professional activity. It also gave me the chance to diversify my work life! If you need someone to write, speak, teach, or consult about bleeding edge topics like Project Jigsaw, Java 9, JUnit 5, Clean Comments, or Java in general, you should ping me – I am for hire.
All Rights reserved by Klaus Mellenthin
I was born in Dortmund, Germany, where I studied mathematics and computer science. In November 2010 I finished the latter with a focus on theoretical aspects; my thesis was called Linear Temporal Logics Over Data Strings (and I assume I am one of three people who actually read it).
When that was over, I needed some time off…
After some soul searching months I started working as a software developer for the Fraunhofer Institute for Systems and Innovation Research ISI, where I was developing energy market simulations in Java and VB.NET.
It was here that I discovered my passion for software development. Having access to all the great and free online sources about software development in general and Java in particular helped me learn a lot. In 2014 I decided to return the favor and started this blog as well as contributing to open source projects.
In late summer of 2014 I left the institute and looked for a new place to hone my skills…
I found it at Disy Informationssysteme, the leading provider for spatial and environmental IT-solutions in Germany. Here I learned the challenges of maintaining and improving a large, old, and business-critical code base. A dedicated team with a couple of brilliant people in there made this an experience I don’t want to miss.
On the non-coding side I continued my quest to annoy people with my suggestions and ideas. Some experiments failed but others stuck: I introduced code reviews and designed our review workflow, helped people become productive with Java 8, and was a general pain when it came to clean coding practices. I also started regular meetings, where we had beer and talked about code, organized a JUG meeting and built Disy’s TechBlog. I’m sure there was more but I’m not one to boast (yeah, sure).
It was with a heavy heart that I left Disy in summer 2016…
SitePoint et al
But I could just not say no to the opportunity SitePoint offered me: Becoming an editor and building a Java channel from the ground up. And that’s what I’ve been doing ever since.
Besides everything else of course. A book about Project Jigsaw, this blog, writing gigs, talking at conferences, trainings, consulting – I guess I’ll be busy. Ah yeah, and I guess I should be coding somewhere in between.
Free and Open Source Software
I’m a big proponent of digital rights and particularly Free and Open Source Software. I am a member of the Electronic Frontier Foundation, Free Software Foundation Europe, and financially support selected projects.
In 2014 I finally started contributing code and even though it has just been on a small scale, working on free software became very important for me.
My contributions (updated erratically, last in December 2015):
- AssertJ provides fluent assertions for Java.
Thanks to my microscopic contribution it is now possible to assert that an Optional contains a specific instance.
- ControlsFX is an open source project for JavaFX that aims to provide high quality UI controls to complement the core JavaFX distribution.
I created the SnapshotView.
- FindBugs uses static analysis to look for bugs in Java code.
I opened some feature requests (like adding rules for Optional) and am currently working on implementing one of them: Warn about identity-sensitive operations on value based classes (you can see my progress in this pull request).
- The Property Alliance project is an effort to create a simple library to abstract access to properties on Java Beans and other data objects.
During the last months of 2014 I was doing the grunt work of implementing interfaces and writing tests.
I have my own open source library LibFX, in which I collect all kinds of reusable functionality. The initial ideas and implementations usually emerge in some other project. After generalizing, polishing and thorough testing, I include the code in LibFX.
Then there is JDeps Mvn, a Maven plugin running JDeps on the compiled classes and failing the build for dependencies on JDK-internal APIs. It’s specialty is the ability to easily define exceptions from build-breaking for known dependencies that could not yet be removed.
Last but not least, I’m a founding member of Do-FOSS, an initiative which advances the use of Free and Open Source Software in the city of Dortmund.
Some jurisdictions require me to list a postal address, so here goes the last shred of anonymity: