Notable Companies Using Golang

Page content

Introduction

Greetings for the day Infected Engineers!!

Golang has gained immense popularity over the years due to its ease of use, speed and reliability. It has become favourite among developers and is widely used in the industry. In this blog post we will look at some notable companies that use Go and explore why it has become so popular.

1. Google

As the creator of Go, it is not surprising that Google is one of the companies that use it. Golang is being used in many of Google’s projects, including Kubernetes, an open source container orchestration system. Go’s concurrency features, simplicity and speed make it a good fit for this project.

Google also replace C++ code from dl.google.com as well as in few chrome components. Apart from these the most famous product of Google that is YouTube also has few components developed in Golang.

There is an official google talk that you can refer to understand more about this topic.

Google Go Dev Talk https://go.dev/talks/2013/oscon-dl.slide#1

2. Docker

Docker Inc, the company that popularised containerisation technology, also uses Golang. Docker Inc. have so many open source projects that is developed using Golang one of them is the most famous containerisation tool docker engine.

Moreover, docker also have other tools developed in Golang and open source that are available on Github. Few examples are, docker cli, docker-compose, docker-compose-cli, go-metrics etc. You can find them all on docker’s official github repository.

Docker Github Repository https://github.com/docker

3. Uber

Uber is another company that uses Go. They use it in many of their services which handles large amount of data and requires high performance. Uber majorly uses Go for one of its services geofence, which provide user’s location and serve product availability.

Geofence is responsible to connect rider and driver to one another. It also makes it possible for Uber to implement dynamic prices according to different locations and precisely define the area with special requirements.

Accordingly, to Uber’s official blog post the company has very positive experiences while working with Golang. It also states that service has a guaranteed high reliability. It has been running continuously for 99.99% time since its commission.

You can check Uber’s open source projects details on https://uber.github.io

4. Dropbox

Dropbox one of the leader in cloud computing services can be a great example of company using Go for its backend services. Dropbox is a file hosting service that offers cloud storage, file synchronisation, personal cloud and client software to access cloud.

The company had its services developed in python but with the rise of golang it has been working on moving some of its services from python to Go, as it provides better performance and scalability.

One of the major issue company face is python has large echo system which means you can find an open source promising library in python easily compared to golang. Thus, Dropbox began to develop those libraries on its own, to deal with the problem such as inefficient performance of third party open source Go libraries.

This also allow Dropbox to introduce new features easily as well as improve existing features such as standard error interface, enable developers to generate SQL statement programmatically, and implement fully functional memcache client library.

Dropbox also open source most of their libraries on GitHub which available free to use and you can also contribute to them.

Dropbox Github Respository https://github.com/dropbox

5. Twitch

Twitch, the popular streaming platform, uses Go for its backend infrastructure. Go’s concurrency features allow Twitch to handle large number of requests it receives from its users. It also provides better performance and scalability, which is essential for a platform like Twitch. As latency of Go’s garbage collector getting low with more and more improvements in each new version it play a very important role in Twitch’s journey with Golang.

Twitch also developed RPC framework build on protobuf, known as Twirp written in Golang, and used for communication between backend servers. You can find Twitch’s more open source work on it’s Github Repository.

6. Netflix

Netflix is an OTT streaming platform which also uses Go for backend services. Netflix is one of the companies which has massive user base, a very busy system that requires a high performance, scalable infrastructure to work seamlessly, which makes Go programming language very suitable for Netflix due to its simplicity, speed and concurrency model.

7. SoundCloud

SoundCloud is a largest music streaming service in the world, available in 190 countries. It enable users to upload, promote and share audio on platform.

Let’s dive into the technical details of SoundCloud, more accurately let’s have a look on programming languages behind the SoundCloud platform. Whilst, SoundCloud always operated with Ruby on Rails framework at the top of their technical stack, there are quite variety of languages presented in the backend of SoundCloud. I would like to describe about the use Go programming language specifically.

Apart from Go’s simplicity, speed, and concurrency. Go’s strict formatting rules and “it’s the only single way to do the things” philosophy helps their engineer to stop wasting time about style to follow. This philosophy is also the reason Go’s code review tends to be more about the problem being solved than the intricacies of the language.

Another advantage that everyone mentioned frequently that SoundCloud has also taken advantage of is static typing and fast compilation which enables everyone to do realtime static analysis and unit testing during development.

9. SendGrid

SendGrid provides a cloud service that enable businesses to deliver emails. The service manages various types of emails delivery including, sign-up confirmation, shipping notifications, and email newsletters. Additionally, it also allows companies to track email opens, unsubscribes, bounces and spam reports. SendGrid is a system that handles millions of emails everyday, you can imagine the complexity of system and requirements for such a kind of infrastructure.

SendGrid was built on Ruby on Rails, popular web framework, but as the company grew, it needed more scalable and performant solution. Thus, SendGrid began exploring other programming languages and eventually settled on Go.

Using Go has provided several benefits for SendGrid. Firstly, it has helped to improve the performance and scalability of the email delivery infrastructure. Go’s concurrency allowed SendGrid to handle a large number of concurrent request, making it easier to handle high traffic volumes.

Secondly, Go has made it easier for SendGrid to develop and deploy new features quickly. GO’s simplicity and readability have made it easier for developers to write and maintain code, which has reduced the tie it takes to develop and deploy new features.

Summary

Go has been a valuable choice for everyone developed their system in Go programming language. You can develop a light weight and efficient runtime, high performance, scalable and easy to maintainable system using Go. Go’s simplicity and readability have made it easier to develop and deploy new features with ease.

Similarly, Go’s strict static typing system and “it’s the only way to do this” philosophy enables developers to focus more on problem to be solved, the system to be developed rather than on decisions such as coding style to be followed, error system to be used and other complicated language details.