AON3D is seeking an experienced Senior Embedded Engineer for the Device team that builds the software powering our industrial 3D printers. In this role, you will be an individual contributor designing and developing hybrid embedded software solutions (primarily in Python) for our current and future products.
The Staff Device Engineer’s main responsibility is overall ownership of onboard printer software, this will encompass scoping, implementation, and sustainment of novel and exciting features that advance our additive manufacturing technology.
Day to day, the role works closely with the Electrical, Hardware, and Applications Engineering teams. You can expect to work with motion control, data bus, state management, and data acquisition systems to implement new capabilities, as well as improve performance of existing product.
As the technical expert in the domain, you will be expected to guide important design decisions in conjunction with relevant teams around what hardware is chosen, what protocols and data are used within the device to achieve desired user outcomes.
As a part of small team, ability (and desire) to see "the whole picture" is a must, from user story, down to brass tacks of implementation!
AON3D est à la recherche d'un ingénieur « firmware » expérimenté pour intégrer l’équipe « Device » s’occupant de la construction du logiciel alimentant nos imprimantes 3D industrielles. Dans ce rôle, vous serez un contributeur individuel à la conception et au développement de solutions logicielles pour nos produits actuels et futurs, ainsi qu'à la planification et à la conception architecturale. La principale responsabilité de l'ingénieur sénior est de s'approprier le micrologiciel et les systèmes associés, et de mettre en œuvre de nouvelles fonctionnalités afin de faire progresser la technologie de fabrication additive, en étroite collaboration avec les équipes d'ingénierie électrique et matérielle. Ces tâches impliquent de travailler avec des systèmes électromécaniques et de bus de données dans nos machines ainsi que les données brutes des capteurs utilisés pour le contrôle de processus et de mouvement. En tant qu'expert technique dans le domaine, vous serez en mesure de guider les décisions de conception importantes en collaboration avec les équipes concernées par le matériel choisi et les protocoles et données utilisés dans l'appareil.
The Work
Developing custom functionality on hybrid software systems for internal research and/or product development efforts.Developing tooling for test, deployment, configuration management and automation.Developing robust firmware update mechanisms.Optimizing hot codepaths within realtime control systems to improve performance.Designing data handling and command protocols.Evaluating and auditing components and tools relevant to the embedded systems.Improve and mature software components for better availability, reliability and maintainability.
Développer des fonctionnalités personnalisées pour les efforts de recherche et développement internes.Developper des outils d'automatisation, de déploiement, de gestion de la configuration et de test.Développer des mécanismes robustes de mise à jour du firmware.Optimiser les chemins de code à chaud dans les systèmes de contrôle en temps réel pour améliorer les performances.Concevoir des protocoles de traitement de données et de commandes.Évaluer et auditer les composantes et les outils pertinents pour les systèmes.Solidifier et faire murir les différents composants logiciels pour améliorer la disponibilité, fiabilité et maintenabilité du produit.
Qualifications / Nice to Have's
Expert knowledge with Python in embedded systems (low-level), Make/CMake, debuggers, and build system scripts.Strong understanding of C/C++ and associated tooling.Proven experience in low-level real-time system, like microcontrolers, with electro-mechanical components like servos, steppers, solenoids and relays, as well as peripherals, like UARTs, SPI, I2C, and ADCs.Familiarity with open source 3D printer firmwares (Klipper, Marlin)Familiarity with Yocto Linux or Buildroot.Familiarity with IoT devices and firmware drivers and update strategies.Understanding of real-time systems design and how to identify and resolve performance bottlenecks.4+ years experience with industrial or consumer hardware devices.
Posséder une connaissance approfondie de Python dans les systèmes embarqués (bas-niveau), Make/CMake, les débogueurs intégrés et les scripts système de construction.Posséder une solide expérience avec C/C++ et des outils associésDémontrer de l’expérience dans les systèmes embarqués temps réels (microcontrôleurs), composants électromécaniques (servos, les moteurs pas à pas, les solénoïdes et les relais), périphériques (UARTs, SPI, I2C, convertisseurs)Être familier avec les firmwares d'imprimantes 3D open source (Klipper, Marlin)Être familier avec Yocto Linux ou Buildroot.Être familier avec les appareils IoT, les pilotes et les stratégies de mise à jour du firmware.Comprendre les systèmes en temps réel et la façon d'identifier et de résoudre les goulots d'étranglement de performance.Posséder plus de 4 ans d'expérience avec des appareils matériels industriels ou grand public.