Skip to content
Abdullah.

Abdullah Sahraoui

Abdullah Sahraoui

Founding Engineer / Full-stack — TypeScript, Next.js, AI systems

I build the systems small organisations actually run on.

Four years shipping production software — from a 30-site global web estate at Unilever to a school platform I designed, built and still maintain as its only engineer.


Open to full-time engineering roles. I also take on a small amount of freelance work.

Credentials at a glance

  • 30+ enterprise sites

    Ran Unilever’s global web estate on Next.js and TypeScript, shipping in an Agile squad.

  • Founding engineer

    Sole engineer on the student management platform a five-branch school network runs on.

  • Wrote the a11y standard

    Authored Unilever’s WCAG-based accessibility standards and enforced them in CI.

  • Shipping since 2022

    Apprentice to engineer to founding engineer. BSc Computing & IT completes June 2026.

Selected work

Things I have shipped

A short list, each with the problem, the decision, and the outcome.

FlagshipMarch 2024 – present

The platform a five-branch weekend school runs on

Founding engineer on an internal staff platform for a five-branch school network: registration, class allocation, attendance and behaviour, replacing paper registers and spreadsheets. No public URL — so this is written up as architecture and decisions.

Founding Engineer — sole engineer, product decisions and build

  • Full-stack
  • Postgres
  • Auth
  • Domain modelling

No public demo

Internal system holding children’s records — no public demo and no public repository. Written up as architecture and decisions instead, which is the more useful read anyway.

Request path

  1. Client
  2. Edge
  3. Server
  4. Authorisation & validation
  5. Data
  6. External

Stack

  • Next.js 16 (App Router)
  • React 19
  • TypeScript
  • PostgreSQL (Neon)
  • Drizzle ORM
  • Auth.js v5
  • Zod
  • Tailwind CSS v4
  • Resend
  • Vercel
Brain Assistant landing screen on a near-black background: the product name, the line “a memory prosthetic for commitments made in conversation”, and a sign-in card offering GitHub authentication.
December 2025

Brain — pulling your own commitments out of a meeting transcript

A meeting transcript contains commitments you made, and they evaporate unless you write them down. Brain extracts only yours, resolves the dates deterministically, and keeps the source text even when the model fails.

  • LLM pipeline
  • Structured output
  • Supabase
  • RLS

Demo requires a GitHub sign-in

Cover Me Pls job-details form: fields for job title, company, company homepage, optional employer questions, and a large job description textarea, on a dark violet-accented interface.
December 2025

Cover Me — screening the job before writing the letter

Most cover letter generators write you a letter for any job. This one scores the posting against a preferences file first, tells you what is wrong with it, and only then drafts a letter in a style specified by explicit counter-examples.

  • LLM pipeline
  • Prompt design
  • Structured output

Experience

Where I have worked

Roles, and what actually changed because I was there.

Roles

  1. March 2024 – presentFoundingCurrent

    Founding Engineer

    A UK supplementary-school network · Weekend school network, five London branches

    Sole engineer on the internal platform the school network runs its operations on.

    • Designed and built the staff platform five branches use for registration, class allocation, student and guardian records, and attendance — product decisions and code both, as the only engineer.
    • Modelled the domain so invalid states cannot be written: one active class per student, one active teacher per class, one attendance session per class per day, one primary guardian per student — enforced by Postgres constraints rather than application checks.
    • Enforced branch isolation server-side. The selected branch lives in an httpOnly cookie and is re-validated against the user’s live assignments on every request, so no reader or writer can reach another branch’s data by tampering with the client.
    • Replaced paper registers and spreadsheets scattered across five sites with one system, and wrote the decision log and domain rules the build is held to.
    • Next.js (App Router)
    • React
    • TypeScript
    • PostgreSQL (Neon)
    • Drizzle ORM
    • Auth.js
    • Tailwind CSS
    • Vercel
    Read the case study
  2. April – June 2025Contract

    Software Engineer (Contract)

    AI startup · AI tooling for public-sector clients

    Three-month contract building AI-backed tooling for public-sector clients.

    • Built full-stack features in Next.js and TypeScript, including the custom UI components the product was assembled from.
    • Shipped LLM pipelines that took structured input, ran it through the model, and rendered predictable output on the frontend — the plumbing and failure handling around the call, not just the prompt.
    • Automated go-to-market outreach workflows with scripting, taking repeated manual steps off the commercial team.
    • Next.js
    • TypeScript
    • LLM APIs
    • Node.js
  3. May – December 2024Full-time

    Software Engineer

    Unilever

    Owned delivery across a global web estate of 30+ sites in an Agile squad.

    • Ran a global 30-site web estate on Next.js and TypeScript, shipping UI features into production on a squad cadence.
    • Authored the WCAG-based web accessibility standards other teams built against — then made them enforceable with Cypress, axe-core and Lighthouse checks, so an accessibility regression failed the pipeline instead of reaching a user.
    • Replaced manual release steps with GitHub Actions CI/CD: linting, tests and zero-touch deployment.
    • Built backend services on Azure Function Apps and CosmosDB to capture performance metrics across the estate.
    • Translated stack decisions into roadmaps non-technical stakeholders could act on — the reason the accessibility standards got adopted rather than filed.
    • Next.js
    • TypeScript
    • React
    • Azure Functions
    • CosmosDB
    • GitHub Actions
    • Cypress
    • axe-core
    • Lighthouse
  4. September 2022 – May 2024Apprenticeship

    Software Engineering Apprentice

    Unilever

    Level 4 apprenticeship completed alongside full delivery work on internal tooling.

    • Built and maintained frontend components in TypeScript, React and Vue across several internal tools.
    • Wrote backend services with Node.js, Azure Function Apps and CosmosDB.
    • Wrote and ran the functional and accessibility test suites — Cypress, axe-core, Lighthouse — that became the groundwork for the standards I later authored.
    • Learned delivery end to end working alongside designers, PMs and senior engineers, and converted into an engineer role on the same estate.
    • TypeScript
    • React
    • Vue
    • Node.js
    • Azure Functions
    • CosmosDB
    • Cypress
  5. 2018 – 2022Part-time

    Arabic Language Tutor

    Al-Furqaan Institute

    Four years teaching Arabic to mixed-ability classes before moving into engineering — and the reason I understood weekend-school operations well enough to be the one who built the platform for them.

Education

  • In progress

    BSc Computing & Information Technologies

    Completing June 2026

  • Completed

    Level 4 Software Engineer Apprenticeship (HNC)

    Unilever · Completed May 2024

    Completed alongside production delivery work, not in place of it.

Skills

  • Languages

    TypeScript first, and SQL rather than an ORM’s opinion of SQL.

    • TypeScript
    • JavaScript
    • SQL
    • HTML
    • CSS
  • Frameworks & UI

    Next.js App Router day to day; Vue where the estate already used it.

    • Next.js (App Router)
    • React
    • Vue
    • Node.js
    • Express
    • Tailwind CSS
  • Data & infrastructure

    Relational by default. Constraints in the database, not just in the handler.

    • PostgreSQL
    • Drizzle ORM
    • Neon
    • Supabase (Postgres, Auth, RLS)
    • Prisma
    • Azure Function Apps
    • CosmosDB
    • Firebase
    • Vercel
    • GitHub Actions
  • AI systems

    Model calls treated as an unreliable dependency: schema-validated output, deterministic post-processing, graceful failure.

    • OpenAI API
    • Vercel AI SDK
    • Structured output with Zod schemas
    • Prompt design & evaluation
    • LLM pipeline design
  • Practice

    The parts that decide whether any of the above survives contact with users.

    • Accessibility (WCAG, axe-core, Lighthouse)
    • Testing (Cypress, functional & a11y suites)
    • CI/CD pipeline design
    • Authentication & server-side authorisation
    • Domain & data modelling
    • Agile delivery
    • Technical writing & decision logs

Contact

Get in touch

Open to full-time engineering roles. I also take on a small amount of freelance work.

Direct

Email is the fastest way to reach me. I read everything and reply to anything specific.

Email me

abdullah.sahraoui01@gmail.com