I build full-stack products with AI inside them.

Ali FarooqAI full-stack engineer

Two years at Zenkoders shipping AI products for clients, front to back. I build voice agents, email assistants and the backends they run on.

Hire me

Open to remote rolesKarachi (UTC+5)Flexible hoursGitHub

What I built

Two AI systems lead. Behind them is more client work from Zenkoders, and a few things of my own.

See all 12 projects

10 more, from client products to open source.

How I work

I own the system around the model: the data, the queues, the guards and the person who checks its work.

I work close to the client. I learn how their business runs, then build a tool that fits it.

  1. Step 1

    Ask

    I sit with the client or product owner and ask questions until I can write the requirement down in plain words.

  2. Step 2

    Agree

    The agent and I work from the same written plan. Claude or Codex, the tool matters less than the plan.

  3. Step 3

    De-risk

    I find the part most likely to fail and test it first. I design the data before anything else.

  4. Step 4

    Spike

    A spike is a quick, rough build to learn something. I build two or three and keep the best idea.

  5. Step 5

    Ship and iterate

    I put it in front of the client early and change it fast from what they say.

Because code is cheap, I can try ideas that cost too much to try before.

Rules I keep

  • I name every error a function can return.

    I model the errors I expect as values with Result and Option types, and I try to list all of them. Today I use Effect TS for this. Rules that must hold live in the database.

    result-kit Numlix ledger

  • I let the agent check its own work.

    I give it unit, integration and browser tests it can run alone. In the browser it clicks through the whole flow and reads the network requests, console logs and errors. Oxlint, custom lint rules and an instructions file catch the rest.

  • I plan for the model being wrong.

    Model output is treated like any input from outside, and a person approves before AI reaches a client. The email assistant drafts; a consultant sends.

    The email assistant and its prompt-injection guard

  • I write the decision down.

    Every big choice gets a short written record: what, why, and what I gave up.

    Billy's Garage

What I build with

My core stack, the services around it, and the AI I code with.

Core stack

What most of my work runs on.

  • TypeScript
  • JavaScript
  • Python
  • Node.js
  • NestJS
  • Hono
  • FastAPI
  • Effect TS
  • Next.js
  • React
  • LangChain
  • Postgres
  • MySQL
  • Redis
  • Docker

Services and cloud

What I plug in around it.

  • Vapi
  • Twilio
  • ElevenLabs
  • pgvector
  • Pinecone
  • BullMQ
  • GitHub Actions

AWS

  • EC2
  • S3
  • IAM
  • ElastiCache
  • RDS
  • SQS
  • SNS

Google Cloud

  • Gmail Pub/Sub
  • Google OAuth
  • Maps API
  • Places API

AI I code with

Claude Code is my main one, day to day.

Main

  • Claude Code
  • GitHub Copilot
  • Cursor

Less often

  • OpenCode
  • Codex
  • Pi
  • Antigravity

Where I've been, where I'm going

  1. 2020 to 2024

    DHA Suffa University

    BS Computer Software Engineering

    • 2024Gold medal, top of the batch.
  2. Aug 2024 to Oct 2026

    Zenkoders

    Trainee, then software engineer

    • Aug 2024Trainee.
    • Oct 2024Software engineer.
    • 2026Excellence in Work award for delivery.
  3. From Nov 2026

    Next

    Open to remote roles.

    Hire me