GitHub is seeking a research engineer in the area of code intelligence in the office of the CTO (OCTO), specifically for the experimentation with new and interesting user experiences. OCTO aims to be a meeting place within GitHub for experimentation with new ideas, and for setting the agenda for GitHub’s product several years in advance. OCTO has a small number of permanent research staff, and this position is part of the core OCTO team. The engineer will initially focus on user interfaces for code synthesis.

Here is some more detail on that initial project – it’s just an example of similar projects in future. To train machine learning models for program synthesis, we can use existing code bases and their unit tests: find a function that has good test coverage and documentation, mask out the body, synthesize an alternative implementation, and test it. Applied to all Python and JavaScript code on GitHub, this would be a huge training set. Full unit tests can however be slow to execute, and for effectively training machine learning models we need the tests to be as fast as possible. One way might be to distill the unit tests into ‘micro tests’ by recording just enough state and I/O behavior so we can replay previous behaviors.


Design and build a framework for creating fast functional correctness tests of Python and JavaScript code.
Collaborate with machine learning experts on applying this framework for reinforcement learning on program synthesis tasks.
Participate in all activities of the OCTO at GitHub: organizing webinar series, evaluating project proposals, and disseminating research results.
Minimum Qualifications:

Ability to do innovative research on one of the following topics: dynamic analysis, instrumentation, or runtime verification.
5+ years experience building developer tools in production
Inclination to prototype quickly and make fast decisions on experiment failure.
A creative mindset and good practical skills are more important than formal experience.
Preferred Qualifications:

PhD in computer science or related field, or other evidence of the ability to do independent research.
Knowledge of Python or JavaScript and its ecosystem, or the ability to acquire such knowledge quickly.
Ability to communicate complex ideas clearly, both in spoken and written form, for expert as well as novice audiences.
Interest in modern AI technologies and program synthesis in particular.
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.

Leadership Principles:

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.