As more people switch to mobile banking and virtual payment solutions from visits to offices and cash, the fintech industry sees a steady increase in the number of customers. New fintech players constantly emerge as well, which leads to tight competition — success is possible only if the company can ensure stability, security, and scalability of its digital products.
Created by Google employees in 2009, Go (alternatively called Golang) is a programming language that became popular thanks to its simplicity, performance, and wide possibilities. Many programmers switch to it from PHP, Python, and Java, while such companies as American Express, PayPal and Uber use it in their services.
We at Surf have over 12 years of experience building apps with top-notch technologies for clients from a diverse set of industries, including banking, retail, digital platforms, and currently provide fintech app development services as well. In the article, we’ll review the benefits of building a fintech app with Go and the cases of using the language by global and smaller companies to show how Golang can take your digital services to the next level.
Benefits of building fintech app with Go
Go is one of the statically typed languages, in which the type of a variable is known at compile time, meaning that the compiler checks the source code and prevents errors at an early prod. It shares many similarities with C++ and Python and many developers with experience in these languages have recently switched to Go or are considering learning it. The most common areas of Golang application include backend and web development, microservices, as well as cloud-based solutions. Let’s take a look at the main benefits of Go for the fintech industry.
An ability to quickly scale its business operations is vital for a startup in the active growth phase — lose momentum and the niche might get filled by competitors. When a startup decides to create a fintech app, it is important to ensure that the system is able to accommodate a sharp increase in the number of users, which is a fundamental requirement for any company aiming to grow its market share.
With its concurrent Goroutines, Go language provides developers with tools to create scalable and performant solutions. Instead of traditional architecture, where each thread of execution requires its own Operating System thread, Goroutines allow a single process to serve multiple requests at the same time. This feature, paired with Go’s ability to compile code into executable binaries before deployment without runtime interpretation, makes it an ideal choice for server-side development.
When PayPal decided to modernize its system to ensure stability as its user base grew, the company chose Golang to program its Software-Defined Networking (SDN) infrastructure. Initially, PayPal migrated NoSQL database system to Go, and then other development teams began adopting the language, switching build & test farms to the new language. With its efficiency, simplicity, and quick compilation to machine code, Go significantly increased developer teams productivity, while CPU load decreased by 10%. For PayPal, the next step is to switch to the Google Kubernetes Engine, which in combination with Go would shorten the company’s new products’ time to market.
Another fintech player that decided to use Go to make scaling easier is the German company Solarisbank, which helps businesses integrate digital banking services directly into their products. As the company opens its second Tech Hub in India, Solarisbank aims to build a significant presence in the Indian market and uses Go in developing APIs and cloud infrastructure.
Another characteristic that makes Go stand out among other languages is its performance. Thanks to efficient garbage collection (by 2005 the Golang team decreased the time required for the system to pause and collect unused objects to a fraction of a millisecond) and being built into binary (Go operates directly with hardware without an extra layer, such as Java Virtual Machine), Go shows great results even in the most demanding and complex scenarios.
One of the finance companies that achieved great results using Go is American Express. As the volume of transactions increased, the company began searching for a solution to modernize its payment processing infrastructure. After testing several languages, including C++, Node.js, and Java, the developers settled on Go, which showed the second result in performance, processing 140,000 requests/sec, but had the most extensive selection of tools, benchmarking, and profiling features. Using Go to build payment microservices, American Express was able to significantly improve its real-time transaction processing speed. As noted by the company’s Vice President, after trying out Go, the majority of developers had no intention of going back to other languages.
The industry of finance is one of the most targeted by cybercriminals, with over one-fourth of all malware attacks being directed at banks. There are plenty of ways criminals can gain access to clients’ private data and money, including clickjacking, main-in-the-middle attacks, and reverse engineering. You can learn more about these and other cyber threats in our article on common banking app security issues.
Golang developers have at their disposal a wide selection of tools to make their code and apps more secure. One of them is Go Modules — a dependency management system that protects the app from unexpected module mutations. In version 1.13, Go introduced a checksum database, a security feature for integrity verification to ensure that blocks of digital data haven’t been changed during storage or transmission.
Go comes with three symmetric encryption algorithms packages: base64, AES, and DES. To make apps safer, Go developers can adhere to the best security practices, such as:
- sanitizing all data passed through Subshell, as it has direct access to the system and can be compromised;
- use html/template package to encode web content and protect users from XSS (cross-site scripting) type of attacks;
- use Go’s static binding together with minimal base images in containers to minimize container attack surface.
While Go is mostly used for backend and web development, the security of a mobile app is paramount as well. Currently, one of the most secure technologies to build the front end of a banking app is Flutter. This cross-platform technology not only allows to create both Android and iOS apps from a single set of code, making development quicker and less expensive, but is also safer than native development. Since Flutter’s source code is compiled into native code, it is not human-readable and can’t be reverse engineered. The Surf team was one of the early adopters of the technology, creating the first Flutter banking app in Europe. The app for corporate clients was praised for its modern design and user-friendly interface and ranked TOP-1 app in Banking, Finance, and Insurance category.
To sum things up
As mobile banking apps and web services become the main ways of interaction between customers and fintech startups, the stability, speed, and security of these platforms play an essential role in the companies’ success. Emerging fintech players face many challenges and heavy competition from large banks and corporations that often have larger resources at their disposal. However, smaller companies tend to be more flexible and adopt newer technologies to create fintech apps easier, which can help them gain market advantage.
Using Go to build a fintech app, the language known for its simplicity, compilation speed, and concurrency abilities provides many benefits, including better performance, faster processing, and decreased load on the hardware. For over a decade, Surf has been developing native and cross-platform solutions for banks, trading platforms, e-shops and digital media. Today we offer our cross-industry expertise on every step of the development process, including Go development services. To discuss your project in detail and get a free estimation, kindly fill in the short form.