Skip to content

A balancing act: Puzzles and practicality

How Dirk found the middle ground between his day job and open source

Dirk Lemstra // @dlemstra

Hey, I’m Dirk, 👋 an open source maintainer and full-time developer living in the Netherlands with my wife and our husky 🐕. I maintain ImageMagick, and created a .NET standard/framework library for ImageMagick called Magick.NET. I’m also involved in other open source image libraries so feel free to reach out if you need help performing magick 🧙🏻‍♂️with images.

The Netherlands

@MagickNET

Organizations

The ReadME Project amplifies the voices of the open source community: the maintainers, developers, and teams whose contributions move the world forward every day. Learn more

I knew I wanted to be a developer when I was 12. Problem solving and helping people are two things I gravitate towards—and with open source, I’ve found the best of both worlds. I like seeing that what I do makes people’s daily lives a little bit better. It’s good karma.

Open source in general is sort of like electronic volunteer work. I get a lot back that isn’t monetary. I meet a lot of people and get to hear how they’re using ImageMagick. It’s an opportunity to have fun, expand my knowledge, and encourage kindness in the community.

When I’m not maintaining, I work on an education platform for middle schools in Holland, which allows students and teachers to access the information they need on a daily basis, like educational materials, curriculums, and grades. I’m a developer by heart and am in the fortunate position that I really, really like my job(s). I always say that if the days were longer, I would do more work. I like to think I do a good job balancing a full-time job and my role as an open source maintainer (though my wife would surely disagree).

Open source in general is sort of like electronic volunteer work. I get a lot back that isn’t monetary.

Introducing your friendly ImageMagick maintainers

Over five years ago, I changed my full-time contract so that I work 36 hours a week instead of 40. This allows me to take a full day off every two weeks to focus on open source. If I can, I also spend a couple of hours on it every evening to catch up.

Finding the right balance of users and maintainers is the biggest challenge of open source. If you want to really maintain a project, you need to invest a lot of time and energy, and there aren’t a lot of people who can do that.

My journey as a maintainer began in 2013. The company I was with at the time had a .NET photography library that used ImageMagick, but I needed more functionality. So I contacted the owner and asked if he wanted help. After a month of silence, I just did it myself and created a .NET library called Magick.NET.

Photo of Dirk Lemstra wearing a colorful bowtie, surrounded by colorful lighted leading lines.

At some point, I discovered some bugs that needed to be addressed within ImageMagick. I started by fixing a memory leak, and sent a patch by email to Cristy, the principal ImageMagick Architect (and only contact I could find). I kept emailing him on a weekly basis until one day he asked, “Do you want to join the team? Because it’s just me. So if you want to help, please join me.”

Everything you can think of relating to an image is possible with ImageMagick: You can create, edit, compose, convert, resize, rotate, transform, adjust colors, apply special effects, draw texts, lines and shapes. It can read and write images in over 200 formats. People have told me that most of the world’s largest websites rely on it. And it’s maintained by three people: me, Cristy, and Fred Weinhaus, a mathematician who assists us with our algorithms and answers a lot of questions from the community.

Cristy created ImageMagick in 1987 and in 1990, it became open source (though, technically, the term wouldn’t be coined until 1998). Though he had help here and there, he was the primary maintainer until I came along. When I joined, I think it gave Cristy the space to focus. Most people don’t realize that when there’s only a few maintainers behind such a popular project, each question and comment takes them further and further from maintaining (and advancing) the project. Thankfully, we also have some really good contributors. Our primary contributors are very knowledgeable about the project. If you have a question, they’ll answer it.

Cristy attracts these kinds of people. He was the one who taught me that if you want people to join your cause, be friendly. If you want them to contribute, treat them how you want to be treated. He also helped me learn to look past any negativity in comments and find the relevant message that advances the issue or project (often buried in a rant).

Though he may have been delayed in his email response to me back in 2013, Cristy’s response was friendly. That really helped. You can just tell he’s working hard and really likes what he’s doing. And that kindness and passion really made me want to join.

When I joined, I think it gave Cristy the space to focus. Most people don’t realize when there’s only one maintainer behind such a popular project, each question and comment takes them further and further from maintaining (and advancing) the project.

Photo of Dirk Lemstra with dramatic red and blue lighting.

Migrating to GitHub shifts the team’s focus back to maintaining

We migrated to GitHub in 2015. Cristy created the project over 30 years ago, and it’s always been pretty widely used. But we were using Subversion until 2015, when someone urged us to move to Git.

At some point, I had a couple of days off and decided to see if I could complete the migration, which I did. My next question was, where will we host it? So we set up a Git server, but it was just too much work; it needed constant updates and would break down frequently. Maintaining the project is already a second job in and of itself, and we had a mirror in place for GitHub. So we moved everything over, and I’m really happy we did. GitHub saves us a lot of time and energy since we don’t need to maintain everything ourselves, and allows users to report issues.

The next best thing to a dream scenario

I’d love to find a company that would hire me full time to maintain ImageMagick. That’s the dream scenario: to be a full-time maintainer. But I’m also quite realistic that it’s probably not going to happen. Because even though a lot of people use our project, it’s also free, so why would they pay?

To my surprise, there have been a lot of people who want to offer support. The introduction of GitHub Sponsors was a gamechanger for me. Having a funding solution that sits within the GitHub platform has removed a lot of the pain points I previously experienced around gaining monetary support for my contributions to open source. Sponsors are (in almost all cases) already using the software, so it’s no extra work to become a sponsor. I set it up so there’s a wide range, from $1 to $1,000. And it helps so much. That’s money that gives me the freedom to keep my day job and maintain ImageMagick.

Open source is everywhere now, and sometimes, people don’t even realize it. Luckily, more enterprises, like Google, Microsoft, and GitHub, are recognizing the innovators behind open source projects. And they’re starting to hire directly from the community and balancing things out a bit more. By hiring maintainers and open source contributors, and encouraging employees to contribute back and volunteer, it becomes more symbiotic. What goes around comes around.

GitHub Sponsors allows you to financially support the people who build and maintain the open source projects you depend on. One-hundred percent of your sponsorship goes toward helping Dirk maintain ImageMagick.
Support Dirk on GitHub Sponsors

About The ReadME Project

Coding is usually seen as a solitary activity, but it's actually the world's largest community effort led by a small group of open source maintainers, contributors, and teams. These unsung heroes put in long hours to build software, fix issues, field questions, and manage communities, often without funding or recognition. The ratio of consumers to maintainers can be as unbalanced as 2,000 to 1.

The ReadME Project is part of GitHub's ongoing effort to amplify the voices of open source software: We want the world to know these inspiring people, hear their stories, and understand what drives them.

Nominate a developer or project

We’re always on the lookout for inspiring maintainers who passionately dedicate themselves to their projects and to the open source community. Know somebody whose story deserves to be told? (It could be yours!) Let us know, and they could end up being featured on The ReadME Project.

Your nominee is a/an (check all that apply):

You can’t perform that action at this time.