Skip to content
All work
Fintech

CIB Digital Banking

Payment features that clear compliance and ship to a national bank's customers.

Role
Software Engineer — requirements, backend services, API specs, UAT
Timeline
Mar 2025 — Present
Stack
  • Node.js
  • NestJS
  • REST API design
  • React
  • React Native
  • Agile & Scrum
  • Jira
Links
Not publicly available

The problem

What was broken, for whom

CIB's customers needed faster, more self-serve ways to manage cards and payments — activating Apple Pay, getting a new card without a branch visit, moving money into a mutual fund — without any of it compromising the controls a bank is required to have.

Context

Constraints that shaped it

Banking software has a different failure mode than most software: a bug is not an inconvenience, it is somebody's money. Every feature here went through a heavier requirements and testing process than the equivalent would in a startup, for good reason. Specific internal architecture, data and metrics are not shown here — this is a description of the process and my role in it, not the system.

My role

What I actually did

I work across the stack on the features listed below: gathering requirements alongside product owners and business stakeholders, writing the backend services and REST APIs, documenting the API contract for other teams, and supporting UAT through to release.

Requirements

Stakeholders and what they needed

  • Sat in requirements sessions with product owners and business stakeholders to turn a business ask into functional and technical requirements
  • Worked with QA and frontend engineers so a spec was implementable and testable before a line of code was written
  • Wrote API documentation and technical specifications used as the contract between business and engineering
  • Ran system testing, defect resolution and User Acceptance Testing with the people who would actually sign off the feature

The solution

What I built

Backend services built with Node.js and NestJS, exposed as documented REST APIs, feeding a React and React Native frontend. The CIB × WE portal is the clearest example: it integrates backend APIs to surface real-time payment information and transaction updates for customers, replacing what used to require a manual check.

Decisions

Trade-offs made on purpose

  • Treated API documentation as a deliverable, not an afterthought — it is what let frontend engineers, QA and business stakeholders work from the same source of truth instead of reverse-engineering behaviour from a running service
  • Built UAT into the delivery process rather than bolting it on at the end, so defects surfaced against real business scenarios before release, not after

Challenges

What broke, and what I'd change

  • Regulated features like Apple Pay activation and mutual-fund trading carry compliance requirements that a typical product feature doesn't — every requirement had to be traceable back to a business or regulatory need, which slows the first pass but prevents expensive rework later
  • Coordinating a spec across product owners, QA and frontend engineers who each read a requirement differently is a real skill, and the biggest lesson has been writing specifications specific enough to remove ambiguity without making them so rigid they can't absorb a late-stage business change

Results

What actually happened

  • Shipped Apple Pay activation, Instant Card Issuance, Real-Time Deposit Redemption and Mutual Fund Trading
  • Designed and built the CIB × WE portal

What I learned

The takeaway

The best banking engineers are not the ones who write the cleverest code — they are the ones whose spec a QA engineer, a product owner and a backend developer can all read the same way. That skill transfers to every team I've worked with since.

Gallery

CIB Business Banking mobile app showing account balances and quick actions
CIB Business Banking — official app promotion

More work

RescueTap wearable enclosure, hand-labelled prototype
Hardware & IoTHonorable Mention — ETH Zurich

RescueTap

One tap — or a detected fall — sends a caregiver your exact location.

  • Python
  • Raspberry Pi 4
  • MPU-6050 / I2C
  • Twilio WhatsApp API
  • +2

Read case study

GlimpseGems home screen showing mood-based categories and trending gems
Mobile

GlimpseGems

A city's hidden places — found by mood, saved, and shared with friends.

  • React Native
  • TypeScript
  • Supabase
  • Tailwind CSS
  • +1

Read case study

Contact

Have a problem worth solving?

I'm open to Software Engineer and Product Engineer roles — remote, or relocating. Based in Cairo, EET (UTC+2).