Codeplay is looking for a C++ Software Engineer from a functional safety background to help deliver the software tools for Advanced Driver Assistance Systems (ADAS) and self-driving cars. This is an exciting role in a cross-disciplinary team of experts working together to deliver the automotive safety technologies of tomorrow. Codeplay has built up years of expertise and technology in the acceleration techniques that underpin the AI revolution, as well as a range of partnerships across industry to deliver solutions to customers. Our recent partnership with the Foresight and Williams Advanced Engineering provides the funding, our partnership with Renesas provides the R-Car automotive processing platform, and our partnerships with industry standards bodies such as Khronos and MISRA ensures our products are industry-standard.
Codeplay is developing a safety-critical software platform for accelerating AI and machine vision on highly parallel automotive processors. This will be based on Codeplay’s existing ComputeAorta™ and ComputeCpp™ products, but with changes necessary given the safety assurances. The product will include a compiler and parallel scheduler for acceleration on AI processors. This position requires solid working knowledge of modern C++ (at least C++11), understanding of high-level C++ abstractions and heavily templated C++ code bases. There will be external partnerships and consultants helping to deliver the complete product. Codeplay is fully committed to providing safe products for automotive uses, following industry-standard automotive safety processes.
The position is permanent and will be based at our office in central Edinburgh.
We welcome applications from candidates with a functional safety background in the automotive, military, aerospace or electronics sectors.
Salary range: Competitive & Negotiable.
What We Offer
Codeplay is internationally recognized as being at the forefront of software development technology. Working at Codeplay offers unique opportunities and challenges to learn new technologies and to get involved in shaping the software industry. Codeplay’s projects range from: creating tools and tool sets (optimizing compilers, debuggers, profilers, programming models & APIs, test systems/suites, etc.) for brand-new unannounced next-generation hardware; developing and optimizing current machine learning (TensorFlow™) and computer vision applications; research and development into lowering the power consumption of mobile devices; and contributing to new programming models and software standards (e.g. C++, SYCL™,OpenCL™, Vulkan® and SPIR™-V).
Codeplay is an active contributor in the community for the Clang, LLVM and LLDB open-source compiler and debugger projects. Our engineers are also leading the effort to bring support for machine learning with TensorFlow to OpenCL-enabled devices, by adding support for SYCL (the C++ high-level programming model built on OpenCL) to the open-source codebase. We are building an ecosystem around the SYCL standard, including public projects for computer vision, linear algebra, and C++ parallel programming APIs – see https://github.com/codeplaysoftware. If you are excited about contributing to programming tools that will be used by developers worldwide, please get in touch!
- Work on exciting brand-new technologies and standards with well-recognized customers.
- Help to shape the future of the industry by contributing to open-source software, standardization efforts and Codeplay’s products.
- A friendly and relaxed working environment where colleagues respect and support each other. You will be working in a diverse team of creative and talented engineers from around the world.
- Learn from experienced engineers: our staff frequently give company-wide knowledge-sharing presentations on new software and technology trends, personal projects and other relevant subjects.
- Work on modern code bases using recent tools, with the freedom to choose platforms and tools to get the job done.
Great career prospects within a growing company
Positions are available at various levels, from the entry-level Software Engineer grade to Senior Principal Software Engineer, depending on your skills and experience.
We develop our engineers to progress quickly in their roles, to take ownership of code, become technical experts, and/or lead teams. We provide training in skills such as project and people management, networking and delivering effective presentations.
Opportunities to get involved in Codeplay’s very active research, enabling you to make an impact on the company’s technology and future direction, and establish your industrial research track record by contributing to papers and publications.
Frequent opportunities to attend major worldwide industry conferences and developer meetings, represent the company, and become a recognized expert.
Codeplay has attained Silver Level Accreditation with Investors In People as an excellent employer.
- Flexible working hours, stock options and pension scheme.
- Frequent company social events (social nights, pot luck lunches, gaming, karting, outdoor adventures, …)
- Any application which results in a job offer is conditional upon the candidate already having or successfully applying for the right to work in the UK.
The ideal candidate is a self-motivated individual who can work through problems from start to finish, meet deadlines as required to support software projects, and has the ability to work under pressure. You will be working on technology that is seldom announced to the public and could be several years away from public release, so confidentiality is critical. You should be able to work both independently and collaboratively within teams of varying and differing skill sets and expertise. You should be welcoming towards and able to adapt to the introduction of new technologies, responsibilities and projects, as Codeplay works with cutting-edge technology and takes on a diverse range of projects.
- Experience of working in a functional safety domain, preferably with ISO 26262, or alternatively IEC 61508, DO-254 or DO-178B
- Excellent communication skills, both verbal and written
- Demonstrate the concepts of performing a hazard analysis on an item
- Knowledge of requirements management and defining requirements from safety goals
- Experience in carrying out hazard analysis and forming safety cases
- Experience of integration and verification techniques to fulfil software safety requirements
- Forming through continuous re-evaluation of safety processes and documentation
- Solid knowledge of modern C++ (understanding of high-level abstractions)
- Ability to work with modern templated C++11 code bases
- Working knowledge of debuggers
- Self-motivation, with a willingness to learn new technologies on the job
- Demonstrate concepts of software architectural design and testing
- Demonstrate how to perform performance analysis on the software under development
- Experience of the software development and testing life cycle
- Memory management e.g. smart pointers, reference counting, allocators, RAII
- Code security/exploit prevention
- Performance profiling and optimization
- Assembly languages
- Build systems (e.g. CMake) and compiler tool-chains
- Continuous Integration systems (e.g. Jenkins) and best practices
- OpenCL/CUDA/C++AMP/other GPGPU language environment
- OpenVX/OpenCV/other computer vision environment
- HLSL/GLSL/other shading language environments
- The open-source Clang/LLVM compiler projects and the compilation pipeline
- LLDB, LLVM’s open-source debugger project
If you can prove skills and knowledge through portfolio work, projects or previous employment, then a degree is not essential.
The Cover Note/Letter is just as important as your CV/Resume, so please include one, stating why you believe you are a good fit for the position. If you have examples of your own software projects, we would love to see them, so please include links to them in your application.
To apply for this job please visit the following URL: https://www.codeplay.com/company/careers/#choose-career →