explaingit

uber-go/guide

Analysis updated 2026-06-24

17,482MakefileAudience · developerComplexity · 1/5Setup · easy

TLDR

Uber's internal style guide for writing Go code, covering error handling, naming, and structural conventions used across their engineering teams.

Mindmap

mindmap
  root((guide))
    Inputs
      Go source code
      Code review questions
    Outputs
      Style rules
      Best practices
      Anti-patterns
    Use Cases
      Team conventions
      Code review reference
      Onboarding new Go devs
    Tech Stack
      Go
      Markdown
      Makefile
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Adopt a proven Go style guide for a new team or project

USE CASE 2

Reference specific conventions during Go code reviews

USE CASE 3

Onboard junior Go developers with concrete examples of good patterns

USE CASE 4

Compare your team's existing conventions against an industry baseline

What is it built with?

GoMarkdownMakefile

How does it compare?

uber-go/guidezh-google-styleguide/zh-google-styleguideashishb/android-security-awesome
Stars17,48210,9859,403
LanguageMakefileMakefileMakefile
Setup difficultyeasyeasyeasy
Complexity1/51/51/5
Audiencedeveloperdeveloperresearcher

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · easy Time to first run · 5min

Documentation only, no install required.

In plain English

This repository contains the Uber Go Style Guide, a written document that describes the coding patterns and conventions used by Uber's engineering team when writing Go code. Go (also called Golang) is a programming language popular for building fast, reliable backend services. A style guide is essentially a rulebook for how code should be written and organized on a team. Rather than each developer making different choices about formatting, naming, and structure, a style guide ensures everyone writes code in a consistent way. Consistent code is easier to read, review, and maintain, especially as teams grow. This guide documents the specific practices Uber uses internally, covering things like best practices for error handling, structuring code, and avoiding common pitfalls in Go. It has been translated into over a dozen languages including Chinese, Korean, Japanese, Spanish, Portuguese, Russian, French, Turkish, and many others, reflecting widespread interest from the global Go developer community. You would use this as a reference when writing Go code and wanting to adopt patterns proven to work at scale in a large engineering organization. It is not a library or tool you install, it is documentation you read. The repository itself is primarily made up of Markdown files (readable text documents) and a Makefile for building the guide.

Copy-paste prompts

Prompt 1
Summarize the Uber Go style guide rules around error wrapping and propagation with code examples
Prompt 2
Refactor this Go function to match the Uber Go style guide naming and structure conventions
Prompt 3
What does the Uber Go guide recommend for receiver names and method conventions
Prompt 4
Generate a PR checklist for Go code review based on the Uber Go style guide
Prompt 5
Compare the Uber Go style guide rules on goroutine management to Google's Go style guide

Frequently asked questions

What is guide?

Uber's internal style guide for writing Go code, covering error handling, naming, and structural conventions used across their engineering teams.

What language is guide written in?

Mainly Makefile. The stack also includes Go, Markdown, Makefile.

How hard is guide to set up?

Setup difficulty is rated easy, with roughly 5min to a first successful run.

Who is guide for?

Mainly developer.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Scan in gitsafehub Deploy in gitdeployhub uber-go on gitmyhub

Verify against the repo before relying on details.