2,233 karma · joined December 23, 2013
I build developer tools at Sourcegraph: https://sourcegraph.com
Many thanks to our users, customers, and contributors. If you have any questions, we'll do our best to answer them here!
Here's the rough, hierarchical checklist I wrote up for myself at some point: https://gist.github.com/beyang/b3b494f028996b32ab3dae237bc1c...
I don't go through this entire checklist for every code review obviously, but whenever there's a diff that's large/complex enough for me to say "hoo-boy", I revisit it to remind myself of what I actually need to check in order to obtain an adequate understanding of the change.
The other thing that matters is tooling. One of the annoying things about most CR interfaces is they lack the capabilities of an IDE that actually let you jump around and make sense of the code in a tractable manner. Shameless plug: I helped build a browser extension that adds these capabilities back into most of the mainstream CR systems: https://docs.sourcegraph.com/integration/browser_extension. People swear by it and I'd highly recommend trying it out.
To get back to your original scenario, it seems like you asked the right initial questions, but stopped short of building a satisfactory understanding of what was going on. You took the author's word for it, when you could've asked a few more probing questions to check your (and their) understanding of the change. At the end of the day, the threshold for "LGTM" is a function of both how well you understand the code and how much you trust your teammates. Better process and better tooling can help out a lot with the former, but the latter is a human element that can't be ignored either.
Sourcegraph is building a better, smarter foundation for software development. Our code search allows you to instantly search across all of your company's private code to find what you are looking for (definitions, examples, error messages, etc.), and our browser extensions give you IDE-like code intelligence (e.g. hover tooltips, go to definition, find references, and more) while you are looking at code in your browser, on Sourcegraph, or on your code host. Software developers at big/recognizable companies around the world already love and use our product on a daily basis.
We are a small distributed team of mostly engineers who love to code. If you are passionate about making the world better through software, come join us!
Stack: Go, TypeScript, GraphQL, Docker + Kubernetes
Our code is open source: https://github.com/sourcegraph/sourcegraph Product roadmap: https://docs.sourcegraph.com/dev/roadmap Master plan: https://sourcegraph.com/plan Jobs page: https://github.com/sourcegraph/careers/
Here is how I added GraphQL support last week:
- Follow the hello world tutorial https://github.com/sourcegraph/sourcegraph-extension-docs/bl...
- Add logic to handle hovers and definitions https://github.com/sourcegraph/sourcegraph-graphql
- Write the server part https://github.com/chrismwendt/graphql-ws-langserver (once a browser-based GraphQL analysis library exists, this would be unnecessary because the analysis could be done entirely in the browser)
It's available at https://sourcegraph.com/extensions/chris/graphql and once you enable it you can test it out on a GraphQL file such as https://sourcegraph.com/github.com/chrismwendt/graphql-ws-la... (it's pretty slow/janky at the moment and could be improved, but works).
If you're interested in interfacing with other tools too, you might be interested in LSP (Language Server Protocol):
- https://microsoft.github.io/language-server-protocol/specifi...
You can dive straight into the source here: https://sourcegraph.com/github.com/mdlayher/ndp/-/blob/messa...
(But frankly, all other editors except Vim are great, too :P)
FYI, this was part of a technical liveblog that covered all the talks at GopherCon this year in a similar fashion. If you missed the conference or are looking to review material, you might find https://sourcegraph.com/gophercon helpful. (Disclosure: I'm CTO of Sourcegraph—we organized the liveblog and love Go!)
Sourcegraph is building tools that software developers love and use on a daily basis. Code search allows you to instantly search across all of your company's private code to find what you are looking for (definitions, examples, error messages, etc.). Code intelligence gives you hover tooltips, find references, and jump to definition while you are looking at code in your browser on Sourcegraph or on your code host.
We are a small team of mostly engineers who love to code, and we already have big/recognizable/global companies paying for our product. If you are passionate about making the world better through software, come join us!
Stack: Go, TypeScript, GraphQL, Docker + Kubernetes
Jobs page: https://about.sourcegraph.com/jobs
Sourcegraph brings code search and code intelligence to your codebase. As a programmer, you spend hours every day reading code and trying to answer questions like "How do I use this library?", "Does the function I'm about to write already exist?", "Who's the right person to ask about this code?", and "What's going on in this changeset?" Sourcegraph makes answering these questions fast and effortless. And it plugs into your code host, code review (think "jump-to-def in diffs"), and editor to make understanding code easier in all parts of your life as a software developer.
We're a small team founded by Stanford and Palantir alumni. Our users and customers span programmers across the world, influential open-source authors, and major companies. Our technical challenges include scaling code analysis and search to every codebase in the world. If you are passionate about making the world better through software, come join us!
Stack: Go, TypeScript, GraphQL, Docker + Kubernetes
Jobs page: https://about.sourcegraph.com/jobs
Of course, we like to think we take things further, with support for more languages, connecting your code to all the open-source code you probably use, and integrations for most major code hosts and review tools. If you try it out, we'd love to hear from you and how you think it stacks up to the code search you used at Google :)
Sourcegraph builds developer tools for teams. As a programmer, you spend hours every day trying to answer simple questions with outdated, single-player tools that force you to constantly context-switch away from your code. Sourcegraph gives development teams lightning-fast code search across all their code along with full code intelligence (jump-to-def, mouse-over docs, find-refs, etc.) in an easy-to-use web app.
We're a small team founded by Stanford and Palantir alumni. Our users and customers span programmers across the world, influential open-source authors, and companies large and small. Our technical challenges include scaling code analysis and search to every codebase in the world.
Stack: Go, TypeScript, GraphQL, Docker + Kubernetes
Jobs page: https://about.sourcegraph.com/jobs
We're actively working on improving the performance of diff search, but I would expect other types of queries to complete quickly. Would you mind sharing more about the size / characteristics of your repositories? Feel free to email me at beyang@sourcegraph.com if a private channel is better.
Sourcegraph builds developer tools for teams. As a programmer, you spend hours every day trying to answer simple questions with outdated, single-player tools that force you to constantly context-switch away from your code. Sourcegraph gives you lightning-fast code search across all your team's code and makes your editor into a first-class pull request client.
We're a small team founded by Stanford and Palantir alumni. Our users and customers span programmers across the world, influential open-source authors, and major companies. Our technical challenges include scaling code analysis and search to every codebase in the world.
Stack: Go, TypeScript, GraphQL, Docker + Kubernetes
Jobs page: https://about.sourcegraph.com/jobs
Sourcegraph is the best way to read and write code with your team. As a programmer, you spend hours every day trying to answer simple questions with outdated, single-player tools that force you to constantly context-switch away from your code. Sourcegraph brings discussion and review to your editor in a first-class way and makes all the code inside your organization easily searchable.
We're a small team founded by Stanford and Palantir alumni. Our users and customers span programmers across the world, influential open-source authors, and major companies. Our technical challenges include scaling code analysis and search to every codebase in the world.
Stack: Go, TypeScript, GraphQL, Docker + Kubernetes
Jobs page: https://about.sourcegraph.com/jobs
Sourcegraph is the best way to read and write code with your team. As a programmer, you spend hours every day trying to answer simple questions with outdated, single-player tools that force you to constantly context-switch away from your code. Sourcegraph brings discussion and review to your editor in a first-class way and makes all the code inside your organization easily searchable.
We're a small team founded by Stanford and Palantir alumni. Our users and customers span programmers across the world, influential open-source authors, and major companies. Our technical challenges include scaling code analysis and search to every codebase in the world.
Stack: Go, TypeScript, GraphQL, Docker + Kubernetes
Jobs page: https://about.sourcegraph.com/jobs
Sourcegraph is the best way to read and understand code. As a programmer, you spend hours every day trying to answer simple questions like "How do I use this library?", "What functions already exist?", and "What's going on in this changeset?" Sourcegraph makes exploring the world's code as painless as searching and browsing the web.
We're a small team founded by Stanford and Palantir alumni. Our users and customers span programmers across the world, influential open-source authors, and major companies. Our technical challenges include scaling code analysis and search to every codebase in the world.
Stack: Go, TypeScript, GraphQL, Docker + Kubernetes
Jobs page: https://about.sourcegraph.com/jobs
Sourcegraph is the best way to read and understand code. As a programmer, you spend hours every day trying to answer simple questions like "How do I use this library?", "What functions already exist?", and "What's going on in this changeset?" Sourcegraph makes exploring the world's code as painless as searching and browsing the web.
We're a small team founded by Stanford and Palantir alumni. Our users and customers span programmers across the world, influential open-source authors, and major companies. Our technical challenges include scaling code analysis and search to every codebase in the world.
Stack: Go, TypeScript, GraphQL, Docker + Kubernetes
Jobs page: https://about.sourcegraph.com/jobs
Sourcegraph is the best way to read and understand code. As a programmer, you spend hours every day trying to answer simple questions like "How do I use this library?", "What functions already exist?", and "What's going on in this changeset?" Sourcegraph makes exploring the world's code as painless as searching and browsing the web.
We're a small team founded by Stanford and Palantir alumni. Our users and customers span programmers across the world, influential open-source authors, and major companies. Our technical challenges include scaling code analysis and search to every codebase in the world.
Stack: Go, TypeScript, GraphQL, Docker + Kubernetes
Open roles:
* Senior Software Engineer, Core: https://boards.greenhouse.io/sourcegraph/jobs/204608
* Senior Software Engineer, Frontend: https://boards.greenhouse.io/sourcegraph/jobs/655534
https://sourcegraph.com/github.com/golang/go/-/blob/src/net/... https://sourcegraph.com/github.com/mholt/caddy@master/-/blob... https://sourcegraph.com/github.com/btcsuite/btcd@master/-/bl... https://sourcegraph.com/github.com/camlistore/camlistore@mas... https://sourcegraph.com/github.com/boltdb/bolt@master/-/blob... https://sourcegraph.com/github.com/go-kit/kit/-/blob/example...
Sourcegraph is the best way to read and understand code. As a programmer, you spend hours every day trying to answer simple questions like "How do I use this library?", "What functions already exist?", and "What's going on in this changeset?" Sourcegraph makes exploring the world's code as painless as searching and browsing the web. We're a small team founded by Stanford and Palantir alumni. Our users and customers span programmers across the world, influential open-source authors, and major companies. Our technical challenges include scaling code analysis and search to every codebase in the world.
Stack: Go, TypeScript, GraphQL, Docker + Kubernetes
Open roles: * Senior Software Engineer, Core: https://boards.greenhouse.io/sourcegraph/jobs/204608 * Senior Software Engineer, Frontend: https://boards.greenhouse.io/sourcegraph/jobs/655534