Robotics Software Engineer
Robotics Software Engineer
Toronto, Ontario, Canada - Permanent
Our client is on a mission to build human-like intelligence in machines.
Since 2014, they've been paving the way for a world filled with more powerful and helpful AI systems. They bring together reinforcement learning, machine learning, and remote human guidance to create intelligent robots that solve real-world problems alongside humans in complex, changing environments like today's supply chain.
They have positions open at the junior, intermediate, and senior levels!
As a Robotics 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 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 the fleet of robots in production.
Every day will bring new and exciting challenges on the job while you:Develop production-quality hardware interfaces that present well-crafted software APIs
Define and implement best practices for designing, debugging, integrating, automating, logging, monitoring, tooling, simulating, and testing devices and sensors for robotic manipulation
Investigate new technologies, identify bottlenecks, improve processes, create roadmaps, and further robotics software development excellence at Kindred
```Mentor, grow, and motivate junior team members, interns, and peers
Must Have Skills:
Expertise in architecting, owning, executing, and evangelizing software solutions to complex robotic manipulation challenges
- Development experience in modern C++, ROS, and Python
- Experience with industrial robot arm control, path planning, multi-robot collaboration, force control, calibration, and grasp perception
- Strong experience with modern software development processes such as design documentation, code reviews, CI/CD, testing, project management workflow, and source control conventions
- Proficient understanding of concurrent programming, distributed and parallel systems
- 5+ years of professional experience
- Practical experience with one or more areas of computer vision such as object tracking, segmentation, or 3D scene understanding based on depth
- Ability to prototype with OTS components and custom code for integration into autonomous systems
- Analytical skills to help summarize results and bring forward solutions that combine multiple streams of quantitative and qualitative data
- Ability to work with product management to deliver products to market
Nice to Have Skills:
- Bachelor's degree in computer science, computer engineering, electrical engineering, robotics, or related field
- Experience programming in Go
- Familiarity with bin-picking applications and other elements of warehouse automation
- Experience integrating custom end-of-arm tooling
- Experience in robotic trajectory optimization algorithms and familiarity with common motion planning implementations
- Experience with kinematic and dynamic simulation and visualization environments
- Development of reliable services for resource-constrained systems, especially on Linux
- Any mechanical, electrical or mechatronic design, assembly, and hardware-in-the-loop testing experience
- Experience in industrial automation technologies such as fieldbus protocols, PLCs, or servo drives