001— Introduction portfolio / v.026

Freelance web developer —
programmer first,
learning design and UX on real ships.

I'm a programmer first — client sites, custom admin, side projects — and I'm learning design and UX on the same work: layout, flows, and copy that don't read like afterthoughts once the APIs and deploys are in place.

Still early. Still shipping. The hard parts are still APIs to wire, auth to redo, deploys that fail at the finish line — but I won't call it done until the interface feels intentional, not just working.

Recent work Grounds DevelopmentsAurora-CommsMomentsdubcheck
Currently May 2026
  • ShippedGrounds Developments
  • BuildingAurora for Advertising
  • Buildingdubcheck
§ 01   Featured case study 2024 · current
§ 02   Selected work 2025 — 2026 · two
§ 05   About the long form

I'm a programmer first. These days I freelance on the web — still early, still learning design and UX on real briefs, not slide decks.

I'm a freelance web developer who got good at the stack first and is deliberately leveling up layout, type, and flows. Client sites, custom admin, side projects — each one surfaces something I hadn't shipped before: a marketing API to wire, auth to get right on the second try, a deploy that breaks when the finish line's in sight.

I'm not selling seniority. I'm building toward it — one project at a time, practicing the design side on the same ships, and treating every stuck point as the next thing to figure out.

Based inCairo, EG
Working since2020
LanguagesEN, FR, AR
Stack todayTS · React · Postgres
Time zoneUTC+2
HourlyOn request
§ 06   Stack experience, not skill bars

TypeScript

since 2020
Daily driversince 2020
  • Strict configs across Aurora, Moments, and dubcheck
  • Zod for API and form validation
  • Shared types between admin UI and report jobs

React

since 2020
Daily driversince 2020
  • Next.js apps for client sites and own products
  • Component patterns I reuse across projects
  • Comfortable debugging state and layout issues in production

Next.js

since 2020
Productionsince 2020
  • App Router on Moments and dubcheck
  • SSR and API routes for marketing sites
  • Deploys on Vercel with env-specific config

Postgres

since 2020
Productionsince 2020
  • Prisma on Moments — schema, migrations, auth tables
  • Drizzle on dubcheck — typed queries in the monorepo
  • Indexes and EXPLAIN when a query actually hurts

AWS S3 & Lambda

since 2024
Productionsince 2024
  • Presigned guest uploads on Moments
  • S3-triggered Lambda for image processing
  • IAM and lifecycle rules on asset buckets
§ 08   Experience résumé, long form
2020— now

Freelance web developer

Independent · client work + own products

Full-stackLearning UX

Programmer first; learning design and UX on the job. I freelance on the web — client sites with custom admin (Aurora-Comms: marketing site, portfolio CMS, Meta/TikTok/Google reporting APIs), plus own products I build and ship (Moments — guest photo sharing with S3 + Lambda and Better Auth; dubcheck — monorepo with REST API, browser extension, 12k+ titles). Still early in the career arc, but I own the code, data model, and deploy through launch — and I'm deliberately getting better at layout, flows, and copy on every project.

§ 09   How I work scope, timeline, fit
Typical scope

One surface, owned whole — Next.js, APIs, deploy, and UI I'm actively improving. Often a marketing site with a custom admin and third-party integrations (Aurora-shaped), or a product from brief to ship (Moments, dubcheck). Solo by default; fine pairing with one backend or PM when the scope needs it.

Engagement

Fixed-scope project quotes or a 4 – 10 week embedded sprint when you need one engineer who'll own the build and care about how it feels. No hourly ticket queues or open-ended retainers.

Kickoff

Usually 2 – 3 weeks out (Cairo, UTC+2). One call, then a plain-text scope, milestones, and price — read it async, reply when you're ready.

Good fits

Agencies, founders, and small teams shipping something real — you care how it feels and will let one person move. Pass on design-only decks, body-shop staffing, or polish on a codebase nobody can touch.

Let's build
something good.

Command palette

Jump to a section or run an action