Must have experience in developing multi-threaded software applications that can interface with other embedded systems including DSPs, FPGAs, GPUs and Microcontrollers via PCI-e, ethernet, USB and other commonly available standards.
Carrying out requirements analysis and design for a reliable and high performance software for both Windows and Linux OS.
Convert the algorithms to C/C++, CUDA for aforementioned platforms.
Is able to develop software tools for controlling devices, managing data efficiently and user interface.
Familiar with GUI development, and low level graphics development.
Well versed with sockets and network programming.
Documenting the design and implementation during project lifecycle.