50p 2018

India's first independent conference on payments and the payment ecosystem

What we learnt building BHIM in just 3 weeks

Submitted by JUSPAY Technologies Pvt Ltd (@juspay-careers) on Monday, 20 November 2017

Section: Full talk Technical level: Intermediate

View proposal in schedule

Abstract

How functional programming techniques and a fully Javascript based app development
platform helped us to build BHIM & *99# in 3 weeks.

We created BHIM and it’s USSD counterpart *99# in just 3 weeks. This was primarily
because of adoption of pure functional programming techniques and usage of a custom
built javascript based app development framework. Javascript unified multiple platforms
and had an impact on reducing the overall effort. Functional programming techniques
enabled multiple teams to work in a hyper parallel mode and assemble components in a
robust way in a short timespan. Here we share our learnings.

Outline

  1. The requirement to build a p2p payments app on top of UPI. In 3 weeks.

    • Started as building the “Reference app for UPI”, which transformed to BHIM.
    • The technical requirement - Build highly scalable, secure, stable and universally available p2p payments platform built on top of UPI in record time that will horizontally scale to 200M customers.
  2. Only possible if we

    • Hyper parallelize work and identify composable parts
    • Write less code. Reuse.
    • Rapidly iterate with acceptance testing cycles.
  3. The Technology we chose: Javascript for unification & FP for composition,
    robustness. Learnings Good and Bad:

    • Good
      • Integrated backend for BHIM and *99#
      • Usage of FP - monads, pure functions, state and error handling
        • Using Monads to sequence flows in JS really improved robustness
      • Use of JS - unified code across platforms, achieved small size app <2MB
      • Innovation in handling accessibility and multilingual content
      • Innovation in managing parallel work & working in shifts.
    • Bad
      • The Redux way complicated the frontend for transactional use case.
      • Raw metal datacenter deployments need pre-planning. What we missed.

Speaker bio

Vimal Kumar is the CEO of JusPay

Comments

  • Pavan Yara (@pavan-yara) a year ago

    Congrats on the #BHIM success! Looking forward to your session.

Login with Twitter or Google to leave a comment