Position: C++ Developer Heterogeneous Parallel Computing
Company: Ciklum
Category: C++
Experience required: 2y
English level: intermediate

Our technology boosts analytics performance through massive parallel computing, using patented GPU-based technology.
We are looking for individuals that stand out from the crowd and wish to make an impact. If you meet the qualifications and are interested in working in an innovative, fun, and dynamic workplace, with brilliant, innovation obsessed technology geeks, you are in the right place. 

The company is expanding into new unique HPC hardware. We are looking for software developers with experience in HPC and heterogeneous computing, to develop advanced algorithms and work with new and exciting HW.

This job includes:
Designing and developing C++ parallel STL for new HPC Hardware (vector engine)
Porting NVidia STL library to new HD
Rewrite NVidia kernels to parallel C++ code.
 
Requirements:
·   	Excellent C/C++ programming and debugging skills
·   	Strong experience with Linux
·   	Strong understanding of computer system architecture and operating systems
·   	Experience with Heterogeneous computing and parallel programming
·   	Advanced knowledge of HPC networking and programming models such as MPI and Open MP, Cuda, SSE4, OpenCL
·   	Bachelor’s degree in Computer Science or related field, or the equivalent combination of education and related experience  
 
Desired/advantages:
 
·   	Significant experience with large-scale software projects
·   	Experience working on large open source software projects and using software engineering principals
·   	Significant experience with GitHub or similar open-source development tools
·   	Expert analytical, problem-solving, and decision-making skills to develop creative solutions to complex problems
·   	Ability to work independently and in teams to implement research concepts into production environments
·   	Advanced verbal and written communication skills are necessary to effectively collaborate with a multidisciplinary, multi-site team, author technical reports, and present technical presentations.
·        Ability and flexibility to work and communicate effectively in a multi-national, multi-time-zone corporate environment