Senior Software Engineer

Ocado

  • Las Vegas, NV
  • Permanent
  • Full-time
  • 2 months ago
HADDINGTONSenior Software EngineerTHIS ROLE IS BASED IN LAS VEGAS NV. No remote candidates will be considered.Haddington Dynamics (part of Ocado Group plc.) is an advanced research and development company applying cutting-edge reconfigurable supercomputing technology to low-cost, ultra precision motion control for robotics, 3D printing, and automation.Haddington's innovation in the low-cost robotics space as well as our deep knowledge of additive manufacturing have produced our family of purpose-built 5-axis robots that are fully trainable and human-safe. We leverage accessible, high-level languages for applications including 3D Printing, PCBA, and our current focus: merchandise pick and place. Our current FPGA platform processes 2M measurements per second, enabling 50 nm resolution, 50 μm repeatability, and real-time force feedback. The processing speed and resolution, combined with Haddington's haptic algorithms, make the robot intrinsically human-safe and capable of manual training.Haddington is located in Las Vegas, Nevada, and is part of the UK-based Ocado Group plc.As a Senior Software Engineer, you will work within an agile Engineering Team, creating intelligent robotics systems for production use. 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, and device drivers. With a focus on product performance, safety, usability, scalability and maintainability, you'll test and develop these features in our lab, cut releases for QA, and deploy, experiment, monitor and optimize them on Haddington's fleet of robots in production.Primary responsibilities:
  • Developing a prototype robotic system that implements complex motions requiring specified force and path following.
  • Implementing and controlling electrical components via the control loop of a robot
  • Mentor, grow, and motivate junior team members, interns, and peers
  • Ensure architectural integrity and product quality across team efforts
  • Design, code, test, debug, and document software components
  • Assist in troubleshooting problems in development and production environments
What you bring:
  • Expertise in designing, developing and operating complex software solutions
  • Proficiency in programming languages such as C/C++, and Python, along with a deep understanding of software engineering principles, design patterns, and best practices
  • Familiarity with Linux command line
  • Excitement at the prospect of getting your hands dirty with a variety of technologies and tools, ranging from low-level hardware communication protocols and embedded systems to cloud infrastructure for CI/CD pipelines
  • Comfortable in using source control software (i.e. git)
  • Experience working in an Agile environment
  • Keen interest in working with robotic arms
  • 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
  • Bachelor's degree in computer science, computer engineering or equivalent years of experience
Bonus qualifications:
  • Knowledge of C#, javascript, bash
  • Knowledge of docker, protobuf, gRPC, ROS
  • Comfortable developing in Linux (ideally Ubuntu)
  • Specific expertise in any of: control systems, real-time systems, distributed systems, machine vision, robotic manipulation, industrial automation, physical or discrete event simulation, applied statistics and design of experiments, data visualization
  • Any mechanical, electrical or mechatronic design, assembly, and hardware-in-the-loop testing experience

Ocado