When co-founder and CTO Tim Jenkins announced we have adopted Go as our primary development language, I was super excited. I had already signed up to attend the first-ever Golang conference and had created a Go library for SendGrid. It turns out I wasn’t the only one in the company looking forward to using the language. The list of people from SendGrid attending Gophercon quickly grew to 28. If you took pictures at the event, chances are a ‘Gridder was somewhere in the background (including the photo below by Phil Sorber).
I had an amazing time at GopherCon. Being surrounded by talented engineers doing great things always humbles me. I had
the opportunity to geek out with very smart people in the Go community. It probably doesn’t get better than that. In fact, I’m addicted to it now. If you have a Go Meetup in your town, I’d be down to participate. Hit me up at @elbuo8.
As I debriefed with my co-workers, it turned out we all had some big takeaways from the conference. Here are some of my favorite extracts from an internal email chain that’s been on fire since the event:
- Rob Pike’s statement: “The language is way too young for people to claim this is the right way or this is the wrong way.” (Vasko)
- One comment during the conference that stood out to me was: “Don’t use channels in performance critical paths.” (Matthew)
- Robert Griesemer’s tip about preventing others from implementing your interface by including an unexported method in your interface. (Vasko)
- The negative performance impact of using the defer keyword vs. manually cleaning up stuff on function exit. (Shane)
For me, Peter Bourgon’s best practices for production environments talk served as a validation of the practices we have adopted. He also contributed some bits and pieces which we can integrate into our development process quite easily.
This is just a taste of the excitement throughout SendGrid about the Go language. If you’re also excited about Go, we are hiring Go engineers.