As an Onboard SDK Robotics Software Engineer at our DJI Silicon Valley R&D office, you will play a pivotal role in shaping the future of autonomous enterprise drones. The work you do will disrupt the way hundred-year-old industries do their business, ushering in a new era of productivity, robustness and efficiency fueled by autonomy.
You will design and implement algorithms for autonomous navigation, computer vision, deep learning, sensor fusion and distributed processing. We expect creativity in identifying and integrating sensing modalities for robotics algorithms. Expect to get involved with OS-level constructs such as multithreading, scheduling, I/O and resource management. You will code primarily in C++ on Linux. You are expected to have worked with IMUs, GPS, cameras, LiDAR or similar sensors, and have strong experience with at least one of these.
For those with impressive LiDAR experience, here's your chance to stand out and show your skills!
For those who boast a strong knowledge in C++.... our recruiter has a few questions to challenge the best!!
Build efficient, powerful and unique algorithms on top of flight control, sensing payloads and data sources that solve problems relevant to enterprise solutions
Work on developing an SDK framework that makes core capabilities of DJI products accessible to developers
Integrate and process data from a variety of sensors such as IMU, GPS, cameras, depth sensors, 3D sensors
Review and contribute to the SDK, produce documentation, and disseminate knowledge in the organization as well as to external developers
Work with internal teams (in international locations) and industry partners to prototype and develop core technologies for future products
Work with product teams to drive final technology integration into product development
BS in CS, EE, CE or equivalent
5-10+ years in developing embedded software for robots, consumer or industrial devices
In-depth experience with stereo vision/cameras/LiDAR from a data processing and algorithms perspective
Expert in C++ programming (C++11 experience preferred)
Have implemented algorithms in robotics – state estimation, nonlinear control, sensor fusion, trajectory and action planning, SLAM
Comfortable with Linux (bash scripting, hardware drivers, system libraries)
Experience with OS-level programming – threading, scheduling and memory management
Experience with distributed computing and communication systems
Strong analytical problem solving skills using scientific method and design of experiments
Excellent written and verbal communication skills, able to communicate complex technical issues to cross-functional teams
Excellent collaborator, able to make a positive contribution in a dynamic team spread around the world – especially across cultures and timezones
Self motivated, able to work independently, entrepreneurial, excellent time management
International travel (up to 20%)
Masters or PhD
Pre-eminent expert in the field of robotics algorithms involving sensing and imaging technologies OR autonomous navigation
Experience with statistical analysis concepts and tools
Familiarity with UI and web technologies
Familiarity with iOS/Android
Have written significant code for autonomous robots
Experience with hardware bring-up
Experience with debug lab equipment such as oscilloscopes, logic analyzers etc
Have designed, built and/or enjoy flying remote controlled aerial vehicles