Startups Using Go: 9 Cases Where Golang Beat Python, C, and Java
Google unveiled its open-source language, Go, in 2009. Since then, the number of unicorns and local startups using Go has only grown. It’s not only startups, though. Golang is popular with companies including Google, Facebook, and Apple. Code efficiency and a simplified development process make this language so desirable.
Golang has other advantages as well. The language is simple and relatively fast to learn, so finding developers is much easier. With its high efficiency and speed, it allows you to deliver your website or mobile app faster. Go also offers a wide array of free tools and libraries that help to create a robust custom product without spending a fortune.
At MadAppGang, we build high-quality products, such as the Evergen app, with Golang. Here we cover this programming language’s advantages and explain why startups are using Golang.
Let's begin by looking at which products can be built with Go.
What can be built with Golang?
Does developing with Golang make sense for your project? Most likely, even if there are exceptions for very specific projects. As long as you don’t need hard real-time capabilities, you can use Go, a general-purpose programming language, to develop anything you want and in a variety of tasks:
- Building web apps
- Creating static sites
- Write distributed apps
- Web scraping
- Server development (JSON API, Chat system, Web server)
In addition, Go is suitable for most things normally completed with Python, PHP and Java. Golang is especially good for web backends where concurrency matters (not many languages can compete with Go when it comes to concurrency).
Key Golang advantages
The main reason startups are using Golang is that it offers quick implementations and is suitable for microservice development (an architectural style that develops an app as a set of small services). This is a major advantage for companies developing niche products with a narrow range of functions. Frameworks used in monolith architecture simply don't make sense in this case.
However, this is not Go’s only benefit, the language offers numerous advantages. Below are some reasons why Golang can be more rewarding than Python, C or other languages:
- Fast to learn – Unlike C++ that has 32 keywords, Golang has 25 and its specification is very comprehensive. Despite the slightly different keywords and syntax, Go follows the same procedural approach that developers easily understand.
- Extensive tools – There are a number of editors, integrated development environments (IDEs), and plugins available for Go on GitHub. You can also find a few cloud-based IDEs that support Go.
- Excellent compatibility – Golang's backward compatibility is superb. Developing an app from its current version, you won’t have any trouble upgrading it with Go’s new versions.
- Go is fast – Go is a compiled language. The code is directly converted to the format relevant for processors, omitting byte-code. Thus, Golang is faster and more reliable than Python, for example, where unforeseen bugs appear out of nowhere on rare code paths nobody anticipated.
- Safety – Go is based on the C programming language. As with C, Golang has a disciplined syntax, but certain changes make it easier for developers to manage memory safely. So with Go, memory leaks are prevented as unused memory is handled automatically.
- Scalability – Golang's goroutines — functions that run simultaneously and independently — allow the handling of multiple concurrent processes with little memory usage. The result is leaner software as you can run thousands of goroutines at the same time without crashing the system.
- Built-in testing – The Go framework has an integrated testing tool, which is good for various types of testing, profiling, and running tests in parallel.
Example of Go testing. Source: Medium
What companies use Golang?
There are thousands of established companies and startups using Golang. Below, we've gathered nine examples of Go projects from different domains, proving that Golang is a good choice for almost any type of enterprise.
Eco-friendly solution based on Golang
Evergen is a startup that aims to introduce smarter energy consumption and help shift the world toward a decentralised and renewable energy future. The Evergen app makes it possible to optimise both solar and battery energy resources and energy costs.
The primary language used in Evergen is Go. The company chose it for its high performance and scalability. But also because Golang is the only framework that allowed Evergen and MadAppGang to build a minimal viable product (MVP) within a few months.
Technology platforms using Go
SendGrid is a popular cloud-based automated email marketing service that’s used by Glassdoor, Airbnb, eBay, Spotify, and other multinationals.
SendGrid’s backend systems were primarily written in Perl/AnyEvent in the first years, moving to Python/Twisted later on. However, with the growth of the company, SendGrid chose Golang over all other programming languages.
SendGrid interface. Source: Accuratereviews
By switching to Golang, SendGrid quickly and significantly improved its service by providing customisable, reliable, and scalable application programming interfaces (APIs). Equally important, by using Go, SendGrid succeeded in the challenging task of sending over 500 million messages per day.
DropBox, a well-known cloud storage platform, was initially built with Python. However, in 2015 the DropBox development team started breaking apart the Python monolith codebase and moving the infrastructure to Go. This was a huge effort involving over 200,000 lines of Go code and was accomplished by a small development team.
Switching to Go allowed DropBox to introduce performance improvements, gain stability, and leverage better concurrency support and faster execution speed. By using several open-source Golang libraries, DropBox improved caching, the standard error interface, and functionality for connection management.
Online booking systems built with Golang
Delivery Hero is an online food ordering company that operates in more than 50 countries across four continents. The company is expanding rapidly, constantly creating a wide range of local brands. To meet tight deadlines and launch new food delivery apps quickly, Delivery Hero uses Go.
For example, the company was able to build its Turkish delivery app, Banabi, in just three months with Go. In Delivery Hero's blog on Medium, Özgür Kara, the software team lead, mentioned that Go allowed the company to avoid many standard and pesky nuisances like installing multiple executable files. In the end, the absence of major headaches related to the development was key to the Banabi app’s fast release.
Example of the Go-built project of Delivery Hero. Source: Medium
Although historically Uber's engineering operations were dominated by Node.Js and Python, Go is becoming the company’s preferred language for new products.
Geobase is a good example of an Uber service written in Golang. This is the highest queries per second (QPS) service matching riders to drivers, sharding the matching across a number of different machines.
Payment processing systems created with Go
PayPal's database was primarily developed in C++, which is notorious for the final code complexity that meant properly updating and scaling the platform was impossible. To change the situation, PayPal's development team switched to Go. Using Golang, developers managed to simplify and modernise the platform quickly.
PayPal does not replace Java or Node.js for all applications. However, the company uses Go to modernise its systems and reduce time-to-market as this language covers all of PayPal needs — concurrent and parallel programming, compiled for high performance and highly portable, coupled with a modular, composable open-source architecture.
Zettle, formerly iZettle, is a financial technology company recently purchased by PayPal. It provides critical commerce tools to small businesses, such as mobile card readers and point-of-sale apps, which help them compete with the big enterprises.
Example of Zettle interface. Source: Storyblock
At iZettle, Go is the primary backend programming language as it’s a perfect choice for its high-performing concurrent service on the server side. Yet, PostgreSQL and Dynamo are used for persistence, and AmazonSQS and AmazonSNS for asynchronous service provision.
Music and video streaming platforms that utilize Go
Historically, SoundCloud used Ruby on Rails as the platform's backend development framework. But since 2012, Go has been increasingly used in this context.
This switch was primarily due to Go's strict formatting requirements and its "only one way to do things" outlook, which allowed the team to deliver final products faster.
SoundCloud app interface. Source: Techcrunch
Currently, SoundCloud maintains more than a dozen services and repositories written in Go. And when it comes to new backend projects, SoundCloud teams are increasingly turning to Go.
Dailymotion is a global streaming service that offers intuitive algorithms and recommendation systems based on the expertise of video experts. The company used Golang to build Asteroid, an open-source application for managing their Wireguard server.
Dailymotion interface. Source: Dailymotion
The company chose Golang for its small memory footprint, fast compilation and high performance — a choice that paid off. Asteroid greatly improved DailyMotion's ability to add and remove infrastructure access.
Startups using Golang are well placed to succeed as Go allows them to bring their innovative ideas to life faster than rivals who come up with the same idea. If you're still in doubt about Go’s suitability, don't be. There’s no better choice for concurrency, safety, and simplicity of programming than Golang.
If you want to build a killer app like Evergen, drop us a line. Let’s discuss your idea and take it from conception to realisation. Using Golang, MadAppGang builds custom applications that boost operational efficiency, improve value, and increase your business’s profitability.