Software Compiler Research Engineer (Copenhagen)

Compiler construction; Declarative and Logic Programming; Language Design

Semmle’s mission is to help everyone involved in software engineering create secure and trustworthy code without slowing down. Our technology, QL, treats code as data. By combining expertise in the fields of databases, programming languages, data science and security, Semmle is making software truly searchable, allowing deep meaningful questions to be answered and insights to be shared.

We’re looking for compiler research engineers to help us develop and improve our declarative logic programming language (QL) and our evaluation engine to increase analysis times and performance.  

The main thing we look for in candidates is intelligence and the ability to learn. We are interested in talking to people at any point in their career: from Interns to Seniors and above. 
For this role, you should be able to demonstrate a deep interest in compiler construction and language design coupled with a strong mathematical or computer science background. 

 Essential Requirements
  • Advanced experience/knowledge of programming languages (e.g. C, C++, Java, Rust, C#, Prolog, Assembly, Python, Datalog, Go, JavaScript).
  • Strong experience of compilers; compiler construction; language design; database theory.
  • A rigorous foundation in Computer Science and/or Mathematics (PhD’s are preferred; BSc, MSc or equivalent practical experience considered).
 Desirable skills
  • Knowledge of high-performance interpreter construction and JIT compilation.
  • Solid understanding of modern compilers (e.g. GCJ, Clang, LLVM, GCC, Rosyln, ECJ, Wind River, EDG, Gc, PyPy etc.); how they perform and how they process highly complicated source code.
  • Logic programming and Declarative Programming (e.g. Prolog, Datalog).
  • Programming language design; program analysis; static analysis; code generation.
  • Abstract interpretation; Formal verification; Formal Methods.

As a Compiler Engineer you will be working on and with QL: our own specialised programming language that enables you to query and search your codebase at scale. QL is also a variant analysis engine that allows product security teams to quickly explore code to find zero-days and all variants of vulnerabilities. QL combines a simple query language with a comprehensive set of libraries to quickly create powerful analyses. You will help us develop and improve QL (and its evaluation engine), which underpins all our program analyses, and calculates all the results served on, our platform for community-driven security analysis.

About Semmle
We believe security is a shared responsibility. Our mission is to secure all software by bringing the security and development communities together.

Our technology scales any organization's security expertise using QL to quickly explore any codebase to discover new vulnerabilities and all their variants. We empower product security teams to deliver variant analysis results to development teams using LGTM to ship safe code and protect their customers. Together, Semmle's platform enables the security community to collaborate and share their expertise in the field of variant analysis and security research. Our technology is free to use on open source projects using platform. At the time of writing, analysis results for over 135,000 projects are publicly available on

Security and software engineering teams at Google, Microsoft, NASA, Nasdaq and Uber depend on Semmle to secure their code. Headquartered in San Francisco, Semmle is a privately held company funded by Accel, with additional offices in Oxford, Copenhagen, New York City, Seattle, and Valencia.

How do you apply?
Semmle aims to hire outstanding people who have a diversity of perspectives, ideas and cultures. We actively support diversity and inclusion in the workplace and are committed to equal employment opportunity regardless of race, colour, ancestry, religion, sex, national origin, sexual orientation, gender identity, age, citizenship, marital status or disability status.

Please complete the following form to apply or feel free to get in touch with Zac Wallis at for more information.  | 

Want to apply later?

Type your email address below to receive a reminder

Apply to Job

ErrorRequired field
ErrorRequired field
ErrorRequired field