diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index cc1c1d4..85ed4df 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -1,35 +1,98 @@
 # Contributing
 
-1. Sign one of the contributor license agreements below.
-1. `go get golang.org/x/review/git-codereview` to install the code reviewing
-tool.
-    1. You will need to ensure that your `GOBIN` directory (by default
-    `$GOPATH/bin`) is in your `PATH` so that git can find the command.
-    1. If you would like, you may want to set up aliases for git-codereview,
+1. [Install Go](https://golang.org/dl/).
+    1. Ensure that your `GOBIN` directory (by default `$(go env GOPATH)/bin`)
+    is in your `PATH`.
+    1. Check it's working by running `go version`.
+        * If it doesn't work, check the install location, usually
+        `/usr/local/go`, is on your `PATH`.
+
+1. Sign one of the
+[contributor license agreements](#contributor-license-agreements) below.
+
+1. Run `GO111MODULE=off go get golang.org/x/review/git-codereview` to install
+the code reviewing tool.
+
+    1. Ensure it's working by running `git codereview` (check your `PATH` if
+    not).
+
+    1. If you would like, you may want to set up aliases for `git-codereview`,
     such that `git codereview change` becomes `git change`. See the
     [godoc](https://godoc.org/golang.org/x/review/git-codereview) for details.
-    1. Should you run into issues with the git-codereview tool, please note
-    that all error messages will assume that you have set up these aliases.
-1. Get the cloud package by running `go get -d cloud.google.com/go`.
-    1. If you have already checked out the source, make sure that the remote
-    git origin is https://code.googlesource.com/gocloud:
+
+        * Should you run into issues with the `git-codereview` tool, please note
+        that all error messages will assume that you have set up these aliases.
+
+1. Change to a directory of your choosing and clone the repo.b
+
+    ```
+    cd ~/code
+    git clone https://code.googlesource.com/gocloud
+    ```
+
+    * If you have already checked out the source, make sure that the remote
+    `git` `origin` is https://code.googlesource.com/gocloud:
 
         ```
+        git remote -v
+        # ...
         git remote set-url origin https://code.googlesource.com/gocloud
         ```
 
-1. Make sure your auth is configured correctly by visiting
-https://code.googlesource.com, clicking "Generate Password", and following the
-directions.
-1. Make changes and create a change by running `git codereview change <name>`,
-provide a commit message, and use `git codereview mail` to create a Gerrit CL.
-1. Keep amending to the change with `git codereview change` and mail as your
-receive feedback. Each new mailed amendment will create a new patch set for
-your change in Gerrit.
-    - Note: if your change includes a breaking change, our breaking change
+    * The project uses [Go Modules](https://blog.golang.org/using-go-modules)
+    for dependency management See
+    [`gopls`](https://github.com/golang/go/wiki/gopls) for making your editor
+    work with modules.
+
+1. Change to the project directory:
+
+    ```
+    cd ~/code/gocloud
+    ```
+
+1. Make sure your `git` auth is configured correctly by visiting
+https://code.googlesource.com, clicking "Generate Password" at the top-right,
+and following the directions. Otherwise, `git codereview mail` in the next step
+will fail.
+
+1. Make changes then use `git codereview` to create a commit and create a Gerrit
+CL:
+
+    ```
+    git codereview change <name>
+    # Make changes.
+    git add ...
+    git codereview change
+    git codereview mail # If this fails, the error message will contain instructions to fix it.
+    ```
+
+    * This will create a new `git` branch for you to develop on. Once your
+    change is merged, you can delete this branch.
+
+1. As you make changes for code review, ammend the commit and re-mail the
+change:
+
+    ```
+    # Make more changes.
+    git add ...
+    git codereview change <name>
+    git codereview mail
+    ```
+
+    * **Warning**: do not change the `Change-Id` at the bottom of the commit
+    message - it's how Gerrit knows which change this is (or if it's new).
+
+    * When you fixes issues from code review, respond to each code review
+    message then click **Reply** at the top of the page.
+
+    * Each new mailed amendment will create a new patch set for
+    your change in Gerrit. Patch sets can be compared and reviewed.
+
+    * **Note**: if your change includes a breaking change, our breaking change
     detector will cause CI/CD to fail. If your breaking change is acceptable
-    in some way, add BREAKING_CHANGE_ACCEPTABLE=<reason> to cause the
-    detector not to be run and to make it clear why that is acceptable.
+    in some way, add a `BREAKING_CHANGE_ACCEPTABLE=<reason>` line to the commit
+    message to cause the detector not to be run and to make it clear why that is
+    acceptable.
 
 ## Integration Tests
 
