Interview: Gopher Vivek Bagade

Vivek Bagade

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?

Vivek: I am a graduate from NIT Warangal currently working as a Research and Development Engineer at Directi. More specifically, the Media.net division which serves contextual advertisements to customers like Yahoo, Forbes, Hearst Corporation etc. I manage highly scalable and highly available systems (we get more than a billion impressions every week). My focus is on improving the architecture of our setup.

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

Vivek: I work with a architecture which handles a ridiculous amount of QPS. Initially, I started looking into Go, 15 months back from a personal stand point but more recently I’ve been advocating the use of Go into our existing architecture. More specifically, I want to replace our Node.js setup with Go as it fits perfectly with our use case.

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

Vivek: Starting and finishing tour.golang.org is a good idea. Further, these videos are must watch.

  1. http://vimeo.com/53221558
  2. http://vimeo.com/53221560
  3. http://vimeo.com/49718712
  4. http://www.youtube.com/watch?v=f6kdp27TYZs
  5. https://www.youtube.com/watch?v=QDDwwePbDtw

They give a basic understanding of Go’s philosophy. Additionally, Caleb Dosxey’s An Introduction to Programming in Go is a good starter.

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

Vivek: Briefly, don’t code Go like you would in Java (or any other OOPS). Go has some design patterns that need to be followed for coding optimally. Learning them is essential.

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

Vivek: I’ll try to look at this question from an industry standpoint. Pros:

Cons:

My personal opinion? I believe the pros outweigh cons in the long run and the cons I listed will perish soon enough.

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?

Vivek: There are a lot. In my opinion:

are some of them.

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

Vivek: After working with OOPS languages for most of my career, adhering to non object-oriented, concurrent design patterns is the biggest challenge. Lack of some pretty obvious libraries is another. When I started experimenting, there was no mssql driver library for Go, likewise, no UI toolkit either.

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

Vivek: As for now, mostly distributed systems architectures and high QPS systems are being written in Go. I believe we can see Go replacing common platforms like Java JBoss Netty soon as we get a better influx of trained Go developers. I can’t see it replacing ML languages as there are no inherent algebraic constructs. But, it can also replace languages like python for use by system-admins monitoring distributed systems.

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

Vivek: Ofcourse, a lot of organisations have already migrated from Node.js to Go. I am strongly advocating Go’s use in my company’s system. The future for Go is bright and it can penetrate all use cases involving high performance architectures.

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

Vivek: I personally know a lot of people who do not want to commit to Go as they view it as just another fancy language. I strongly believe the contrary, that, Go is in it for the long haul. I advise the readers to embrace Go now and commit to it as soon as possible. I also advise the readers who have done this already to contribute to the community. Go community is building fast but still needs a lot of help building and contributing to libraries. This is a win-win situation as contributing to open source projects hones your personal skills and also helps the community.

Thanks Vivek 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 Vivek would be glad to answer.


← Back to blog home
comments powered by Disqus