An experience with Golang as a Backend Engineer

An experience with Golang as a Backend Engineer

In the emerging world where apps must be performed fast, process heavy loads of data and build an amazing ecosystem, Golang is at the most forward into the race. It's known for its speed, simplicity and scalability, Golang is helping developers redefine the way you architect the backend services.

In my experience, starting working on Golang after almost a decade with NodeJS and JVM-based languages, was a significant step forward in my coding journey. Coming from a DevOps and automation background, Golang adds a significant focus on how you define the architecture of your project.

The speed

The speed of Golang can be attributed to several factors:

  1. The Compilation Factor: Unlike VM-dependent languages, Golang directly compiles to the binary files. The direct compilation results in faster application development.

  2. Automated Garbage Collection: Golang automatically handles garbage collection, which increases the speed significantly.

  3. Concurrency First: This beautiful language is designed keeping high concurrency in mind. It's an ideal language for implementing data-heavy operations. The lightweight goroutine and channels communicate effectively between program segments, resulting in a highly performant application.

So far in my career, running tests and building took ~5-7 mins for fat products, bringing that down to 3 min was a big achievement and we were okay with it in JVM-based languages. But it took my breadth away to see unit/integration tests took a few seconds to complete those executions.

These factors combined make Golang a highly optimized language, capable of executing tasks quickly and efficiently.

Learning and Development

  1. Fewer Set of Features: Golang has a very minimal set of core features to get the job done, which reduces the learning curve and helps you to onboard as soon as possible.

  2. The Clean Code Approach: Often depending on how you write, writing Golang code is clean and easy to understand. It simplifies debugging and improvement of code written by others.

  3. Inline Documentations: It can be easily documented using docstrings that are simple for beginners to remember.

Due to the above key reasons and plenty of others around learning and development, Golang is now one of the popular choices for building core automation and heavy backend work.

Effective Compiled Language

  1. Easy to Compile: On compilation of the Golang program, it becomes a self-sufficient executable binary. This executable can be run on the targeted system without anything additional.

  2. Performance: Being a compiled language, Golang is much faster than interpreted languages.

  3. Statically Typed: Golang is a statically typed language. It checks each variable at compile-time, which can lead to more efficient code and fewer runtime errors.

What happened when I picked it?

I was super critical and concerned when I picked Golang. Pointers, struct etc and working with super experienced folks working with Golang for 5+ years or more, it's quite challenging to bring myself up to speed. Taking small steps and emptying my past knowledge and restrictions helped me to fall in love with this beautiful language and it's ecosystem.

TDD, clean code, and refactoring while understanding the key features like goroutines, and channels add icing on the cake and that's what makes Golang stand out from other languages.

Conclusion

I was an extreme NodeJS fan when it came to quick development and JVM-based languages for heavy data processing API services until I met Golang. This path crossed during my experiments with terraform providers. However, when I started writing code on Go for Rest APIs, it gave me a different experience and now quite difficult to move back to other languages unless there is a heavy need.

It is a powerful revolutionizing language for backend development. Its speed, simplicity, and scalability make it an excellent choice for developers looking to build efficient and robust applications. Concurrency, garbage collection, network API, and speed, Golang provides a comprehensive toolset for backend development. As we continue to see the rise of Golang in the tech industry, one thing is clear, Golang is an experience that every backend developer wants to have.


Thanks for reading the article. If you are interested in building something exciting together, let's have a chat. You can also find the services that I provide here.