Back to projects

Jago Bank

Digital Bank App

A digital bank app for end-to-end financial services: self-KYC account opening, transfers between accounts, and day-to-day finance management.

Technical LeaderCompany ↗
FintechMobileFlutterNode.jsMongoDBAWS
Digital Bank App screenshot

Overview

Jago's digital bank app provides an end-to-end financial service: online banking and the services around it in Indonesia. People can open an account through self-KYC, transfer between accounts, and manage their finances in the app.

The engagement ran for 12 months and ended in August 2020. At the time, the product team was 48+ people in 4 squads, with 12+ members in each squad.

The Challenge

The app had to stay coherent across a large mobile organization. Four squads needed a shared Flutter core, a clear technical direction, and a way to turn business requirements into implementation without each squad inventing its own approach.

That also meant coordinating with the client engineering team, keeping technical quality consistent, and making architecture decisions with the risk of the implementation in view.

My Role

I was technical leader for the mobile work.

  • Built a codebase and a common core with Flutter and Dart
  • Found engineering practices, analyzed issues, and proposed a development strategy
  • Researched newer implementations instead of defaulting to the traditional approach
  • Reviewed code and supported senior and junior developers
  • Took part in interviews to build the team
  • Set a technical vision, resolved technical disagreements, and managed the technical quality of what the team delivered
  • Made decisions and identified risk from the implementation and technical architecture
  • Led the mobile team on a large-scale application
  • Aligned the technical direction
  • Coordinated with the client-side engineering team
  • Discussed and analyzed technical implementation against business requirements

Architecture

The mobile app is a Flutter and Dart client built around a shared core. It talks to a Node.js backend. Data and infrastructure are MongoDB and AWS.

The diagram is only that stack. It is not a full banking-system design.

Engineering highlights

  1. 01

    Shared mobile core

    Built a codebase and a common core with Flutter and Dart so squads could share implementation instead of repeating it.

  2. 02

    Engineering direction

    Looked for engineering practices, analyzed issues, and proposed a development strategy, including newer implementations where the traditional approach was a poor fit.

  3. 03

    Technical quality

    Set a technical vision, resolved disagreements, and made architecture decisions with the implementation risk in view.

  4. 04

    Team leadership

    Led the mobile team, reviewed code, supported senior and junior developers, interviewed candidates, and aligned technical direction with the client engineering team.

Architecture (simplified)

┌──────────────────────┐
│  Digital bank app    │
│  Flutter / Dart      │
└──────────┬───────────┘
           │
           ▼
┌──────────────────────┐
│  Backend             │
│  Node.js             │
└──────────┬───────────┘
           │
           ▼
┌──────────────────────┐
│  Data / Infra        │
│                      │
│  MongoDB · AWS       │
└──────────────────────┘