Top Golang Apps – 6 Best Apps Made With Golang
Fast and easy to use, the Golang programming language (also known as Go) is rapidly growing in popularity. According to Github stats, between 2018 and 2019 the Go community has grown by 147%. Golang attracts a lot of companies, as it was designed for complex enterprise projects. So, what exactly can you do with this programming language? In this article, we’re going to have a closer look at the top Golang apps. These real-life examples will help you see how Google Go can be the right choice for your businesses:
Golang banking app – Monzo
Most companies introduce Golang together with the microservices architecture. This was no different in the case of Monzo, an app-based online bank. When they first started setting up the application in February 2015, they were focused on the single responsibility principle. It states that every module should be responsible for a single functionality. This kind of approach makes the app more stable – and here’s where Go makes a great fit. Monzo is a classic example of an app built on Golang from the very start.
As Monzo kept growing, Golang helped the company scale the product. The tech team states that Go is “perfect for microservice architectures”, as it helps them create granular services that add up to a stable app.
Monzo consists of 1,600+ microservices. Matt Heath, the company’s senior engineer, claims that Go allows them to maintain such a complex architecture. In his words, the language is “quite simple […] and makes it easy […] to get people on board”. Indeed, Golang is famous for its low learning curve – some claim that developers can learn the basics within just one evening!
Golang ecommerce app – Allegro
In the case of Monzo, Go was the primary language since the very start. The Golang story was different for Allegro, a Polish ecommerce giant that has been around since 1999. Fast forward to 2016, the Allegro tech team was looking for an efficient way to create a very fast cache service. They decided to try something new and picked Golang for the task.
Most of Allegro’s microservices are written in Java, yet the team was open to explore new things. They’ve worked with on an open-source Go project before and were happy to see how Golang will handle larger volumes of traffic.
The final results were astonishing. Go helped Allegro speed up the application from 2.5 seconds to less than 250 milliseconds, and that’s for the longest request! The Allegro team swears by Golang and is happy to share their insights during Go-related conferences.
Golang music app – SoundCloud
SoundCloud, an artist-focused music sharing platform, is quite an early adopter of Go. Of all the top Golang apps, SoundCloud, an artist-focused music sharing platform, is quite an early adopter. Back in 2012, they released an article about Go at SoundCloud.
Although the app is largely based on Ruby on Rails, SoundCloud identifies as a polyglot company, with many languages adding up to their backend. They appreciate Golang as a WYSIWYG (what you see is what you get) language. This makes it easier for the entire team to understand the software and make the maintenance process more efficient.
What’s more, SoundCloud appreciates Golang’s fast compilation and static typing. In layman’s terms, this means that developing, testing, and deploying the application is as fast as possible. The team claims that these swift processes mean that some simple ideas can get from whiteboard to production in just one hour. Impressive, isn’t it?
Golang dating app – Badoo
Present in 190 countries and boasting 400 million users worldwide, Badoo is the world’s most widely used dating network. These numbers call for highly efficient search algorithms – and here’s where Golang comes in handy.
To provide the smoothest search experience possible, the Badoo tech team creates services using bitmap indexes. A bitmap index is made of several bitmaps that represent entities (in this case, the users of the dating app) and their parameters (such as the age, or the hair color). This makes it the perfect fit for users who look for people with this, this, and not that – let’s say, men aged 25-30, blonde, taller than 180 cm. A match made in heaven for a dating app, isn’t it?
Here’s the trick: bitmap indexes can be hard to implement in many popular database management systems, such as MySQL. The solution? You guessed it: Golang. Bitmap indexes are commonly used in Pilosa, a database management system written in Go. Without going too much into technical details, the Go language allows for smooth implementation of bitmap indexes, which is why the Badoo team decided to use it for their high-maintenance product.
Golang ridesharing app – Uber
Yes, you’ve read that right – even Uber is using Golang to improve the quality of their ridesharing services.
The company uses geofences for geolocation. A geofence defines an area with particular requirements. Most of the time, it applies to airports or especially busy neighbourhoods. Have a look at this geofence example from Kampala, Uganda:
Although Node.js was Uber’s first language of choice, they decided to start using Go for this service. The company needed something fast, as they’re dealing with hundreds of thousands of geofence lookup requests every second! Golang turned out to be the perfect pick, as it can work on multiple CPU cores at the same time, while Node.js is single-threaded. In other words, the Go language can do multiple things at once.
The choice proved to be largely successful and the Uber team is happy using Golang. Not only is it faster, but it also makes software developers more productive. When they’re already familiar with Java, C++, or Node.js, they will be able to learn Go in just a couple of days.
When it comes to the app’s performance, the results are truly impressive. On New Year’s Eve 2015, Uber’s data center has successfully handled a peak load at just 35% CPU usage. To top it all off, the company can boast a whopping 99.99% uptime, with downtime caused only by third-party libraries and not Golang itself.
Encouraged by the geofence success, Uber started implementing Golang in more of its microservices. For example, they’re using this language to match riders to the right drivers too. It has become their most popular language for creating new services within the product. It’s safe to say that Uber is one of the top Golang apps when it comes to popularity.
Golang project management app – Timesheets
Last but not least, here’s an example of a Golang app we’ve created. Timesheets is a time-tracking solution we’ve first used as an internal tool. As we’re really happy with it, we’ve decided to share Timesheets with the general public. The tool can be integrated with a range of other tools too, including Slack, Jira, or even voice assistants.
When creating Timesheets, Golang was our first choice. We wanted to create an ultra light, fast, and sufficient app and Golang’s multi-threading makes it much easier. What’s more, when we use common parts within one repository, we can run different processes simultaneously. To sum up, Golang speeds up the development process quite significantly.a
How to handle Golang app development
Looking to use Golang for the development of your app? No matter what you’re planning to create, we’re happy to share some advice. Our experience in developing apps with Go is sure to help. Feel free to get in touch for more details! We hope that this roundup of apps made with Golang has left you inspired.