Johan Thelin

Koderize, foss-north and foss-gbg

September 2020

Johan makes FOSS and takes our Twitter mic from September 23 to 30. Thank you, Johan!

Please tell us about yourself

I’m Johan Thelin, a FOSS enthusiast and developer from Gothenburg, Sweden. My background is Linux and Qt - mostly on various embedded devices - but I also run the foss-gbg meetup and the foss-north conference. At work I’ve shifted more and more from hands-on development to architecture and more strategic topics - usually involving FOSS. The result of this is that I do more coding projects in my free time as my fingers would itch without getting to write code :-)

What are you working on right now?

The most visible open stuff are QmlBook, as well as foss-north podcast. In my daytime work I primarily work at MBition, trying to create a software platform for the cars of tomorrow, which of course includes a lot of FOSS. But I also run a Koderize, a small company doing various projects around FOSS - be it license recommendations, compliance - or development.

What is most interesting about that?

The public stuff is fun because it is about educating the world about something that I know, and the best way to learn about something is to actually try to teach it to someone else.

My professional life is interesting because it involves the politics of getting FOSS accepted in both small and large organizations. There is a lot of FUD to defuse, but also a healthy amount of “why” questions that I have to answer. I find it very interesting to try to explain why FOSS, which is something that I like on a gut-feeling level, in very quantifiable ways.

How did you first discover FOSS?

I think this must have been around ‘96, when I installed Linux for the first time. Before that, code was shared in various ways - e.g. in magazines and on cover disks (remember those - I mean actual floppy disks!), so it wasn’t revolutionizing, but that is when I first started encountering properly licensed copyleft contents.

I know that I did my first contributions back in ‘98, during my first year at University. Some bug reporting to Qt, and I wrote an extension to SDL. The Qt stuff has followed me throughout my coding ever since.

The story goes that Chalmers University ran HP Tru64 machines, so getting the stuff I was used to from Linux to run was sometimes a challenge. Qt did run, so that became my go-to toolkit. However, the pop-up menues had issues with the huge screen resolutions of the X terminals we had, so they wrapped around the screen. That turned into my first interaction with the project.

What prompted you to start contributing to FOSS?

It was natural to me to report bugs, and when I could, to share fixes and improvements. To me, it is a huge kick to see someone accepting a patch from me, and for people to use my code.

I’ve also been writing since I don’t remember when - probably around ‘94. I did introductions to 3D, Qt, and such. Then I started writing for a Swedish magazine called Datormagazin, which got me hooked. This led to me writing Foundations of Qt Development back in the Qt 4.6 days. Now I write the QmlBook with a former colleague of mine. We have way too little time for it, so the issue tracker is in a sad state, but I still like to write, teach, and explain things. This means that I’m less of a code contributor and more of a writer and speaker.

Why should others get involved with FOSS?

Multiple reasons. The kick you get from seeing your code integrated in something big like the Linux kernel, the Qt framework, or such. But also because of what it teaches you as a developer. To be successful in FOSS you not only need to be able to code. You need to be able to improve on an existing code base, you need to be able to have the stamina to get through a review, and you need to be able to cooperate with others. These skills are very important and participating FOSS is a great way to learn them.

How should they get started?

The easiest way to get started is to try using things. Even if it is just a program and not a full migration to a different operating system. Then start tinkering.

Depending on who you are, you might want to do tutorials on what you are using, or you pick it apart and improve it. Anything moving the project forward is a contribution, so just focusing on the code patches does not show the whole picture.

Then there are projects with junior jobs. I know that KDE has both coding and documentation tasks there, and I’m sure others does too. So see what is out there, interact with people, and try to help.

What difficulties and limitations do you see with FOSS?

The FOSS concept keeps on growing from day to day, but there are of course trends that needs to be addressed.

One of my personal pet peeves is that more and more projects are released under permissive licenses. For software component of an infrastructure nature I think that this is worrying, as it is important to ensure the freedom of these.

The other major issue today is the SaaS trend that avoids triggering the distribution clauses and thus makes it possible to use FOSS software in a way they where not intended to be used. We’ve seen various attempts to address this, but none has been trying to do so while preserving the freedoms that defines FOSS.

How can they be solved?

For the first issue we, as a community, need to work to make it easier to pick the right license. Nobody should avoid the GPL licenses because they are difficult to read, and people need to realize the range of licenses from permissive, through weak copyleft, to strong copyleft, and where to apply which.

For the latter, I think that we need to create a set of licenses that provide both weak and strong copyleft that take SaaS-like distribution (usage over a computer network) into account, so that it is possible to license software appropriately in a SaaS setting.

Where do you see difficulties in contributing?

It seems to be a general issue with the Internet that it is so easy to provide negative feedback when not facing the creator in person. This means that it is easy to be overwhelmed by negativity, rather than seeing the progress. This is something that all projects constantly have to work on.

Demanding contributors to be thick-skinned isn’t a viable solution. We need to ensure that all feedback is provided constructively.

What does a perfect day off look like?

My kids are getting older, so if it is raining I like to make small games with them (we use Godot for this right now), or other projects like making small movies (kdenlive) or just playing games.

If the weather allows, I try to do outdoor things like hiking, biking, or just tending the garden. Often paired with some late night hacking - especially in the summer when the evenings are long.

Do you want to tell us something else we didn’t ask?

I just want to mention the fediverse. A lot of today’s world is turning into a mono-culture with a few gatekeepers to the Internet. What used to be forums are Facebook groups, RSS is slowly disappearing, economy of scale drives most applications to AWS, Azure and such providers. By federating contents we can create the discoverability and easy of access from these centralized gatekeepers, but without the price of giving up the user freedoms and ownership of data.