At a Glance:
- Involved in open source since: 2015
- Works for: TNO (the Netherlands Organisation for Applied Scientific Research) and Radboud University
- Eclipse Foundation contributor since: 2021
- Involved in: Eclipse ESCET project
- Committer to: Eclipse ESCET project
- Eclipse Foundation committer since: 2020
What’s your background as a developer?
My first encounter with the software world was as a child. When I was about 10 years old, I got a Commodore 64, which ran BASIC as its OS. I started to write simple programs on it; I was totally fascinated.
I followed this passion through my schooling, studying Computer Science and Engineering at the Eindhoven University of Technology (TU/e) in the Netherlands. I ended up working there for over eight years as a scientific programmer in the Mechanical Engineering Department. Some of the tools I made there are actually part of Eclipse ESCET now.
It was very interesting work. But I wanted to have more of an impact. That led me to TNO, the Netherlands Organisation for Applied Scientific Research, where I am a Senior Research Fellow. TNO helps industry and government through applied scientific research. In my department, TNO-ESI, we help Dutch companies and the Dutch government to handle the complexity of their products and processes, enabling them to improve their quality and efficiency. I do this by bridging the gap between academy and industry, bringing them together in an ecosystem, so that we can together tackle the challenges.
How did that lead to your involvement in open source?
My first significant contribution to an open source project was when I was working at the university. I was making a simulator for a Domain Specific Language (DSL) and needed some math functionality. I wanted to use Apache Commons Math, but it didn't have all I needed.
I contributed some new features, like root-finding algorithms, stochastic distributions, and so on. One feature I needed got stuck in endless discussions. I summarised the various viewpoints, trying to stay objective and technical, and pretty soon we reached a solution that was accepted by all. This was very satisfying.
Many of my other contributions over the years have been in the same vein: I needed things that weren’t there, and I saw them as valuable additions.
How did you find your way to the Eclipse Foundation?
A lot of the research I worked on at the university was focused on Synthesis-Based Engineering (SBE) of supervisory controllers. Supervisory controllers ensure that a system, like a bridge, operates correctly and safely. With SBE, you write down requirements and automatically synthesise from that correct-by-construction control logic and use it to automatically generate control code. It combines model-driven engineering with computer-aided design, providing a lot of automation. To support this process, we developed CIF, a DSL and toolkit to support the entire process.
But at some point, after I’d left to work for TNO, they weren’t able to build and release CIF anymore. Seeing the benefits it could bring many of our partners, I began looking into ways to sustain it. I landed on the Eclipse Foundation: It provided the open structure the project needed to build a community, for all parties to contribute together to its development, and for it to ultimately receive industrial attention and support.
Through my role in TNO, it being an independent research organisation, I brought together various parties, primarily from the high-tech industry and infrastructural domain. I then acted as the project manager in coordinating the transition, and now serve as project lead and as a committer for what became the Eclipse ESCET project.
I’ve been an active user of the Eclipse IDE for over a decade. Over the years, I’ve created hundreds of issues for other Eclipse projects. I’m an active user of the Eclipse Dash License Tool, and I’ve made some Gerrit and GitHub pull requests for the Eclipse Platform, as well as providing reproducers and tests for Eclipse Tycho, just to name a few.
How have you found the transition to the Eclipse Foundation?
It’s been an interesting challenge. If you just put something on GitHub, there are no rules. Obviously, there are many rules and processes established at the Eclipse Foundation, which can be a bit daunting at first. I actually read the Eclipse Foundation Project Handbook start-to-end.
Of course, years down the line, it’s all second nature. And the transition has been great. We’re building a community, and more and more users are getting involved creating issues, testing out features, and even making merge requests. It’s very rewarding when you make something and see people using it. It’s part of what drew me from academic research to applied research in the first place, that ability to make an impact.
Along the way, of course, there have been challenges. Being a committer and a project lead, one of your responsibilities is giving feedback when people make contributions. In the early days, I was probably more critical than I meant or needed to be. I still struggle with it at times. These days, I try to focus on the general line of ideas as they come in. As long as the right ideas are there, we can fix the details.
And as a project lead, one of the biggest challenges is getting your project’s community to grow, to establish a sustainable ecosystem of researchers, developers, users, and supporters, to keep increasing the impact of the approach. We’ve been growing steadily, and adoption is increasing, but we have even higher ambitions and that require continuous attention.
Any advice for someone considering getting more involved in open source?
Even if you’re getting paid to participate, it’s very helpful to have your own intrinsic motivation. Being motivated by what the project is trying to achieve, being passionate about how it works: these are key ingredients in keeping you interested and helping you make the best possible contributions.
Another important thing to remember is that there are a lot of different ways to contribute, and all of them are welcome. In open source projects, we will happily take all the help we can get. If you want to contribute code, or help with the documentation, or one of a half-dozen other things, that’s absolutely welcome. Play the role you feel comfortable with.
Open source only works because people get involved and contribute to it. One of my goals as a community member is to be a good open source citizen, contribute, fix things, and do my best to make a positive impact. I hope others do so as well, and I try to encourage it wherever I can. It only works if we all work together.