Share

16 November 2019

Embedded Software Engineer, Autonomy

Job Title: Embedded Software Engineer, Autonomy
Location: New York
Reports To: Senior Engineering Manager, Autonomy Lead

The Drone Racing League (DRL) is the premier, global drone-racing league, and producer of world-class drone sports content. At once a tech, media, events, and sports company, DRL blends a diverse array of disciplines and industries.

Job Description:

We are seeking for an Embedded Software Engineer with great embedded software design and development
skills. You will help the Autonomy team in researching, designing, developing, and implementing, the best
embedded software for autonomous algorithms implementation for autonomous drone technology. The ideal
candidate is highly experienced in writing embedded software in C/C++ in a Unix/Linux environment, and has
experience with OpenCL and/or CUDA in FPGA and/or GPU. The ideal candidate will also be able to write low-
latency software, real-time software, and have experience with FPGAs, ARM microcontrollers, multithreading,
multiprocessing, parallel programming in C/C++, and familiarity with OpenCV and OpenCL. Furthermore, the
ideal candidate must have demonstrable experience in these areas as that can be shown in the form of prior
job experience, or extensive school experience through projects and/or academic research papers where a lot
of practical experience was acquired, or by showcasing personal projects. Experience with writing embedded
software for autonomous UAV projects is not required. You will be responsible for helping the Autonomy team
in designing and implementing world class embedded software for DRL’s autonomous drone technology. You
will be an integral part of the Autonomy team at DRL.

Required Qualifications and Responsibilities:

  • Write embedded software and firmware in C/C++ and OpenCL/CUDA. 
  • Ability to take an algorithm and implement in highly efficient embedded code.
  • Ability to write device drivers in C and HDL to interface with and read cameras and sensors. 
  • Ability to take an algorithm and parallelize for high throughput. 
  • Demonstrable experience with socket programming, client server programming, TCP, UDP, and writing embedded software to communicate between multiple devices, sensors, applications, modules, etc.
  • Experienced in Unix/Linux system calls and concepts such as multithreading, multiprocessing, etc.
  • Knowledgeable in any open source distributed messaging library such as ZeroMQ.
  • Knowledgeable in communication paradigms such as pub-sub, request-reply, topics, etc.
  • Bare-metal software/firmware development in C and ARM Assembly.
  • Excellent operating systems knowledge.
  • Ability to write process schedulers.
  • Experienced with writing low-latency software and real-time software. 
  • Implement parallel algorithms with OpenCL, OpenMP, and/or CUDA.
  • Great computer science fundamentals as can be proven by showcasing knowledge or projects on time and space efficient data structures and algorithms.
  • Ability to research the best in embedded systems / software and provide great engineering input to the team.
  • Bachelor’s Degree in Computer Engineering, Computer Science, or Electrical Engineering.

Bonus Qualifications:

  • 3-5 years of experience in developing embedded software in C/C++ and OpenCL and/or CUDA.
  • Experienced in Embedded Vision; OpenCV and OpenCL.
  • Familiarity with Nvidia GPU based embedded platforms.
  • Familiarity with distributed computing.
  • Familiarity with GitHub or similar.
  • Master’s Degree in Computer Engineering, Computer Science, or Electrical Engineering.

DRL offers a compensation package that is commensurate with experience and abilities. Please apply to jobs@drl.io

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×

Subscribe To Our Newsletter

Join our mailing list to receive the latest news and updates from the DRL team.

You have Successfully Subscribed!