$30 off During Our Annual Pro Sale. View Details »

You Might Be a Go Contributor Already and Not Know It

You Might Be a Go Contributor Already and Not Know It

Contributing to Go is more than just writing code for the compiler and standard library. Between other official Go projects, third-party projects, articles, workshops, and conference talks, you can even be a contributor to Go without ever even signing up for a Gerrit account.

Aditya Mukerjee

August 02, 2018
Tweet

More Decks by Aditya Mukerjee

Other Decks in Technology

Transcript

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

    View Slide

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

    View Slide

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

    View Slide

  4. @chimeracoder

    View Slide

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

    View Slide

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

    View Slide

  7. @chimeracoder

    View Slide

  8. …but Go hasn’t won yet
    @chimeracoder

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  12. @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

    View Slide

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

    View Slide

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

    View Slide

  15. 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

    View Slide

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

    View Slide

  17. 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

    View Slide

  18. @chimeracoder

    View Slide

  19. 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

    View Slide

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

    View Slide

  21. 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

    View Slide

  22. 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

    View Slide

  23. 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?

    View Slide

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

    View Slide

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

    View Slide

  26. Contributing to Go by connecting Go programmers together
    @chimeracoder

    View Slide

  27. 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

    View Slide

  28. @chimeracoder

    View Slide

  29. Contributing to Go by writing code
    @chimeracoder

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  34. 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

    View Slide

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

    View Slide

  36. 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

    View Slide

  37. 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

    View Slide

  38. •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

    View Slide

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

    View Slide

  40. We contribute to Go when we lead by example
    @chimeracoder

    View Slide

  41. Thank you!
    Aditya Mukerjee
    @chimeracoder

    View Slide