Verstärken Sie unsere Softwareentwicklung
Wir suchen eine hoch spezialisierte Person, die unser Team ergänzt. Und uns hilft, die Republik und ihre Software zu optimieren, zu verbessern und zum Glänzen zu bringen.
Von Anna Traussnig, Patrick Recher, Patrick Venetz und Thomas Preusse, 29.04.2020, Update: 04.05.2020
Journalismus, der Ihnen hilft, Entscheidungen zu treffen. Und der das Gemeinsame stärkt: die Freiheit, den Rechtsstaat, die Demokratie. Lernen Sie uns jetzt 21 Tage lang kostenlos und unverbindlich kennen:
Die Republik ist ein digitales Magazin. Sie aufzubauen, heisst auch: sie zu programmieren. Stück für Stück haben wir ein System entwickelt, um die Republik zu etablieren, zu finanzieren und täglich zu publizieren. Wir haben ein grosses Crowdfunding lanciert, Konzepte erstellt und Codes geschrieben, alles Open Source. Soeben haben wir die grösste Kampagne seit dem Start der Publikation erfolgreich absolviert. Und lernen dabei immer dazu.
Heute sind insgesamt 40 Personen bei der Republik angestellt, die sich 30,4 Vollzeitstellen teilen. Das IT-Team besteht zurzeit aus 4 Mitarbeitenden und ist damit unterbesetzt. Eine Person hat soeben auf Anfang Juni zugesagt – eine zweite suchen wir noch. Mehr dazu später.
Wie die Republik gebaut ist
Von Anfang an war klar, dass wir grösstmögliche Kontrolle über die Software wollten. Das heisst, wir wollten weder fixfertige Lösungen einkaufen noch uns von einem Dienstleister vollständig abhängig machen. Deshalb haben wir auf Open-Source-Software gesetzt, frei verfügbare Bausteine ausgewählt und damit eine einzigartige Republik gebaut.
Ich will es genau wissen: Unsere wichtigsten Bausteine
JavaScript, die Programmiersprache des Webbrowsers und seit 2009 auch gut einsetzbar für Webserver mit node.js. Dass wir vor allem auf eine Programmiersprache setzen, gestaltet die Zusammenarbeit im Team besonders einfach.
React, ein Grundgerüst für User-Interface-Komponenten. Die von Facebook entwickelte Softwarebibliothek ist seit 2013 Open Source und ermöglicht es uns, schnell moderne Benutzeroberflächen zu implementieren.
Next.js, das React-Framework für Webseiten. Es löst komplexe Probleme wie Server-Side Rendering, Routing und Code Splitting auf erfreulich einfache Art.
GraphQL, eine moderne Abfragesprache, welche eine effiziente und einfache Kommunikation zwischen Front-End und Back-End ermöglicht.
Apollo, eine Sammlung von Softwarebibliotheken, welche GraphQL in JavaScript fürs Back-End und fürs Front-End implementieren.
PostgreSQL, das Herzstück, in dem die meisten Daten abgespeichert werden. Die Software wird seit 1996 stetig weiterentwickelt und ist schlicht und einfach die coolste SQL-Datenbank. Wir nutzen sie ganz klassisch mit Transactions und Referential Integrity sowie MongoDB-Style mit JSON-Feldern.
ElasticSearch, darin indexieren wir alle Dokumente und Daten, um diese auf Anfrage schnell zu finden und auszuliefern.
Git, die Versionsverwaltungs-Software, mit der wir unseren Code sowie alle Republik-Beiträge verwalten. Sie erlaubt es uns, alle Arbeitsschritte sauber zu speichern und nachzuvollziehen
Slate, ein React-Framework, um Web-Editoren zu bauen.
Das Kernprinzip: Alles, was wir verwenden, muss Open Source sein. Damit bewahren wir unsere Gestaltungsfreiheit und Unabhängigkeit. Manche Open-Source-Projekte unterstützen wir auch, finanziell zum Beispiel React-pdf – damit generieren wir die PDFs der Beiträge.
Gleichzeitig sind wir pragmatisch: Für die Versionsverwaltungs-Software Git nutzen wir das proprietäre GitHub, welches die Infrastruktur skalierbar und kostengünstig betreibt. Unser grosses E-Mail-Volumen bewältigen wir mit MailChimp und Mandrill. Und für eine eigene Bank hatten wir auch noch keine Zeit – die Zahlungen werden von Stripe, Postfinance und PayPal verarbeitet.
Die Back-Ends
Hinweis für Laien: Ein Back-End ist ein Server, der im Hintergrund agiert. In unserem Fall ist er zuständig für die sichere und effiziente Verarbeitung von Daten.
Unser Monorepo orbiting/backends besteht aus rund 63’000 Zeilen Code und wird in drei Varianten betrieben: Republik-Back-End, Publikator-Back-End und Assets-Back-End. Kernkompetenzen: alles für republik.ch, Dokumentenverarbeitung und Bildverarbeitung.
Mitten in der Nacht – wenn fast nichts läuft – bedeutet das für das Republik-Back-End 5 Anfragen pro Sekunde. Der Höhepunkt beträgt an einem regulären Tag 20 bis 50 Anfragen pro Sekunde. Geht wirklich die Post ab, haben wir schon Spitzen von 500 bis 800 Anfragen pro Sekunde gemessen.
Viel essenzieller als die absoluten Anfragespitzen ist jedoch die Verarbeitung der Kundendaten und Zahlungen. Bereits 2017 hat das Back-End 3,7 Millionen Franken verarbeitet, vergangenes Jahr waren es 4,7 Millionen, und langfristig sollen es mindestens 5,9 Millionen pro Jahr werden, um die Republik selbsttragend zu finanzieren.
Die Front-Ends
Hinweis für Laien: Ein Front-End ist zuständig für das, was Sie am Bildschirm sehen. Aus den Daten von einem Back-End baut es eine bedienbare Oberfläche.
«Ein Interface, das so vollkommen unauffällig funktionieren soll wie in einem englischen Schloss der Butler», so beschrieb Constantin Seibt 2017 seinen Anspruch an das Front-End.
Unser grösstes Front-End ist orbiting/republik-frontend mit rund 66’000 Zeilen Code. Dazu kommen publikator-frontend mit 23’000 und republik-admin-frontend mit 10’000 Zeilen Code. Kernkompetenzen: alles für republik.ch, Dokumenteneditor und Kundenverwaltung.
Alle drei halten sich an unseren Living Style Guide orbiting/styleguide. Seit März 2017 entwickeln wir einen eigenen Styleguide mit 31’000 Zeilen Code und implementieren alle essenziellen Elemente unserer Webseiten als React-Komponenten. Vom einfachen Eingabefeld bis zur Visualisierung von Europa als Choroplethenkarte. Aktuelle Version: 9.15.0 – die 461. Version.
Unser Prozess
Vor dem Start der Republik im Januar 2018 hat sich die gesamte Belegschaft – damals 10 Personen – jeweils am Dienstag in einem Raum versammelt und alles ausdiskutiert, bis Konsens herrschte.
Heute, mit einer wesentlich grösseren Belegschaft, fahren wir mehrspurig:
der Initiativen-Prozess, wenn gerade keine grosse Kampagne läuft: Hier kann die gesamte Belegschaft quartalsweise Initiativen einreichen. Beispiel: «Wir sollten die Suchfunktion verbessern.» Die Initiativen werden anschliessend eingeschätzt und in einem repräsentativen Gremium besprochen und priorisiert.
Öffentliche Konsultation: Wir bitten unsere gesamte Verlegerschaft um Vorschläge und ihre Einschätzung, was am wichtigsten ist und was wir als Nächstes bauen sollten.
Teilnahme am Redaktionsprozess: Auch die Mitglieder des IT-Teams verfassen redaktionelle Beiträge. Wir bringen unsere Kompetenzen und Fähigkeiten ein und tragen zum Inhalt des Magazins aktiv bei. Gleichzeitig schärfen wir damit unser Verständnis für das Produkt und für den Journalismus.
Dazu kommt eine ausgiebigere wöchentliche Sitzung des Software-Teams. Technisch steht der Pull Request im Zentrum, dazu kommen GitHub Issues und die Pflege eines Trello Boards. Unsere Prozesse sind kein Selbstzweck – wir versuchen sie stetig zu verbessern sowie neuen Gegebenheiten und Möglichkeiten anzupassen.
Wo der Schuh drückt
Im Moment ist das IT-Team mit 4 Personen unterbesetzt – wir möchten um 2 Personen wachsen. Einmal im Front-End und einmal im Back-End. Für das Front-End haben wir bereits jemanden gefunden. Wir freuen uns, diesen Neuzugang bald kommunizieren zu können.
Jetzt suchen wir vor allem noch eine Person für das Back-End. Das folgende Profil soll aber fliessend verstanden werden. Wichtig sind ein Interesse an und Erfahrung mit der bereits eingesetzten Technologie und natürlich die Motivation für die Republik.
Im Back-End beim Mitgliedschaftsmodell
Das heutige Modell läuft, aber wir haben inzwischen viel dazugelernt und wollen noch besser und flexibler werden. Die heutigen Abstraktionen stammen grösstenteils aus dem Crowdfunding von 2017 und benötigen inzwischen eine Revision. Zum Beispiel für Up- und Downgrades oder auch potenzielle Services-Features wie Abo-Pausierungen. Ausserdem stehen Erweiterungen im Zahlungsmodell an – zum Beispiel ein weiterer Zahlungsanbieter für Monatsabos.
Idealprofil: Feuer und Flamme für die kniffligen Details eines Mitgliedschaftsmodells, für den Journalismus und die Republik. Erfahrung mit node.js und PostgreSQL. Ein Herz für den Einzelfall und für die Privatsphäre unserer Verlegerinnen und Besucher. Und gute kommunikative Fähigkeiten, um mit dem Community-Support und der Finanzabteilung die richtigen Lösungen zu erarbeiten.
Was wir bieten
Sinnstiftende Arbeit: Aufklärung, Kritik der Macht und Verantwortung für die Öffentlichkeit,
Einheitslohn auf hohem Niveau,
Teilzeit möglich,
flexible Arbeitszeiten und Homeoffice-Möglichkeit,
ein zentrales Büro an der Langstrasse in Zürich.
Haben wir Ihr Interesse geweckt?
Schreiben Sie uns eine E-Mail an bewerbung@republik.ch, oder schicken Sie uns einen Pull Request und beweisen Sie uns Ihre Motivation und Ihre Fähigkeiten.