Payment systems,multi-tenant data,and the productionthey run in.
Senior full-stack engineer and deputy technical lead, 7+ years on Node, TypeScript, React and PostgreSQL. I'm currently architecting a crypto payment gateway end to end — payment flows, provider integrations, schema, migrations, and the infrastructure it runs on.
The pattern across my last three roles is the same: I'm the person who owns the hardest subsystem, sets the quality bar through review, and stays responsible for it after it ships.
A crypto payment gateway, architected from zero
PROBLEMA payments product in a regulated domain needed to move real value across volatile rails, with every balance provable and every failure recoverable.
APPROACHI own the architecture on Node/Express + PostgreSQL + React: transaction processing, settlement, wallet handling, and third-party provider integrations. Accounts, transactions and balances are modelled as append-only ledger entries so state is derived, never overwritten.
RESULTGateway running in containerized production with CI/CD, monitoring, hardened APIs and safe forward-only migrations — and a security posture that holds up to financial-domain review.
Three provably-fair games, three deposit rails
PROBLEMPlayers had to be able to trust game outcomes without trusting the operator — and fund accounts through three completely different value networks.
APPROACHI wrote three games on a commit-reveal fairness model — server seed hashed and published before play, revealed after, so any round can be re-derived independently — across MongoDB-backed microservices. Then three deposit methods: in-game skin trades, on-chain crypto, and card/bank through a PSP, each with its own confirmation semantics and reconciliation path.
RESULTVerifiable outcomes players can check themselves, and three funding routes that fail independently instead of taking the platform down together.
Mongo to Postgres without taking the product down
PROBLEMA multi-tenant SaaS had outgrown a document store: tenant isolation was enforced in application code, analytics queries were expensive, and AI features needed vector search.
APPROACHI architected and executed the migration to PostgreSQL with Row-Level Security so isolation lives in the database, not in every query, plus pgvector for retrieval. Zero-downtime cutover via dual-write and backfill, then data sync and pricing/analytics pipelines feeding the reporting and AI modules.
RESULTIsolation guaranteed at the row level, and RAG chat, smart kiosk, customer analytics and personalization shipped on the new schema — with every merge to production reviewed by me.
Four years on sensitive-document workflows
PROBLEMA monolithic platform handling confidential documents was hard to extend and risky to deploy, across React, Angular and three different databases.
APPROACHActing as senior engineer, I made architectural calls independently, led review, and split the platform into microservices. Schemas and queries optimized across PostgreSQL-compatible, MongoDB and MySQL stores with migration safety as a hard requirement.
RESULTFaster queries, safer deploys, and full project lifecycles delivered from concept to production in direct collaboration with leadership.
How a deposit becomes a confirmed balance
The same six stages sit behind every rail I've built — crypto, card/bank via PSP, and in-game skin trades. Where they differ is what “confirmed” means, and what has to be reversible.
Deposit intent is created, not trusted
The client asks for a deposit; the server creates a pending intent with its own id, expected amount, rail, and a unique address or reference. Nothing the client sends about value is trusted — amounts are re-derived server-side.
A user opening ten intents and paying one. Intents expire, and only the reference that actually receives value can settle.
const intent = await tx.one(
`INSERT INTO deposit_intents
(user_id, rail, expected_amount, ref, status)
VALUES ($1,$2,$3,$4,'pending')
RETURNING id, ref`,
[userId, rail, amount, ref]
);backend
Node.js · Express · NestJS · TypeScript · RESTful API design · microservices
data
PostgreSQL — RLS, complex queries, schema design, migrations, pgvector · MongoDB · MySQL
frontend
React · Next.js · Angular · TypeScript · responsive UI · React Native (familiar)
infrastructure
Docker · CI/CD pipelines · production monitoring · Git/GitHub · security hardening
domains
Payment gateways & pricing · crypto/blockchain payments · multi-tenant SaaS · regulated / HIPAA-aware practice
ai-augmented
Directing, auditing and reviewing AI-generated code · RAG · vector search · LLM integration
Dbayeh, Lebanon
Architect and build the gateway end to end. Senior engineer on the team: independent architectural decisions, code review, unblocking others.
Remote
Owned architecture and reviewed every merge to production. Led the Mongo→Postgres re-platform with RLS and pgvector; shipped AI, kiosk and analytics modules.
Remote
Senior engineer across React, Angular and Node. Microservices decomposition, multi-database schema and query optimization, full lifecycle delivery.
Lebanon
Owned automated and manual test strategy and regression suites — where the habit of reviewing code against a hard quality bar started.
Lebanon
Kept production systems and infrastructure running; root-cause analysis under time pressure.
English fluent · Arabic native · French conversational
Need someone to own the part of the system that scares everyone?
That's usually the one I take. Beirut-based with full overlap on US hours, comfortable talking directly with executive leadership, and available for senior or lead roles.