Your cart

Subtotal

Taxes and shipping calculated and discount codes entered at checkout Place your order Continue shopping

Job board

View more
San Jose

Job Description for Principal Robotics Software Engineer

Responsibilities:

As part of the Robotics Software Development team, you will be responsible for developing novel perception and navigation algorithms, implementing performance and feature enhancements for Neato’s next generation of autonomous connected robots.  You will also be responsible for maintaining existing software codebase, troubleshooting robotic software bugs as they are identified.

You will work with highly skilled cross functional teams with experience in board support package development, cloud and application software development, software quality assurance engineers, continuous integration and test build teams and product owners to deliver robust and reliable software solutions to our extensive customer base.

Must-have Qualifications:

MS/Ph.D. in Computer Science, Computer Engineering, Electrical Engineering or related field with emphasis on probabilistic robotics.

A world renowned expert in the field of robotics, leading author on several publications published in respectable journals/conferences and/or main patent contributor.

Strong theoretical background with ability to solve problems with mathematical equations and proofs.

At least 10 years of developing robotics system software in POSIX C/C++ (STL C++11 and up)

Working knowledge of common data structures (trees, stacks, priority queues, heaps hash tables and graphs) and algorithms: (Dijkstra, A*, breadth first search, depth first search, RRT).  Show ability to motivate usage of each by analyzing time and space complexity.

Working knowledge of at least one of the following Sensor Fusion mechanisms: SLAM (LiDR with wheel encoders), SLAM (camera with wheel encoders),  Complementary Filter (accelerometer and gyro), Strapdown Inertial Navigation System (GPS, gyro, accelerometer).

Working knowledge of Inter-Process Communication (IPC) mechanisms.

Working knowledge of thread safety in POSIX based multi-threaded programming.

Linux knowledge: bash scripting, signal/process creation, handling and monitoring.

Working knowledge of Git workflow for individual developer code contributions.

Proficiency in code debugging, tracing and profiling.

Strong communication skills (written and oral).

Experience with Deep Learning Frameworks (Tensor Flow, Caffe, etc.).

Real-time Operating System Programming, process and daemons priorities and scheduling (FreeRTOS and Embedded Linux with Real-time patch).

Code development based on Test Driven Development,  for example Catch2.

Experience with code deployment on targets running Yocto distribution of Embedded Linux.

Let’s keep in touch

Join our mailing list for exclusive offers and news about products from Neato.

Compare Robot Vacuum models

Add at least two models to compare features

Compare selected
Can we help?