I had the opportunity to attend GopherCon India 2016. This post contains my takeaway points from most of the sessions. I have done my best to include the links to each of the presentations and could be missing some but I will update them as the speakers put them up on various media.

My journey started with the Go Workshop that was held a day before the 2-day conference. The Go Workshop was a 1-day program for introduction to the language. Around 20+ people were present at the workshop and our instructor was Cory LaNou. We did our best to cover as much material as is feasible in a day with a focus on Core Language features and some hands-on exercises. If you are interested in the topics and material, Ardan Labs, the parent organization behind the Go Lang Training has made it available to everyone. Check out what we did in 1-day. A big thank you to Aerospike who provided the space and managed the logistics for us. While I am familiar with Go, I still chose to attend this workshop to better understand it, learn some nuances and see how it is delivered. The big takeaway for me was the solid depth that Cory brought to the workshop by giving us practical examples of how they use some of the Go language features at InfluxDB, where he works. That really helped a lot of us put things in the right context.

The next 2 days was the actual Gophercon, held at Taj Vivanta in Bangalore. Here is a recap of several talks:

Day 1

The opening keynote was by Brad Fitzpatrick, who does not need any introduction. I have always tracked what he has done (since Camlistore on App Engine) and for me, his membership in the Go Core Team gives me a lot of confidence. I was at Google IO 2014 when he was presenting sessions on Go and I was mostly attending Dart talks then. Sorry Brad, I was debating between Dart and Go then and sided with Dart. I think the turning point for me was Andrew Gerrand throwing the Gopher toy at me. I knew that was a sign !

Brad started his talk with a history of Go and where the language stands today. Please check out the presentation slides. The big takeway from his talk was the focus of the core language team to create a solid base for others to create applications on. I liked the focus on not bringing in features/frameworks that are not needed in the language. The punch line came at the end and set the tone “Go 1.x — Solid foundation to build upon. Excitement can be found upstairs”.

The next 2 talks from Aditya Mukherjee and Aaron Cruz was on one of the most important feature of Go Lang : Interfaces. They showed us tips and recommendations on how we should be using interfaces. Takeway point for me here was to look at more standard library interfaces, see how they are designed and understand them better.

The next 3 talks were a mix around State of Go on Mobile, Mobile Gaming (more of backend APIs in Go powered iOS and Android games). I was more interested in understanding how far Go has reached on Mobile, after a few experiments that I conducted using Go Mobile last year. I particularly like the fact that I can use a Go Library across my Android and iOS projects. From a practical side of things, I think it is easier said than done since this is a very initial set of things that are working and no support is provided for it too. This talk was delivered by Hana Kim from the Go Mobile Team and she demonstrated an Android app that wrapped Go functionality. Things look promising and something that should see some solid progress this year.

After the lunch break, we had Karthic Rao, who gets the award for sheer energy and passion that he brought into his talk. He rocked the stage with a call to all developers to use Go Testing, Benchmarking and Profiling tools on a daily basis. He demonstrated code along with profiling techniques and his entire talk with more text and code is available in this Medium Article. Do not miss this article.

The next set of talks were around middleware in Go Language and it was interesting to learn about a Microservices Framework in Go named Gilmour by Piyush Verma. I asked Piyush at the end of the day about the origins of the name Gilmour. He said that the framework has been inspired by Sinatra (from Ruby land) and he does not like Frank Sinatra. Instead he likes David Gilmour (Pink Floyd) and hence the name Gilmour. All hail Pink Floyd! Here is his presentation. Shiju Varghese presented a talk titled “HTTP Middleware in Go”. Uttam Gandhi presented a talk on writing REST APIs in Go.

We ended the day with a couple of talks around Testing in Go. I think it sent the message across clearly that Testing is important in Go, it is key differentiator for the language because of the number of tools and ease with which you can incorporate it into your daily developer workflow. One of the speakers, Gabriel Aszalos made a good observation “If it is difficult to test, you are probably doing it wrong!”

Day 1 was actually not over. What followed were 5-minute lightning talks (I lost count of how many but I think around 10–15 of them). Developers described their first experience with Go, some projects using Go, how they are using Go and more. What I particularly liked was the enthusiasm that they had for the language and it would be safe to assume that some of these folks could well be the next speakers in a future GopherCon, if they continue that trend.

Day 2

The day kicked off with one of the best keynote speeches that I have ever heard both for its content and humor. Mark Bates nailed it with his talk titled “Fighting FUD”. I am assuming that when the videos are listed for the conference, this is one video that you should check out for its presentation style and content. Mark covered a few areas in Go that usually get bashed by people who are not Go programmers and how we can address it in a more humane and of course technical response.

The next session was by Smita Vijayakumar. She heads the first Women Who Go chapter in India (Bangalore). She talked about the Context package in Go and how it could be useful for distributed logging and processing.

Next up was Sau Sheong, who covered “Programming Complexity”. The talk was very interesting and he demonstrated simulations using Go as the backend and a ReactJS front-end. A presentation like this can trigger so many ideas and alternate places that we could use Go in. Check out his Presentation and code.

Then we had Marcel Van Lohuizen, who talked about handling real world Text in Go. The talk was a bit complex for me to follow and I thank Marcel and his team who will do a lot of heavy lifting behind the scenes, especially when dealing with internationalization and localization.

Audrey Lim covered Gopher Tricks in production. I particularly liked this talk for its practical tips around logging, error handling, redacting data and more. Check out the presentation.

We then had a few talks on How Digital Ocean uses Go, IPFS Protocol and an interesting talk by Sathish VJ on how a language choice matters in the current world of software development. He demonstrated how Go is able to seamlessly take advantage of multi-core processors in our machines, thereby making use of the hardware resources that we have. You can find a Medium post on that here.

Then we had talks by Aerospike on their Stream Processing Framework and talk by Karan Misra who shared his experience of using Go on App Engine. It was interesting to see the tradeoffs and workarounds that they had to go through to make things work for them finally. When I heard Managed VMs, I was like … hmmm — he actually put that in production! But then his talk clarified it. Karan also introduced the for-select-blah-blah pattern in concurrent Go.

The final Tech Talk was by AB Periasamy of Minio. Minio is an Open Source Object Server that is compatible with S3. I have been trying it out the last week or so and I love it for its simplicity, ease of setup and the fact that it works. I believe that it has a lot of use cases that what it usually mentions but more on that in another blog post. Here are the slides from the talk.

And finally, the closing keynote was delivered by Cory Lanou. It was a great way to end the conference, where Cory clearly articulated how we could all get involved with the Go Community and contribute to it in multiple ways. He laid out multiple avenues via Meetups, Trainings, Teaching Assistants, Sponsorships, Blogging, etc. that we can contribute towards.

A Big Thanks to everyone involved with Gophercon India 2016 : Organizers, Speakers, Sponsors and Participants.

Like all good things, Gophercon India conference came to an end. But I am not disappointed that it ended. I am sure that it’s not just me but most of the participants of the conference, who felt that the Go Community in India, while very young, has taken the right steps to keep moving forward. I can’t wait to begin contributing more to the community. I would like to end this blog post with what Cory LaNou mentioned in his closing keynote … “There are so many ways in which YOU can contribute” ….

P.S: I might have missed out on some presentations, so if you attended GopherCon India and have the links with you, please share that in the comments. Once the videos are up, I will try and link to those too. And by the way, check out the GopherCon India Twitter steam too!