diff --git a/content/contributor-workshop.article b/content/contributor-workshop.article
new file mode 100644
index 0000000..533721c
--- /dev/null
+++ b/content/contributor-workshop.article
@@ -0,0 +1,387 @@
+Contribution Workshop
+9 Aug 2017
+Tags: community
+
+Steve Francia, Cassandra Salisbury, Matt Broberg, Dmitri Shuralyov
+
+* Contribution Workshop
+
+** Event Overview
+
+by [[https://twitter.com/spf13][Steve]]
+
+During the community day at GopherCon, the Go team held two workshops
+where we worked with people to help them make their first contribution to the
+Go project. This was the first time the Go project has ever attempted anything
+like this. We had about 140 participants and about 35 people who volunteered as
+mentors. Mentors not only received warm fuzzy feelings for helping others, but
+also a very stylish Go Mentor trucker hat. We had contributors of all
+ages and experience levels coming from North and South America, Africa, Europe,
+Asia, and Australia. It was truly a worldwide effort of Gophers coming together
+at GopherCon.
+
+One of our reasons for running the workshop was for it to act as a forcing
+function to make us improve our contributor experience. In preparation for the
+workshop, we rewrote our contributor guide, including adding a "troubleshooting"
+section and built a tool `go-contrib-init`, which automated the process of
+setting up a development environment to be able to contribute to Go.
+
+For the workshop itself, we developed a presentation _"Contributing_to_Go,"_
+and a dashboard / scoreboard that was presented during the event. The
+scoreboard was designed to encourage us all to work together towards a common
+goal of seeing our collective score increase. Participants added 1, 2 or 3 points to
+the total score when they performed actions like registering an account, making
+a change list (also known as a CL, similar to a pull request),
+amending a CL, or submitting a CL.
+
+.image contributor-workshop/image17.png
+
+Brad Fitzpatrick, who stayed home from GopherCon this year, was ready and
+waiting to review all CLs submitted. He was so quick to review that many people
+thought he was an automated bot. Internally our team is now calling him
+"BradBot" mostly because we are in awe and a bit jealous.
+
+.image contributor-workshop/image9.jpg
+.image contributor-workshop/image6.png
+
+*** Impact
+
+We had a total of 65 contributions submitted from the people who participated
+in the workshop (within a week of the workshop). Of these, 44 were from
+contributors who had never previously contributed to any of the repos in the Go
+project. Half (22) of these contributions were already merged. Many of the
+others are waiting on the codebase to thaw as we are in the middle of a freeze
+for the upcoming 1.9 release.
+
+The most common type of contribution was an example function to be used in the
+documentation. The [[https://blog.golang.org/survey2016-results][Go User survey]]
+identified that our documentation was significantly lacking examples. In the
+presentation, we asked users to find a package they loved and to add an example. In
+the Go project, examples are written as code in Go files
+(with specific naming) and the `go doc` tool displays them along side the documentation.
+This is a perfect first contribution as it's something that can be merged
+during a freeze, it's of critical importance to our users, and it's an addition
+that has a relatively narrow scope.
+
+One of the examples added is that of creating a Stringer, one of the more
+widely used interfaces in Go.
+[[https://golang.org/cl/49270/][CL 49270]]
+
+In addition to examples, many people contributed critical bug fixes including:
+
+- [[https://golang.org/cl/48988/][CL 48988]] fixing [[https://golang.org/issue/21029][issue #21029]]
+- [[https://golang.org/cl/49050/][CL 49050]] fixing [[https://golang.org/issue/20054][issue #20054]]
+- [[https://golang.org/cl/49031/][CL 49031]] fixing [[https://golang.org/issue/20166][issue #20166]]
+- [[https://golang.org/cl/49170/][CL 49170]] fixing [[https://golang.org/issue/20877][issue #20877]]
+
+Some people even surprised us by arriving with a bug in mind that they wanted
+to fix. Nikhita arrived ready to tackle
+[[https://golang.org/issue/20786][issue #20786]]
+and she did submitting
+[[https://golang.org/cl/48871/][CL 48871]],
+after which she tweeted:
+
+.image contributor-workshop/image19.png
+
+Not only were some great improvements made, but most importantly, we narrowed
+the gap between the core Go team and the broader community members. Many people
+on the Go team remarked that the community members were teaching them things
+about the Go project. People in the community (in person, and on Twitter)
+remarked that felt welcome to participate in the project.
+
+.image contributor-workshop/image12.png
+.image contributor-workshop/image13.png
+.image contributor-workshop/image3.png
+
+*** Future
+
+The event was successful well beyond our expectations. Sameer Ajmani, Go team
+manager said, "The contributor workshop was incredibly fun and educational–for
+the Go team.  We cringed as users hit the rough edges in our process, and
+celebrated when they got up on the dashboard. The cheer when the group score
+hit 1000 was awesome."
+
+We are looking into ways to make this workshop easier to run for future events
+(like meetups and conferences). Our biggest challenge is providing enough
+mentorship so that users feel supported. If you have any ideas or would like to
+help with this process please [[mailto:spf@golang.org][let me know]].
+
+I've asked a few participants of the event to share their experiences below:
+
+** My Contribution Experience
+
+by [[https://twitter.com/cassandraoid][Cassandra]]
+
+When I heard about the go-contrib workshop I was very excited and then I was
+extremely intimidated. I was encouraged by a member of the Go team to
+participate, so I thought what the heck.
+
+As I walked into the room (let's be real, I ran into the room because I was
+running late) I was pleased to see the room was jam-packed. I looked around for
+people in Gopher caps, which was the main indicator they were teachers. I sat
+down at one of the 16 round tables that had two hats and three non-hats.
+Brought up my screen and was ready to roll…
+
+Jess Frazelle stood up and started the presentation and provided the group with
+[[https://docs.google.com/presentation/d/1ap2fycBSgoo-jCswhK9lqgCIFroE1pYpsXC1ffYBCq4/edit#slide=id.g23bf63f132_2_9][a link]]
+to make it easy to follow.
+
+.image contributor-workshop/image16.png
+
+The murmurs grew from a deep undercurrent to a resounding melody of voices,
+people were getting their computers set up with Go, they were skipping ahead to
+make sure their GOPATH was set, and were… wait what's Gerrit?
+
+Most of us had to get a little intro to Gerrit. I had no clue what it was, but
+luckily there was a handy slide. Jess explained that it was an alternative to
+GitHub with slightly more advanced code review tools. We then went through
+GitHub vs Geritt terminology, so we had better understanding of the process.
+
+.image contributor-workshop/image10.png
+
+Ok, now it was time to become a **freaking** *Go* **contributor**.
+
+To make this more exciting than it already is, the Go team set up a game where
+we could track as a group how many points we could rack up based on the Gerrit
+score system.
+
+.image contributor-workshop/image7.png
+
+Seeing your name pop up on the board and listening to everyone's excited was
+intoxicating. It also invoked a sense of teamwork that lead to a feeling of
+inclusion and feeling like you were truly a part of the Go community.
+
+.image contributor-workshop/image11.png
+
+In 6 steps a room of around 80 people were able to learn how to contribute to
+go within an hour. That's a feat!
+
+It wasn't nearly as difficult as I anticipated and it wasn't out of scope for a
+total newbie. It fostered a sense of community in an active and tangible way as
+well as a sense of inclusion in the illustrious process of Go contributions.
+
+I'd personally like to thank the Go Team, the Gopher mentors in hats, and my
+fellow participants for making it one of my most memorable moments at
+GopherCon.
+
+** My Contribution Experience
+
+by [[https://twitter.com/mjbrender][Matt]]
+
+I've always found programming languages to be intimidating. It's the code that
+enables me to write code. Surely smarter people than me should be working on
+it. It feels too distant to touch and too significant for me to edit. So when
+the opportunity to join a workshop to contribute to my new favorite programming
+language came up, I was as excited to see how I could help. A month later, I'm
+now certain that anyone and everyone can (and should) contribute back to Go.
+
+Here are my very verbose steps to go from 0 to 2 contributions to Go:
+
+*** The Setup
+
+Given Go's use of Gerrit, I started by setting up my environment for it. [[https://docs.google.com/presentation/d/1ap2fycBSgoo-jCswhK9lqgCIFroE1pYpsXC1ffYBCq4/edit#slide=id.g1f953ef7df_0_9][Jess Frazzelle's guide]]
+is a great place to start to not miss a step.
+
+The real fun starts when you clone the Go repo. Ironically, you don't hack on
+Go under `$GOPATH`, so I put it in my other workspace (which is ~/Develop).
+
+    cd $DEV # That's my source code folder outside of $GOPATH
+    git clone --depth 1 https://go.googlesource.com/go
+
+Then install the helper tool, `go-contrib-init`:
+
+    go get -u golang.org/x/tools/cmd/go-contrib-init
+
+Now you can run `go-contrib-init` from the folder we cloned above and see
+whether or not we're ready to contribute. If you're following along you're
+definitely not ready yet.
+
+Next, install codereview so you can participate in a Gerrit code review:
+
+    go get -u golang.org/x/review/git-codereview
+
+This package includes `git change` and `git mail` which will replace your
+normal workflow for `git commit` and `git push` respectively.
+
+Okay, installations are out of the way. Now setup your [[https://go-review.googlesource.com/settings/#Profile][Gerrit account here]],
+then [[https://go-review.googlesource.com/settings#Agreements][sign the CLA]] appropriate for
+you (more on choosing a CLA here. For me it was a personal one for all Google
+projects. You can see all CLAs you've signed at
+[[https://cla.developers.google.com/clas][cla.developers.google.com/clas]]).
+
+AND BAM. You're good (to go)! But where to contribute?
+
+*** Contributing
+
+In workshop sent us into the `scratch` repository, which is a safe place to
+fool around in order to master the workflow:
+
+    cd $(go env GOPATH)/src/golang.org/x
+    git clone --depth 1 [[https://go.googlesource.com/scratch][go.googlesource.com/scratch]]
+
+First stop is to `cd` in and run `go-contrib-init` to make sure you're ready to contribute:
+
+    go-contrib-init
+    All good. Happy hacking!
+
+From there, I made a folder, did a `git add -u` then took `git change` for a
+spin. It has what the Go team call the "magic hash", which is the one line you
+shouldn't touch. Other than that, it feels just like `git commit`. Once I got
+the commit message matching the format of `package: description` (description
+begins with a lowercase), I used `git mail` to send it over to Gerrit.
+
+Two good to know things: `git change` also works like `git commit --amend`, so
+if you need to update your patch you can `add` then `change` and it will all
+link to the same patch. Secondly, you can always review your patch from your
+[[https://go-review.googlesource.com/dashboard/][personal Gerrit dashboard]].
+
+After a few back and forths, I officially had a contribute to Go! And if Jaana
+is right, it might be the first with emojis :+1:.
+
+.image contributor-workshop/image15.png
+.image contributor-workshop/image23.png
+
+*** Contributing, For Real
+
+The scratch repo is fun and all, but there's a ton of ways to get into the
+depths of Go's packages and give back. It's at this point where I cruised
+around the many packages available to see what was available and interesting to
+me. And by "cruised around" I mean attempted to find a list of packages, then
+went to my source code to see what's around under the `go/src/` folder:
+
+.image contributor-workshop/image22.png
+
+I decided to see what I can do in the `regexp` package, maybe out of love and
+fear of regex. Here's where I switched to the
+[[https://godoc.org/regexp][website's view of the package]] (it's good to know
+that each standard package can be found at https://godoc.org/$PACKAGENAME). In
+there I noticed that QuoteMeta was missing the same level of detailed examples
+other functions have (and I could use the practice using Gerrit).
+
+.image contributor-workshop/image1.png
+
+I started looking at `go/src/regexp` to try to find where to add examples and I
+got lost pretty quickly. Lucky for me, Francesc was around that day. He walked
+me through how all examples are actually in-line tests in a `example_test.go
+file. They follow the format of test cases followed by "Output" commented out
+and then the answers to the tests. For example:
+
+    func ExampleRegexp_FindString() {
+        re := regexp.MustCompile("fo.?")
+        fmt.Printf("%q\n", re.FindString("seafood"))
+        fmt.Printf("%q\n", re.FindString("meat"))
+        // Output:
+        // "foo"
+        // ""
+    }
+
+Kind of cool, right?? I followed Francesc's lead and added a function
+`ExampleQuoteMeta` and added a few I thought would be helpful. From there it's
+a `git change` and `git mail` to Gerrit!
+
+I have to say that Steve Francia challenged me to "find something that isn't an
+open issue and fix it," so I included some documentation changes for QuoteMeta
+in my patch. It's going to be open for a bit longer given the additional scope,
+but I think it's worth it on this one.
+
+I can hear your question already: how did I verify it worked? Well it wasn't
+easy to be honest. Running `go test example_test.go -run QuoteMeta -v` won't do
+it since we're working outside of our $GOPATH. I struggled to figure it out
+until [[https://medium.com/@vCabbage/go-testing-standard-library-changes-1e9cbed11339][Kale Blakenship wrote this awesome post on testing in Go]].
+Bookmark this one for later.
+
+You can see my completed [[https://go-review.googlesource.com/c/49130/][contribution here]]. What I also hope you see is
+how simple it is to get into the flow of contributing. If you're like me,
+you'll be good finding a small typo or missing example in the docs to start to
+get used to the `git codereview` workflow. After that, you'll be ready to find
+an open issue, ideally one [[https://github.com/golang/go/milestones][tagged for an upcoming release]], and give it a go. No matter
+what you choose to do, definitely go forth and do it. The Go team proved to me
+just how much they care about helping us all contribute back. I can't wait for
+my next `git mail`.
+
+** My Mentorship Experience
+
+by [[https://twitter.com/shurcooL][Dmitri]]
+
+I was looking forward to participating in the Contribution Workshop event as a
+mentor. I had high expectations for the event, and thought it was a great idea
+before it started.
+
+I made my first contribution to Go on May 10th, 2014. I remember it was about
+four months from the moment I wanted to contribute, until that day, when I
+actually sent my first CL. It took that long to build up the courage and fully
+commit to figuring out the process. I was an experienced software engineer at
+the time. Despite that, the Go contribution process felt alien—being unlike all
+other processes I was already familiar with—and therefore seemed intimidating.
+It was well documented though, so I knew it would be just a matter of finding
+the time, sitting down, and doing it. The "unknown" factor kept me from giving
+it a shot.
+
+After a few months passed, I thought "enough is enough," and decided to
+dedicate an entire day of an upcoming weekend to figuring out the process. I
+set aside all of Saturday for doing one thing: sending my first CL to Go. I
+opened up [[https://golang.org/doc/contribute.html][the Contribution Guide]]
+and started following all the steps, from the very top. Within an hour, I was
+done. I had send my first CL. I was both in awe and shock. In awe, because I
+had finally sent a contribution to Go, and it was accepted! In shock, because,
+why did I wait so long to finally do this? Following the steps in
+[[https://golang.org/doc/contribute.html][the Contribution Guide]] was very
+easy, and the entire process went completely smoothly. If only someone had told
+me that I'd be done within an hour and nothing would go wrong, I would've done
+it much sooner!
+
+Which brings me to this event and why I thought it was such a good idea. For
+anyone who ever wanted to contribute to Go, but felt daunted by the unfamiliar
+and seemingly lengthy process (like I was during those four months), this was
+their chance! Not only is it easy to commit to figuring it out by attending the
+event, but also the Go team and helpful volunteer mentors would be there to
+help you along the way.
+
+Despite the already high expectations I had for the event, my expectations were
+exceeded. For one, the Go team had prepared really well and invested a lot in
+making the event that much more enjoyable for everyone. There was a very fun
+presentation that went over all the contributing steps quickly. There was a
+dashboard made for the event, where everyone's successfully completed steps
+were rewarded with points towards a global score. That made it into a very
+collaborative and social event! Finally, and most importantly, they were Go
+team members like Brad Fitzpatrick behind the scenes, helping review CLs
+promptly! That meant the CLs that were submitted received reviews quickly, with
+actionable next steps, so everyone could move forward and learn more.
+
+I originally anticipated the event to be somewhat dull, in that the
+contribution steps are extremely simple to follow. However, I found that wasn't
+always the case, and I was able to use my expertise in Go to help out people
+who got stuck in various unexpected places. It turns out, the real world is
+filled with edge cases. For instance, someone had two git emails, one personal
+and another for work. There was a delay with signing the CLA for the work
+email, so they tried to use their personal email instead. That meant each
+commit had to be amended to use the right email, something the tools didn't
+take into account. (Luckily, there is a troubleshooting section in the
+contribution guide covering this exact issue!) There were other subtle mistakes
+or environment misconfiguration that some people ran into, because having more
+than one Go installation was a bit unusual. Sometimes, the GOROOT environment
+variable had to be explicitly set, temporarily, to get godoc to show changes in
+the right standard library (I was tongue-in-cheek looking over my shoulder to
+check for Dave Cheney as I uttered those words).
+
+Overall, I oversaw a few new gophers make their first Go contributions. They
+sent the CLs, responded to review feedback, made edits, iterated until everyone
+was happy, and eventually saw their first Go contributions get merged to
+master! It was very rewarding to see the happiness on their faces, because the
+joy of making one's first contribution is something I can relate to myself. It
+was also great to be able to help them out, and explain tricky situations that
+they sometimes found themselves. From what I can tell, many happy gophers
+walked away from the event, myself included!
+
+** Photos from the event
+
+.image contributor-workshop/image2.jpg
+.image contributor-workshop/image4.jpg
+.image contributor-workshop/image5.jpg
+.image contributor-workshop/image8.jpg
+.image contributor-workshop/image14.jpg
+.image contributor-workshop/image18.jpg
+.image contributor-workshop/image20.jpg
+.image contributor-workshop/image21.jpg
+
+Photos by Sameer Ajmani & Steve Francia
diff --git a/content/contributor-workshop/image1.png b/content/contributor-workshop/image1.png
new file mode 100755
index 0000000..4985756
--- /dev/null
+++ b/content/contributor-workshop/image1.png
Binary files differ
diff --git a/content/contributor-workshop/image10.png b/content/contributor-workshop/image10.png
new file mode 100755
index 0000000..34693fc
--- /dev/null
+++ b/content/contributor-workshop/image10.png
Binary files differ
diff --git a/content/contributor-workshop/image11.png b/content/contributor-workshop/image11.png
new file mode 100755
index 0000000..7925273
--- /dev/null
+++ b/content/contributor-workshop/image11.png
Binary files differ
diff --git a/content/contributor-workshop/image12.png b/content/contributor-workshop/image12.png
new file mode 100755
index 0000000..457b102
--- /dev/null
+++ b/content/contributor-workshop/image12.png
Binary files differ
diff --git a/content/contributor-workshop/image13.png b/content/contributor-workshop/image13.png
new file mode 100755
index 0000000..b6b3b75
--- /dev/null
+++ b/content/contributor-workshop/image13.png
Binary files differ
diff --git a/content/contributor-workshop/image14.jpg b/content/contributor-workshop/image14.jpg
new file mode 100644
index 0000000..78e35f4
--- /dev/null
+++ b/content/contributor-workshop/image14.jpg
Binary files differ
diff --git a/content/contributor-workshop/image15.png b/content/contributor-workshop/image15.png
new file mode 100755
index 0000000..6bd638c
--- /dev/null
+++ b/content/contributor-workshop/image15.png
Binary files differ
diff --git a/content/contributor-workshop/image16.png b/content/contributor-workshop/image16.png
new file mode 100755
index 0000000..83e6919
--- /dev/null
+++ b/content/contributor-workshop/image16.png
Binary files differ
diff --git a/content/contributor-workshop/image17.png b/content/contributor-workshop/image17.png
new file mode 100755
index 0000000..3109972
--- /dev/null
+++ b/content/contributor-workshop/image17.png
Binary files differ
diff --git a/content/contributor-workshop/image18.jpg b/content/contributor-workshop/image18.jpg
new file mode 100644
index 0000000..41a62d0
--- /dev/null
+++ b/content/contributor-workshop/image18.jpg
Binary files differ
diff --git a/content/contributor-workshop/image19.png b/content/contributor-workshop/image19.png
new file mode 100755
index 0000000..e5c3470
--- /dev/null
+++ b/content/contributor-workshop/image19.png
Binary files differ
diff --git a/content/contributor-workshop/image2.jpg b/content/contributor-workshop/image2.jpg
new file mode 100644
index 0000000..e78605c
--- /dev/null
+++ b/content/contributor-workshop/image2.jpg
Binary files differ
diff --git a/content/contributor-workshop/image20.jpg b/content/contributor-workshop/image20.jpg
new file mode 100644
index 0000000..c477609
--- /dev/null
+++ b/content/contributor-workshop/image20.jpg
Binary files differ
diff --git a/content/contributor-workshop/image21.jpg b/content/contributor-workshop/image21.jpg
new file mode 100644
index 0000000..155ea69
--- /dev/null
+++ b/content/contributor-workshop/image21.jpg
Binary files differ
diff --git a/content/contributor-workshop/image22.png b/content/contributor-workshop/image22.png
new file mode 100755
index 0000000..8460e56
--- /dev/null
+++ b/content/contributor-workshop/image22.png
Binary files differ
diff --git a/content/contributor-workshop/image23.png b/content/contributor-workshop/image23.png
new file mode 100755
index 0000000..2cd5e53
--- /dev/null
+++ b/content/contributor-workshop/image23.png
Binary files differ
diff --git a/content/contributor-workshop/image3.png b/content/contributor-workshop/image3.png
new file mode 100755
index 0000000..4374122
--- /dev/null
+++ b/content/contributor-workshop/image3.png
Binary files differ
diff --git a/content/contributor-workshop/image4.jpg b/content/contributor-workshop/image4.jpg
new file mode 100644
index 0000000..b2a1783
--- /dev/null
+++ b/content/contributor-workshop/image4.jpg
Binary files differ
diff --git a/content/contributor-workshop/image5.jpg b/content/contributor-workshop/image5.jpg
new file mode 100644
index 0000000..ef198e8
--- /dev/null
+++ b/content/contributor-workshop/image5.jpg
Binary files differ
diff --git a/content/contributor-workshop/image6.png b/content/contributor-workshop/image6.png
new file mode 100755
index 0000000..7ed45f4
--- /dev/null
+++ b/content/contributor-workshop/image6.png
Binary files differ
diff --git a/content/contributor-workshop/image7.png b/content/contributor-workshop/image7.png
new file mode 100755
index 0000000..60edd58
--- /dev/null
+++ b/content/contributor-workshop/image7.png
Binary files differ
diff --git a/content/contributor-workshop/image8.jpg b/content/contributor-workshop/image8.jpg
new file mode 100644
index 0000000..a5eb553
--- /dev/null
+++ b/content/contributor-workshop/image8.jpg
Binary files differ
diff --git a/content/contributor-workshop/image9.jpg b/content/contributor-workshop/image9.jpg
new file mode 100644
index 0000000..abe4d44
--- /dev/null
+++ b/content/contributor-workshop/image9.jpg
Binary files differ
