Ingénieur logiciel en développement de bureau
À propos du poste
En tant qu’ingénieur logiciel de développement de bureau, vous concevez, construirez et maintiendrez des applications de bureau de haute qualité pour Windows, macOS et/ou Linux. Vous travaillerez en étroite collaboration avec les chefs de produit, les designers, les développeurs backend et le QA pour offrir des expériences de bureau rapides, fiables et abouties à nos utilisateurs. Vous prendrez en charge le cycle de vie du développement du bureau, des décisions d’architecture et du développement des fonctionnalités jusqu’aux tests, au packaging, à la distribution et au support post-lancement, tout en garantissant la cohérence, la performance et la qualité sur tous les systèmes d’exploitation pris en charge.
Gestion
Responsabilités
- Concevoir, développer et maintenir des applications de bureau sur les plateformes Windows, macOS et/ou Linux
- Construisez un code propre, modulaire et bien structuré qui fonctionne de manière fiable sur une gamme de configurations matérielles et de versions d’OS
- Collaborez avec des concepteurs UI/UX pour mettre en place des interfaces de bureau intuitives, réactives et visuellement cohérentes
- Intégrer les API backend, les services locaux et les bibliothèques tierces dans les applications de bureau
- Optimiser la performance des applications, le temps de démarrage, l’utilisation de la mémoire et l’efficacité des ressources
- Veillez à ce que les applications respectent les directives et normes spécifiques à chaque plateforme pour les environnements Windows, macOS et Linux
- Écrire et maintenir des tests unitaires, d’intégration et d’interface utilisateur pour garantir la stabilité et la qualité des applications
- Identifier, déboguer et résoudre les défauts spécifiques au bureau à travers les systèmes d’exploitation, les configurations matérielles et les environnements système
- Participer à des revues de code, fournir et recevoir des retours techniques constructifs
- Gérer les processus de montage, d’emballage et de distribution de bureau, y compris les installateurs, les mises à jour automatiques et la gestion des versions de publication
- Surveillez les applications de production pour détecter les plantages, la dégradation des performances et les problèmes signalés par les utilisateurs
- Collaborer avec l’assurance qualité pour soutenir des cycles de tests de bureau approfondis, incluant les tests fonctionnels, de régression et de compatibilité
- Contribuer aux discussions sur l’architecture de bureau et aux décisions de conception technique
- Maintenir la documentation des bases de code de bureau, des processus de compilation et des flux de travail de publication
- Participez à des cérémonies agiles, incluant des stand-ups, la planification de sprints, des rétrospectives et des démonstrations
- Restez à jour avec les tendances du développement de bureau, les mises à jour des plateformes et les directives évolutives des systèmes d’exploitation
Exigences
- La maîtrise de l’anglais écrit et oral est obligatoire
- Licence en informatique, génie logiciel, ou domaine connexe, ou expérience pratique équivalente
- 3+ ans d’expérience professionnelle en développement d’applications de bureau
- Forte maîtrise d’un ou plusieurs frameworks ou langages de développement de bureau, tels que NET Maui, Electron, Qt, .NET/WPF, ou similaires
- Une solide compréhension d’au moins un langage de programmation principal utilisé dans le développement de bureau, tel que C++, C#, Java, Rust, Python ou JavaScript/TypeScript
- Expérience acquise dans la création et la maintenance d’applications de bureau multiplateformes ciblant Windows, macOS et/ou Linux
- Familiarité avec les modèles de conception de l’interface utilisateur de bureau et les directives spécifiques à chaque plateforme pour les interfaces humaines sous Windows et macOS
- Expérience d’intégration d’API RESTful et de gestion des données locales et distantes au sein d’applications de bureau
- Connaissance de l’emballage des applications de bureau, de la création d’installateurs et des mécanismes de mise à jour automatique
- Compréhension des meilleures pratiques de sécurité sur les bureaux, y compris le chiffrement local des données, le stockage sécurisé des identifiants et le sandboxing
- Expérience avec le contrôle de versions utilisant Git et les flux de travail collaboratifs de développement
- Solides compétences en débogage et profilage des performances grâce à des outils natifs de plateforme et des outils tiers
Compétences préférées
- Expérience avec les approches de développement de bureau natifs et multiplateformes
- Familiarité avec les pipelines CI/CD pour les versions et versions d’applications de bureau
- Exposition aux exigences de signature de code, de notarisation et de distribution pour Windows et macOS
- Expérience en communication interprocessus, services en arrière-plan ou intégrations au niveau système
- Connaissance des normes d’accessibilité et de leur mise en œuvre sur les plateformes de bureau
- Familiarité avec les outils de signalement de plantages et de télémétrie, tels que Sentry, BugSnag ou similaires
- Expérience avec des frameworks de mise à jour automatique tels que Squirrel, Sparkle ou des services de mise à jour personnalisés
- Compréhension de l’architecture hors ligne et des solutions de bases de données locales, telles que SQLite, LevelDB ou similaires
- Exposition à des intégrations matérielles telles que périphériques, caméras ou dispositifs biométriques
