Senior Controls Software Developer
Description
We’re shipping more and more robots and seeing new uses for our products emerge every day! We need an experienced Industrial Controls Engineer to help us take our innovative designs from napkin sketches to thousands of pounds of precisely moving parts and facilitate every step in between.
You will be responsible for the industrial control system designs of existing and new industrial autonomous mobile robots. This will range through the entire design process, from the initial stages of concepting and requirements engineering, through to the detailed design, verification and validation, and final production-release automated mobile robots. Design challenges will span topics such as high-level system architecture, integration, programming, maintenance, and field testing.
You will be responsible for portions of the control and safety system design, implementation, and maintenance for our new and existing products. Our systems must be many things, but reliability is paramount. It will be part of your job to design and prototype control system architectures that can operate in whatever environments and with whatever jobs we subject them to.
You will pioneer new robot technologies, leveraging both off-the-shelf and bespoke components. Sometimes these challenges will be “Can we do it?”, but other times these challenges will be “How do we do this right?”.
- Collaborating with cross-functional teams to implement, maintain, and improve safety and control systems software, ensuring compliance with relevant standards such as ISO 13849, ISO 3691-4, IEC 61508, and others
- Maintenance of existing industrial control systems for autonomous mobile robots
- Programming and configuration of programmable logic/automation controllers (PLC/PAC) and other industrial devices
- First-level of triage of problems with complex mechatronic systems in order to determine their root cause (using tools such as software logs, custom analysis tooling, hardware and software-based tracing and measuring techniques and tools)
- Troubleshooting and resolving issues in existing control systems to ensure optimal performance and safety
- Developing new triage and analysis tools to help diagnose hardware and software issues quickly and easily
- Writing and executing validation and test plans for control system and safety functionality
- Reviewing and releasing the configurations and firmware of various industrial devices
- Contributing to and evaluating the selection of new hardware components
- New robotic vehicle and control system configuration and commissioning
- Creating and updating design documentation (Meeting minutes, requirements definitions, architecture documents, internal troubleshooting guides, external user documents, etc)
- Participating in and contributing feedback as part of the software development and product development lifecycles
- Supporting risk assessment, PL analysis, gap analysis, and FMEA activities
- JIRA project task management
- Robot configuration and troubleshooting in a Linux environment
- Supporting on-site and remote troubleshooting and/or commissioning of prototype robotic vehicles at customer facilities. Occasional travel may be required (less than 5%).
- Supporting product management with technical insight and feedback
- Discovering and evaluating new technologies
- Participating in productive technical planning sessions, both internally and with partner/client involvement
- 3+ years relevant work experience
- Degree/diploma in engineering, computer science, robotics, or a related field with applicable experience
- Ability to work independently with minimal supervision while managing deadlines
- Experience working with industrial automation systems in safety-critical applications
- Experience with hands-on prototyping and troubleshooting of mechatronic systems
- Detailed knowledge of advanced PLC programming and troubleshooting techniques, preferably with automation controllers and tools from Rockwell Automation and Siemens
- Familiarity with configuration and programming of SICK laser scanners and Flexisoft safety PLCs
- Familiarity with CODESYS
- Knowledge of industrial fieldbus and network protocols, such as EthernetIP + CIP-Safety, CAN (CANopen, J1939), ModbusTCP, Profinet + Profisafe
- Familiarity with Linux (Ubuntu) operating systems and basic command-line interactions
- Familiarity with Python scripting for automation and testing purposes
- Familiarity with software version control and CI/CD tools, such as Git, Jenkins, and GitLab-CI
- Able to understand and communicate concepts readily via sketches, block diagrams, flow charts, and technical writing
- Experience participating in development or deployment projects that have gone terribly wrong
- Ability to work in a hybrid environment; >40% in office
- Able to cope with sudden jarring changes in projects, priorities, and the local gravity field.
- IT experience in networking, OS configuration, and troubleshooting
- Experience with industrial electrical design and troubleshooting
- Working knowledge of aspects of mobile robotics such as perception, planning, controls, and navigation
- PLC development for serial OEM machines and equipment
- Familiarity with industrial material handling vehicles, such as AGVs, AMRs, forklifts, tuggers etc
- Experience with ROS (Robot Operating System)
- Software development using Python, C++, or C# .NET programming languages
- Familiarity with automating PLC programming tools and APIs/SDKs