Jobs in der Autoindustrie: Senior Software Developer Rust

Die junge Programmiersprache Rust hat Vorteile, die sie für den Automotive-Einsatz prädestinieren. Ein erfahrener Entwickler spricht über seinen Job bei Cariad.

In Pocket speichern vorlesen Druckansicht 3 Kommentare lesen
Sebastian Rietzscher

(Bild: Cariad)

Lesezeit: 8 Min.
Von
  • Clemens Gleich

Die Autoindustrie und auch ihre Zulieferer befinden sich mitten in einem disruptiven Wandel. Allein schon der Wechsel vom Verbrennungs- auf den Elektromotor wird eine der Schlüsselindustrien fundamental verändern, auch und gerade in der Arbeitswelt. Zahlreiche Jobs werden entfallen, gleichzeitig neue entstehen und viele sich verändern. In einem Themenschwerpunkt wollen wir Arbeitsplätze in der Autoindustrie und ihren Zulieferern beleuchten, die es vor ein paar Jahren in dieser Form noch nicht gab, aber in den nächsten zehn Jahren an Bedeutung zunehmen werden. Firmen werden sich, noch stärker als aktuell schon, auf die Suche nach entsprechend ausgebildeten Mitarbeitern machen. Ihre Chancen auf dem Arbeitsmarkt dürften exzellent sein.

Volkswagen hat die Software-Entwicklung in den letzten Jahren massiv aus- und umgebaut, die Verwaltung und Positionierung im Konzern geändert. Was ab 2019/2020 unter dem Label "Car.Software" begann, beschäftigt mittlerweile als "Cariad" rund 6500 Menschen in der Entwicklung, Integration, der Middleware und der Cloud-Infrastruktur. Cariad führt die Software-Anforderungen der gesamten Volkswagen-Gruppe zusammen. Dort zu arbeiten, funktioniert also schon allein aufgrund der Größe von Cariad anders als in kleineren Firmen. Wir sprechen mit Sebastian Rietzscher, der bei Cariad Teil eines Teams ist, das sich mit Steuergeräte- und Plattform-Software-Entwicklung beschäftigt. Die Besonderheit: Sein Team programmiert in Rust.

In einem einfachen Satz, als würde man es der Oma sagen: Was ist der Kern des Jobs?

Also, meine Oma hat mir als Kind einen Legotechnik-Kasten geschenkt, deshalb würde ich es ihr so erklären: Wir haben hier diesen großen Legokasten voller Software-Bausteine. Jemand muss das verstehen, muss erklären, wie man das zusammensteckt. Jemand muss neue Bausteine entwerfen und bauen, damit der Legokasten auch in Zukunft genutzt werden kann. Es müssen aber Verbindungen zu anderen Dingen als Lego erstellt werden. Und das sind wir. Ich mache das ja nicht allein, sondern das ist eine Team-Aufgabe.

Was sind die typischen Aufgaben darin?

Beim Senior Software Developer kommen außer Software schreiben noch andere Aufgaben hinzu:

  • größere Probleme in kleinere zerlegen
  • besprechen, wie man Arbeit aufteilt
  • Coaching/Mentoring
  • Reviews durchführen
  • Dokumentation erstellen
  • Zeitplanung mit dem Product Owner durchgehen
  • Technische Leitung und Projektleitung

Das trifft natürlich nicht generell zu, sondern das ist das Beispiel meines konkreten Falls. Wir entwickeln nach den agilen Methoden des SAFE-Frameworks. Aufgrund unserer Größe sind wir als etwas organisiert, das ich wohl am ehesten als Scrum-Team bezeichnen würde.

Worin besteht die Besonderheit des Jobs?

Die größte Besonderheit liegt wahrscheinlich darin, dass wir Rust verwenden. Rust ist eine noch relativ junge Programmiersprache. Version 1.0 erschien 2015. Vergleichen Sie das mit den über 50 Jahren, die C schon auf dem Buckel hat! Die erste Version hat Mozilla entwickelt. Das Mozilla-Projekt kämpfte zu dieser Zeit mit zwei immer wieder auftretenden Fehlerklassen: Speicherfehler und Race Conditions aus dem Multithreading. Sie wollten einerseits diese Probleme grundsätzlich angehen, andererseits wollten sie ohne einen Garbage Collector auskommen, weil der ihnen zu viel Performance kostete. Sie wollten die Schnelligkeit von C, aber mehr Sicherheit. Ihre Lösung war Rust. Und wir waren der Ansicht, dass die mittlerweile von der Rust Foundation gepflegte Sprache sich damit hervorragend eignet für die Software-Entwicklung im Automotive-Bereich.

Arbeitsplätze in der Autoindustrie auf heise Jobs

Rust ist bisher noch selten in der Autoindustrie, obwohl große Player wie Amazon oder Microsoft es nutzen und die Rust Foundation unterstützen. In der Autoindustrie gibt es viel C++, das für seine Speicherfehlermöglichkeiten berüchtigt ist. Rust sorgt dafür, dass Fehler sehr früh bemerkt werden, nämlich schon beim Kompilieren, oder gar nicht erst gemacht werden können. Der Compiler erlaubt viele lange gewohnte Dinge schlicht nicht, wenn sie zu Fehlern zur Laufzeit führen können. Das bereitet Umsteigern am Anfang unheimliche Kopfschmerzen. Newbies arbeiten zunächst gegen den Compiler, was zum kompletten Stillstand führt. Erst mit der Zeit lernen die Leute, mit dem Compiler zu arbeiten, ihn als Hilfe zu begreifen. Irgendwann wird der Compiler dein Pair Programmer, der dir hilft, sicheren Code zu schreiben. Doch zwischen diesen Punkten liegt eine steile Lernkurve. Kaum jemand lernt in unter 6 Monaten, produktiv Code in Rust zu schreiben. Danach liefert Rust schneller fehlerfreie Software als C, aber bis man dahin kommt, ist es ein steiniger Weg.

Wenn man den jedoch gegangen ist, erntet man den Lohn. Ich habe in fünf Jahren der Rust-Entwicklung noch nie erlebt, dass ein aus Rust kompiliertes Binary Speicherfehler produziert. Die Fehler, die dann noch existieren, sind also alles Logikfehler – zum Beispiel, wenn ich von falschen Annahmen ausging. Daraus entsteht ein unheimlicher Frieden. Ich kann mich voll auf die Programmlogik konzentrieren, und das Ergebnis läuft – egal ob asynchron, in Threads, es ist sicher. Dokumentation kann ohne zusätzliche Tools direkt aus Code generiert werden, und das sind nur einige Besonderheiten der Sprache. Rust liefert dazu noch ein volles Build Environment, Abhängigkeitsmanagement, Code Linting und vieles mehr.

Spannende Jobs in der Autoindustrie

Was bedeutet die Stelle im Konzern?

Cariad ist der erste Ansprechpartner im Volkswagen-Konzern, wenn es um Software geht, auch wenn wir natürlich auch Software zukaufen. Wir sind der zentrale Integrator von Software über alle Marken. Unser Team arbeitet dabei in der Vorentwicklung von Plattform- und Steuergeräte-Software, der Connected Platform und der Integration bestehender Software. Wir bedienen also sowohl die Fahrzeugwelt als auch die Backend-Infrastruktur.

Wie sind Sie in diesen Job gekommen?

2016 wechselte ich zu Audi. Ich hatte vorher schon Automotive-Software entwickelt, von Benutzerschnittstellen bis zu Bremsensteuerungen und wollte den nächsten Schritt gehen. Audi suchte damals jemanden wie mich, vor allem mit Android-Erfahrung. 2019 dann wanderte meine Stelle von Audi zur Car.Software Org (CSO), die heute Cariad heißt.

Welche Ausbildung(en) brauchen Leute, die sich für den Job interessieren?

Junior-Entwickler brauchen zunächst die typischen Uni-Abschlüsse in Informatik, würde ich als jemand aus der "Generation Diplom" sagen. Senior-Entwickler wird man davon ausgehend durch Erfahrung. Man sollte viele Fehler schon gemacht haben. Es hilft zudem, wenn man Probleme in kleinere Einheiten zerlegen kann. Wenn man Mentoring machen möchte, kommen meistens noch passende Trainings dazu. Zum "Senior" gehört zudem, Fehlerfreiräume geben zu können. Die Fehler sollen ja zur Entwicklungszeit passieren und auch hier möglichst früh. Ein Auslegungsfehler in der Bemusterungsphase ist billig, daraus kann man lernen. Ein Auslegungsfehler, der ausgeliefert wird, ist dagegen sehr teuer.

Let's get physical: Das Automobil ist ein Produkt, bei dem man eine gesunde Liebe mitbringen und damit auch schon mal auf Tuchfühlung mit der Hardware gehen muss als Software-Entwickler.

(Bild: Volkswagen)

Welche Interessen sollte man haben, um den Job motiviert machen zu können?

Eine gesunde Liebe zum Automobil halte ich für unumstößlich wichtig. Wer mit Autos nichts anfangen kann, wird hier wahrscheinlich nicht glücklich. Das muss einem schon gefallen. Beim Auto muss man oft ans Produkt hin, ins Kabelgewirr reingreifen und auch mal ein paar Stecker ziehen. Das ist also weniger was für Leute, die lieber abstrakte Cloud-Software schreiben. Leute mit Basteltrieb passen oft gut hinein.

Obendrein sollte man vielleicht nicht superintrovertiert sein, weil man mit so vielen Menschen sprechen muss, interagieren. Das Auto ist ein sehr komplexes, vernetztes Produkt. Es gibt wenig Code, der mit geringen Absprachen allein heruntergeschrieben werden kann, im Gegenteil sind Absprachen an manchen Tagen die Hauptarbeit. Das ist also nichts für Leute, die nur im Terminal leben wollen. Wir lösen unsere Aufgaben in Strukturen von Teams. Soziale Fähigkeiten sind hier sehr wichtig.

Vervollständigen Sie den Satz für Interessierte an diesem Job: "Um hier einen Platz zu finden, brauchst du ..."

... einen Hang zum Spielen, Produktliebe zum Auto, Kommunikationsfähigkeiten und Durchhaltevermögen. Wir sind ein riesiger Konzern. Manchmal dauern Dinge etwas länger, und man muss an seinen Zielen und Überzeugungen über diese Zeit festhalten.

(cgl)