Lagos, Nigeria · Open to interesting problems

Tunde Alabi

Full-Stack Engineer

TypeScript, React, Node. Payments and commerce in production; AWS ops from prior roles. Multi-tenant systems and offline sync on the side.

Selected work

Systems with receipts

Production commerce work, plus open engineering built to make the hard decisions visible.

Shipped

Solo: NestJS API, React web, infra, docs

Rivet

Multi-tenant issue tracker built as production-minded SaaS: org isolation, RBAC, Stripe billing, async exports, and OpenTelemetry — with ADRs for the hard calls.

Highlights

  • Application-layer tenant isolation (CLS + Prisma), RLS deferred on purpose
  • Field-level issue concurrency (CAS + description hash) without CRDTs
  • Always-async CSV export with quotas, idempotency, and signed downloads
  • CI: lint, typecheck, unit, build, e2e for isolation + RBAC
NestJSPrismaPostgreSQLBullMQStripeReactOpenTelemetry

Shipped

Full-Stack: APIs, React admin, React Native, WordPress

Justrite Online

E-commerce for a multi-location Nigerian retailer — Node APIs, React admin, React Native apps, and WordPress marketing, with payments and logistics under real transaction volume.

Highlights

  • 30+ REST APIs for internal systems and public integrations
  • Paystack + Flutterwave: ₦5M+ monthly payment volume
  • Chowdeck logistics for live delivery tracking
  • Background jobs cut manual ops work by ~60%
Node.jsExpressMongoDBReactReact NativeWordPressTypeScript

Shipped

Full-Stack Developer

Vibeoo

Audio discovery and broadcasting platform — end-to-end ownership from API design through React UI, auth, S3 media, and CI/CD.

Highlights

  • Auth, RBAC, and frontend flows for a growing content platform
  • Media assets on Amazon S3 with signed access where needed
  • Mentored juniors via reviews and pairing
  • CI/CD, performance passes, and maintainability refactors
Next.jsNode.jsMongoDBS3TypeScript

In design

Full-Stack: React Native + thin Node sync API

Waypoint

Offline-first trip companion. The product is the demo; the depth is a generic sync engine (HLC-LWW, outbox, tombstones) across packing, itinerary, and expenses.

Case study after Phase 1 ships.

Highlights

  • Field-level HLC LWW: concurrent edits to different fields never clobber
  • Entity-agnostic outbox + merge shared by all entity types
  • Explicit delete/edit resurrection rules and fractional list indexing
React NativeExpoSQLitePostgresWebSocket

Experience

Where the production scars come from

Newest first. Day job is commerce and payments; open work is where I go deep on architecture.

  1. Apr 2024 - Present

    Justrite Limited

    Full-Stack Developer

    Current
    • Built and maintained systems across the customer app (React Native), internal React admin, Node APIs, and the WordPress marketing site.
    • Owned 30+ secure REST APIs for internal tools and public integrations.
    • Integrated Paystack and Flutterwave: ₦5M+ monthly payment volume.
    • Connected Chowdeck for real-time delivery tracking; fewer fulfilment errors.
    • Automated sync and reporting jobs — ~60% less manual intervention.
  2. Apr 2022 - Sep 2024

    Athena Tech Services

    Full-Stack Developer

    • Drove TypeScript full-stack feature delivery (React + Node) — API design through UI and production release.
    • Ran production Node services on AWS: ECS behind an ELB, with RDS and ElastiCache on the request path.
    • Used S3, SQS/SNS, and DynamoDB for storage and async work; CloudWatch for monitoring and IAM for scoped access.
    • Introduced ElastiCache (Redis) caching — ~50% faster API and page loads on critical paths.
    • Integrated PayPal and Flutterwave for cross-platform payments.
    • Built automated test suites (unit, integration, E2E) targeting 70%+ coverage.
    • Designed relational and NoSQL schemas for high-traffic workloads.
  3. Aug 2022 - Apr 2023

    Vibeoo Media

    Full-Stack Developer · Concurrent with Athena

    • Built Node/MongoDB backends and React/TypeScript UIs for a growing audio platform.
    • Stored and served media assets via Amazon S3 with signed access where needed.
    • Shipped auth, RBAC, and end-to-end API-to-UI delivery.
    • Mentored juniors through reviews and pairing; set up CI/CD and led refactors.
  4. Apr 2021 - Apr 2022

    Troyka Holdings

    Full-Stack Developer

    • Shipped internal React/Node/MongoDB apps, including a system to track billboard rental contracts, payments, and renewal dates — replacing a manual process that made it difficult to know which clients were due for renewal or which payments were outstanding.
    • Owned deploy, health checks, backups, and incident response for production systems.
  5. Aug 2021 - Jul 2022

    HNG (Zuri Chat — open source)

    Maintainer & Team Lead · Concurrent with Troyka — HNG finalist

    • Maintained and led a 15+ person contributor team on a real-time chat product.
    • Shipped React and Node features, reviewed PRs, and mentored during sprints.

About

Engineer first. Portfolio second.

I'm Tunde Alabi, a full-stack engineer based in Lagos, Nigeria. I ship TypeScript systems end to end: APIs, web, mobile, jobs, and the production details that keep them honest.

At Justrite I work on payments and logistics integrations that move real money and orders. At Athena I ran production TypeScript services on AWS (ECS, RDS, ElastiCache, S3, SQS/SNS, and more). Outside work I build Rivet so I can own multi-tenant isolation, concurrency, billing, and observability decisions in the open — depth that client work rarely lets me publish.

Next: Waypoint (offline-first sync) and a synthetic multi-user swarm aimed at concurrency behavior, not vanity load numbers. I write about the trade-offs as I go.

Writing

Notes from the build

Short summaries here. Full essays land on Hashnode when published — engineering decisions, not tutorial filler.

All writing →
  • Upcoming#multi-tenant#prisma#architecture

    Why Rivet defers Postgres RLS for CLS + Prisma tenant scoping

    Application-layer isolation is enough when one Nest service owns the database. When RLS becomes worth the ops cost — and how jobs and webhooks stay on the same path.

    Drafting
  • Upcoming#concurrency#apis

    Field-level concurrency without CRDTs

    CAS on status and assignee, content-hash checks on descriptions, LWW elsewhere: a pragmatic policy for issue trackers that avoids collaborative-editing infrastructure.

    Drafting
  • Upcoming#jobs#saas

    Always-async CSV export in a multi-tenant API

    202 + poll, org quotas, idempotency keys, signed URLs, and tenant context inside BullMQ workers — without holding a DB transaction across file I/O.

    Drafting
  • Upcoming#auth#security

    Cross-origin SPA auth: access JWT + httpOnly refresh

    Vercel frontend, Render API, SameSite=None cookies, rotation, and why org context stays out of the access token.

    Drafting

Contact

Let's talk

Hiring, collaborating, or just curious about Rivet / Waypoint — send a note. Prefer not to use the form? Find me on GitHub or LinkedIn below.