Fintech companies face an enormous amount of challenges. From strict government regulations to strong competition with established banks and corporations, startups in finance encounter it all on a daily basis. The key to acquiring and building trust with customers lies in providing fast and reliable financial services 24/7, which is hardly possible without a robust technology stack that can ensure performance, scalability, and security. These days Go has become an increasingly popular option for web apps and backend development in the fintech industry.
Since 2011, Surf has been providing full-cycle app development services for banks, trading platforms, e-shops, and restaurants. Having developed more than a few fintech apps using both native and cross-platform technologies, our team has quite an expertise in the field. It always pays off to learn from others’ success, so in the article, we’ll review global fintech companies using Golang to achieve outstanding business results.
Examples of the fintech apps developed by Surf
Advantages of Go for fintech projects
Created and launched in 2009 by Google employees, Go (also called Golang) is a statically-typed programming language. Inheriting many traits of Java and C++, Go is praised for its simplicity, fast compiling, and great performance, thanks to advanced multithreading and full usage of the capabilities of modern multi-core CPUs.
Mostly used to build web apps, backends, and microservices, Go is widely adopted as a substitute for Python and Java languages. Among startups using Golang in their infrastructure are Uber, Netflix, Salesforce, as well as big fintech players, such as PayPal, American Express, and others. Let’s see what benefits of Golang made them choose the technology for fintech application development.
Easy to learn
For developers who have prior experience programming with any other major language, learning Go is considered easy. Compared to C and C++, Golang’s code is more structured and easier to read, while an in-built garbage collector improves developers’ efficiency by automatically freeing up no longer needed memory allocations and keeping those still in use.
According to digital startup Bitly, which has been using Go since 2015, it takes only a few weeks for an experienced programmer to start working with Go. Combined with a constantly growing community, Go’s ease of learning makes it an excellent choice for fintech companies that aim to build a scalable tech stack and ensure they won’t have much trouble finding more Golang developers when launching new services or entering new markets.
One of the iconic Golang advantages is goroutines — threads that allow the system to run multiple processes concurrently. Compared to multithreading used in other technologies, goroutines are extremely lightweight (one goroutine requires only a few kBs of memory), meaning an app can have hundreds or even thousands of processes running simultaneously without overloading the hardware. In addition, goroutines use channels to share data directly between them, without accessing global data structures, which helps maintain lower latency communication. All of this translates into speed and efficiency that are essential for a service that has to process money transfers and other financial operations in real time.
Today, many fintech companies are moving their apps into a cloud infrastructure that can be scaled easier and adopt growing numbers of customers. Since cloud systems share their resources among users based on their current needs, Go, with its strong support for concurrency and non-blocking I/O (goroutines do not wait for I/O operations to finish), makes resource-sharing efficient and is perfect for building large, distributed systems. With this in mind, it is no surprise that over 75% of Cloud Native Computing Foundation projects are written in Go.
Safety & security
For fintech companies that deal with other people’s money, the security of their solutions is paramount. Golang supports many tools that help to protect code from exploits and cybercriminals. One of them is Go Modules — a dependency management system, which verifies data integrity and ensures no unexpected mutations occur during data storage or transfer. Also, engineers can use Golang symmetric encryption algorithms packages (DES, AES, and base64) along with hash algorithms that deliberately increase the amount of resources and time required to gain unauthorized access to stored passwords.
While Go is our choice for backend and web apps, it is important to emphasize the importance of the security of the mobile apps used by customers. From our experience, Flutter is one of the safest technologies for front-end development today. This cross-platform solution has many benefits, including quick time-to-market with only one development team required for both iOS and Android projects, and great performance, while in terms of security it even beats native platforms — Flutter’s source code can’t be reverse-engineered because it gets compiled into a native, not human-readable code. Surf was one of the early adopters of the technology, building a corporate client app for Société Générale finance group — the first Flutter banking app in Europe.
Fintech using Go
Using Golang for web development and backend services, many fintech companies were able to create stable and highly performant solutions from scratch or switch from other languages and see better business results and happier developers. Let’s take a look at how global fintech companies use Golang programming language in their digital platforms.
Built to democratize financial services and make the global economy more connected, PayPal provides digital financial services through mobile apps and web services. One of the company’s key products is Payments Platform, which facilitates transactions between merchants and consumers across the world. The service is based on a combination of proprietary and third-party technologies. As PayPal’s user base grew, the company realized the need to modernize its apps and decrease time-to-market for new solutions.
PayPal’s adoption of Go began by moving the NoSQL system from C++ to Go. After using the new language for 6 months, the company’s developers remained more than pleased with their choice to switch, praising Golang for its simple syntax, convenient garbage collection, rich libraries, and fast compilation. Thanks to Go’s cleanliness, they were able to devote more time to complex strategic problems, instead of correcting the code again and again, which was the issue with Java and C++. Also, migrating to Go decreased the CPU load by 10%. These days, PayPal continues to upgrade its software-defined networking (SDN) infrastructure with Go.
Capital One is the sixth-largest bank that provides banking, credit card, and loan services. The company uses Credit Offers API to engage with customers through affiliate channels and offer personalized credit card options. Initially, Credit Offers was written in Java but as developers were introduced to Go and saw significant performance improvements in test projects, the team decided to switch Credit Offers platform to Golang as well as make it serverless.
With Go and a serveless approach, Capital One saw significant performance gains and cost savings, Credit Offers API became more seamlessly scalable, and developers were able to focus more on business-related features rather than ‘worry about infrastructure’.
UK-based online bank Monzo used Go to create their backend. The bank’s app was based on a microservices architecture, following the ‘single responsibility principle’. The developers at Monzo saw Golang as a perfect fit for creating ‘simple, small, network services’ because of its simplicity and great concurrency support.
As the number of services grew to almost 200, Monzo created a standardized framework-like chassis ‘Typhon’ for microservices deployment. This open-source solution enabled distributed tracing through context propagation and was beneficial for observability and debugging. Currently, the app’s backend uses Docker integrated with Kubernetes, and the team continues to use Go to create their microservices-based ‘fault-tolerant, elastically-scalable system’.
A globally integrated payments company with a history spanning almost two centuries, American Express provides credit card products, merchant acquisition, and payment processing services. To ensure stability and performance with continuously growing transaction volumes, the company realized that its payment processing systems upgrade is due.
The payments and rewards platform was the first one in the company to start building pilot projects on Go. After running performance tests using С++, Java, Node.js, and Golang, in which the latter one showed the second results (140,000 requests per sec), the team decided to stick with Go due to its wide array of tools, convenient testing and benchmarking framework. Goroutines and Go’s easy-to-tune garbage collection helped American Express to increase their real-time transactions speed, future-proofing their system for surges in operations and increasing in the number of users.
Stability and speed play crucial roles in the success of a fintech company. Since mobile apps and web services became the main ways people manage their finances, slow processing and errors can turn away many customers and hurt business. All of this makes fintech players to hire in-house developers or development companies to modernize their architecture and prepare it for growing processing load and expansion to new markets.
As we saw from the examples of leading global companies, backend and web development with Go proves to be beneficial in many aspects, including performance, development speed, and scalability. With its concurrency support, encryption functionality, benchmarking, and profiling tools, Golang also shines in development of microservices and cloud-based infrastructure.
With 12 years of experience developing apps for banking, e-commerce, digital media, and other industries, Surf always aims to provide a solution tailored to the needs of a particular business and has experienced in-house developers, testers, designers, and product managers to provide full-cycle development services.