Skip to content

We Analyzed 5 Best Digital Products Built with Golang. Here’s What We Found (This Can Supercharge Your Next Golang Development Project)

Featured Image

Let’s start this blog with two famous quotes about Go.

  • “Go will be the server language of the future.” – Tobias Lütke, Shopify CEO
  • “Go is a language that doesn’t get in your way; it lets you express your ideas clearly and concisely.” – William Kennedy, Author of “Go in Action”

For many companies, Golang is more than just a programming language; it’s a powerful tool that can drive product success and make a positive impact on the world.

As a leading product engineering company, we constantly seek out such innovative technologies to gain insights into how they have been leveraged to create exceptional products.

Hence, in our pursuit of excellence, we analyzed the 5 best digital products built with Golang.

Each of these products represents Golang’s capabilities and highlights its potential to transform software product development.

So, without further ado, let’s explore its cutting-edge wonders.

Top 5 Companies Using Golang Development in Their Digital Products

Golang is one of the youngest programming languages.

It was created by Google to meet the unique needs of large-scale digital product development.

So, let’s find out which companies use Go and why.

Uber used Golang in their geofence to enhance their ridesharing services.

A geofence refers to a human-defined area and Uber heavily relies on it to implement geo-based configuration.

Most of the time, it applies to areas with higher and specific requirements such as airports.

Uber used Golang

Although Node.js was the primary programming language of choice for Uber.

However, the company needed a faster system as they’re dealing with hundreds of thousands of geofence lookup requests every second.

Golang turned out to be an ideal solution as it met their needs for the following reasons.

1. High-throughput and low-latency requirements

Geofence lookups are required on every request from the app.

It must quickly (99th percentile < 100 milliseconds) answer a high number of queries.

2. CPU-intensive workload

Geofence lookups require CPU-intensive point-in-polygon algorithms.

Node.js works perfectly for their other services which are I/O intensive.

Due to its dynamic and interpreted nature, it was not an optimal choice to use in this case.

3. Non-disruptive background loading

To maintain up-to-date geofence data for efficient lookups, this service requires continuous refreshing of in-memory geofence data from various data sources in the background.

However, due to Node.js being single-threaded, the background refreshing can tie up the CPU for an extended period of time, resulting in a spike in query response times.

But this isn’t a problem for Go as goroutines can execute on multiple CPU cores and run background jobs in parallel with foreground queries.

Uber’s Experience with Golang

The Uber team is happy using Golang as it proved to be largely successful.

Here is what they experienced.

  • High productivity of developers
  • High performance in throughput and latency
  • Super reliable

Twitch has used Go in many of its busiest systems.

Its safety, performance, and readability make it a powerful tool for the problems they encounter while serving live chat and video to their millions of users.

Twitch’s Experience with Golang

  • Improved Garbage Collection (GC) pause time by 20 times
  • Built Twirp, an RPC framework for communication between backend servers

 

Apart from just speed and efficiency, Go also brings simplicity, making the life of Twitch’s developers easier.

Because the language’s simple syntax enables developers to focus on key areas – developing reliable and robust features that enhance the Twitch experience.

Dropbox, a well-known cloud storage platform, was initially built with Python.

However, in 2015, they started exploring ways to scale their system efficiently to meet the growing demands.

They decided to migrate their performance-critical backends from Python to Go in order to leverage better concurrency support and faster execution speed.

This was a massive effort, as a small team of engineers worked on over 200,000 lines of Go code.

Zviad Metreveli, Senior Principal Engineer at Dropbox presented details of those efforts in Go at Dropbox – Gopherfest.

“People become very productive in Go very fast, our infrastructure is built in Go today, and all the new things we build in Go.” (Source)

Dropbox’s Experience with Golang

Switching to Go allowed Dropbox in several ways such as,

  • Performance improvement
  • Gained stability
  • Leveraged better concurrency support
  • Improved caching
  • Enhanced the standard error interface and exposed stack trace information
  • Improved functionality for connection management
  • Enabled developers to generate SQL statements programmatically

PayPal’s payment platform facilitates transactions between millions of merchants and consumers worldwide.

As the platform grew larger and more complicated, PayPal decided to modernize its systems and reduce the time to market for new applications.

They were looking for a programming language that offers parallelism, high performance, scalability, concurrency, and portability.

Golang effectively fulfilled all these requirements and, in addition, played a vital role in modernizing the system.

In fact, security and supportability were one of the key factors at PayPal.

But Golang’s simplicity, clean code, and modularity helped PayPal to achieve it hassle-free.

PayPal’s Experience with Golang

With Go, PayPal empowered its developers to spend more time examining code and engaging in strategic thinking.

Because it liberates them from the complexities and distractions of C++ and Java development.

Here is what Bala Natarajan, Sr. Director of Engineering at PayPal said about Golang –

“Since our NoSQL and DB proxy used quite a bit of system details in a multi-threaded mode, the code got complex managing the different conditions, given that Go provides channels and routines to deal with complexity, we were able to structure the code to meet our requirements.” (Source)

Trivago wants to enhance the user experience across multiple sessions, so they launched a project called “Recent Searches.”

The aim was to develop a gRPC service handling requests from the front end, storing, retrieving, and aggregating recent searches of logged-in users.

How Did Go Help?

Part of the task is to deploy the service in Kubernetes and authenticate incoming requests against Trivago’s OAuth2 authentication server.

Their technical team already had significant experience with similar projects in JVM languages like Java or Kotlin.

But this time, they chose Go. Here is why.

1. Concurrency and Data Race Detection

Go’s built-in support for concurrency enabled Trivago to efficiently handle thousands of incoming requests simultaneously.

In addition, Go’s race detector helped identify and prevent data races, ensuring the stability of the service.

2. Statically-Linked Binaries

Go’s compiler created statically linked binaries, eliminating the need for matching interpreters or virtual machines.

This reduced the size of Docker images, resulting in faster deployment and auto-scaling in Kubernetes.

3. Code Formatting (go fmt)

Go’s opinionated source code formatter, go fmt, prevented unnecessary debates over code style, ensuring a consistent and easily readable codebase.

This streamlined the development process and focused on functionality rather than formatting.

Trivago’s Experience with Golang

Trivago’s Experience with Golang

The simplicity and sophisticated tooling of Go helped Trivago scale not only its microservice but also the overall software engineering process.

Its features enabled them to maintain a scalable, stable, and productive development environment for their hotel meta-search platform.

Additionally, the reduced friction in onboarding and training new developers increased the company’s overall productivity.

From Present to Future: The Evolution of Programming with Golang

Since its creation in 2009, Golang has gained popularity due to its simplicity and adherence to the “one problem – one solution” principle, making it an exceptional solution for large and complex projects.

With the growing usage of cloud-based solutions, IoT devices, and emerging technology like 5G, Golang is set to attract more and more companies.

Because it enables companies to reduce time to market, enhance security, and scale their products, all while meeting the diverse needs of users.

Besides, Golang plays a key supporting role by providing API bridging to facilitate the migration of “legacy” workloads to cloud services.

However, the more significant phase involves the industry shifting towards embracing unique cloud offerings and adopting cloud-native application development practices.

In such scenarios, Golang emerges as a clear and optimal choice.

This becomes evident that Golang holds the key to a promising future in the ever-evolving landscape of software product engineering.

When Should You Migrate Your Project to Golang?

Migrating a project to Golang can be a significant decision, and the timing should be carefully considered.

Here are some key factors to help you determine when to migrate your project to Golang:

When Should You Migrate Your Project to Golang?

Remember that every project is unique, and there is no one-size-fits-all answer for when to migrate to Golang.

By carefully evaluating your project’s requirements and a thorough understanding of the potential benefits and challenges of using Golang, you will be able to make more informed decisions.

Simplicity Meets Excellence: Azilen’s Golang Development Expertise

Being a product engineering company, we are driven by the relentless pursuit of excellence.

Thus, we firmly believe in the potential of Golang.

Its high performance, security, and scalability have repeatedly empowered us to engineer remarkable software products for our clients.

Our team of dedicated developers holds the ultimate expertise in harnessing the power of Golang and building a product that touches people’s lives in meaningful ways.

So, if you want to take your digital product to the next level with Golang, let’s embrace the thriving possibilities of tomorrow!

Related Insights