Interview: Speaker Niket Patel

Niket Patel

Qs. Welcome and thanks for taking out time to share your thoughts. For the benefit of the readers, could you tell us something about your-self?

Niket: Thanks for having me!

I’m working at Beehively as Chief Technologist. We develop web applications for schools such as, communications platform, online directories, attendance, gradebooks and report card etc. I have been developing web applications professionally since past 9 years.

Qs. Why and when did you decide to start working with Go?

Niket: I had explored Go initially when it launched and found interesting enough to keep coming back periodically – mainly watching progress and playing with language more and more. In early 2012 we needed to deliver lots of messages (Voice, SMS) very very quickly with lower RAM usage than we were consuming. At that point I thought to give Go a serious try.

Did small Proof of Concept in Go and it worked extremely well. This time I was pleasantly surprised by tooling around Go. Biggest thing for me was ease of deployment, after deploying first Go service I didn’t want to deploy another Ruby App.

Qs. How should one go about learning the Go language? What material (books, eBooks, online tutorials etc.) would you recommend?

Niket: I’m still learning but I can tell what worked for me so far. I followed “Learning Go” specifically went through “Effective Go” multiple times, wrote twitter client with command line and web interface. Then watched all screencasts and presentation I could find. If you can’t watch them all, I will highly recommend “Go concurrency patterns by Rob Pike”, “Concurrency is not parallelism by Rob Pike”, “Go: code that grows with grace by Andrew Gerrand”, “Advanced Go Concurrency Patterns by Sameer Ajmani”

Most of the Go books are still under progress. Few books I know/own:

Qs. What best practices are most important for a new Go programmer to learn and understand?

Niket: Read “Effective Go” when in doubt. Find example uses of interfaces in go standard lib, Interfaces are the most important to master followed by concurrency primitives.

Qs. What are the pros and cons of Go that are being discussed in the development community and what is your opinion on that?

Niket: I will prefer to work in Go then read debates on Go. In my opinion, Go is extremely useful in solving certain class of problems and very general purpose language to add to your stack even if you don’t have those certain class of problems.

Qs. Most beginners in Go would like to contribute their time, skills and expertise to a project but invariably are unaware of where and how to do so. Could you suggest some?

Niket: One should find projects of their interest and contribute to that instead of trying to contribute to popular projects. Pick from https://github.com/trending?l=go or from projects you actually happen to use.

I spend my free time on tools I want to build like Samay or extract out lib common between projects at work https://github.com/nexneo/easyreq.

Qs. What has been your biggest challenge while working with Go?

Niket: The language itself is very small and the community is great, so the most challenging part was convincing myself and my team to add another language to the stack. I think it was worth it; had a low learning curve, less risky than most other options.

Qs. What types of applications are currently being developed in Go and what changes do you foresee over the next year or two?

Niket: DevOps, Infrastructure and Database projects have started to use Go heavily but I think it’s suitable for any project where you want to build long term solutions and don’t mind 10-20% extra development time (over dynamic languages). It’s a great language for any kind of backend.

My personal favorite area is backend services.

Qs. How do you see the market for Go Programmers in the work place? What is the future for Go?

Niket: I think any single language expertise is overrated. For example, it’s very hard to be Pro in web apps and native desktop/mobile apps at the same time, but not at all hard to use multiple languages effectively. So it’s no brainier to be a Go programmer along with any other language(s) you already know.

As for the future of Go, I think it’s way past break-even point and growing exponentially for all the good reasons.

Qs. Do you have any other suggestions for our readers?

Niket: If you want to spend your time (or money) on any single technology today, spend it on Go. But I think everyone knows that already, don’t they! :)

Thanks Niket for sharing your views with us. I am confident that your insights would help all the would-be Go programmers. In case you have any queries and/or questions, kindly post your questions here (as comments to this blog post) and Niket would be glad to answer.


← Back to blog home
comments powered by Disqus