← Back to blog

Sorry, This Repo Only Speaks German

Germany is short more than a hundred thousand IT people, our cities are full of developers who work in English all day, and our public sector code politely locks them all out. The official language argument is real, and it's also being applied to the wrong layer.

Thinking out loud
Sorry, This Repo Only Speaks German

Last week I spent an evening clicking through repositories on openCode, Germany's public GitLab instance, the one at gitlab.opencode.de where our government's open source lives. I was there for something specific, ended up browsing the way you do, and somewhere around the fifth German-only README I stopped reading code and started counting.

READMEs in German. Contribution guides in German. Issue templates in German. Architecture decisions, in German. This on a platform whose whole promise is open collaboration on public code.

Now here's the thing I need to say early, because I can already hear the reply being typed: yes, German is the official language of German administration. I'm not disputing that, I'm German, I've filled in the forms. My argument is smaller and, I think, harder to dismiss. We're applying that rule to the wrong layer of the stack.

The people we're locking out are the people we say we need

Bitkom counts around 109,000 unfilled IT jobs in Germany, with the average position open for 7.7 months. At the peak it was 149,000, a record. Every strategy paper about fixing this says the same two things: train more people at home, and bring in talent from abroad.

Then the talent arrives, lands in Berlin or Munich or Cologne, and joins a company where the working language is English. This isn't hypothetical for me. I spent years at DeepL, a Cologne company whose entire product exists because people don't share a language, and our engineering floor ran in English. German engineers included. Half the best developers I've worked with in Germany could order a Schnitzel and file a tax return with help, and that was the extent of their German. They shipped production software used by millions.

Those people can't contribute a one-line fix to their own government's software, because the contribution guide alone requires C1-level reading comprehension.

(And before someone says "they should learn German": many of them are. It takes years. The backlog doesn't wait years.)

The absurd part: the code is already international

Here's what makes the German-only reflex genuinely funny rather than just annoying. openDesk, the flagship sovereign workplace suite, isn't even a purely German artifact. It's assembled from components built by vendors across Europe, Nextcloud, XWiki, Univention, Open-Xchange and friends, presented at FOSDEM, in English, by a French engineer. The upstream projects it's built on run their issue trackers in English. Every patch that flows upstream flows in English.

So the actual pipeline looks like this: international engineers write components in English, a German integration layer wraps them, and the documentation door slams shut in German. We're not protecting anything with that last step. We're just making the sovereign stack harder to help.

It doesn't have to be this way, and parts of our own government already know it. The Sovereign Tech Agency, federally funded, publishes in English as a matter of course, because it wants the global open source ecosystem to actually engage. Same government. Same sovereignty goals. Different layer, different language, and it works.

The legal argument doesn't say what people think it says

The line everyone quotes is from paragraph 23 of the Verwaltungsverfahrensgesetz: die Amtssprache ist deutsch. The official language is German.

Read the paragraph, though. It governs Verwaltungsverfahren, administrative procedures. Citizen applications, notices, contracts, the formal machinery of the state acting on people. It does not say a merge request is an administrative procedure. A README is not a Bescheid. Nobody's rights are affected by an English CONTRIBUTING.md.

I used to accept the blanket version of this argument myself, honestly. Official language means official everything, seemed clean. Then I actually read the law for a talk I gave and felt a bit stupid, because the clean version is simply not what's written there. What's written there is narrower, and the narrower version is completely compatible with English developer docs.

A language policy you could adopt in an afternoon

None of this requires a constitutional debate. It requires one page in a wiki:

Layer Language
Developer docs, READMEs, architecture English first, German optional
Issues and merge requests English encouraged, German accepted
Community channels Bilingual, answer in the language asked
Government-specific guidance, procurement, legal context German
Upstream and international OSS collaboration English
Everything a citizen touches: forms, contracts, UIs, letters German. Obviously.

That last row matters and I want to underline it. Nobody sane is asking Frau Müller in Wuppertal to read English to renew her Personalausweis. Citizen-facing German isn't up for discussion, and pretending critics of German-only repos want English government forms is the strawman that keeps this debate stuck.

The stakes of not doing this are concrete. Every German-only repo is a repo that the international open source community will route around, and public code that nobody external reviews or extends quietly rots into internal code with a public license. We've seen what half-open looks like in this country, sovereignty announced in English and gated in German paperwork. The language of the repo is the same story one layer down.

I keep thinking about the version of Germany that gets this right. The one where a developer from Porto or Pune or Poznań, working in Berlin, fixes a bug in the software their own Bürgeramt runs on, on a Tuesday evening, because the issue was readable and the merge request template didn't require a dictionary.

We are one wiki page away from that version. Next merge request I file on openCode goes in in English. I'll report back on what happens.

Smoower logo Smoower

Know what your DevRel team should ship next

Smoower watches your repos, releases, and issues, plus what devs say about you on Reddit, Hacker News, and YouTube. Each teammate gets the next task worth doing and a draft worth shipping, with the source signal attached.

See a sample draft →