Lead Firmware Engineer

Structo is looking for an experienced Firmware Engineer (7-10yrs) to help drive the development of our next-generation 3D printing products and technologies. You will be involved in the full product development of our printers. Close collaboration with our cross-functional R&D team will allow you to work effectively with rapid feedback from mechanical engineers, product designers, test engineers, chemical formulation experts, and manufacturing technicians.

Within our engineering team you will help architect, design, test and debug the firmware for embedded control systems, motion control power electronics and safety systems.

 

Responsibilities:

  • Involve/Lead software architecture design for high performance embedded system. Create high-level design, detail-level design, and implement in C/C++. Also involve in improvement of robust solutions and resolutions of technical challenges across the project.
  • Develop, debug and support moderately complex embedded firmware for current and future 3D printers mainly Linux based.
  • Define and implement high performance software by leveraging a strong understanding of embedded hardware design.
  • Evaluate, test, and review FW to determine if will perform according to requirements and specifications.
  • Identify and manage risks associated to software
  • Support project initiatives collaborating with the rest of the design team ensuring that development milestones and deadlines are met.
  • Hands on hardware troubleshooting and test setup development.
  • Maintain accurate records throughout the development process to comply with company and government standards and/or regulations.
  • Involve in continuous integration (CI) infrastructure/environment setup.

Requirements:

  • Bachelor’s degree in Electrical Engineering, Computer Science, Mechatronics or other relevant discipline or equivalent combination of education and experience.
  • At least 7 to 10 years of experience as a firmware engineer in a development environment.
  • Experience with the C/C++/ including the tools used to edit, compile/assemble and debug code in an embedded environment.
  • Technically strong in C++, using multithreading to handle different processors.
  • Good understanding of Embedded Linux & RTOS on the mechanism of how to synchronize with other tasks.
  • Experience working with microcontrollers such as STM32.
  • Experience with real-time signal processing and hardware.
  • Experience working with various communication and networking protocols (CIP, TCP/IP and GRPC).
  • Experience with scripting languages such as Python.
  • Experience writing device drivers for serial interfaces such as UART, SPI, I2C.
  • Experience writing device drivers for servo/stepper motors and RFID readers.
  • Experience with version control tools such as Git and GitHub
  • Experience with PLC programing will be plush 
  • Experience with automation SCADA and HMI will be plush

 

Advantageous Skills:

  • Experience with: 
    • feedback control systems
    •  GTest
    • LabView

Don't see the position you're looking for?