Chez Voilà Learning, nous ne faisons pas qu’imaginer l’avenir de l’éducation : nous le construisons. Nous sommes une entreprise sociale canadienne qui conjugue impact et innovation au sein de deux entités étroitement liées, animées par une même mission : rendre l’apprentissage accessible, équitable et stimulant pour tous.
Voilà, notre volet sans but lucratif, travaille avec les écoles, les gouvernements et les organismes communautaires pour offrir des programmes éducatifs adaptés aux réalités culturelles et ancrés dans les communautés.
ConnectED Labs, notre volet technologique, transpose cette mission dans le monde numérique. Nous développons des technologies d’apprentissage immersif et expérientiel qui combinent IA, collaboration en direct et environnements virtuels.
Nos produits, MetaLingo et inPerson, sont utilisés par des milliers d’apprenants, d’enseignants et d’organisations, pour des sessions collaboratives en direct, l’intégration, la planification, les tableaux de bord, l’administration, les rapports et la gestion des utilisateurs.
Nous recherchons un ingénieur ou une ingénieure full-stack senior qui souhaite aller au-delà d’une liste de tâches à réaliser. Vous développerez des fonctionnalités de bout en bout avec Next.js, React, TypeScript, Prisma et MongoDB, tout en contribuant à définir notre architecture, nos pratiques d’ingénierie et notre orientation technique.
Vous jouerez également un rôle clé dans le développement de la maturité technique de l’équipe grâce à des revues de code approfondies, une réflexion systémique, une résolution collaborative des problèmes et du mentorat technique. Au sein d’une petite équipe de sept ingénieurs, vous aurez un accès direct aux équipes produit et conception ainsi qu’à la direction.
Il s’agit d’un environnement à fort impact et à faible bureaucratie, où vos idées comptent. Nous apprécions les ingénieurs qui communiquent ouvertement, accompagnent leurs collègues, remettent en question les décisions techniques de manière réfléchie et conçoivent des logiciels faits pour durer.
Vos responsabilités
-
Développer des fonctionnalités de bout en bout dans Next.js : interfaces avec les composants serveur et client de React, logique serveur dans les Server Actions ou les routes d’API, et accès aux données avec Prisma et MongoDB.
-
Travailler au quotidien dans un monorepo Bun et Turbo, en contribuant aux deux applications ainsi qu’aux paquets partagés dont elles dépendent.
-
Concevoir et développer le code partagé dans la couche de paquets utilisée par nos deux applications : expérience des sessions, tableau blanc, composants d’interface de base et autres utilitaires communs.
-
Concevoir et intégrer des flux de données qui maintiennent la synchronisation de milliers d’apprenants connectés simultanément.
-
Créer des API faciles à utiliser par les développeurs pour intégrer des fonctionnalités en temps réel à nos produits.
-
Optimiser les performances, la taille des fichiers générés et la stabilité à l’exécution de nos applications.
-
Créer des interfaces adaptatives et conviviales en étroite collaboration avec les designers UI/UX.
-
Assurer la qualité du code au moyen de revues de code, de tests unitaires, du débogage, du suivi des performances et de la documentation.
-
Accompagner les ingénieurs de niveau débutant à intermédiaire par des revues de code approfondies, du travail en binôme et des retours techniques directs. Piloter les décisions d’architecture lorsqu’elles se présentent.
-
Mener les discussions techniques avec clarté et respect : expliciter les compromis, exprimer un désaccord lorsque nécessaire et rallier l’équipe.
-
Collaborer chaque jour avec les équipes produit et UX dans un environnement agile : réunions quotidiennes, revues et planification.
-
Déterminer les causes profondes plutôt que de traiter uniquement les symptômes, afin d’aider l’équipe à résoudre efficacement les problèmes d’ingénierie complexes.
-
Favoriser la collaboration technique entre les équipes en contribuant activement au-delà de votre périmètre immédiat.
Votre profil : compétences essentielles
-
Au moins 15 ans d’expérience de préférence; les candidatures présentant au moins 10 ans d’expérience seront considérées en cas de parcours exceptionnel et de leadership technique démontré.
-
Vous avez livré des projets à travers plusieurs générations de technologies et différentes piles techniques. Cela se reflète dans votre jugement et vos réflexes, pas seulement dans votre CV.
-
Une maîtrise experte de TypeScript et de solides bases en JavaScript, côté interface comme côté serveur.
-
Une expertise approfondie du développement d’applications en production avec Next.js moderne (App Router), notamment les Server Components, les Client Components, les Server Actions, les modèles de routage et l’optimisation des performances.
-
Une pratique pleinement actuelle de la pile moderne : vous livrez aujourd’hui des applications en production avec Next.js (App Router), React et TypeScript, et pas seulement il y a cinq ans.
-
Une solide expérience des monorepos, avec Turbo ou un outil similaire. Vous comprenez les frontières entre paquets partagés et savez travailler sur plusieurs applications dans un même dépôt.
-
De solides bases en génie logiciel : modélisation des données, conception d’API, authentification, gestion des sessions et compromis architecturaux.
-
Un fort sens des responsabilités. Vous signalez les obstacles de manière proactive, posez des questions réfléchies et prenez la responsabilité de livrer des solutions de qualité.
-
Une expérience des bases de données, idéalement par l’intermédiaire d’un ORM; nous utilisons MongoDB avec Prisma.
-
D’excellentes compétences en débogage et en analyse des causes profondes.
-
Une capacité naturelle à voir au-delà de votre propre code : architecture, maintenabilité, impact sur le produit et écosystème d’ingénierie dans son ensemble.
-
Une solide capacité de décision. Vous évaluez honnêtement les compromis, choisissez une direction et en expliquez les raisons.
-
Une communication excellente et respectueuse. Vous exprimez votre point de vue, posez des questions pour clarifier les attentes et formulez vos désaccords de manière constructive.
-
Une expérience démontrée du mentorat auprès d’ingénieurs de niveau débutant à intermédiaire et de l’amélioration du niveau technique de l’équipe.
-
Une expérience de Git, des tests, du débogage et du travail d’équipe agile.
-
Une expérience spécifique de Next.js 16 et des modèles de l’App Router dans sa version la plus récente.
-
Une aisance avec les pratiques et outils DevOps : GitLab CI, Docker, Kubernetes et outils d’observabilité.
-
Une expérience des médias en temps réel : LiveKit, WebRTC.
-
Une connaissance des moteurs de jeu : Unity, Agones ou WebGL.
-
Des certifications infonuagiques : GCP, AWS ou équivalentes.
Soumettez votre candidature sur ce site.
Facultatif : envoyez un bref courriel de présentation à laiba.khaqan@voilalearning.com expliquant pourquoi ce poste vous intéresse, ce qui vous motive dans le développement d’applications Web modernes chez ConnectED Labs, et quel défi d’ingénierie décrit dans cette offre a retenu votre attention, et pourquoi.
