Software Engineer, HPC

Foundry ,
London, Greater London

Overview

Job Description

THE TEAM. The HPC team at Foundry has a strong focus on performance and on getting the best out of our customers' hardware. The team is responsible for our Blink framework, which allows developers to write their code once and run it on either the CPU or GPU. Blink powers many of the most compute-intensive operators in our industry-leading Nuke family of products. The BlinkScript node in Nuke also allows our customers to write their own image processing effects, compile and test them without leaving the Nuke environment, and to share them with other users. It is also used extensively by our in-house research team for developing their algorithms. THE ROLE. We are looking for a Software Engineer, HPC to join our existing team. In a nutshell, we're looking for a self-motivated developer with strong C++ skills and an understanding of modern computer architecture. Experience in software development and some knowledge of software engineering best practices are also required. As a Software Engineer, you will help to ensure the quality, scalability, and extensibility of the code that we're writing. Reporting to the Lead Software Engineer for HPC, your daily work will involve the design, implementation, documentation and testing of C++ code, liaising with other engineers in the team, the product owner and lead engineer as necessary to ensure that the code meets the requirements of the customer and is delivered in a timely fashion. It will be amongst your responsibilities to understand Foundry's business and the wider industry. As a Software Engineer, HPC, you will be encouraged to play an active role in communicating with and visiting customers, understanding and sharing requirements and proposed solutions. Where appropriate you may represent and support the company and HPC at external events. THE REQUIREMENTS. * Excellent knowledge of C++ * Strong understanding of multi-threaded programming * Strong understanding of computer architecture (CPU, GPU, caches, memory, etc) * Good track record of problem-solving * Experience of commercial software development and best practice * Ability to write clear, maintainable and well-documented code. * Good written and verbal communication skills THE DESIRABLES. * Knowledge of GPU programming (CUDA/OpenCL/GLSL) * Knowledge of SIMD CPU programming (SSE/AVX) * Familiarity with Clang's AST and LLVM * Experience of cross-platform development including macOS, Linux and Windows * Experience of the CMake build system and Conan package manager * Familiarity with Agile development PERKS & BENEFITS. 25 days holiday + bank holidays Pension scheme & life assurance Health cash plan & medical insurance, Season ticket loan Company's social events Beer O'Clock Fridays Gym memberships Learning & development plans Foundry's discount & saving scheme We are an equal opportunity employer and value diversity at our company. We do not discriminate on the basis of race, religion, colour, national origin, gender, sexual orientation, age, marital status, veteran status, or disability status.