Meetup - Nov 2019 #goturns10

Recap of GoTO tech talk meetup in November 2019. Special goturns10 edition.

Meetup - Nov 2019 #goturns10
GoTO meetup - folks answering a trivia question.

The language that promised to make us ❤️ programming again, Go, celebrated a milestone in November 2019. Marking 10 years since it was initially announced to the world: Hey! Ho! Let's Go!.

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

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

If you're new to programming, exploring Go or simply curious 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.


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 +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

🎙️
Go by the numbers: a Public source code adventure
Mike Fridman • Slide found here

I love interacting with the GitHub API and collecting data. So any opportunity, for work or personal, I'll do it. The idea was to collect metadata, and eventually, clone, all publicly available Go repositories (500k !) and do some interesting analysis:

  • 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:
    - top issues by GitHub reactions, i.e., NoPlusOne   sadf
    - top issues by controversial comments, inspiration drawn from An algorithm to sort "Top" comments
    - sentiment analysis of comments, run on AWS Comprehend and GCP Natural Language
  • 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 the 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.

🎙️
Lessons learned while mentoring others in Go
Kelvin Li • Slide found here

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

🎙️
How to Use Interfaces to make SOLID APIs
William Damon • Slide found here

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:

Design Principles and Design Patterns and a follow-up by the same author.

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.