Senior Full-Stack Engineer (Montreal)

Senior Full-Stack Engineer (Montreal)

21 Aug
|
Logiciel Asset Science
|
Montreal

21 Aug

Logiciel Asset Science

Montreal

INGÉNIEUR OU INGÉNIEURE PRINCIPALE, FULL-STACK, DIAGNOSTICS D'APPAREILS

Asset Science, Montréal (Québec), Canada

English version follows below.

À PROPOS D'ASSET SCIENCE

Asset Science est la plateforme d'exploitation de plancher de production du marché des appareils de seconde vie : réception, diagnostics, effacement de données, classement de l'état, inventaire, automatisation des flux de travail et certification, le tout à partir d'une seule plateforme. Plus de 12 millions d'appareils par année, avec une disponibilité de 99,99 %.

Nous n'avons pas bâti cela dans un laboratoire. Nous l'avons bâti sur le plancher de production, au cœur de l'une des plus grandes opérations de remise à neuf en Amérique du Nord. Chaque fonctionnalité existe parce qu'un opérateur en avait besoin, pas parce qu'un ingénieur l'a devinée.

Notre plateforme couvre toute la pile : les portails web dans lesquels vivent nos clients et nos opérateurs d'entrepôt, les services Go qui les alimentent, et le noyau de communication en C et C++ qui parle directement aux téléphones par USB pour exécuter de véritables diagnostics matériels. Nous détenons la couverture de tests la plus poussée de l'industrie, 133 tests sur Android et 83 sur iOS, en plus d'un effacement de données accrédité ADISA et conforme aux normes NIST, exécuté sur plusieurs appareils en parallèle.

CE QUI COMPTE LE PLUS DANS CE RÔLE

Nous bâtissons une organisation d'ingénierie orientée agents (agent-first) et nous voulons que vous aidiez à la diriger. Ce n'est pas une hypothèse. Nos ingénieurs conçoivent et opèrent des flottes d'agents d'IA qui font le travail : implémenter des fonctionnalités, corriger des bogues, écrire des tests et livrer.

Les humains donnent la direction et approuvent aux bons points de contrôle. C'est ainsi que nous construisons aujourd'hui, en production, et c'est la capacité la plus importante que nous recherchons.

Voyez cela comme la gestion d'une cuisine. Nous ne cherchons pas une paire de mains de plus aux fourneaux, ni quelqu'un pour gérer du personnel, mais le chef ou la cheffe qui dirige une cuisine d'agents d'IA : planifier le travail, décider quel agent fait quoi, en faire rouler plusieurs à la fois, goûter chaque plat avant qu'il quitte le passe, et être responsable de ce qui est livré.

Soyons clairs : vous gérez des agents, pas des personnes, et ce n'est pas une voie vers la gestion de personnel. Avec le temps, ce rôle peut évoluer vers la responsabilité de notre pratique de développement agentique et de la feuille de route de notre modèle en usine autonome (dark factory). Du véritable leadership technique, gagné en étant la meilleure personne dans l'entreprise pour faire travailler les agents, pas en gérant des effectifs.

OÙ VOUS TRAVAILLEREZ, ET CE QUE NOUS NE SAVONS PAS ENCORE

L'équipe est entièrement en télétravail aujourd'hui. Nous envisageons activement un retour au bureau : la décision n'est pas prise, et entièrement sur place ou hybride n'est pas tranché. Nous n'allons pas prétendre le contraire dans un affichage.

- Être établi dans la grande région de Montréal, ou prêt à y déménager.
- Bureau sur l'île de Montréal, près d'une station de métro. Adresse exacte non finalisée.
- Être à l'aise avec la possibilité de travailler sur place à temps plein, puisque c'est l'un des scénarios sur la table.
- Si le télétravail complet est non négociable pour vous, ce rôle n'est probablement pas le bon. Mieux le savoir maintenant que dans trois mois.
- Posez-nous la question pendant le processus. Vous aurez une réponse franche.

CE DONT VOUS SEREZ RESPONSABLE Trois couches interreliées de notre produit de diagnostics :

- Le noyau de communication avec les appareils. Le moteur natif en C et C++ qui parle directement aux téléphones Apple et Android par USB pour exécuter les diagnostics matériels, le flashage et l'effacement de données. Bâti sur les bibliothèques ouvertes de communication avec les appareils Apple et Android.
- L'application de diagnostics de bureau. L'application Electron et React que nos opérateurs utilisent sur le plancher. Elle détecte les appareils connectés, exécute les suites de tests diagnostiques et produit les résultats.
- Le back-end du portail client. Des microservices Go avec MongoDB, GraphQL et REST, incluant nos services de collecte de données et de gestion des clients.

CE QUE VOUS FEREZ

- Concevoir et opérer des charges de travail d'agents d'IA. Bâtir et améliorer les processus et les garde-fous qui permettent aux agents d'implémenter des fonctionnalités, de corriger des bogues et de livrer, avec approbation humaine aux bons moments.
- Bâtir et maintenir le noyau natif, en étendant les communications, les diagnostics et le flashage Apple et Android, ainsi que le pont entre la couche native et l'interface utilisateur et la gestion de l'état des appareils.
- Bâtir et exploiter les microservices Go et MongoDB derrière le portail client.
- Diagnostiquer des problèmes à travers toute la frontière matériel-logiciel, là où une connexion USB capricieuse, un problème de pilote et un bogue logiciel se ressemblent tous.
- Écrire des tests dans toute la pile et garder le CI/CD au vert.
- Documenter au fur et à mesure, pour que la prochaine personne, et nos agents, puissent avancer rapidement.

DÉVELOPPEMENT AGENTIQUE (L'EXIGENCE DÉTERMINANTE)

- Expérience réelle en production à faire du travail logiciel avec des agents de codage comme Claude Code. Pas de l'assistance de type clavardage, mais le pilotage de changements en plusieurs étapes qui aboutissent dans de vraies bases de code.
- Planification et décomposition. Prendre un objectif d'affaires et le découper en travail que des agents peuvent exécuter, en décidant ce que chaque agent fait et dans quel ordre.
- Orchestration multi-agents. Faire rouler plusieurs agents en parallèle, les garder alignés et coordonner leurs résultats.
- Conception de la supervision humaine (human-in-the-loop). Décider où une personne révise, où l'agent poursuit seul, et où il doit s'arrêter et escalader.
- Vérification et évaluation. Démontrer que le résultat d'un agent est correct et sécuritaire à livrer, par l'automatisation de la révision, les tests et l'évaluation, plutôt que de lui faire confiance par défaut. La compétence la plus difficile à simuler et celle que nous valorisons le plus.




- Le jugement de savoir quand ne pas utiliser un agent. La moitié de la valeur de ce rôle est là.
- Garde-fous et sécurité, incluant l'injection de prompt et ce à quoi un agent devrait et ne devrait pas avoir accès, en données comme en actions.
- Conscience des coûts et de l'efficacité. Une exécution d'agent est un coût réel.
- Effet multiplicateur. Bâtir du contexte et des flux de travail réutilisables pour que les agents de chaque ingénieur s'améliorent, pas seulement les vôtres.

INGÉNIERIE FULL-STACK

- C et C++, à l'aise dans une véritable base de code native. Ici : Visual Studio, MSBuild, vcpkg et Windows.
- React (hooks, architecture de composants, gestion d'état comme Redux Toolkit). Electron est un atout important.
- Développement de services back-end. Go avec MongoDB, GraphQL et REST. Une expertise approfondie en Go est un atout, mais de solides fondamentaux et une montée en puissance rapide font le travail.
- Bonne discipline de tests unitaires et méthodologie de test solide.
- CI/CD avec GitHub Actions ou équivalent.

ATOUTS

- ADB, outillage des appareils Android et flashage.
- libimobiledevice et l'écosystème Apple (usbmuxd, lockdown, idevicerestore, ideviceinstaller, Apple Configurator, cfgutil).
- Débogage USB et diagnostics matériels : amener un appareil physique dans le bon état, en lire les données, en diagnostiquer les défauts.
- Node-API et développement de modules natifs (C vers Node).
- Microservices, Docker et Kubernetes en production.
- GCP et AWS, avec infrastructure as code en Terraform.
- PostgreSQL et Elasticsearch.
- Objective-C (iOS) et Java (Android).
- Outillage d'entrepôt, d'atelier de réparation ou d'usine à grande échelle.
- Auth0 et OAuth, Sentry et pratiques d'observabilité.
- Ingénierie inverse de protocoles d'appareils et du comportement des micrologiciels.

LANGUE DE TRAVAIL Le français est la langue commune de travail chez Asset Science au Québec. Offres d'emploi, contrats, documents relatifs aux conditions d'emploi et communications écrites au personnel sont disponibles en français, et chaque membre de l'équipe a le droit de travailler en français.

Ce poste exige également la capacité de travailler en anglais. L'article 46 de la Charte de la langue française nous oblige à vous en donner les raisons, alors les voici :

- La base de code des diagnostics, sa documentation intégrée et les bibliothèques ouvertes sur lesquelles nous bâtissons (libimobiledevice, usbmuxd, outillage ADB et projets connexes) n'existent qu'en anglais et sont maintenues par des communautés internationales qui fonctionnent en anglais. Aucun équivalent français n'existe.
- La documentation technique des fournisseurs et des plateformes pour cette pile, incluant Apple et Android, est publiée en anglais sans version française.
- Le rôle collabore quotidiennement avec des homologues techniques et des clients hors Québec, notamment aux États-Unis, au Japon et au Royaume-Uni, dont les opérations sont documentées et soutenues en anglais.

COMMENT POSTULER Postulez avec votre CV et, dans votre note, parlez-nous d'un vrai mandat piloté avec Claude Code ou un agent équivalent : ce que l'agent a fait, où vous avez placé les points de contrôle, et ce qui a été livré.

Nous informerons chaque personne rencontrée en entrevue dans les 45 jours suivant sa dernière entrevue.

Aucune décision concernant votre candidature n'est prise exclusivement au moyen d'un traitement automatisé. Nous n'exigeons aucune expérience de travail canadienne. Vous devez être légalement autorisé à travailler au Canada.

Asset Science, Montréal (Québec), Canada · Assetscience.com

SENIOR FULL-STACK ENGINEER, DEVICE DIAGNOSTICS

Asset Science, Montréal (Québec), Canada

ABOUT ASSET SCIENCE

Asset Science is the shop-floor operating platform for the secondary device market: receiving, diagnostics, data clearing, grading, inventory, workflow automation, and certification, all from one platform. Over 12 million devices a year at 99.99% uptime.

We did not build this in a lab. We built it on the production floor, inside one of North America's largest refurbishment operations. Every feature exists because an operator needed it, not because an engineer guessed.

Our platform spans the full stack: the web portals our customers and warehouse operators live in, the Go services that power them, and the C and C++ device-communication core that talks directly to phones over USB to run real hardware diagnostics. We hold the deepest test coverage in the industry, 133 tests on Android and 83 on iOS, plus ADISA-accredited, NIST-compliant data clearing running across multiple devices at once.

THE MOST IMPORTANT THING ABOUT THIS ROLE

We are building an agent-first engineering organization, and we want you to help lead it. This is not a hypothesis. Engineers here design and operate fleets of AI agents that do the work: implementing features, fixing bugs, writing tests, and shipping. Humans set direction and approve at the right gates. This is how we build now, in production, and it is the single most important capability we are hiring for.

Think of it like running a kitchen. We are not hiring another pair of hands at the stove, and we are not hiring someone to manage people. We are hiring the chef who runs a kitchen of AI agents: planning the work, deciding which agent does what, running several at once, tasting the work before it leaves the pass, and being accountable for what ships.

To be clear: you manage agents, not people, and this is not a path into people management. Over time this role can grow into owning our agentic development practice and the roadmap for our dark-factory development model. That is real technical leadership, earned by being the best in the building at making agents do the work, not by managing headcount.

WHERE YOU WILL WORK, AND WHAT WE DO NOT YET KNOW The team is fully remote today. We are actively considering a return to office: the decision is not made, and fully on-site versus hybrid is unresolved.



We are not going to pretend otherwise in a posting.

- Be based in the Greater Montréal area, or willing to relocate here.
- The office will be on the Island of Montréal, close to a metro station. The exact address is not finalized.
- Be comfortable with the possibility of working on-site full time, because that is one of the outcomes on the table.
- If fully remote is a hard requirement for you, this is probably not the right role. Better to know now than three months in.
- Ask us during the process. You will get a straight answer.

WHAT YOU WILL OWN Three connected layers of our diagnostics product:

- The device-communication core. The native C and C++ engine that talks directly to Apple and Android phones over USB to run hardware diagnostics, flashing, and data clearing. Built on the open-source Apple and Android device libraries.
- The desktop diagnostics app. The Electron and React application our operators use on the floor. It detects connected devices, runs the diagnostic test suites, and reports results.
- The client-portal backend. Go microservices with MongoDB, GraphQL and REST, including our data-collection and customer-management services.

WHAT YOU WILL DO

- Design and run AI agent workloads. Build and improve the processes and guardrails that let agents implement features, fix bugs, and ship, with human approval at the right points.
- Build and maintain the native core, extending Apple and Android comms, diagnostics, and flashing, plus the bridge between the native layer and the UI and device-state handling.
- Build and operate the Go and MongoDB microservices behind the client portal.
- Diagnose problems across the full hardware-to-software boundary, where a flaky USB connection, a driver issue, and a software bug all look alike.
- Write tests across the stack and keep CI/CD green.
- Document as you go, so the next person, and our agents, can move fast.

AGENTIC DEVELOPMENT (THE DEFINING REQUIREMENT)

- Real in-production experience doing software work with AI coding agents such as Claude Code. Not chat-style assistance, but driving multi-step changes that land in real codebases.
- Planning and decomposition. Take a business objective and break it into work agents can execute, deciding what each agent does and in what order.
- Multi-agent orchestration. Run several agents in parallel, keep them aligned, and coordinate their output.
- Human-in-the-loop design. Decide where a person reviews, where the agent proceeds alone, and where it must stop and escalate.
- Verification and evaluation. Prove agent output is correct and safe to ship through review automation, tests, and evaluation, rather than trusting it by default. The hardest skill to fake and the one we value most.
- Judgment on when not to use an agent. Half the value of this role is there.
- Guardrails and security, including prompt injection and what data and actions an agent should and should not have access to.
- Cost and efficiency awareness. An agent run is a real cost.
- Force-multiplier mindset. Build reusable context and workflows so every engineer's agents get better, not just your own.

FULL-STACK ENGINEERING

- C and C++, comfortable in a real native codebase. Here that means Visual Studio, MSBuild, vcpkg, and Windows.
- React (hooks, component architecture, state management such as Redux Toolkit). Electron is a robust plus.
- Backend service development. Go with MongoDB, GraphQL and REST. Deep Go is a plus, but strong fundamentals plus the ability to ramp fast is fine.
- Sound unit-testing discipline and testing methodology.
- CI/CD with GitHub Actions or comparable.

NICE TO HAVE

- ADB, Android device tooling and flashing.
- libimobiledevice and the Apple device ecosystem (usbmuxd, lockdown, idevicerestore, ideviceinstaller, Apple Configurator, cfgutil).
- USB debugging and hardware diagnostics: driving a physical device into the right state, reading its data, diagnosing faults.
- Node-API and native add-on development (C to Node).
- Microservices, Docker, and Kubernetes in production.
- GCP and AWS, with infrastructure as code in Terraform.
- PostgreSQL and Elasticsearch.
- Objective-C (iOS) and Java (Android).
- Warehouse, repair-depot, or factory tooling at scale.
- Auth0 and OAuth, Sentry, and observability practices.
- Reverse engineering of device protocols and firmware behavior.

LANGUAGE OF WORK French is the common language of work at Asset Science in Quebec. Offers of employment, employment contracts, documents relating to conditions of employment, and written communications to staff are available in French, and every member of our team has the right to work in French.

This position also requires the ability to work in English. Section 46 of the Charter of the French language requires us to tell you why, so here it is:

- The diagnostics codebase, its inline documentation, and the open-source libraries we build on (libimobiledevice, usbmuxd, ADB tooling and related projects) exist in English only and are maintained by international communities that operate in English. There is no French equivalent.
- Vendor and platform technical documentation for this stack, including Apple and Android, is published in English without a French version.
- The role collaborates daily with technical counterparts and customers outside Quebec, including in the United States, Japan, and the United Kingdom, whose operations are documented and supported in English.

HOW TO APPLY Apply with your resume, and in your note tell us about real work you drove with Claude Code or an equivalent agent: what the agent did, where you set the gates, and what shipped.

We will let every candidate we interview know where they stand within 45 days of their last interview.

No decision about your application is made exclusively by automated processing. We do not require Canadian work experience. You must be legally authorized to work in Canada.

Asset Science, Montréal (Québec), Canada · Assetscience.com

Pay: From $85,000.00 per year

Benefits

- Dental care
- Disability insurance
- Extended health care
- Flexible schedule
- Life insurance
- Paid time off
- Vision care

Application question(s):
- Describe one change an AI agent landed in a real production codebase for you. What did the agent do, where did you put the human gate, and what did the agent get wrong that your gate caught?
- What base salary range are you targeting?

Education:
- Bachelor's Degree (required)

Language:
- English (required)

Location:
- Montréal, QC (preferred)

Work Location: Remote

📌 Senior Full-Stack Engineer (Montreal)
🏢 Logiciel Asset Science
📍 Montreal

Reply to this offer

Impress this employer describing Your skills and abilities, fill out the form below and leave Your personal touch in the presentation letter.

Subscribe to this job alert:

Get the latest job offers by email for: senior full-stack engineer (montreal) / montreal

Subscribe to this job alert:

Get the latest job offers by email for: senior full-stack engineer (montreal) / montreal