
Meet Sovereign Tech Fellow Sarah Hoffmann
By Theresa Röcher
Open source maintainer Sarah Hoffmann loves to discover beautiful places in real life – and in code. Learn more about Sarah's journey in open source in this in-depth interview, from the technologies she works on, and the challenges she faces to her experiences working with an international volunteer community.
Tell us a bit about your background. How did you get involved in open source?
I've worked with - and created - open source software for over 20 years now. I first came in touch with the concept during my studies of computer science in Dresden. I worked on the open source operating system L4 for my diploma thesis and continued working on it for several more years as a full-time job. I truly discovered the advantages of open source when I came across the OpenStreetMap project in 2007. OpenStreetMap was still in its early days when much of the map was barely more than a blank canvas. Over the next few years, I watched the project grow and become a map data source that covers the entire planet. I helped when the first public transport agencies tentatively adopted our data because they needed maps that spanned across country boundaries. I've seen apps emerge for hikers and cyclists, a group that had been completely ignored by the commercial map providers until then.
OpenStreetMap was able to grow because it was open for use and open for contributions from everybody. And it didn't stop with the data. Since there was nothing available to build on at the time, we created pretty much all of our software from scratch-everything as open source. This made it easy for me to experiment with creating my own maps or setting up my own routing software. I also began to look under the hood of the software when things didn’t work as expected.
In 2012 the OpenStreetMap sysadmins were looking for somebody to set up and help with administration of the server for this new geocoding software called Nominatim. This sounded interesting, so I took the volunteer job despite having never worked with a PostgreSQL database or knowing much about search. Being an administrator turned out to be a great way to learn the software. I started with submitting patches for small improvements for the production servers. Then the first user reports came in about search not working as expected. So I looked after those as well. Gradually, I became involved in larger improvements until, one day, I became the main developer simply due to the number of commits I had made. Since then I've taken over maintenance of other projects in the OpenStreetMap ecosystem in a similar way: I depended in some way or another on these projects and didn't want to see them abandoned.
Tell us more about the projects you’ll be working on during the fellowship. What makes it important?
My specialty is geocoding software. That is the piece of software that you can give an address or location description and it returns the coordinates to you. Or the other way around, you can give it the coordinates of your location and it returns the address of that place. I'm the maintainer for Nominatim and Photon, two related geocoders that are made specially for OpenStreetMap data. Some kind of geocoding function is needed in pretty much every application. When a website has a map, it usually also has a search box. Whenever you let an application know where you are or where you live, it will very likely turn this information into coordinates. And apps that track your location often want to do the reverse: they want to know which country or city you are in.
There are two big challenges to geocoding: on one side, OpenStreetMap data has to be processed so that it is usable for geocoding. This is much harder than it sounds. The real world is not as neat and ordered as we computer nerds like it to be. Every country comes with its own system and peculiarities to describe locations and addresses. Developing a geocoder that works for the entire planet is in fact a wonderful way to learn about different cultures and customs. Did you know that it is quite common to have streets that are named differently on each side of the road because the different sides belong to different villages?
The other side of the challenge is to understand what the user is looking for based on the small amount of information typed into the search box. Is this a city name? A street name in the area of the map the user is currently looking at? Is this number a part of the post code or a house number? And is "St" short for "street" or for "saint"?
What brought you to the Sovereign Tech Fellowship?
I have done open source development and maintainership in my spare time for many years. The problem with this mode of operation was that it was difficult to find the time to continuously work on larger improvements. So you mostly concentrate on the urgent issues and bug fixes.
Having the support of some companies who understand the value of open source, I became a freelancer in 2020 to be able to work full time on open source project. This worked well in so far as especially Nominatim has seen a lot of improvements in the last years. Still, despite the fact that Nominatim is used by many commercial players, finding companies to support the maintenance and care of the software remains difficult and time-consuming.
The Sovereign Tech Fellowship gives me the opportunity to set aside the time for classic maintainer tasks: responding to issues, fixing reported bugs, reviewing PRs, documentation, testing, making releases, as well as doing some simple gardening of the code. The Fellowship will only cover part of my time. The other part is set aside for developing new features. For this part I still count on the users of the software to support the project.
What makes open source collaboration special and what do you enjoy most about it?
Most of my experience in working with open communities comes from being part of the OpenStreetMap community. It is in the nature of the project that our contributors come from all over the world and have very different cultural backgrounds and interests. It is not possible to ignore these differences, after all we want to create a common shared map. Over the years we have come to an approach of live-and-let-live combined with intense discussions. It has worked fairly well so far. Sure, the long-drawn discussions can feel exhausting at times but the result is a map database that is globally usable while at the same time managing to capture the local special characteristics. Being part of this community has provided me with extensive practical training in community communication.
It is in the nature of the project that our contributors come from all over the world and have very different cultural backgrounds and interests. Over the years we have come to an approach of live-and-let-live combined with intense discussions.
Collaboration in an open-source software community tends to be much more straightforward by comparison. Participants usually all have a technical background, which provides a good basis for developing a common understanding. As I'm maintaining projects with relatively few regular contributors, I also have the liberty to make executive decisions on the direction of the projects. Still, it regularly happens that you have external contributors, who came with implementations of their own requirements, which might give the project a slightly different direction than planned. I think that part of being a good maintainer for an open source collaborative project is finding the right balance between letting contributors realise their ideas and keeping the project as a whole on track.
Being a good maintainer for an open source collaborative project is finding the right balance between letting contributors realise their ideas and keeping the project as a whole on track
One of the difficulties in running open source projects can be to get user feedback. Often maintainers have no idea who runs their software and what they use it for. This can make it difficult to set priorities. This certainly is an issue with osm2pgsql and pyosmium, which I maintain. The situation is different for Nominatim. As already mentioned, I'm also the system administrator for the heavily used installation on the OpenStreetMap main website. This means that I can put all new features directly to the test in a production environment with all the advantages and problems this entails. There is no better way to get feedback than from a community of mappers who have just entered the shop around the corner and now proudly search for their contribution. Being the sysadmin also provides a natural motivation to invest in high-quality and fast code.
What do you do when you’re not working on open source?
One of the disadvantages of OpenStreetMap is that it tends to spill over into the rest of your life. I do like to go on long hikes and I love to travel when I need a longer break. However, my choices of destination might frequently be guided by where the map still needs improvement. On the plus side, I have discovered beautiful places this way that I would never have chosen as a destination otherwise.
When I really need to get away from the screen, then there is a large balcony right next to my office on which I love to grow my own fruit and vegetables. Nothing like a freshly plucked strawberry as a reward after a long session of code reviews.
Connect with Sarah
We’re grateful to Sarah for being part of the first cohort of the Sovereign Tech Fellowship and for her continued contributions to the FOSS ecosystem. If you're interested in Sarah's work, you can check out the repositories listed below and read her very own announcement blog post.

CC BY-SA 2.0, aratamediasolutions

CC BY-SA 2.0, aratamediasolutions