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. I'm learning design and UX on the same work: layout, flows, and copy that don't feel tacked on after the APIs and deploys are done.

Still early. Still shipping. APIs to wire, auth to redo, deploys that break at the last minute. 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 · three
§ 05   About the long form

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

I'm a freelance web developer who got comfortable with the stack first and is deliberately getting better at layout, type, and flows. Every client site, admin panel, or side project surfaces something new: a marketing API to wire, auth to fix on the second try, a deploy that breaks when you're almost done.

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 to 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 with marketing site, portfolio CMS, and Meta/TikTok/Google reporting APIs), plus products I build and ship myself (Moments for guest photo sharing with S3, Lambda, and Better Auth; dubcheck as a monorepo with REST API, browser extension, and 12k+ titles). Still early, but I own the code, data model, and deploy through launch, and I'm 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 custom admin and third-party integrations (Aurora-shaped), or a product from brief to ship (Moments, dubcheck). Solo by default. Happy to pair with one backend or PM when the scope needs it.

Engagement

Fixed-scope project quotes or a 4 to 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 to 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. I'll 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