Tarrek Osama

Port Said local time

Colour theme

Selected workCircuit 4 · Jobs

Rental management

Heavy money reports that never slow the app

My role
Architect and builder
When
Freelance · 2023 – present
Where it stands
Freelance · client
laravelredis queuesupervisorjobsworkers
heavy work in the background · the app stays fast

What I built

A decoupled rental management system: a Laravel core, a Node.js WhatsApp microservice, async job processing and a multi-channel notification engine.

Why it mattered

Financial totals across many rentals are slow to compute and must not block the app. Reminders and notices have to reach people where they actually read them, often WhatsApp.

Try itDrag the number of report jobs queued. Workers take what they can and the rest wait in Redis. Then crash a worker and see Supervisor bring it back.

Illustration running in your browser. It shows the real system’s approach in simplified form; names and numbers are invented, and nothing here touches the real system.

What made it difficult

  • Slow sums

    Financial aggregation across many rentals takes time, and nobody should wait on a page for it.

  • Workers die

    A background process that stops quietly means reports that never arrive.

  • Three channels

    In-app, email and WhatsApp each deliver differently.

How I solved it

  1. Heavy work in queues

    Financial aggregation runs as background jobs on Redis, watched by Horizon and kept alive by Supervisor.

  2. Decoupled WhatsApp

    WhatsApp lives in its own Node.js microservice, so the Laravel core stays simple and each side can change alone.

  3. One engine, three channels

    A single notification engine sends to the database (in-app), email and WhatsApp.

What I delivered

A rental management system for a private enterprise client.

Rental operations, financial aggregation in the background and notifications by app, email and WhatsApp.

No usage numbers are published here.

Built with

  • Laravel
  • Node.js
  • Redis
  • Horizon
  • Supervisor
  • WhatsApp