Software Engineer: CodeQL developer tools
GitHub is the home for software development, where developers collaborate to build some of the world’s most important software. The security of that software matters greatly to us, and we want to give the community the tools it needs to secure the code we all depend on.
CodeQL is one such tool that we build at GitHub: it is our query language and engine for semantic code analysis. Open-source security researchers and enterprise customers use CodeQL, both as a standalone tool and as part of GitHub's code scanning service, to identify errors and vulnerabilities in source code and share their security knowledge with the community.
The CodeQL core engineering team is looking for engineers to work on CodeQL developer tooling. We want to make CodeQL a joy to use when securing software. The tools we build include:
- an open-source Visual Studio Code extension, which security researchers use to write CodeQL queries and discover vulnerabilities;
- an open-source GitHub Action, which integrates with GitHub code scanning to deliver security results to developers;
- the underlying CLI and query engine that power CodeQL analysis.
Your work will positively impact thousands of security researchers and software developers, inside and outside GitHub, in the open-source and enterprise ecosystems. You will be challenged and supported to solve unique and interesting problems. With your help, we will continue to build cutting-edge code analysis technology, create a great user experience, and hence secure the world’s software.
You would be joining a distributed team, with team members living across North America and Europe, within a globally distributed company. We operate with a high degree of autonomy and trust. Our expertise ranges across compilers, developer tools, program analysis, CI, and system administration, and we are keen to grow and share knowledge. We value curiosity, learning potential, introspection and reflection, and we’re always looking for ways to improve as a team and as individuals. You would have significant influence on the product and technical direction of CodeQL and broader code intelligence products at GitHub.
GitHub is made up of people from a wide variety of backgrounds. We support and reward spending time on improving diversity, inclusion, and belonging, mentoring others to share your knowledge, and other areas of growth both within and outside your core role as an engineer.
Desired skills and experience
- Experience building a developer tool for a programming language, such as: a parser, compiler, interpreter, debugger, IDE plugin/extension, language server, or static analyzer
Bonus skills and experience
We do not expect applicants to be familiar with all these areas. We encourage you to apply if you are familiar with some of these skills OR if you are strongly interested in learning them!
- Experience building UI/UX with TypeScript and React
- Experience with extending Visual Studio Code and creating code editors with the Language Server Protocol
- Knowledge of compilers, database theory, static program analysis, or programming language design
- Familiarity with a logic programming or database query language (e.g. SQL, Prolog, Datalog)
- Experience building security analysis tools, e.g. static or dynamic analyzers, fuzzers
- Experience using continuous integration tools, e.g. Jenkins, Circle CI, or GitHub Actions
- Build new features in the open-source CodeQL extension for Visual Studio Code, helping improve the experience of writing and debugging queries in the CodeQL language.
- Build new features in the open-source CodeQL Action, enabling users to run CodeQL analysis in their continuous integration systems and see security results on GitHub's code scanning platform.
- Contribute new features to the CodeQL CLI, including the compiler and language server.
- Respond to bug reports and feature requests from internal and external users.
- Work with the GitHub documentation team to improve product documentation.
- Maintain automation for testing and releasing the above products.
- (Optional) If you are interested in engaging with the open-source community, there will be opportunities to interact with CodeQL users via community forms, talks, and workshops.
- (Optional) If you are interested in research and development, there will be opportunities to help improve the speed and capabilities of the CodeQL compiler and evaluation engine, or to help users understand and visualize the results it produces.
Who We Are:
GitHub is the developer company. We make it easier for developers to be developers: to work together, to solve challenging problems, and to create the world’s most important technologies. We foster a collaborative community that can come together—as individuals and in teams—to create the future of software and make a difference in the world.
Customer Obsessed - Trust by Default - Ship to Learn - Own the Outcome - Growth Mindset - Global Product, Global Team - Anything is Possible - Practice Kindness
Why You Should Join:
At GitHub, we constantly strive to create an environment that allows our employees (Hubbers) to do the best work of their lives. We've designed one of the coolest workspaces in San Francisco (HQ), where many Hubbers work, snack, and create daily. The rest of our Hubbers work remotely around the globe. Check out an updated list of where we can hire here: https://github.com/about/careers/remote
We are also committed to keeping Hubbers healthy, motivated, focused and creative. We've designed our top-notch benefits program with these goals in mind. In a nutshell, we've built a place where we truly love working, we think you will too.
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!
Please note that benefits vary by country. If you have any questions, please don't hesitate to ask your Talent Partner.