Skip to content
Zohaib Ali

Zohaib AliSoftwareEngineer

My journey through technology has been driven by a genuine enthusiasm for turning ideas into things people can actually use. I'm a software engineer at Kainos, working across full-stack TypeScript products and the cloud services sitting behind them.
STATUS
Engineering at Kainos
FOCUS
Full-stack · Cloud
LOCAL TIME
UK --:--:--

Two builds, and the decision inside each one worth defending.

CommunityClean

Map-based platform for residents to report, coordinate and verify waste clean-ups when council collection breaks down.

TYPE
Dissertation · 2026
CORE
Report lifecycle + RLS
GRADE
81%

Birmingham's bin strikes left waste sitting on the street for weeks, and residents had no reliable way to say where it was or whether anyone had dealt with it. CommunityClean was my dissertation answer: a map where anyone can drop a report with a photo, a location and a severity rating, see what has already been logged nearby, and organise a clean-up around it. Reports move through a full lifecycle, from submitted to scheduled to cleaned and finally verified with photographic proof, with admin moderation sitting behind the whole thing.

Access control lives in Postgres as Row-Level Security rather than in the application layer, with Zod validating at the edge. The cost is that the policy sits further from the code that reads it. The payoff is a report staying unreadable even when a query is wrong.

  • Next.js
  • TypeScript
  • Supabase
  • PostgreSQL
  • MapLibre
  • Zod
  • Vitest
  • Vercel

Divergence

Habit and mood dashboard that looks for the relationship between what you actually did and how the day actually felt.

TYPE
Personal · 2026
CORE
Idempotent write path
STATUS
In progress

Most habit trackers stop at the tick of the task. Divergence records the day as well: you check off what you actually did, log a mood and a rating, and the dashboard puts the two next to each other, with streaks and completion over time set against the days you marked as good ones. The idea is to work out which habits are genuinely doing something for you rather than just collecting green squares.

Next.js Server Components and Server Actions read and write Supabase Postgres directly, so there is no separate API tier to keep in sync. The trade is a data layer only as portable as the framework. Writes upsert on natural unique keys, so a retried submit cannot double-count a habit. Streak, date and completion maths sits in a pure, dependency-free module under Vitest, because an off-by-one there is invisible right up until someone loses an eleven-day run.

  • Next.js
  • React
  • TypeScript
  • Supabase
  • Vitest
  • GitHub Actions

Where the work was paid for and what it actually involved.

  1. Aug 2026 – present

    Trainee Software Engineer · Kainos

    Back on a graduate offer after the placement year. Earned AWS Certified Cloud Practitioner during engineering training, ahead of client project allocation.

  2. Jul 2024 – May 2025

    Placement Software Engineer · Kainos

    Dived into the government's sparsely documented Darwin train feeds (Kafka over OpenWire and STOMP) into a React proof-of-concept for live arrivals and departures, and presented it to the transport leadership team. Also delivered Azure AI proof-of-concepts across Speech, Language, Logic Apps and Functions, including sole ownership of a VM-based pipeline wired to Blob Storage.

  3. Aug 2023 – Feb 2024

    Online Retailer · Vinted

    Ran a storefront to £10,000 revenue at a 45% margin over twelve months, handling sourcing, dispatch, inventory and customer enquiries.

A First Class Computer Science graduate who enjoys the whole build: the interface someone actually touches, and the infrastructure holding it up.