Siemens
QuEra Computing, Inc.
Scientific Software Engineer – Machine Programming
Zusammenfassung
In dieser Rolle unterstützen Sie die Wissenschaftler, die die Neutral-Atom-Quantencomputer von QuEra entwickeln und betreiben, bei der effektiven Programmierung dieser Maschinen. Sie pflegen die domänenspezifische Sprache und den Compiler-Stack, die auf der Open-Source-Toolchain Kirin basieren und die experimentelle Physiker täglich für die Durchführung ihrer Experimente nutzen.
Sie arbeiten eng mit Physikern und Ingenieuren des Control-Stacks zusammen. Sie unterstützen die Maschinenteams dabei, neue Experimente in funktionierende Programme umzusetzen, halten die Toolchain bei der Weiterentwicklung unserer Hardware zuverlässig und treiben deren Integration in unser Steuerungssystem voran. Diese Position ist ideal für Ingenieure, die Freude daran haben, Werkzeuge zu entwickeln und gleichzeitig anderen dabei zu helfen, diese erfolgreich einzusetzen.
QuEra setzt sich für die Förderung eines vielfältigen Arbeitsumfelds ein und ist stolz darauf, ein Arbeitgeber zu sein, der Chancengleichheit bietet. Wir schätzen Vielfalt bei unseren aktuellen und zukünftigen Mitarbeitern sehr und diskriminieren nicht (auch nicht bei unseren Einstellungs- und Beförderungspraktiken) aufgrund von Rasse, Religion, Hautfarbe, nationaler Herkunft, Geschlecht, Geschlechtsausdruck, sexueller Orientierung, Alter, Familienstand, Veteranenstatus, Behinderung oder anderen gesetzlich geschützten Merkmalen.
Aufgaben
- Pflege der domänenspezifischen Sprache und ihres Kompilierungs-Stacks: Triage von Problemen, Fehlerbehebung, Überprüfung von Pull Requests, Verwaltung von Releases sowie Sicherstellung der Integrität von CI, Tests und Abhängigkeiten.
- Ansprechpartner für Maschinen- und Testbed-Teams bei der Programmierung ihrer Experimente. Unterstützung beim Aufbau neuer Experimente, Portierung von Legacy-Programmen sowie Diagnose von Problemen bei der Kompilierung oder Laufzeit.
- Zusammenarbeit mit Control-Stack-Ingenieuren bei der Integration kompilierter Programme in unser Steuerungssystem. Dies umfasst die Definition und Weiterentwicklung der Programmrepräsentation zwischen Compiler und Steuerungssystem, die Synchronisation beider Komponenten über Releases hinweg sowie das Debugging systemübergreifender Probleme.
- Umwandlung von Benutzerproblemen in minimal reproduzierbare Berichte, Regressionstests und gezielte Fehlerbehebungen sowie Zusammenarbeit mit dem Compiler-Team bei größeren Sprach- oder IR-Änderungen.
- Identifizierung und Behebung von Performance-Problemen bei der Programmkompilierung und -ausführung, wie z. B. Kompilierzeit, Programmgröße und zeitliche Korrektheit.
- Erstellung und Pflege von benutzerorientierter Dokumentation, Tutorials, Beispielprogrammen und Agent-Skills, um Physikern das Schreiben korrekter Programme zu erleichtern.
- Zusammenarbeit mit dem Hardware-Steuerungsteam zur Unterstützung neuer Kanaltypen, Steuerungs-Hardware und Maschinenkonfigurationen.
- Einholen von Feedback von Maschinennutzern und dessen Umsetzung in eine priorisierte Roadmap für Usability-Verbesserungen.
Qualifikationen
- Bachelor- oder Masterabschluss in Informatik, Physik, Elektrotechnik oder einem verwandten Bereich oder eine gleichwertige berufliche Erfahrung.
- Fundierte Python-Kenntnisse, einschließlich Type Hints, Packaging und Testing (pytest).
- Freude an der Entwicklung von Werkzeugen für Wissenschaftler, die keine professionellen Softwareentwickler sind, sowie an der engen Zusammenarbeit mit diesen. Klare schriftliche und mündliche Kommunikationsfähigkeit.
- Erfahrung in der teamübergreifenden Zusammenarbeit: Abstimmung von Schnittstellen, Koordination von Änderungen zwischen Komponenten und Debugging von Problemen, die mehrere Systeme betreffen.
- Erfahrung im Debugging von fremdem Code und in der Reduzierung komplexer Fehler auf minimale Reproduktionen.
- Vertrautheit mit dem gesamten Software-Lebenszyklus: Versionskontrolle, Code-Reviews, Testing, CI/CD, Logging, Profiling, Debugging und Dokumentation.
Bevorzugte Qualifikationen
- Erfahrung mit Compilern, domänenspezifischen Sprachen oder SSA-basierten Intermediate Representations (Erfahrung mit Kirin, MLIR oder LLVM ist ein Plus).
- Hintergrund in experimenteller Physik, insbesondere AMO oder Laborsteuerung in der Atomphysik (AWGs, AOMs/AODs, DDS, Timing-Systeme, Kameras).
- Erfahrung mit Echtzeit- oder eingebetteten Steuerungssystemen, FPGAs oder Frameworks zur Experimentsteuerung wie ARTIQ oder Labscript.
- Erfahrung mit Echtzeit-Scheduling oder Ausführungssystemen, wie z. B. Runtime-Schedulern, Streaming- oder Instruction-Dispatch-Systemen.
- Erfahrung mit C++ oder Rust.
- Beiträge zu Open-Source-Bibliotheken.
- Erfahrung in der Nutzung von KI-Coding-Agenten in einem Entwicklungsworkflow.
Die ungefähre Basisgehaltsspanne für diese Position liegt bei $102,400 - $166,400.
Wir beobachten kontinuierlich externe Marktdaten und aktualisieren die Basisgehaltsspannen entsprechend. Entscheidungen zur Grundvergütung basieren auf verschiedenen Faktoren, darunter geografischer Standort, rollenspezifisches Wissen, Fähigkeiten und/oder Erfahrung. Zusätzlich zu unserem Basisgehalt bieten wir allen neuen Mitarbeitern Aktienoptionen (Equity Grants) an.
#LI-NB1
