ROS Developer at AGCO
Location: Winnipeg, MB, CA
JCA Technologies, a division of AGCO Corporation, is seeking motivated individuals for opportunities in developing and supporting the ROS2 C++ technologies underlying our projects. This individual would be responsible for development and implementation of core technologies, techniques, and recipes at a platform level that our autonomous and machine control projects will use extensively. Having a set of performant, maintainable, well documented platform building blocks is critical for deploying multiple projects across Autonomous and Precision production-ready agricultural projects for various OEMs. These building blocks are the core infrastructure alongside the R&D involved in supporting the build, test, and deployment of the packages and containers deployed on real world hardware. Candidates will work in a team to prioritize and implement requests from internal and external needs.
Multiple positions are available based on previous experience with modern C++, ROS2, and software project lifecycles.
Experienced remote candidates within Canada and US will be considered.
The successful candidate will work in the following areas:
- JCA ROS2 Platform Technologies
- Using ROS as a shared platform for customer applications, internal applications, and underlying technology for our Autonomous Framework
- A modern ROS platform deployed across multiple controller architectures
- Internal IP and building blocks that facilitate larger projects
- Interfacing to UI, embedded controllers, and external drivers
- Build, test, and deployment infrastructure
- R&D of upstream ROS technology changes and needs
- Open source development support
- OEM Applications using the ROS platform
- Machine control applications in Precision Agriculture
- Autonomous control applications
- Translation of requirements and use cases into designs of ROS packages and nodes
- Coordination of interface design and implementation between teams
The Tech Stack and Tools
As a ROS Platform Developer/Engineer you will work with and be exposed to some of the following hardware, technologies, protocols, and processes:
- Modern C++
- Gtest and ROS launch testing
- ROS2 – our projects are built on ROS
- Standardization of node techniques
- Layout of system designs
- Launch and Lifecycle management
- Platform integration
- Framework helpers and testing
- Used for test, development, and deployment
- J1939, MQTT, REST
- External integrations
- JCA Linux Controllers
- Eagle (Nvidia Jetson based platform)
- Test-Driven Development
- Continuous Integration and Continuous Deployment
The JCA Technology Engineering team consists of 30+ engineers and developers with hugely varied backgrounds and skills. At JCA we thrive on the collective diversity and experience of the team. ROS Platform Software Developer/Engineers will primarily be working within the ROS platforms team but expected to work closely alongside hardware engineers, embedded engineers, system engineers, and Full-stack developers.
Experience and Skills
The following are guidelines of what we are looking for in a candidate. Candidates who do not meet all of the criteria will be considered if they can demonstrate skills and experience in other relevant areas. At JCA we care more about your ability to learn new things and your passion for excellence in our craft than pre-existing knowledge of any specific technology. Every employee has access to an Udemy business account to continue learning in the areas in which they have an interest.
We are interested in hearing from both junior and senior applicants. Below are the Guidelines:
- A Bachelor’s or Master’s degree in Electrical or Computer Engineering from an accredited University, candidates with differing educational backgrounds with C++ software development experience will also be considered.
- C++ software project development, maintenance, and documentation
- Experience with ROS2 is not required, but highly valued
- Experience in software development on Linux and using Docker containerized code
- Experience debugging and troubleshooting on Linux and Docker
- Experience with distributed systems (Message-based communication, brokered and brokerless. Pub-sub and request-response)
- Interest in Test Driven Development, Continuous Integration and Continuous Deployment
- Strong interest in maintainable, supportable code that will be used actively by other engineers and developers
AGCO is an equal opportunity employer.