senior full-stack · taking work

Full-stack engineer, comfortable in five languages before lunch.

Laravel one morning, Django the next, a Node service in the afternoon, React on top, Postgres under all of it. Twelve years of this. Claude lives in my terminal now, so I move faster. The job hasn't changed though: writing software someone can still read in two years.

unaib · live
v2
basedislamabad, pk · utc+5
availabilityopen for q3 2026
primary stacklaravel · django · node · react
datapostgres · mysql · redis
infraansible · hetzner · digitalocean
daily toolsclaude · gemini · n8n
replysame day, most days
// languages
5
php · python · ts · sql · bash
// shipped systems
30 +
production web apps in twelve years
// ai-assisted output
2.5 x
measured throughput since 2024
// coffee:commit
1 :6
approximately
// 01 · about

A generalist who refuses to specialise.

I picked PHP first because the agencies in 2014 paid for it. Then Laravel, because the PHP I was writing deserved better bones. Then Python and Django because data work was creeping in. Node because the frontend kept asking for a real backend. React because everyone's frontend is React now. Twelve years later, I'm not loyal to a stack. I'm loyal to the right tool for the job, the one the client can still hire for later.

Postgres for anything serious, MySQL when I've inherited it, Redis when something has to be fast. Hosting depends on the budget: Hetzner when money's tight, a managed cloud when compliance asks, Kubernetes only once the scale actually earns the headache.

The new layer is AI. Claude, Gemini and the OpenAI APIs are in my daily flow. Not something I'm selling you, just how the work actually gets done now. If you haven't worked out where they fit yet, I'll tell you what's real and what's marketing.

Toptal-vetted. Async-friendly. Hate meetings that could have been a PR description.

laravel django node react typescript postgres mysql redis claude gemini n8n

now

current build a django service with claude in the middle
reading designing data-intensive applications (again)
shipping postgres migrations, the unsexy kind
learning rust, slowly, badly
listening changelog, syntax.fm
drinking chai
hours 10:00–19:00 pkt, flexible
// 02 · work history

Where I've spent the years.

2023.09 → present
Akademias
// Principal Engineer · Reykjavík

Lead engineer on a tenanted learning platform serving regulated industries across the Nordics. Owns the full stack: backend services, the data layer, and the infrastructure under it. Planned and ran a full DigitalOcean → Hetzner fleet migration; wired Claude into tier-one support triage.

php laravel postgres redis ansible hetzner
Outcome
$5k/mo infra cut · 5–20× perf
2023.01 → 2023.09
AVIA Platform
// Senior Engineer · via Toptal

Foundation phase of a multi-tenant SaaS: tenant isolation, REST APIs, payments, and the unglamorous data migrations nobody else wanted. ~144 commits across the engagement.

php rest mysql digitalocean
Outcome
20 tenants live · 10k users
2021 → 2022
Reup Social Shopping
// Senior Full-stack Engineer · via Toptal

Etsy-style social-commerce marketplace. Architected REST APIs for the mobile client and the AWS autoscaling profile that backed them. Stripe billing edges, Instagram-linked discount workflows, the works.

php node stripe aws rest
Outcome
mobile API live · autoscale tuned
2018 → 2021
WooNinjas
// Senior Engineer

Long engagement, deep codebase. Bespoke integrations across LMS, billing and membership platforms; WP-CLI tooling for bulk migrations across multiple managed hosts. The work that taught me what "maintainable" actually means.

php mysql wp-cli cloudways wp-engine
Outcome
dozens of integrations shipped
// 03 · selected work

Where the work shows up.

Platform · Multi-tenant SaaS

Auth0 fleet migration — 120 connections in 84 seconds, zero failures.

Built the tooling that bulk-updated 120 production Auth0 tenant connections during a platform migration. Caught a shallow-merge bug pre-flight that would have silently wiped 120,000 user logins. Dry-run preview, deep merge, then a production cutover in 84 seconds wall-clock. The kind of job that lives or dies on whether someone built the dry-run first.

Node PHP Auth0 SCIM 2.0
Read the case study
Infra · Cost engineering

DigitalOcean → Hetzner fleet migration

Took a managed-host monthly bill and cut ~$5k/mo off it without breaking anything. Capacity model, Ansible-managed Hetzner boxes, tuned Postgres + Redis, observability done properly. 99.97% uptime through the cutover; 5–20× perf gains on the routes that mattered.

Ansible Hetzner Postgres Redis
Read the breakdown
Backend · APIs

REST API + mobile client backend

A small, sharp set of services backing a mobile-first social-commerce app. Stripe billing edges, autoscaling profile tuned to actual traffic, sane defaults that survived contact with real users.

PHP Node Stripe AWS
reupsocialshopping.com
Integrations · Workflow

Bespoke integrations across LMS + billing

Years of engagements where the answer was "no marketplace plugin will fit." Custom flows across LearnDash, LifterLMS, WooCommerce, Restrict Content Pro and Stripe, wired the way the client actually needed instead of the way the docs assumed.

PHP Stripe PayPal REST
one live example
// 04 · writing

Field notes from production.

All writing
// 05 · contact

Tell me what's broken.

Email's the fastest way. I read every message myself and usually reply within a working day, in plain English, with a clear yes / not-now / not-a-fit. If you want a call, send a short brief first. It makes the call ten times more useful.