Senior Software Developer - Motion Platform
Toronto, Canada
About Us
At Ocado, our teams are putting the world’s retailers online using the cloud, robotics, AI, and IoT. We provide services to partner clients globally via our innovative advanced robotics technology, known as the Ocado Smart Platform ("OSP"), this drives our highly automated, multi-million pound Customer Fulfilment Centres (CFCs). In our CFCs - together with the proprietary software applications - we operate a world-class online grocery business that automates the single pick of products, ready for your online delivery.
As a Senior Software Developer, you will work within an agile Engineering Team, that works with rapid iterations and continuous improvement, to create the most intelligent robotics system for our customers. You’ll collaborate cross-functionally with roboticists, software and machine learning developers, researchers, product managers, and mechanical engineers, to design, build, and support software features, across multiple codebases, for robot control, motion planning, perception, sensor fusion, human-robot interaction, and device drivers. With a focus on product performance, safety, usability, scalability and maintainability, you’ll test these features in our lab, cut releases for QA, and deploy, experiment, monitor and optimize them on Ocado’s fleet of robots in production.
This is a hybrid role, with the requirement that you work from the office ~40% of the time.
Every day will bring new and exciting challenges on the job while you:
- Design and develop software against functional and system requirements
- Collaborate on API design, SW architecture & best practices for the robotics platform
- Work closely with a cross-functional team to understand and clarify requirements
- Ensure architectural integrity and product quality across team efforts
- Design, code, test, debug, and document software components
- Assist troubleshooting problems in development and production environments
- Mentor, grow, and motivate junior team members, interns, and peers
What you bring:
- Expertise in designing, developing and operating complex software solutions, both greenfield and evolving
- Significant development experience in modern C++ on Linux
- Understanding of Linux internals, C++ compilers, Docker, etc.
- Reliable production of quality software within time and resource constraints
- Complete familiarity with modern software development processes such as design documentation, code reviews, CI/CD, testing, project management workflow, and source control conventions
- Excellent analytical, problem solving, communication and organization skills
- Familiarity with testing frameworks & strategies
- Dedication to meeting project deadlines and an ability to propose well-reasoned options under pressure
- Excellent understanding of the organization’s goals and objectives
- Bachelor's degree in computer science, computer engineering or equivalent
- You will have 5+ years of varied and progressive professional experience
Bonus qualifications:
- Proficiency in ROS2, Python or Golang
- Experience with machine vision, real-time systems or control systems
- Experience with platform engineering
- Experience with visualization/GUIs
- Specific expertise in any of: distributed systems, machine learning, robotic manipulation, material handling, industrial automation, physical or discrete event simulation
About Ocado Group
When our journey started, we were all about changing the way people shop for groceries. 20 years later, we’re developing our own ground breaking technology, opening multiple sites at an accelerating rate and engaging in exciting new business partnerships around the world!
Transforming an industry also means transforming the way we do business. As we continually develop new technologies and customer propositions, we’re looking for the Everyday Pioneers to lead us into the next stage of our evolution: enhancing our capabilities, inspiring our teams and developing new ways of working.
Changing the way the world shops, for good.