Développeur Rust / Backend Engineer Rust
Département : Digital Factory
Lieu de travail : Agence Togo Digital, Lomé, Togo
Rattachement hiérarchique : Responsable Digital Factory
Supervision fonctionnelle : Tech Lead
Collaboration fonctionnelle : Équipes produit, analystes métier, développeurs frontend et backend, équipes DevOps, QA, infrastructure, sécurité et Direction Technique
Nombre de personnes à recruter : 1
Mission principale
- Dans le cadre du développement des produits et services numériques portés par l’Agence Togo Digital, le/la Développeur(se) Rust / Backend Engineer Rust sera chargé(e) de concevoir, développer, tester, documenter et maintenir des solutions logicielles performantes, sécurisées, fiables et évolutives.
- Il/elle veillera à la qualité du code, à la sécurité des traitements, à la performance des applications et au respect des exigences fonctionnelles et techniques définies par l’Agence.
- Le/la Développeur(se) Rust travaillera sous la supervision fonctionnelle d’un Tech Lead en collaboration étroite avec les équipes produit, développement, DevOps, QA, infrastructure et sécurité.
- Il/elle contribuera également aux réflexions techniques et pourra être force de proposition sur les choix d’architecture, les bonnes pratiques de développement et l’amélioration continue des solutions développées.
Dans l’exécution de ses tâches, il est attendu que le/la Développeur(se) Rust fournisse ou mette à jour les livrables ci-après, selon la typologie des projets sur lesquels il/elle intervient :
- Code source documenté, maintenable et conforme aux standards de qualité de l’ATD ;
- Services backend et modules applicatifs développés en Rust ;
- API performantes et sécurisées : REST, gRPC ou équivalent ;
- Spécifications techniques des modules développés ;
- Documentation technique des API : endpoints, authentification, formats de données, erreurs et règles d’usage ;
- Tests unitaires, tests d’intégration et scripts de validation technique ;
- Rapports d’analyse de performance pour les modules critiques, lorsque nécessaire ;
- Correctifs, patchs et mises à jour liés aux anomalies identifiées ;
- Documentation technique et d’exploitation destinée à faciliter la maintenance ;
- Contributions aux revues de code, référentiels techniques et bonnes pratiques de développement backend.
Le/la Développeur(se) Rust joue un rôle clé dans la qualité technique, la fiabilité et la performance des solutions développées par l’ATD. Il/elle peut également être sollicité(e) pour participer à la conception, à la revue, à la recette technique et à l’optimisation des plateformes numériques portées par l’Agence.
Responsabilités
1. Conception et développement backend en Rust
- Concevoir et développer des applications, services backend, API et modules critiques en Rust.
- Participer à l’analyse technique des besoins exprimés par les équipes produit, les analystes métier et les chefs de projet.
- Traduire les exigences fonctionnelles et techniques en solutions logicielles robustes, sécurisées et maintenables.
- Développer des composants performants, fiables et adaptés aux contraintes de production.
- Contribuer à la définition des choix techniques et des architectures applicatives des projets.
2. Développement d’API et intégration des systèmes
- Concevoir, développer et maintenir des API performantes, sécurisées et documentées.
- Participer à l’intégration des services backend avec les applications frontend, plateformes tierces, bases de données et systèmes externes.
- Veiller à la cohérence des contrats d’API, formats d’échange, mécanismes d’authentification et règles de sécurité.
- Collaborer avec les développeurs frontend, backend et DevOps afin d’assurer la bonne intégration des systèmes.
- Contribuer à la stabilité et à l’évolutivité des services exposés aux utilisateurs et partenaires.
3. Performance, sécurité et fiabilité du code
- Optimiser les performances des applications, services et modules développés.
- Veiller à une gestion efficace de la mémoire, de la concurrence et des ressources système.
- Appliquer les bonnes pratiques de sécurité dans le développement des traitements, API et services backend.
- Identifier, analyser et corriger les vulnérabilités, anomalies ou faiblesses techniques.
- Participer à la mise en place de solutions robustes pour les composants critiques des plateformes numériques.
4. Qualité logicielle, tests et maintenance
- Rédiger des tests unitaires, tests d’intégration et tests techniques permettant d’assurer la fiabilité du code.
- Participer aux revues de code et contribuer à l’amélioration continue des pratiques de développement.
- Corriger les anomalies remontées par les équipes QA, produit, exploitation ou utilisateurs.
- Assurer la maintenance corrective, évolutive et adaptative des services développés.
- Veiller au respect des standards de qualité logicielle, de lisibilité, de documentation et de maintenabilité.
5. Documentation technique et transfert de connaissances
- Rédiger et maintenir la documentation technique des modules, services et API développés.
- Documenter les choix d’architecture, dépendances, configurations et procédures d’exploitation.
- Contribuer à la capitalisation des connaissances techniques au sein de la Digital Factory.
- Faciliter la compréhension, la reprise et la maintenance du code par les autres membres de l’équipe.
- Participer au partage des bonnes pratiques de développement Rust et backend.
6. Collaboration avec les équipes projet et techniques
- Collaborer avec les analystes métier, chefs de produit et équipes produit pour comprendre les besoins et proposer des solutions adaptées.
- Travailler avec les équipes DevOps pour faciliter l’intégration, le déploiement et la supervision des services développés.
- Collaborer avec les équipes infrastructure et sécurité afin de garantir la fiabilité, la disponibilité et la conformité des déploiements.
- Participer aux cérémonies Agile, ateliers techniques, réunions de cadrage et points de suivi projet.
- Contribuer à une communication fluide entre les équipes techniques, produit et métiers.
7. Veille technologique et amélioration continue
- Assurer une veille sur l’écosystème Rust, les frameworks backend, les pratiques de performance et les standards de sécurité.
- Proposer des améliorations techniques visant à renforcer la performance, la maintenabilité et la sécurité des applications.
- Contribuer à l’amélioration des standards de développement backend de l’ATD.
- Participer à l’identification d’outils, bibliothèques ou méthodes permettant d’améliorer la qualité des livrables.
- Être force de proposition sur les choix techniques et les évolutions d’architecture.
Compétences requises
- Maîtrise du langage Rust et de son écosystème.
- Bonne connaissance du développement backend et des architectures applicatives modernes.
- Maîtrise ou bonne connaissance des API REST, gRPC, microservices et architectures distribuées.
- Bonne compréhension des problématiques de concurrence, mémoire, sécurité et performance.
- Capacité à développer du code robuste, maintenable, documenté et testé.
- Bonne connaissance de Git et des pratiques de versioning collaboratif.
- Connaissance des bases de données relationnelles et non relationnelles : PostgreSQL, MongoDB ou équivalent.
- Notions en Docker, CI/CD et environnements de déploiement applicatif.
- Bonne pratique des tests logiciels : tests unitaires, tests d’intégration, tests de non-régression.
- Capacité à analyser des spécifications fonctionnelles et techniques.
- Capacité à diagnostiquer, corriger et documenter des anomalies techniques.
- Bonne compréhension des enjeux de sécurité applicative et de protection des données.
- Capacité à travailler dans un environnement Agile et multidisciplinaire.
- Rigueur, autonomie, esprit d’analyse et sens du détail.
- Bon esprit d’équipe et capacité à collaborer avec des profils techniques et fonctionnels.
- Capacité à communiquer clairement sur des sujets techniques.
Qualifications
- Bac+3 minimum en informatique, développement logiciel, génie logiciel, systèmes d’information ou domaine équivalent.
- Expérience professionnelle minimale de 3 ans en développement logiciel, avec une expérience significative en Rust.
- Expérience confirmée dans le développement de services backend, API ou modules applicatifs critiques.
- Une expérience dans des projets numériques à forte exigence de performance, sécurité ou disponibilité serait un atout.
- Une expérience dans un environnement Agile, DevOps ou produit digital serait appréciée.
- Une contribution à des projets open source, bibliothèques Rust ou projets techniques complexes serait un avantage.
Exigences du poste
- Exigence élevée en matière de qualité, sécurité, performance et maintenabilité du code.
- Responsabilité sur des composants ou modules pouvant être critiques pour les plateformes numériques développées et maintenues par l’ATD au profil des administrations
- Collaboration régulière avec des équipes multidisciplinaires : produit, frontend, backend, DevOps, QA, infrastructure et sécurité.
- Respect des délais projet et capacité à prioriser les développements selon les besoins opérationnels.
- Nécessité de produire une documentation technique claire, complète et à jour.
- Respect strict des règles de confidentialité, de sécurité et de protection des informations traitées.
- Capacité à intervenir sur des anomalies techniques et à contribuer à la stabilité des services en production.
- Nécessité d’assurer une veille continue sur Rust, les architectures backend et les bonnes pratiques de développement sécurisé.
- Analyste de données
- Architecte d'Entreprise
- Assistant(e) de Direction
- Développeur Frontend
- Développeur Fullstack
- Responsable de l'Unité Exploitation
- Chargé des Ressources Humaines
- Chargé de Communication Institutionnelle
- Juriste IT
- Développeur Odoo
- Responsable des Opérations
- Responsable Produit
- Responsable Qualité Assurance (QA)
- Scrum Master
- Chef de Projet IT DevOps Senior
- Chef de Projet IT Infrastructure Senior
- Chef de Projet IT Système Senior
- Architecte Solutions
- Intégrateur Systèmes
- Responsable de la Livraison Technique
- Responsable Formation
- UX/UI Designer
- UX Writer / Spécialiste en Microcopy