Software Engineer
Location:    Santa Clara, CA / Shanghai, China

Job Responsibilities
1.    Collaborate closely with robotics engineers, AI engineers, mechanical engineers, test engineers, and robots.
2.    Implement, test, debug, and maintain our software modules.
3.    Involved with software engineering activities and interact with mechanical and electrical teams to deliver world-changing products.
1.    BS or MS in computer science, robotics, automation, or related field.
2.    Experience with commercial software development processes: good software hygiene regarding code documentation, unit testing, bug tracking, and version control.
3.    Proficiency in C/C++, Python, Matlab.
4.    Experience with user interface library such as Qt.
5.    Experience with 3D computer graphics library such as OpenGL, Unreal Engine, Ogre.
6.    Experience with software development on/with robotic and/or automation platforms.
7.    Experience with Linux system.
8.    Experience with Git.
9.    Experience with CMake.
Preferred Skills
1.    Experience with continuous integration tools (like Jenkins).
2.    Experience with CUDA.
3.    Experience with the Robot Operating System (ROS).
4.    Experience with NVIDIA TK1, TX1/TX2, Xavier.
5.    A broad knowledge of robotic system such as, but not limited to, real-time OS, ethercat, motor control, computer vision.