Locations
In this role you can work from Remote, United Kingdom
Responsibilities
We are looking for a Senior Software Engineer to join one of the distributed software engineering teams responsible for building and expanding code analysis engines and agents at GitHub. In this role you will work in one of the following areas, selected based on your own experience and interests, and the needs of the organization at the time of hiring:
- Code analysis:
- Maintaining detection support for multiple programming languages, including:
- building source code extractors that translate code written in each language into data that CodeQL can understand, keeping up with the latest version of each supported language
- writing and maintaining queries in the CodeQL query language that accurately detect security vulnerabilities and undesirable coding patterns
- building analysis libraries in the CodeQL query language that reason precisely about the semantics of programming languages, supporting the development of queries across all languages
- experimenting with and robustly evaluating LLM powered detection engines and integration between LLMs and traditional static analysis
- Foundations: Developing QL, the query language powering CodeQL analysis, and its underlying query compiler and evaluator within the CodeQL CLI. Expanding the expressive power of the CodeQL query language and speeding up the performance of the underlying query engine, empowering other teams to write high quality analysis, and ensuring that CodeQL scales to the largest codebases in the world.
In any of the above tracks, you will work closely with various engineering teams, product managers, designers, and technical writers that build different aspects of the code scanning product, to influence product direction and deliver features to users, with clear focus on quality, reliability, and user experience. You will engage with internal users and external users (both from enterprise customers and the open source community) to help them succeed with the product. You'll influence and provide feedback on the organisational culture and processes, always looking for opportunities to improve in a continuous pursuit of excellence.
Qualifications
Required Qualifications
-
- 6+ years experience in Software Engineering, Computer Science, or related technical discipline with proven experience maintaining and delivering production software coding in languages including, but not limited to, C, C++, C#, Java, JavaScript/TypeScript, Go, Ruby, Rust, or Python
- OR Associate's Degree in Computer Science, Electrical Engineering, Electronics Engineering, Math, Physics, Computer Engineering, or related field AND 5+ years experience in Software Engineering, Computer Science, or related technical discipline with proven experience maintaining and delivering production software coding in languages including, but not limited to, C, C++, C#, Java, JavaScript/TypeScript, Go, Ruby, Rust, or Python
- OR Bachelor's Degree in Computer Science, Electrical Engineering, Electronics Engineering, Math, Physics, Computer Engineering, or related field AND 4+ years experience in Software Engineering, Computer Science, or related technical discipline with proven experience maintaining and delivering production software coding in languages including, but not limited to, C, C++, C#, Java, JavaScript/TypeScript, Go, Ruby, Rust, or Python
- OR Master's Degree in Computer Science, Electrical Engineering, Electronics Engineering, Math, Physics, Computer Engineering, or related field AND 2+ years experience in Software Engineering, Computer Science, or related technical discipline with proven experience maintaining and delivering production software coding in languages including, but not limited to, C, C++, C#, Java, JavaScript/TypeScript, Go, Ruby, Rust, or Python
- OR Doctorate in Computer Science, Electrical Engineering, Electronics Engineering, Math, Physics, Computer Engineering, or related field
- OR equivalent experience
- 3+ years of experience with one or more of the following areas:
-
- Software security, including static analysis, dynamic analysis, software supply chain security, and best practices in creating high quality, secure code
- Experience building developer tools that operate on source code, such as compilers, parsers, linters, static analyzers, debuggers, CLI tools, or IDE extensions
- Machine learning and AI applied to understanding source code, specifically building systems that use large language models (LLMs) to generate or reason about code, and systematic benchmarking and evaluation of those systems
Preferred Qualifications
- Experience with two or more of the areas listed above
- Experience designing and running statistically sound experiments to measure performance and quality, evaluating results to minimize bias and noise
- Industry or research knowledge of compilers, program analysis, programming language design and implementation
-
- Knowledge of logic programming or database query languages (e.g. SQL, Prolog, Datalog, Kusto Query Language)
- Experience in security research, demonstrated by a history of identifying, analyzing, and disclosing vulnerabilities in open source projects. Comprehensive understanding of security best practices, attack vectors, and the vulnerability management lifecycle from discovery to remediation and disclosure
Equal Employment Opportunity
GitHub is made up of people from a wide variety of backgrounds and lifestyles. We embrace diversity and invite applications from people of all walks of life. We don't discriminate against employees or applicants based on gender identity or expression, sexual orientation, race, religion, age, national origin, citizenship, disability, pregnancy status, veteran status, or any other differences. Also, if you have a disability, please let us know if there's any way we can make the interview process better for you; we're happy to accommodate!