GoTo meetup recap - #GoTurns10 edition
Nov 2019    |    toronto     go meetup     golang     goturns10    

The language that promised to make us programming again, Go, celebrated a milestone on November 2019.

Marking 10 years since it was initially announced to the world: Hey! Ho! Let’s Go!

Read more here from the official Go Blog: Go Turns 10

The Go Toronto meetup has been running on and off for many years since ~2013. Big shoutout, again, to Tim and Zach for keeping the lights on.

If you’re curious, new to programming or just exploring Go this is a friendly and open place for everyone, regardless of skill level, so come join. Want to read a good code of conduct that’s actually down-to-earth and embodies what we strive for, see Go Community Code of Conduct

Curious? Check out the meetup page and the GoTO notion page.


Location & Sponsors

To mark this milestone, we put together a “special” GoTo meetup. Big thanks to Pivotal for hosting / pizza and CrowdRiff for funding swag and cake.

pssttt… not only were the cakes gorgeous, but they were tasty as f*ck.

In addition to all the yummy goodness, there were stickers, plush gophers and a whole load of fun. We try our best to make this and all other events memorable for the community. We don’t gather often, so let’s go make the best of it :)



Speakers

The first speaker was Mike Fridman. Slides found here.

Go by the numbers: a Public source code adventure

I love interacting with the GitHub API and collecting data. So any opportunity, for work or personal, I’ll do it. This was personal.

The idea was to collect metadata, and eventually clone, all publicly available Go repos (500k !) and do some interesting stuff. Briefly,

  • plot number of repos created by year
  • a timeline, plotting some of the more popular repos for each year
  • finding interesting golang/go issues based on the intersection of:
  • topic modelling repo descriptions on AWS Comprehend, using LDA (latent dirichlet allocation) algorithm
  • top imports of third-party and std library packages, and other fun facts about source code (parsing/AST of package imports & comments)
  • “committed gratitude”. What are the top stack overflow URLs, and answers, in source code. No shame, we’ve all done it

I was inspired by Cameron Davidson-Pilon who did a similar talk at PyCon Sunday Morning Keynote some years back.

Lastly, thanks to Ellen and @egonelbre for awesome artwork.


The second speaker was Kelvin Li. Slides found here

Lessons learned while mentoring others in Go

This was an interesting talk about mentoring others, the slides are really well laid out and speak for themselves. I’ll keep it brief and highlight the summary slide:

  • Listen carefully. Identify specific goals
  • Standardize intent instead solutions
  • Empathy

The main take away for me was there isn’t a single recipe for mentoring others. It takes time and patience. One shouldn’t always teach best practices without context. Lastly, it helps when there is a specific goal both mentor and mentee work towards.


The third speaker was William Damon. Slides found here.

How to Use Interfaces to make SOLID APIs

This talk walked us through, with examples, of SOLID design principles and how they can be applied to building APIs. Why? Maintainable code. But, do keep in mind that these aren’t laws, these aren’t perfect truths.. it is merely good advice.

  • Single responsibility
  • Open–closed
  • Liskov substitution
  • Interface segregation
  • Dependency inversion

It’s beyond the scope of this recap to go into detail. But I do recommend you check out William’s talk and the following resources I’ve historically found useful on the topic:

Original paper and the follow up by Martin.

An excellent talk by Sandi from a Ruby conference: SOLID Object-Oriented Design

And lastly, a talk given at Golang UK by Dave: SOLID Go Design