Middle C++ engineer requirements



Developing robust and fast code for flying robots. Implementing mathematical models and motion planning algorithms for high-speed and low-altitude drones running embedded Linux.


  1. Descent English.
  2. Education in physics, applied math, electrical engineering or related field.
  3. Excellent knowledge of computer architecture and good Linux administration skills.
  4. 2+ years of XP as C++ developer of Linux applications in the industry or academia.
  5. Experience in developing high-loaded multithreaded applications. Pthread and boost::thread is a must.
  6. Practical XP with sensors (accelerometers, gyroscopes, barometers etc): I2C, SPI communication protocols and understanding how data acquisition algorithms work is a must.
  7. Basic skills in digital signal processing (filters, FFT, convolution etc) is a must.

Optional requirements:

  1. Control theory and Estimation theory deep knowledge is a big plus.
  2. Good mathematical and algorithmic skills with decent practice with libs like Eigen, OpenCV, LAPACK, BLAS, Boost, STL.
  3. 3d graphics coding is a plus. BGL is a plus.
  4. Development for ARM CPU for embedded computers (Raspberry Pi, Odroid) is a plus.
  5. Experience with async I/O and networking implementation. Knowledge of common communication protocols: TCP/IP, UDP, IPC.  
  6. Practical skills with BSD sockets or high-level libraries for coding communications over the network. Experience with ROS is a plus.
  7. Experience in robotics is and good knowledge of kinematics and control theory is a great plus.

How do I apply?
Send your CV to jobs_2016(at)kray.technology