Softwareingenieur für Desktop-Entwicklung
Über die Rolle
Als Desktop Development Software Engineer entwerfen, bauen und warten Sie hochwertige Desktop-Anwendungen für Windows, macOS und/oder Linux-Plattformen. Sie arbeiten eng mit Produktmanagern, Designern, Backend-Entwicklern und QA zusammen, um unseren Nutzern schnelle, zuverlässige und ausgefeilte Desktop-Erlebnisse zu liefern. Sie übernehmen die Verantwortung für den Desktop-Entwicklungszyklus, von Architekturentscheidungen und Feature-Entwicklung bis hin zu Tests, Packaging, Distribution und Unterstützung nach dem Release, während Sie Konsistenz, Leistung und Qualität über alle unterstützten Betriebssysteme hinweg gewährleisten.
Verwaltung
Verantwortlichkeiten
- Entwerfen, entwickeln und warten Sie Desktop-Anwendungen auf Windows-, macOS- und/oder Linux-Plattformen
- Erstellen Sie sauberen, modularen und gut strukturierten Code, der zuverlässig über verschiedene Hardwarekonfigurationen und Betriebssystemversionen hinweg zuverlässig funktioniert
- Arbeiten Sie mit UI/UX-Designern zusammen, um intuitive, responsive und visuell konsistente Desktop-Oberflächen zu implementieren
- Integration von Backend-APIs, lokalen Diensten und Drittanbieterbibliotheken in Desktop-Anwendungen
- Optimierung der Anwendungsleistung, Startzeit, Speicherverbrauch und Ressourceneffizienz
- Stellen Sie sicher, dass Anwendungen plattformspezifische Richtlinien und Standards für Windows-, macOS- und Linux-Umgebungen erfüllen
- Schreibe und pflege von Unit-, Integrations- und UI-Tests, um die Anwendungsstabilität und -qualität sicherzustellen
- Identifizieren, debuggen und beheben Sie desktop-spezifische Defekte über Betriebssysteme, Hardwarekonfigurationen und Systemumgebungen hinweg
- Teilnahme an Code-Reviews, indem sie konstruktives technisches Feedback geben und empfangen
- Verwaltung von Desktop-Aufbau-, Paketierungs- und Vertriebsprozessen, einschließlich Installer, automatischer Updates und Versionsmanagement
- Überwachen Sie Produktionsanwendungen auf Abstürze, Leistungsverschlechterungen und vom Nutzer gemeldete Probleme
- Arbeiten Sie mit QA zusammen, um umfassende Desktop-Testzyklen einschließlich Funktions-, Regressions- und Kompatibilitätstests zu unterstützen.
- Beitrag zu Diskussionen über Desktop-Architekturen und technischen Designentscheidungen
- Pflege von Dokumentationen für Desktop-Codebasen, Build-Prozesse und Release-Workflows
- Nimm an agilen Zeremonien teil, darunter Stand-ups, Sprintplanung, Retrospektiven und Demos
- Bleiben Sie auf dem Laufenden über Desktop-Entwicklungstrends, Plattform-Updates und sich entwickelnde Betriebssystemrichtlinien
Anforderungen
- Sprachkenntnisse in geschriebenem und gesprochenem Englisch sind Pflicht
- Bachelorabschluss in Informatik, Software Engineering oder einem verwandten Fachgebiet oder gleichwertige praktische Erfahrung
- 3+ Jahre professionelle Erfahrung in der Entwicklung von Desktop-Anwendungen
- Starke Beherrschung eines oder mehrerer Desktop-Entwicklungs-Frameworks oder -Sprachen, wie NET Maui, Electron, Qt, .NET/WPF oder ähnlichen
- Solides Verständnis von mindestens einer primären Programmiersprache, die in der Desktop-Entwicklung verwendet wird, wie C++, C#, Java, Rust, Python oder JavaScript/TypeScript
- Erfahrung im Aufbau und der Wartung plattformübergreifender Desktop-Anwendungen für Windows, macOS und/oder Linux
- Vertrautheit mit Desktop-UI-Designmustern und plattformspezifischen menschlichen Schnittstellenrichtlinien für Windows und macOS
- Erfahrung in der Integration von RESTful APIs und der Verwaltung lokaler und entfernter Daten innerhalb von Desktop-Anwendungen
- Kenntnisse über Desktop-Anwendungs-Packaging, Installer-Erstellung und automatische Aktualisierungsmechanismen
- Verständnis der Best Practices für Desktop-Sicherheit, einschließlich lokaler Datenverschlüsselung, sicherer Speicherung von Zugangsdaten und Sandboxing
- Erfahrung mit Versionskontrolle mit Git und kollaborativen Entwicklungsworkflows
- Starke Debugging- und Performance-Profiling-Fähigkeiten mit plattformnativen und Drittanbieter-Tools
Bevorzugte Fähigkeiten
- Erfahrung mit nativen und plattformübergreifenden Desktop-Entwicklungsansätzen
- Vertrautheit mit CI/CD-Pipelines für Desktop-Anwendungs-Builds und -Releases
- Erfahrung mit Anforderungen an Codesigning, Notarisierung und Verteilung für Windows und macOS
- Erfahrung mit interprozessbezogener Kommunikation, Hintergrunddiensten oder Systemintegrationen
- Kenntnisse über Barrierefreiheitsstandards und Implementierungen auf Desktop-Plattformen hinweg
- Vertrautheit mit Absturzberichten und Telemetrie-Tools wie Sentry, BugSnag oder ähnlichen
- Erfahrung mit automatischen Update-Frameworks wie Squirrel, Sparkle oder benutzerdefinierten Update-Diensten
- Verständnis der Offline-First-Architektur und lokalen Datenbanklösungen wie SQLite, LevelDB oder ähnlichen
- Exposition gegenüber Hardware-Integrationen wie Peripheriegeräten, Kameras oder biometrischen Geräten
