SaFi Bank Space : Engineering Handover - Subscriptions and Challenges

  • Jira - how is the work managed, how to work with it
  • Confluence - how is documentation structured, a brief overview
  • 3rd parties - what, for what, where it is documented
  • Contact persons/channels - for 3rd parties, products, …
  • Credentials - where are they, how are they managed
  • Dev level test - what is covered, what not, where to put the focus, where to be careful
  • Bugs/VAPT findings - which are there for SaFi to pick up
  • Planned development for MVP - what we were planning to do till the end of January (NFRs, tests, tech debt…)
  • Ownership handover

Jira

In our squad, we are using Kanban board for the current sprint. The board can be found here: https://safibank.atlassian.net/jira/software/c/projects/SM/boards/18 We were working as a sub-squad under the Accounts squad. For specific sub-squad, we’re using Quick filters based on labels, so all tasks belonging to our sub-squad were always marked with Subscription and Challenges Label.

We are following the workflow defined for the whole SaFi project described here: Jira Rules

Confluence

This confluence contains various information from HOW-TOs for architecture documentation. Here is the list related to our squad:

  • Documentation of processes and overall architecture within Challenges scope is Challenges.

  • Documentation of processes and overall architecture within Subscriptions scope can be found under Domain: Accounts page, e.g. user stories: Subscriptions US

  • Some general information focused on tech people can be found here: IT-general.

  • For onboarding new engineers to the team, they can start by reading this: Dev HOWTO

3rd parties

For paying subscription fees we were integrating a bit of Thought Machine, this should be hopefully replaced by just using the postings library.

All available documentation to 3rd parties is stored in the Lark here.

Contact persons/channels

Slack (not only designed for the sub-squad but for the whole Accounts squad)

  • squad-accounts-finance - squad channel

  • squad-accounts-knowledge - channel for questions during the hand-over

  • squad-accounts-finance-code-review - channel for requests for review of urgent PRs.

Lark

  • Product: Account - general Account channel for communication with the management regarding this topic.

Credentials

Developers have access to “dev” environment (current name is “brave”). Microservices do not use hardcoded credentials, but they use predefined set of environment entries, which are then set by Kubernetes. To access eg. database developer can credentials from Hashicorp Vault using these steps.

Dev level test

All transactions microservices have component tests within src/test folders. These follow rules defined for isolated tests and are environment-independent. They are relying on JDK17 and Docker. Apart from that, they run using embedded gradle (gradlew) instance, yet they download the artifacts from Safi repository. Therefore an internet connection is still required.

Bugs/VAPT findings

No VAPT findings.

Planned development for MVP

There were plans to

  • Add component tests,

  • Using of idempotency library to ensure robustness of the solution in various unhappy scenarios.

  • It is also worth mentioning, there is still no automation for deploying airflow jobs overall in SaFi and it would be beneficial to handle this.

  • Using of postings library.

Ownership handover

At the moment from an engineering perspective, most of the information should be spread between User c0f71, Gavin Zhang (Unlicensed), Neil Wang (Unlicensed), and James Zhou (Unlicensed) who were working with the squad for the longest time.

For developers

  • Code structure presented on handover sessions.

  • Architecture to be finished yet, including context diagrams.

  • The rest of the information is in Dev HOW TO in Jira.