Roku
Normal Computing Corporation
Software Engineer, Backend
Die Rolle
Normal Computing | Bauen Sie mit uns
Normal ist ein angewandtes KI-Unternehmen, das die schwierigsten Probleme in KI und Silizium löst. Wir entwickeln grundlegende Hardware und Software für die Halbleiterindustrie, kritische KI-Infrastruktur und die breiteren Systeme, die unsere Welt antreiben, in Partnerschaft mit den fortschrittlichsten Institutionen der Welt. Wir arbeiten als ein Team in New York City, Silicon Valley (Mountain View), London, Kopenhagen und Seoul.
Normal entwickelt Software für Halbleiteringenieure: eine lokale CLI, die in echten Chipdesign-Umgebungen funktioniert, ein Webprodukt zur Verwaltung von Projekten und zur Überprüfung von Ergebnissen sowie Backend-Services, die langlaufende Arbeiten koordinieren. Diese Teile wie ein einziges, zuverlässiges Produkt wirken zu lassen, ist ein Backend-Engineering-Problem.
Diese Rolle umfasst die Backend-Oberfläche hinter diesem Produkt. Je nach Projekt entwerfen Sie möglicherweise eine API, die von mehreren Diensten gemeinsam genutzt wird, entwickeln ein Datenbankschema weiter, ohne bestehende Sitzungen zu unterbrechen, machen einen Zustandsübergang idempotent, verbessern eine lokale Agentenschleife oder beseitigen eine Engstelle bei der Bereitstellung oder Leistung. Der gemeinsame Nenner ist Produktionssoftware mit echtem Zustand, echten Fehlermodi und Benutzern mit komplexen Arbeitsabläufen.
Wir verwenden KI im Produkt, aber dies ist keine ML-Rolle und Vorerfahrung mit Agenten ist nicht erforderlich. Wir suchen Backend-Ingenieure, die Freude daran haben, komplexe Systeme klar, zuverlässig und einfach zu bedienen zu machen.
Was Sie verantworten werden
Ihr Umfang hängt von Ihrer Erfahrung, Ihren Interessen und den Prioritäten des Teams ab. Wahrscheinlich werden Sie sich auf wenige dieser Bereiche konzentrieren, anstatt alle zu verantworten:
- Entwerfen stabiler, gut typisierter Schnittstellen über CLI, Web und Backend-Services hinweg.
- Entwickeln von Postgres-Schemas, Migrationen, Ereignisverläufen und anderen dauerhaften Zuständen weiter.
- Erstellen von Lebenszyklus-, Warteschlangen-, Wiederholungs-, Abbruch-, Idempotenz- und Wiederherstellungsverhalten für langlaufende Arbeiten.
- Verbessern von Software, die auf Entwicklercomputern und in containerisierten Umgebungen läuft.
- Fehler leichter diagnostizierbar machen durch Metriken, Traces, strukturierte Protokolle, Integritätsprüfungen und Operator-Tools.
- Verbessern, wie Änderungen getestet, verpackt, migriert, bereitgestellt und wiederhergestellt werden.
- Finden und Entfernen von Leistungsengpässen in APIs, Datenbankzugriffen, Ereignisverarbeitung und Ausführungspfaden.
- Liefern von Produktänderungen, die sich über Repositories, Sprachen und Servicegrenzen erstrecken.
Was Sie zu einem großartigen Kandidaten macht
- 4+ Jahre Erfahrung in der Softwareentwicklung und eine nachgewiesene Erfolgsbilanz bei der Bereitstellung von Backend-Systemen, auf die sich andere verlassen.
- Erfahrung im Entwerfen von APIs und Datenmodellen sowie klares Denken über Nebenläufigkeit und Zustand.
- Erfahrung im Betrieb von Produktionsdiensten, bei denen Zuverlässigkeit, Beobachtbarkeit, Wartbarkeit und Leistung wichtig sind.
- Komfort beim Denken über verteilte Fehlermodi wie Wiederholungen, teilweisen Abschluss, doppelte Arbeit, Abbruch und Wiederherstellung.
- Die Fähigkeit, über Grenzen hinweg zu debuggen – von einem Client oder einer CLI über Dienste, Datenbanken und Bereitstellungsinfrastruktur.
- Pragmatisches Urteilsvermögen darüber, wann in eine dauerhafte Abstraktion investiert werden soll und wann die unkomplizierte Version geliefert werden soll.
- Bandbreite: Sie haben sich in mindestens einem Bereich vertieft und können sich in einer unbekannten Codebasis oder einem unbekannten technischen Bereich produktiv machen.
- Eine Produktorientierung: Sie kümmern sich darum, ob das System für die Benutzer verständlich und zuverlässig ist, nicht nur darum, ob der Code korrekt ist.
Bonuspunkte
Erfahrung mit einem der folgenden Punkte ist hilfreich, aber nicht erforderlich:
- Postgres, Redis oder Valkey, ereignisgesteuerte Architekturen oder zustandsbehaftete Dienste mit hohem Volumen
- Kubernetes, Container, Cloud-Infrastruktur oder Bereitstellung von Software in ressourcenbeschränkten, lokalen Kundenumgebungen
- Entwicklertools, CLIs, Workflow-Engines, Job-Scheduler oder verteilte Ausführungssysteme
- Halbleiter, EDA oder Hardware-Engineering-Workflows
Erklärung zu Chancengleichheit
Normal Computing ist ein Arbeitgeber, der Chancengleichheit fördert. Wir feiern Vielfalt und setzen uns dafür ein, ein integratives Umfeld für alle Mitarbeiter zu schaffen. Alle qualifizierten Bewerber erhalten eine Anstellung ohne Rücksicht auf Rasse, Hautfarbe, Religion, Geschlecht, sexuelle Orientierung, Geschlechtsidentität, nationale Herkunft, Behinderung, Veteranenstatus oder einen anderen gesetzlich geschützten Status.
Barrierefreiheitsanpassungen
Normal Computing ist bestrebt, Menschen mit Behinderungen angemessene Vorkehrungen zu treffen. Wenn Sie aufgrund einer Behinderung Hilfe oder eine Anpassung benötigen, teilen Sie uns dies bitte unter [email protected] mit.
Datenschutzhinweis
Durch die Einreichung Ihrer Bewerbung erklären Sie sich damit einverstanden, dass Normal Computing Ihre persönlichen Daten für beschäftigungsbezogene Zwecke gemäß unserer Bewerber-Datenschutzerklärung erheben, verwenden und speichern darf.
