Employment — built within the current role · 2026

iSend SMSPlatform

Self-hosted, multi-user SMS sending with quotas, 2FA, and an audit trail.

ROLE  Sole developerSTATUS  In production, serving real usersFOR  a humanitarian organization
  • Next.js
  • React
  • TypeScript
  • Prisma
  • SQLite
  • NextAuth
  • Tailwind CSS
  • Vitest
sending gated by TOTP 2FAbatch history with live delivery statusevery action audit-logged

The organization sends SMS through iSend (isend.ly), a third-party Libyan provider. This platform is the layer the team actually uses: accounts with 2FA, per-user quotas, batch history, and live delivery status for every message — self-hosted, talking to the provider through its public API alone.

For hiring managers

One path to the gateway. Route handlers never call the provider directly — every send flows through a single orchestration module, and every response passes through one parser that normalizes the provider's inconsistent payload shapes into a single type. The rest of the codebase never branches on gateway quirks, and every message traces back to a user, a batch, and a delivery status.

Recipient lists arrive as raw paste, CSV, or XLSX; numbers are normalized against a configurable country code, deduplicated, and chunked before the gateway ever sees them. A background poller streams delivery status back per message, throttled and deduplicated, so history pages show live progress without hammering the API.

The security posture matches the stakes: TOTP 2FA is enforced the moment a live gateway credential exists, credentials are encrypted at rest and activated one at a time, a kill-switch stops all sending instantly, and every administrative action lands in an immutable audit log. Tests run on Vitest with the gateway mocked at the network boundary.

For clients

Paste a list, pick a message, send — and see exactly what happened to every recipient, live. Administrators create users, set their quotas, and read the full history of who sent what, when. The organization owns the whole system on its own infrastructure; no per-seat SaaS, no data leaving.

Live-system captures

Dashboard — per-user sending stats and recent activity
Dashboard — per-user sending stats and recent activity
Send — free-form recipients parsed, validated, and counted before anything leaves
Send — free-form recipients parsed, validated, and counted before anything leaves
Settings — the kill-switch and the country-code normalization rule
Settings — the kill-switch and the country-code normalization rule
Audit log — append-only, from first bootstrap onward
Audit log — append-only, from first bootstrap onward
First run — the setup flow that bootstraps the super-admin
First run — the setup flow that bootstraps the super-admin
Captures from the running system — identifying details redacted.