SaFi Bank Space : Engineering Handover - Common

This is the list of what should be handed over (checked by SaFi side after handed over), and also it is a good agenda for the handover meeting:

  • Jira - how is the work managed, how to work with it
  • Confluence - how is documentation structured, brief overview
  • 3rd parties - what, for what, where it is documented
  • Contact persons/channels - for 3rd parties, product, …
  • Credentials - where are they, haw are they managed
  • Dev level test - what is covered, what not, where to put 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
  • tech leadership (who shall be the person from SaFi’s side if it is already clear)

  • consult their idea of ownership in the team (if nothing is missing)

  • cancelation of our meetings and let SaFi create their own invites

  • For developers (workshop, and maybe they already know):
  • code structure

  • microservices - important microservices and connections for the squad

  • 3rd parties of squad - how they work, pitfalls,

  • tooling - linters, how to run it locally, how to run tests…

  • business logic - short intro to business logic and what is the business scope of the squad and what not

Jira

Board: https://safibank.atlassian.net/jira/software/c/projects/SM/boards/34?quickFilter=64 - select without DK filter to remove frontend items owned by DKatalis:

This board is serving both Common squad items, and also for items that need to be addressed as a common effort by all squads (thus “common” items). Usually, Common squad is involved in some way in these items, but not necessarily implementing them fully:

Item

Explanation

All items with labels DK or FE

Owned by DKatalis, Common squad has no involvement whatsoever (historically, we had no FE expertise)

SAF-1279 - External - not Common Squad Backlog

Cross-cutting concerns, implementation done outside of Common squad, but final implementation will be owned by Common squad. This is because we wanted to leverage specific expertise from other groups.

SM-6622 - Data wipe [DEV] Done

Epic covering the work needed for the data wipe (done), driven by Architecture (Juraj Macháč (Unlicensed)), with Common squad contributions. Work is completed for this one.

All items tagged with [NFR]

Non-functional requirements, to be implemented by all squads (where applicable). Common squad is involved with enablement work.

Confluence

Solution Blueprint: Commons

Common Domain: Domain: Commons

3rd parties

  • Infobip - primary provider for SMS/email/Viber services Infobip

  • Macrokiosk - secondary provider for SMS/email services Macrokiosk

  • Ably - used for sending push notifications, managed by FE team

Contacts

Credentials

Credentials are stored in CICD Vault and injected for each service (replace brave with stage in each link for finding the STAGE env correspondent:

Dev level test

Historically, because the majority of our services were gateways to 3rd-party providers and had simple logic, we mostly relied on manual testing. That is currently being remedied, and the team is on an ongoing effort to improve automated testing and code coverage - covered in the following epic: SAF-1270 - Improve automated testing Backlog

  • infobip-email-gateway

  • infobip-sms-gateway

  • infobip-viber-gateway

  • macrokiosk-email-gateway:

  • macrokiosk-sms-gateway:

  • output-delivery-status-manager:

  • output-manager:

  • pdf-generator:

  • push-notifications-gateway:

Bugs/VAPT findings

No VAPT findings that concern the Common squad. All technical bugs are being tracked in the backlog.

Planned development for MVP

All business-related MVP work for Common squad is completed.

Remaining epics - only covering technical issues:

  • SAF-1269 - Tech Debt - MVP Backlog

    • technical debt that the team identified and deemed valuable for the MVP timeframe

    • 30% complete, 16/23 SP remaining

  • SAF-1267 - Common (Developer Productivity) Backlog

    • captures incoming technical requests from other squads

    • 80% complete, 21/105 SP remaining

  • SAF-1270 - Improve automated testing Backlog

    • writing automated tests, improving confidence in our code and increasing test coverage

    • 18% complete, 37/45 SP remaining

Besides this well-understood effort, additional work (currently in analysis) will be required for the following NFRs:

  • SAF-1273 - [NFR] Idempotency in services Backlog

    • the Common squad will own the idempotency-lib and will provide guidance for users

  • SAF-501 - Create GlobalExceptionHandler in common/utils that will be used by all services Backlog

    • the Common squad will design and implement the GlobalExceptionHandler, to be used by all services

  • SAF-85 - [NFR] Data privacy - endpoint exposure - Common squad Backlog

  • SAF-87 - [NFR] Input sanitization - Common squad Backlog

  • SAF-1272 - [NFR] Data privacy - logging Backlog

Ownership Handover

Handover is already in progress and the identified topics are tracked in this Jira item: SM-7018 - Create/update tech documentation + organize workshops for Common domain Done . The plan is to have documentation pages for each of the services and libraries owned by the Common squad, along with extras on the more important/complex topics.

The main point of contact from SaFi is zhenghong.li (Unlicensed), he will be taking over all technical topics. We’ve already discussed and identified technical gaps, which will be addressed by workshops within the team:

  • SM-7601 - Workshop for Kafka-related topics Done

  • SM-7602 - Workshop for GitHub Actions Done

For Developers

Code structure:

  • documented all services, libraries and plugins owned by Commons squad: Commons Technical Documentation

  • zhenghong.li (Unlicensed) is already very familiar with the team’s codebase, having contributed consistently until now

  • User 3077b is currently onboarding, already gained some familiarity with a few of the services by writing automated tests

  • the workshop topics that were identified are Kafka and GitHub Actions, both were covered:

  • idempotency-lib is still work-in-progress, not submitted yet

    • the plan is to have it submitted and documented by end-of-week, along with a PoC on how to use it

Microservices:

  • already documented, SaFi developers are familiar with architecture and code

Third-parties:

Tooling:

  • SaFi devs are familiar with the build and test processes, and the gaps we identified were covered in the workshops

Business Logic: