Slide 1

Slide 1 text

You Might Be A Go Contributor Already And Not Know It Aditya Mukerjee Observability Engineer at Stripe @chimeracoder

Slide 2

Slide 2 text

It’s not about becoming a contributor to Go @chimeracoder It’s about making contributions to Go

Slide 3

Slide 3 text

Why do people not contribute to Go? •Not sure where to start •Don’t feel qualified •Lack of time @chimeracoder

Slide 4

Slide 4 text

@chimeracoder

Slide 5

Slide 5 text

@chimeracoder The Go programming language is an open source project to make programmers more productive.

Slide 6

Slide 6 text

Contributing to Go means contributing to the success of the Go programming language and mission @chimeracoder

Slide 7

Slide 7 text

@chimeracoder

Slide 8

Slide 8 text

…but Go hasn’t won yet @chimeracoder

Slide 9

Slide 9 text

“How could programmers be more productive?” @chimeracoder Any answer that involves Go is a contribution to Go

Slide 10

Slide 10 text

What are the biggest obstacles to Go’s success? @chimeracoder

Slide 11

Slide 11 text

We’ve passed an inflection point – what skills will we need now? @chimeracoder

Slide 12

Slide 12 text

@chimeracoder Knowledge of how Go is used in companies of different sizes Logistics and event planning Isolating reproducible failures Presentation and public speaking Writing, editing, and publishing technical content Teaching and mentorship Graphical design Marketing Community management Knowledge of compiler design and architecture

Slide 13

Slide 13 text

Contributing to Go is an investment in your own personal development @chimeracoder

Slide 14

Slide 14 text

How do I leverage these skills to contribute to Go? @chimeracoder How can I improve my skills as a developer by contributing to Go?

Slide 15

Slide 15 text

Leveraging your skills to contribute to Go •Helping other Go programmers solve problems •Sharing your experience, knowledge, or perspectives on Go •Connecting Go programmers together •Writing Go code @chimeracoder

Slide 16

Slide 16 text

Contributing to Go by helping other Go programmers solve problems @chimeracoder

Slide 17

Slide 17 text

Slack, IRC, Stack Overflow, mailing list, help forums •Answering questions on Stack Overflow helps others •But asking questions on Stack Overflow helps others too! @chimeracoder

Slide 18

Slide 18 text

@chimeracoder

Slide 19

Slide 19 text

Mailing list and Github issues •If you’re wondering, “is this an actual bug or not”, it’s worth asking •If the replies are terse, it’s not personal! @chimeracoder

Slide 20

Slide 20 text

Contributing to Go by sharing experience, knowledge, or perspectives on Go @chimeracoder

Slide 21

Slide 21 text

If you’ve ever felt frustrated by something in Go, you have an experience. So report it! @chimeracoder Experience reports describe problems that people have experienced

Slide 22

Slide 22 text

Writing an experience report 1. Describe what you wanted to do 2. Say what you actually did 3. Explain why that wasn’t great, using concrete examples from production @chimeracoder

Slide 23

Slide 23 text

If you’ve ever… •… debugged a tough bug in Go •… encountered a funny problem in a Go program •… helped a friend solve an issue in Go •… debated Go code patterns and style with a coworker @chimeracoder …why not write about it?

Slide 24

Slide 24 text

Writing is not about being right @chimeracoder Writing is about engaging in the process of exploration

Slide 25

Slide 25 text

Writing about Go helps us know what makes Go code good @chimeracoder

Slide 26

Slide 26 text

Contributing to Go by connecting Go programmers together @chimeracoder

Slide 27

Slide 27 text

Organize a local Meetup •Contact GoBridge, GopherCon, and other nearby organizers •Co-host events with other local developer meetups •Host a GoBridge event, or help out with one @chimeracoder

Slide 28

Slide 28 text

@chimeracoder

Slide 29

Slide 29 text

Contributing to Go by writing code @chimeracoder

Slide 30

Slide 30 text

Over the next 5-10 years, most of the code that advances the mission of Go will be written outside the standard library. @chimeracoder

Slide 31

Slide 31 text

Make a commitment today: open-source the next utility library you write @chimeracoder

Slide 32

Slide 32 text

But someone has to write code for the compiler and standard library …right? @chimeracoder

Slide 33

Slide 33 text

But someone has to write code for the compiler and standard library …right? @chimeracoder Go Project

Slide 34

Slide 34 text

The Go Project is not a monolith build - continuous build and release infrastructure crypto - additional cryptography libraries exp - experimental code image - additional imaging packages mobile - libraries for Go on iOS and Android sys - low-level interactions with the operating system net - additional networking packages tools - tooling such as godoc, goimports, vet, cover, etc. … and much more @chimeracoder

Slide 35

Slide 35 text

There are over six hundred packages in the Go Project that are not part of the standard library or compiler @chimeracoder

Slide 36

Slide 36 text

Getting started •Use go-contrib-init to sign the CLA, set up codereview, and git aliases •The contribution guide provides a comprehensive overview •The contribution workshops this afternoon will guide you through it @chimeracoder

Slide 37

Slide 37 text

Ideas for Contributing to the Go Project Repositories • Submit examples • Augment documentation (if you’ve ever been confused, that’s a problem!) • Look at open issues •…or even https://dev.golang.org/imfeelinglucky • Try running on obscure architectures and OSes @chimeracoder

Slide 38

Slide 38 text

•Helping other Go programmers solve problems •Sharing your experience, knowledge, or perspectives on Go •Connecting Go programmers together •Writing Go code @chimeracoder Four Pillars of Contributing to Go

Slide 39

Slide 39 text

It’s not about becoming a contributor to Go @chimeracoder It’s about making contributions to Go

Slide 40

Slide 40 text

We contribute to Go when we lead by example @chimeracoder

Slide 41

Slide 41 text

Thank you! Aditya Mukerjee @chimeracoder