Code intelligence team

Vision

Code intelligence is as good or better than an IDE in the browser for all code hosts and all languages, including cross-repository definitions and references.

Direction

The Code Intelligence team builds tools and services that provide contextual information around code, taking into account its lexical, syntactic, and semantic structure. This includes:

  • An API to provide fast, comprehensive, and accurate answers to important code navigation queries such as Go to Definition and Find References

  • A powerful and flexible language-agnostic model of dependency relationships across projects, repositories, and languages

  • Robust, extensible, and scalable infrastructure to index code across all languages, keep those indexes up-to-date, and efficiently resolve code intelligence queries against all indexed code.

Goals

TODO

Contact

Tech stack

Precise code intelligence-specific services are written in Go and code intelligence features are added to the existing frontend service where possible. Sourcegraph extensions that provide code intelligence are written in TypeScript. We use SQLite databases to store data specific to a particular LSIF index and Postgres to store all other data.

Team documentation & planning

Here are some key ways to contact us:

The Code Intelligence team holds a weekly sync meeting. We use a Google doc for agenda and meeting notes. If you would like to add a topic to the agenda, please ping the #code-intel channel in Slack to ensure we are prepared to address it.

Prior to the weekly sync meeting, each team member should:

  1. Add any agenda items that should be discussed.
  2. Review any existing agenda items and be prepared to discuss them.
  3. Update the current release tracking issue with a summary of progress for the previous week and plans for the next week.

We track most of our work using issues on the Sourcegraph main repository. If you have an issue that wants our attention, mention the @sourcegraph/code-intel team or tag your issue with the team/code-intelligence label.

New Engineer Onboarding

Our team is growing and to help our new teammates have the best onboarding experience we have created additional material that builds on Sourcegraph’s general engineering onboarding guide. We think will help you ramp up in all things code intel.

Weeks 1 - 4

Architecture Presentation: An experienced code intel engineer will give a live presentation primarily to the new hire (and any other Sourcegraph teammate who’s interested) explaining the architecture of our systems at a high level.

Pair Programming: Keeping inline with engineering pairing sessions we will support our new teammates by setting aside dedicated time every week for mentoring. This not only helps deliver guided learning but also is great for team and relationship building.

First Tasks: The team has marked issues we believe are good first issues in Github, following the starter task process work with the code intel engineering manager to select three issues that you think are good ones for you to work on in your first 4 weeks.

Technical Design Diagrams: We know that a picture is worth a thousand words and we will create visual diagrams to supplement our written documentation for the most critical or complex components and processes. This material is great for async learning and can provide a better understanding of the parts that make up the big picture. Browse through available diagrams in the code intel Google drive and learn how the Bundle Manager works or view Inter-service request diagrams.

Second Month

Inverted Presentation: Our new teammate has now had some time to explore the source code and will use their knowledge to present to the team. You can choose to either explain the architecture of an existing component or present a solution to a problem you just solved. The team will give feedback and clarify where needed and provide more details to high-level designs.

Feedback: We want to hear from our new teammate how helpful each of these onboarding experiences was and we will continuously update our onboarding guide based on new insights. As per the engineering guide for feedback will be gathered in week 6.

Members

Hiring status

Updated 2020-08-01

We are hiring for these roles: