Posted time March 7, 2024 Location Argentina, Brazil, Canada, Chile, Mexico Job type Full-time, Fully remote, Sponsored Visa, Start remote then relocate

Job Desc

Background:

We are a pioneering robotics company at the forefront of technological innovation in mushroom harvesting. Our mushroom harvesting robot solves a critical labour problem in the mushroom-growing industry. Our team is comprised of passionate individuals who thrive in a dynamic, collaborative environment where innovation is the norm. As we continue to grow, we are seeking an exceptional Senior System Software Developer to join our team.

Team Focus and Goals:

We need experienced developers in a variety of software roles to help take our farm-proven robotics products to market. The Senior System Software Developer – Computer Vision is a critical team member responsible for the development, integration and configuration of the on-robot software services that supports our Machine Learning/Deep Learning vision models.

Responsibilities Include:

  • Collaborate in an agile software development environment with Developers, Designers, and Project Managers.
  • Fuse output of multiple vision Machine Learning models using OpenCV.
  • Use your expertise in debugging C++ code on Linux platforms to identify and resolve complex technical issues efficiently.
  • Design, develop, and maintain software applications that leverage middleware messaging services for seamless communication between distributed systems.
  • Collaborate with ML/DL engineers to integrate vision models into the robot’s software ecosystem, ensuring seamless operation and real-time performance.
  • Develop and maintain APIs and services for on-robot vision processing.
  • Optimize existing computer vision algorithms for speed and accuracy.
  • Work closely with hardware teams to tailor software solutions for specific edge devices and industrial PCs.
  • Naturally build upon the work of others, especially with respect to leveraging Open-Source software.
  • Provide technical leadership and mentorship to junior developers, guiding them in software design and coding standards.
  • Conduct code reviews to ensure code quality, adherence to coding standards, and the implementation of best practices.

Skills And Qualifications Include:

  • Product-focused creative thinking.
  • Bachelor’s degree in computer engineering or computer science or equivalent experience.
  • 5+ years of professional software development experience.
  • Experience in building containerized microservices with Docker.
  • Experience with developing and deploying software on robotic systems or embedded platforms.
  • Proficient in programming languages such as C++, Python, and experience with computer vision libraries (e.g., OpenCV, TensorFlow, PyTorch), as well as deep knowledge of CUDA for GPU programming and ONNX for model exchange.
  • The ability to visualize the interactions and interfaces between software and electro-mechanical systems.
  • Experience with Git and the Linux command line.
  • Strong proficiency in middleware messaging services, such as: Gazebo Transport, ZeroMQ.
  • Familiar with Protocol Buffers.
  • Expert debugging skills, for example: with Valgrind, gdb and gdbserver.
  • Excellent problem-solving skills and the ability to work as part of a dynamic team.

This position is to relocate to Salmon Arm in British Columbia, Canada. Start remote and then relocate.

ription…