36 Punkte von GN⁺ 2025-11-10 | 2 Kommentare | Auf WhatsApp teilen
  • Compiler-Ingenieure entwerfen nicht direkt Programmiersprachen, sondern arbeiten in einem Bereich des Software-Engineerings, der bestehende Sprachen schneller und effizienter ausführt
  • Für diese Rolle gibt es nur einen winzigen Teil aller Software-Engineering-Jobs; die Einstiegshürde ist hoch und die Nachfrage begrenzt
  • Einstellende Unternehmen reichen von Startups, großen Tech-Konzernen, der Wissenschaft, dem Finanzsektor bis zu Open-Source-Projekten, doch die meisten Stellen sind auf Berufserfahrene ausgerichtet
  • In Interviews werden vor allem algorithmische Implementierung auf Basis von C++, Sprachdesign, Compiler-Optimierung und Low-Level-Systemwissen bewertet
  • Die Vorbereitung mit MIT-Vorlesungen und Open-Source-Lernmaterialien sowie konsequentes Networking und Referrals sind der Schlüssel zum Berufseinstieg

Was ist ein Compiler-Ingenieur?

  • Ein Compiler ist ein Software-Werkzeug, das in einer Programmiersprache geschriebenen Code in eine andere Sprache übersetzt
    • Compiler-Ingenieure sind für die Implementierung und Optimierung solcher Sprachen zuständig
    • Statt neue Sprachen zu entwerfen, verbessern sie vor allem die Ausführungseffizienz bestehender Sprachen
  • Die Autorin arbeitet in einem großen Tech-Unternehmen in der San-Francisco-Bay-Area an der Leistungssteigerung von Programmiersprachen

Warum dieser Artikel entstanden ist

  • Da es online fast keine Informationen zum Berufseinstieg im Compiler-Bereich gibt, wurde dieser Text geschrieben, um einen praktischen Leitfaden für Einsteiger und Absolventen bereitzustellen
  • Zu Machine Learning oder Full-Stack gibt es viel Material, aber zu Compilern gibt es nur wenig Content
  • Die Autorin teilt ihre Erfahrung, nach etwa einem Jahr voller Versuch und Irrtum erfolgreich einen Job gefunden zu haben

Kurzer Überblick über den persönlichen Werdegang

  • 2023 Abschluss am MIT mit einem Doppelstudium in Mathematik und Informatik
  • Nach dem Abbruch eines forschungsorientierten Masterstudiums arbeitete sie 2024 in einem Startup in New York an einer Open-Source-Spracherweiterung
  • Danach wechselte sie zu einem börsennotierten Tech-Unternehmen in San Francisco

Wo Compiler-Ingenieure eingestellt werden

  • Laut Indeed gibt es etwa 116.000 Stellen für „software engineer“, aber nur rund 400 für „compiler engineer“
  • Startups: höhere Chance auf Einstellungen von Berufseinsteigern; auch die Autorin begann ihre erste Stelle in einem Startup
  • Große Tech-Unternehmen: vor allem Hardware- und Automobilunternehmen wie Tesla, Waymo und Nvidia
    • Bei FAANG-Unternehmen gibt es Fälle, in denen der Einstieg über die Übernahme nach einem Praktikum erfolgte
  • Wissenschaft: begrenzte Chancen durch rückläufige Forschungsfinanzierung
  • Quant-Finanzfirmen: Unternehmen wie Jane Street und Five Rings verlangen Fähigkeiten im High-Performance-Computing
  • Open-Source-Projekte: Einige Startups stellen auch in diesem Bereich ein

Strategie für Lebenslauf und Networking

  • Referrals sind der effektivste Weg
    • Über Bekannte oder Bekannte von Bekannten um Empfehlungen bitten
    • Im SNS-Profil wurde das Interesse mit „Rona likes compilers“ sichtbar gemacht, um Networking-Chancen zu schaffen; tatsächlich führte das bis zu Interviews
  • Der persönliche Hintergrund (US-Staatsbürgerschaft, MIT-Abschluss usw.) wirkte sich vorteilhaft aus

Arten von Interviews

  • LeetCode-ähnliche Algorithmen: Whiteboarding zu Datenstrukturen wie BFS oder Priority Queue, meist in C++
  • Sprachdesign: Schreiben einer Grammatik für eine einfache Sprache unter bestimmten Randbedingungen
  • Fragen zu Programmiersprachen: Lieblingssprache und die Gründe dafür
  • Intermediate Representation (IR): Interpretation und Transformation von x86-Assembly, einschließlich MLIR-basierter Aufgaben
  • Optimierungspässe: In MLIR-Aufgaben wurde ein Optimierungspass zur algebraischen Vereinfachung geschrieben, außerdem Pässe für Constant Propagation und Dead Code Elimination
  • Compiler-Grundlagen: Komponenten eines Compilers, Optimierungstechniken, Erklärung statischer vs. dynamischer Compiler
  • Graphentheorie: Fragen zu graphbasierten Darstellungen in Compilern wie Control-Flow-Graphen und Registerallokation (beeinflusst durch das Thema der Bachelorarbeit der Autorin)
  • Low-Level-Systemthemen: Deadlocks, Race Conditions, Spezialregister, Instruction Pipelines, Speicherallokation, binäre Darstellung und Operationen, Garbage Collection usw.
  • Verhaltensfragen: Motivationsfragen wie „Warum möchten Sie im Compiler-Bereich arbeiten?“

Vorbereitung auf Interviews

  • Gelernt wurde vor allem mit MIT-OCW-Vorlesungen
    • Computation Structures: Pipelines, Assembly, binäre Operationen und andere Low-Level-Konzepte
    • Computer Language Engineering: Erfahrung mit C++ und großen Codebasen
    • Performance Engineering: Fokus auf Performance-Optimierung, entscheidend für den Einstieg in die aktuelle Stelle
    • Theory of Computation: hilfreich zum Verständnis von Sprachgrammatiken
  • Zusätzlich wurde auch der autodidaktische Kurs Advanced Compilers von Cornell genutzt

Verbesserungsmöglichkeiten und Erkenntnisse

  • Fehlende Mentoren: Einsicht in die Notwendigkeit von Networking über LinkedIn
  • Fachbücher (Engineering a Compiler, Dragon Book) sind nützlich zur Wiederholung von Konzepten, haben aber Grenzen bei der konkreten Interviewvorbereitung
  • Keine Aufzeichnung von Interviewfragen: Es war ein Fehler, Fragen nach dem Interview nicht zu notieren und zu wiederholen
  • Zu wenig Open-Source-Beteiligung: Projekte wie Carbon und Mojo wurden geprüft, aber es gab keine tatsächlichen Beiträge. Open Source ist effektiv für Lernen und Networking

Warum Compiler gewählt wurden

  • Zunächst wurde ein Mathematik-Promotionsstudium erwogen, doch nach einem REU-Sommerforschungsprogramm entstand der Wunsch nach Arbeit mit unmittelbarerem Einfluss, weshalb zusätzlich Informatik studiert wurde
    • Die Ähnlichkeit zwischen theoretischem Denken und Low-Level-Programmierung war besonders faszinierend
  • Low-Level-Programmierung ist reizvoll, weil sie sich wie Mathematik anfühlt: eine ganze Welt aus Prinzipien heraus aufzubauen
  • Im Gegensatz zum empirischen Charakter des Machine Learning wird ein Ansatz bevorzugt, bei dem man aus Axiomen ein ganzes Universum aufbaut
  • Am MIT gab es in der Compiler-Community viele sympathische Menschen; außerdem braucht man im Vergleich zu anderen Bereichen wegen geringerer Bezahlung und weniger Ruhm eine leicht masochistische Ader

Technischer Arbeitsmarkt und Ratschläge

  • Freunde der Autorin aus Oregon (etwa von Oregon State und anderen nicht-elitären staatlichen Universitäten) erhielten trotz hunderter Bewerbungen nur etwa vier Interviews
  • Ressourcen maximal nutzen und sich differenzieren: an Open-Source-Communities teilnehmen, Social Media nutzen, Hochschulressourcen einsetzen (zur Not auch einen Club gründen, zu dem sonst niemand kommt)
  • Menschen direkt treffen: etwa an System-Lesegruppen teilnehmen (Erwähnung von Erics Systemgruppe in New York)
  • Auch der Start eines Compiler-YouTube-Kanals wird ernsthaft erwogen (trotz Unbehagen vor der Kamera)
  • Solche Aktivitäten garantieren nicht direkt einen Job, erhöhen aber die Wahrscheinlichkeit von Chancen

Fazit und persönliche Erfahrung

  • Vor dem Startup-Job im Jahr 2024 gab es keine Industrieerfahrung im Compiler-Bereich
  • Im Bewerbungsprozess 2025 wurde sogar auf niedrig bezahlte Positionen reagiert, doch die Chancen gingen an Bewerber im Promotionsstudium
  • Nach Dutzenden Interviews über 10 Monate gelang schließlich der erfolgreiche Berufseinstieg; aktuell liegt der Fokus auf Leistungsverbesserungen von Programmen im Millisekundenbereich
  • Die Autorin bittet darum, von Menschen aus dem Compiler-Bereich kontaktiert zu werden, und erwähnt einen neuen Anfang in der Region Palo Alto
  • Abschließend teilt sie die Nachricht über die Veröffentlichung ihres Romans „You Had Me at Hello World“

2 Kommentare

 
sacru2red 2025-11-11

Im Vergleich zu anderen Bereichen gibt es weniger Geld und Ruhm, daher braucht man wohl eine leicht masochistische Veranlagung

Meine Güte

 
GN⁺ 2025-11-10
Hacker-News-Kommentare
  • Wer sich für Compiler interessiert, dem würde ich empfehlen, mit Beiträgen zum Projekt ClangBuiltLinux oder im Issue-Tracker von LLVM anzufangen
    Man kann sich die Issue-Liste „Linux kernel with LLVM“ und
    die Liste mit „good first issues“ von LLVM ansehen

  • Das Thema des Artikels wirkte wie persönliche Eigenwerbung
    Wenn man aber wirklich Compiler Engineer werden will, ist es entscheidend, selbst einen Compiler zu bauen
    Es ist wichtig, grundlegende Konzepte wie Tokenizing, AST-Erzeugung, Typechecking und IR (Intermediate Representation) zu lernen
    Ich empfehle das LLVM-Tutorial.
    Man muss kein Genie auf MIT-Niveau sein; der Umfang eines einsemestrigen CS-Kurses reicht völlig für den Einstieg

    • Selbst unter Leuten, die sich auf Sprachimplementierung spezialisiert haben, bekommt man nur selten die Gelegenheit, tatsächlich selbst einen Compiler zu schreiben
      Entsprechende Jobs sind selten, daher wechseln viele in andere Bereiche wie AI
    • Ich persönlich halte Crenshaws Reihe „Let’s Build a Compiler“ für die beste Einführung
    • LLVM ist für Einsteiger zu komplex, daher ist es ein besserer Startpunkt, einen kleinen Lisp- oder OCaml-Compiler zu bauen
    • Ich finde Formulierungen wie „puff piece“ oder „attack vector“ überzogen. Es ist einfach nur eine persönliche Geschichte in einem persönlichen Blog
  • Es hat mich überrascht, dass selbst mit MIT-Hintergrund der Einstieg in Compiler Engineering nicht leicht ist
    Das Feld ist enger, als man denkt, und wirkt eher wie ein seniorenlastiger Markt als einer für Einsteiger
    Als die Dotcom-Blase 2001 platzte, war die Jobsuche schwierig, aber die aktuelle Lage scheint auf andere Weise ebenfalls hart zu sein

    • Wenn schon jemand mit MIT-Doppelstudium Mühe hat, einen Job zu finden, fühlt sich die wirtschaftliche Lage ernst an
    • In diesem Bereich gibt es viele Subnischen — Frontend-Sprachsemantik, Backend-Optimierung, AoT vs. JIT, CPU vs. Beschleuniger usw.
      Es gibt auch viele Bewerber, denen Wissen in Systemprogrammierung fehlt
    • Vor ein paar Jahren war es noch nicht so schwierig. Compiler sind letztlich auch nur normale Programme, und viele lernen im Job und wachsen daran
    • Die meisten Firmen nutzen Compiler, bauen aber keine eigenen. Deshalb ist der Markt an sich klein
  • Der Thread verlief in viele Richtungen, aber hier eine Zusammenstellung von Unternehmen, die Compiler Engineers einstellen
    Dazu gehören AMD, Nvidia, Intel, Apple, Google, Jane Street, Bloomberg, Qualcomm, Modular, AWS und ARM
    Weitere Informationen gibt es in der CompilerJobs-Liste
    In der Praxis gibt es deutlich mehr Bewerber als Stellen
    Beiträge zu Projekten wie LLVM, Rust, Swift oder Carbon sind der realistischste Einstiegspfad
    Referenzen: PL Resources,
    How to Learn Compilers (LLVM Edition),
    Compilers YouTube-Kanal

    • Ich musste lachen über die Bemerkung, dass viele immer wieder nur Beispiele wie den „lox interpreter“ nachbauen
    • Ich habe selbst einmal ein LLVM-Backend für DSPs geschrieben. In der LLVM-Commit-Historie findet man noch mehr Firmennamen
    • Im Compiler-Bereich gibt es eine qualitätsorientierte Kultur, daher eignet er sich auch gut zum Lernen und zur persönlichen Weiterentwicklung
    • Auch Microsoft betreibt verschiedene Compiler-Projekte wie MSVC, C#, F#, CLR und rustc
    • Ich frage mich, was genau mit „man stellt nur für eine bestimmte Sprache ein“ gemeint ist
  • Ich fand den Titel des von ihr erwähnten Buchs „You Had Me At Hello World“ total süß

    • Mir fiel auch sofort ein Parodietitel wie „et tu btrfs?“ ein
    • Soweit ich weiß, wurde das Buch zwar schon vor längerer Zeit unter Vertrag genommen, die Veröffentlichung verzögerte sich aber wegen Plagiatsvorwürfen
  • Ich war überrascht, als mitten im Artikel plötzlich „das ist mein Foto“ auftauchte

    • Im Vergleich zu anderen Beiträgen wirkte der Post stärker auf Selbstvermarktung ausgerichtet
  • In den 80ern wollte ich selbst Compiler Engineer werden, machte einen Master und veröffentlichte sogar eine Arbeit über LR-Parsing,
    aber schon damals gab es kaum Jobs. Ich hielt mich mit dem Studium des PCC- und GCC-Quellcodes über Wasser,
    wechselte später in die GUI-Entwicklung, und mit dem Aufkommen von Java/Swing gab es dort viel mehr Chancen

  • Interessanter fand ich, dass sie schon Anfang zwanzig einen Debütvertrag bei Simon & Schuster bekam

    • Später wurde der Vertrag aber wegen Plagiats wieder aufgehoben
  • Der Satz „Ich überlege, einen Compiler-YouTube-Kanal zu starten“ blieb mir im Kopf
    Selbst wenn man komplexe Inhalte nur in einem Blog aufarbeitet, wäre das schon wertvoll genug

    • Dass man so etwas nur macht, um einen Job zu bekommen, zeigt irgendwie die Realität des heutigen Arbeitsmarkts.
      Es ist fast so, als müsste ein Kfz-Mechaniker erst selbst ein Auto bauen und Videos vom Fahren drehen, um eingestellt zu werden
  • Ich bin dankbar, diesen Beitrag zufällig kurz vor einem Compiler-Interview gelesen zu haben
    Ich lerne gerade mit Crafting Interpreters(Link) und habe erst jetzt begriffen,
    dass Interpreter und Compiler nicht dasselbe sind
    Bis zum Interview bleibt nicht mehr viel Zeit, aber danach will ich das Interpreter Book in Go(Link)
    und die von Rona empfohlenen Materialien in Ruhe durcharbeiten

    • Mir persönlich hat Andrew Appels Buch(Modern Compiler Implementation)
      sehr geholfen, die Backend-Algorithmen zu verstehen. Das Dragon Book ist ebenfalls nützlich, aber den Parsing-Teil kann man überspringen
    • Ich frage mich, ob dieser Artikel nicht wiederverwertete Inhalte aus einem früheren Beitrag enthält