Freelance C++ Software Engineer – OpenCL/GPU

  • Tesla
  • Berlin, Germany
  • 23/03/2020
Full time Data Science Data Analytics Big Data Software Engineering

Job Description

Teraki is a Berlin based tech driven company enabling true mobility. We stand for innovation in the rapidly developing connected car, self-driving and 3D mapping world. Teraki provides the data reduction and data processing solution for Automotive (IoT) applications and enables the launch of new applications by reducing costs. We help our customers on the challenges that are posed by the exploding amounts of data in connected cars for all sensor, video and 3D mapping data.

You will port our video codec and streaming software to OpenCL in order to run on different GPUs. In this project, you will be closely working with our Software Engineering team.


  • Port, implement and optimize our video processing and computer vision algorithms, developed for CPU based architectures, to OpenCL.
  • Write high quality, well tested and documented code, ready to run on special purpose computing architectures used in connected car applications.
  • Carry out performance benchmarking and analysis to support engineering decisions.


  • You have strong programming skills in C++ (C++14).
  • You have at least 5 years’ experience with GPU Programming in OpenCL and ideally have implemented algorithms on Digital Signal Processors (DSPs) and FPGAs.
  • You have a good working knowledge of CMake and the associated set of tools (CPack, CTest, KWStyle, etc.).
  • You have a passion for and a strong experience in low level programming. So, you are proficient for example in multithreading, know when to use heap and when stack memory and are familiar with performance optimization techniques for efficient video-data processing.
  • You are familiar with software profiling and are proficient in relevant tools, such as valgrind, perf etc.
  • You are experienced in image and real time video processing and are familiar with the technologies and frameworks such as H.264, FFmpeg and OpenCV.
  • Ideally you have experience with video streaming technology such as RTMP, Multiplexing and GStreamer.
  • “Can do” and above all “want to do” attitude.