Senior Software Engineer, CUDA Core Libraries

Senior Software Engineer, CUDA Core Libraries

München Vollzeit 60000 - 80000 € / Jahr (geschätzt) Kein Homeoffice möglich
NVIDIA Corporation

Auf einen Blick

  • Aufgaben: Entwickle und implementiere CUDA Core Libraries in C++ und Python für GPU-Computing.
  • Unternehmen: NVIDIA, führend in beschleunigtem Computing und KI-Technologien.
  • Vorteile: Attraktives Gehalt, Gesundheitsleistungen, flexible Arbeitszeiten und Weiterbildungsmöglichkeiten.
  • Weitere Informationen: Dynamisches Umfeld mit hervorragenden Karrieremöglichkeiten.
  • Warum dieser Job: Gestalte die Zukunft des GPU-Computings und arbeite an innovativen Projekten.
  • Qualifikationen: Mindestens 8 Jahre Erfahrung in Softwareentwicklung mit starken C++ und Python Kenntnissen.

Das prognostizierte Gehalt liegt zwischen 60000 - 80000 € pro Jahr.

NVIDIA's accelerated computing platform is the foundation of modern HPC and AI. At the core of this platform sind die CUDA Core Libraries. C++ und Python-Bibliotheken, die es Entwicklern ermöglichen, schnelle, zuverlässige und skalierbare GPU-beschleunigte Software zu schreiben! Wir suchen einen Vollzeit-Softwareingenieur, der an den CUDA Core Libraries arbeitet, die das GPU-Computing für sowohl C++- als auch Python-Entwickler antreiben. Dazu gehören Projekte wie CCCL (Thrust, CUB, libcudacxx), cuda-python und numba-cuda. Sie werden Teil des Teams, das die grundlegenden Bibliotheken, Algorithmen und die Infrastruktur für Sprache/Laufzeit entwickelt, die CUDA zu einem blitzschnellen Erlebnis für Entwickler in den Bereichen Deep Learning, wissenschaftliches Rechnen und Datenanalyse macht!

Was Sie tun werden:

  • Entwicklung und Implementierung von CUDA Core Libraries in C++ und/oder Python, einschließlich paralleler Algorithmen und idiomatischer Sprachbindungen für die Kernfunktionalität von CUDA.
  • Komposition, Optimierung und Weiterentwicklung von GPU-Algorithmen und APIs, von hochrangigen Schnittstellen bis hin zur Feinabstimmung der Leistung, einschließlich Speicher, Parallelität und Synchronisation.
  • Verantwortung für Funktionen von Anfang bis Ende: Entwicklung, Implementierung, Testen, Benchmarking, Dokumentation und langfristige Wartung.
  • Verbesserung der Entwicklererfahrung über den gesamten Stack: CI, Tests, Benchmarks, Verpackung, Beispiele und Dokumentation.
  • Zusammenarbeit mit erfahrenen CUDA-Ingenieuren bei Design-Reviews, Code-Reviews und Open-Source-Workflows.
  • Interaktion mit echten Benutzern durch Probleme, Leistungsuntersuchungen und API-Feedback.

Was wir sehen müssen:

  • BS, MS oder PhD in Informatik, Computertechnik oder einem verwandten Bereich oder gleichwertige Erfahrung.
  • Mindestens 8+ Jahre relevante Entwicklungserfahrung.
  • Starke Programmierkenntnisse in C++, Python oder beiden, mit nachgewiesenem Interesse an systemnaher Software (Leistung, Speicher, Nebenläufigkeit, API-Design).
  • Solides Verständnis von modernem C++ (Templates, Generics, Standardbibliothek) und/oder Python-Bibliotheksentwicklung und -verpackung.
  • Praktische Erfahrung mit paralleler oder heterogener Programmierung (CUDA, OpenMP, GPU-beschleunigtes Python oder ähnliches).
  • Erfahrung in der Mitwirkung an Produktionssoftware oder Open-Source-Bibliotheken, einschließlich Testen, Profilieren und Code-Review.
  • Fähigkeit, unabhängig zu arbeiten, Probleme zu erfassen und Projekte zum Abschluss zu bringen.
  • Klare schriftliche Kommunikation für technisches Design und Dokumentation.
  • Komfort im Umgang mit großen, mehrsprachigen Codebasen (C++, Python, CMake, Pixi, CI-Systeme).

Wege, sich von der Masse abzuheben:

  • Starkes Verständnis der CPU/GPU-Architektur und wie Hardwaredetails die Leistung beeinflussen.
  • Praktische Erfahrung mit CUDA C++, CUDA Python, PyTorch, JAX, Numba, CuPy oder ähnlichen GPU-beschleunigten Stacks.
  • Vertrautheit mit Thrust, CUB, libcudacxx oder anderen modernen C++/GPU-Bibliotheken.
  • Erfahrung mit Compiler-Infrastruktur oder -Werkzeugen (LLVM, Clang-Tools, MLIR).
  • Nachgewiesenes Interesse an Entwicklerwerkzeugen, Bibliotheksdesign und der Verbesserung der Effizienz anderer Entwickler.

Wenn Sie sich leidenschaftlich für Leistung interessieren, gerne an der Grenze zwischen C++ und Python arbeiten und die Kern-CUDA-Bibliotheken gestalten möchten, auf die Tausende von Entwicklern angewiesen sind, ist diese Rolle eine direkte Passung.

Senior Software Engineer, CUDA Core Libraries Arbeitgeber: NVIDIA Corporation

NVIDIA ist ein hervorragender Arbeitgeber, der seinen Mitarbeitern die Möglichkeit bietet, an der Spitze der Technologie im Bereich HPC und KI zu arbeiten. Mit einem dynamischen Arbeitsumfeld in Deutschland, das sowohl vor Ort in München als auch remote verfügbar ist, fördert NVIDIA eine Kultur der Zusammenarbeit und Innovation, während es gleichzeitig umfangreiche Möglichkeiten zur beruflichen Weiterentwicklung und persönlichen Entfaltung bietet. Die Mitarbeiter profitieren von flexiblen Arbeitszeiten, einem starken Fokus auf Work-Life-Balance und der Chance, an bedeutenden Projekten zu arbeiten, die die Zukunft der Softwareentwicklung prägen.

NVIDIA Corporation

Kontaktdaten:

NVIDIA Corporation Recruiting-Team

StudySmarter Expertenrat🤫

Wir sind der Meinung, dass Sie so Senior Software Engineer, CUDA Core Libraries erhalten könnten

Tipp Nummer 1

Netzwerken ist der Schlüssel! Nutze Plattformen wie LinkedIn, um mit anderen Entwicklern und Recruitern in Kontakt zu treten. Teile deine Projekte und Erfahrungen, um sichtbar zu werden.

Tipp Nummer 2

Bereite dich auf technische Interviews vor! Übe Coding-Challenges und sei bereit, deine Lösungen zu erklären. Zeige, dass du nicht nur die Antwort weißt, sondern auch den Prozess dahinter verstehst.

Tipp Nummer 3

Sei proaktiv! Wenn du eine interessante Stelle siehst, bewirb dich direkt über unsere Website. Warte nicht darauf, dass die perfekte Gelegenheit zu dir kommt – mach den ersten Schritt!

Tipp Nummer 4

Zeige deine Leidenschaft für CUDA und GPU-Programmierung! Sprich über deine Erfahrungen mit paralleler Programmierung und wie du Probleme gelöst hast. Das wird dir helfen, dich von anderen Bewerbern abzuheben.

Wir glauben, dass du diese Fähigkeiten brauchst, um Senior Software Engineer, CUDA Core Libraries mit Bravour zu bestehen

C++
Python
CUDA
Parallel Programming
API Design
Performance Tuning
Memory Management

Einige Tipps für deine Bewerbung 🫡

Sei du selbst!:Zeig uns, wer du wirklich bist! Deine Persönlichkeit und Leidenschaft für Softwareentwicklung sollten in deiner Bewerbung klar rüberkommen. Lass uns wissen, warum du dich für die CUDA Core Libraries interessierst und was dich motiviert.

Technische Fähigkeiten hervorheben:Stell sicher, dass du deine Programmierkenntnisse in C++ und Python deutlich machst. Zeig uns konkrete Beispiele aus deiner bisherigen Arbeit, die deine Erfahrung mit paralleler Programmierung und Systemsoftware belegen.

Dokumentation ist wichtig:Achte darauf, dass deine Bewerbung gut strukturiert und klar verständlich ist. Wir legen großen Wert auf klare schriftliche Kommunikation, also achte darauf, dass alles gut dokumentiert ist – von deinem Lebenslauf bis zu deinem Anschreiben.

Bewirb dich über unsere Website:Wir empfehlen dir, dich direkt über unsere Website zu bewerben. So kannst du sicherstellen, dass deine Bewerbung an die richtige Stelle gelangt und du alle notwendigen Informationen bereitstellst.

Wie man sich auf ein Vorstellungsgespräch bei NVIDIA Corporation vorbereitet

Verstehe die CUDA Core Libraries

Mach dich mit den CUDA Core Libraries vertraut, insbesondere mit den Projekten wie Thrust, CUB und cuda-python. Zeige im Interview, dass du nicht nur die Grundlagen verstehst, sondern auch, wie diese Bibliotheken in der Praxis eingesetzt werden.

Bereite praktische Beispiele vor

Sei bereit, konkrete Beispiele aus deiner bisherigen Arbeit zu präsentieren, die deine Fähigkeiten in C++ und Python demonstrieren. Erkläre, wie du parallele Algorithmen entwickelt und optimiert hast, um die Leistung zu steigern.

Zeige deine Problemlösungsfähigkeiten

Bereite dich darauf vor, technische Probleme zu diskutieren, die du in der Vergangenheit gelöst hast. Betone, wie du Projekte eigenständig geleitet hast und welche Methoden du verwendet hast, um Herausforderungen zu bewältigen.

Kommunikation ist der Schlüssel

Achte darauf, klar und präzise über technische Designs und Dokumentationen zu sprechen. Übe, komplexe Konzepte einfach zu erklären, damit du zeigst, dass du nicht nur gut programmieren kannst, sondern auch gut kommunizieren.