# Contents

At Fingo, our commitment to efficiency and reliability sets us apart. As a digital banking platform, we've recently revolutionized our development process to provide even better service to our customers.

One of the pivotal changes we've made is migrating from TypeScript to Go, enhancing our performance, streamlining operations, and ultimately, serving you better.

TL;DR
  • Fingo migrated from TypeScript to Go for improved performance and reliability

  • Benefits include faster testing, enhanced efficiency, and easier deployment

  • The move positions Fingo to better handle growth in the fintech sector

Why Fingo Chose Go Over TypeScript

Our move to Go was rooted in the need for a more reliable and performant language. TypeScript, though powerful, came with its share of frustrations—errors, package conflicts, and versioning headaches were becoming hurdles. Go, with its rigorous emphasis on correctness, performance, and a lean structure, proved to be the solution we needed.

Fingo Pipeline
Fingo Pipeline

Key Advantages of Go

  • Inbuilt Testing Framework: Go includes a built-in testing framework, which eliminates the internal debates over which testing framework to use. This streamlines the testing process and ensures consistency across teams.

  • Performance of Testing Frameworks: Testing frameworks in TypeScript, like Jest or Mocha, took 8-10 minutes to run the complete test suite. In contrast, Go's testing framework completes both unit and integration tests in just 1-2 minutes. This speed advantage allows developers to receive feedback and implement changes faster, feeding into the development pipeline more quickly.

  • Enhanced Development Pipeline: Migrating to Go has significantly boosted Fingo's production efficiency. Common issues in TypeScript are virtually absent in Go, resulting in a smoother and more efficient development process.

  • Tooling & Security: The Go ecosystem offers several advantages over the NPM ecosystem of TypeScript. Go's built-in concurrency, with Goroutines and channels, optimizes services for faster processing, which is essential for handling Fingo's extensive financial transactions.

  • Ease of Deployment: Go binaries are significantly smaller (80MB) compared to TypeScript file sizes (800MB), leading to reduced processor utilization and cost implications. This reduction in size and cost is crucial for Fingo's large-scale operations.

Challenges and Learnings

Despite the many advantages, the transition to Go was not without its challenges. The concurrency model in Go requires a learning curve, and the binary size, although smaller than TypeScript files, still presents some overhead. Additionally, while the Go community and ecosystem are robust, they are not as extensive as those of JavaScript and TypeScript.

To streamline the transition process and ensure standardized development environments across our team, we are considering to leverage modern development environment management tools, which could prove invaluable in maintaining productivity during this significant change.

However, the benefits far outweigh the downsides. The move to Go has positioned Fingo to better handle its growing customer base and the increasing complexity of its financial products.

The Future is Go-lden

Fingo's strategic shift to Go is a commitment to innovation and efficiency. By adopting a language that enhances performance and streamlines operations, Fingo is better equipped to meet the needs of its customers and stay ahead in the competitive fintech landscape.

As Fingo continues to innovate, it remains focused on delivering top-notch services and products to its customers. The migration to Go is just one of the many steps Fingo is taking to ensure it remains a leader in the field of Islamic banking.

For more insights into Fingo's technological advancements and their impact on Islamic banking, be sure to visit Fingo's blog.

Tags::
  • go
  • migration