Enable job alerts via email!
Boost your interview chances
Create a job specific, tailored resume for higher success rate.
Join an innovative firm at the forefront of 3D printing technology, where you will work on the Klipper firmware for a complex 3D printer system. This role emphasizes developing robust Python code while collaborating closely with engineers to enhance functionality and performance. As part of a dynamic team, you will tackle real-time challenges and contribute to cutting-edge projects that push the boundaries of manufacturing and design. If you're passionate about technology and eager to make a tangible impact, this is the perfect opportunity for you.
Nous cherchons un·e ingénieur·e logiciel senior pour travailler sur le micrologiciel Klipper, au cœur de nos imprimantes 3D.
Klipper suit une architecture partagée : toute la logique « soft temps réel » s’exécute dans un service Python (daemon) qui tourne sur l’ordinateur hôte de l’imprimante, tandis que les tâches « temps réel dur » sont planifiées par ce service et exécutées sur plusieurs microcontrôleurs, le tout avec une synchronisation d’horloge très serrée. Le poste se concentre sur la partie Python, mais il faut quand même être à l’aise en C embarqué pour comprendre où chaque fonction a sa place.
Hylo est une bête de complexité : on combine une cinématique linéaire ultra-précise avec un four plus chaud que celui de ta cuisine pour fabriquer des pièces en plastiques exotiques destinées à l’aérospatiale, la chimie, la fabrication et la défense.
Notre micrologiciel reflète cette complexité et la gère :
compensation dynamique de la dilatation thermique ;
alimentation automatique du plastique depuis un compartiment étanche à l’humidité ;
correction des défauts mécaniques grâce à une chaîne de calibrations auto-apprenantes ;
streaming massif de données temps réel vers notre plateforme nuagique Basis pour le contrôle qualité en cours de fabrication.
Le rôle couvre le développement de nouvelles fonctionnalités dans Klipper et dans platform-agent (le module qui pousse les données vers Basis). Il faut donc écrire un Python propre, évolutif et bien architecturé, tout en gardant en tête la mécanique et la théorie du contrôle. Tu travailleras main dans la main avec nos scientifiques et ingénieurs d’application : transformer leurs besoins quotidiens en scénarios de repro de bogues ou en demandes de nouvelles features fait partie du job.
3 ans+ d’expérience professionnelle récente à coder en Python au quotidien.
Compréhension fonctionnelle du C embarqué et des contraintes de microcontrôleurs en temps réel dur.
Esprit d’équipe : collaboration, communication, bonne humeur.
Présence obligatoire au bureau, avec les imprimantes, 5 jours/semaine à Montréal – aucune option télétravail.
Communication claire en anglais ou français, et capacité de se débrouiller dans l’autre langue.
Tu aimes faire du concret : salir tes mains, démonter, mesurer.
À l’aise pour communiquer clairement en français et en anglais.
Expérience d’intégration matériel/logiciel, idéalement sur du matériel conçu sur mesure.
Connaissances en ingénierie de contrôle ou travail sur des systèmes précis calibrés par logiciel.
Autonomie et rendement élevé.
Expérience en utilisation, construction ou conception d’imprimantes 3D ou de machines-outils similaires.
Notions de front-end et sens du design UX : ce ne sera pas ta responsabilité principale, mais penser à l’interface finale aide à écrire un bon micrologiciel.
Expérience professionnelle avec Klipper ou un autre firmware d’imprimante 3D.
Usage réfléchi d’outils d’IA modernes pour comprendre rapidement de gros codebases sans créer de dette technique.
Bases en électronique.
Montréal : la meilleure ville d’Amérique du Nord (en toute objectivité !). Viens bâtir le futur de l’impression 3D avec nous.
We’re looking for a senior software engineer to work on our core 3D printer firmware, Klipper. Klipper has a split architecture where all soft-realtime process logic is implemented in a Python daemon running on the printer’s host computer, and hard-realtime tasks are orchestrated or scheduled by the Python daemon to execute on multiple embedded MCUs with careful clock synchronization behind the scenes. This role is focused on the Python half of Klipper, but you should be conversant in embedded C development to succeed with the team and understand what functionality belongs where.
Our 3D printer, Hylo, is an incredibly complex system. We wrap a high precision linear motion system around an oven hotter than your kitchen oven at home and use it to build parts out of exotic plastics for demanding applications in aerospace, chemicals, manufacturing, and defense. Our firmware reflects and tries to encapsulate that complexity - we actively adjust the tool position to cancel out thermal expansion, automatically feed plastic from humidity-controlled storage onboard the printer, compensate out the imperfection of as-built hardware using a chain of self-calibrating transforms, and stream tons of real-time data back to our cloud software Basis for in-process quality control.
This role is responsible for new feature work in Klipper and platform-agent, the module which streams data back to Basis. You should have strong Python coding abilities and taste in software architecture to keep the project maintainable as we rapidly grow. Ideal candidates will also be passionate about mechanical systems and come with strong intuitions around motion systems and control theory. You will need to interface with our scientists and application engineers using the printers day to day and translate their requirements into either clean reproduction steps for bugs or feature requests for prioritization.
3+ years recent professional experience writing Python day-to-day
Conversational understanding of embedded C and the constraints of hard real-time microcontrollers.
Collaborative, communicative, and friendly like the rest of the team.
Must be in office with the printers 5 days per week in Montreal, the best city in North America. Absolutely no remote.
Clear communication skills in either English or French, and conversant in the other.
Likes to make physical stuff. You will get your hands dirty.
Clear communication in both French and English.
Experience with hardware/software integration and, ideally, with writing software that sits on top of custom hardware
Controls engineering experience or related work with precision systems that achieve accuracy through software calibration.
High output working independently.
Experience using, building, or designing 3D printers or other machine tools.
Front-end familiarity and a taste for UX design. Front-end will not be your responsibility, but keeping the intended UI in mind while developing firmware is valuable.
Experience with Klipper or other 3D printer firmware in a professional capacity.
Experience using modern AI tools to understand codebases and architecture choices fast without adding tech debt to your projects
Conversational knowledge of electronics.