Experience

  • Built with

    • TypeScript
    • React
    • Node.js
    • Express
    • PostgreSQL
    • pgvector
    • Sole engineer taking the platform from a blank repository to production B2B SaaS in under a year, full stack, tracking how brands surface across ChatGPT, Gemini, Claude and Perplexity.
    • Rebuilt the scoring pipeline to replace four to five sequential LLM calls with a single structured-output call per result, cutting inference cost around 28% and latency 50–60%.
    • Designed the job orchestration behind data collection: 13 job types, exponential backoff, and automatic recovery of stuck runs, so a flaky scrape on one AI engine never takes down a customer's data.
    • Built a RAG pipeline on Postgres pgvector with Qwen3 embeddings that grounds content recommendations in the customer's own documents rather than the model's assumptions.
    • Published an MCP server exposing 29 tools so AI agents can query a customer's visibility data directly, scoped per customer over OAuth with response payloads trimmed 30%.
    • Shipped the multi-tenant layer letting agency partners run the product under their own domain and branding, backed by tiered entitlements gating features, API limits and billing.
    Visit EvidentlyAEO
  • Built with

    • PL/SQL
    • React
    • Node.js
    • Express
    • MongoDB
    • Engineered backend procedures in PL/SQL to automate data ingestion and transformation, producing clean structured data for business intelligence and Power BI dashboards.
    • Built and maintained full-stack applications on the MERN stack with an eye on scalability and performance.
    Visit Eastern Software Solutions

Projects

All projects

Relay lets a group watch an AI coding agent work on a real codebase at the same time. One person runs a command inside their own project folder, which starts the agent on their machine and prints a link. Anyone who opens that link watches the same run live, and control can be passed to someone else in the middle of a task without restarting anything. The agent stays on the host's machine, so the server never holds anyone's code, never runs commands, and never sees anyone's login. Giving some server access to your codebase is the usual dealbreaker for a tool like this, and Relay is built so that never has to happen.

  • TypeScript
  • Node.js
  • WebSockets
  • Next.js
  • PostgreSQL

Live

Relay

Watch an AI agent work, together.

Relay lets a group watch an AI coding agent work on a real codebase at the same time. One person runs a command inside their own project folder, which starts the agent on their machine and prints a link. Anyone who opens that link watches the same run live, and control can be passed to someone else in the middle of a task without restarting anything. The agent stays on the host's machine, so the server never holds anyone's code, never runs commands, and never sees anyone's login. Giving some server access to your codebase is the usual dealbreaker for a tool like this, and Relay is built so that never has to happen.

Built with

  • TypeScript
  • Node.js
  • WebSockets
  • Next.js
  • PostgreSQL
  • Prisma
  • Claude Agent SDK
  • Everyone with the link watches the same run live, and someone who joins halfway through gets the full history rather than only what comes next.
  • Only one person can send instructions at a time, and the server is what enforces that, not the interface. Verified by sending an instruction straight to the server while skipping the UI entirely, which the server rejected.
  • Control passes between people mid task without restarting the agent. A dropped connection rejoins as the same person and keeps control if they had it, as long as they are back within 30 seconds.
  • The server stamps an order onto every event before sending it out, so two people watching never see things happen in a different order.
  • The agent runs on the host's own machine, so the server holds no code, runs no commands, and stores no logins.
  • The live session is held in memory, while Postgres keeps a copy of the transcript so an old link opens as a read only recording instead of a dead page.

ThinkLytix.AI

Decision Intelligence engine for all.

A two-part supply chain SaaS: a public marketing site and a full-stack application with its own authentication system. The Gemini API powers real-time predictive analysis, and the interface is built around the data visualisations rather than bolted on after them.

  • Next.js
  • React
  • Express
  • Node.js
  • MySQL

Live

ThinkLytix.AI

Predictive analysis for supply chains.

A two-part supply chain SaaS: a public marketing site and a full-stack application with its own authentication system. The Gemini API powers real-time predictive analysis, and the interface is built around the data visualisations rather than bolted on after them.

Built with

  • Next.js
  • React
  • Express
  • Node.js
  • MySQL
  • Prisma
  • Gemini API
  • Two surfaces from one product: a public marketing site and the application itself, deployed separately.
  • Ships its own authentication system rather than delegating to a hosted identity provider.
  • The Gemini API drives the real-time predictive analysis over supply chain data.
  • The interface is designed around the data visualisations rather than having them bolted on afterwards.
  • Express and MySQL sit behind the Next.js front end, with Prisma as the data layer.

About

I'm a full-stack engineer who loves taking products from day zero to production. Most of my work sits where product speed meets backend design: building systems that don't choke under real traffic, integrating AI so it's reliable rather than a gimmick, and keeping architectures simple. I like moving fast, but I care just as much about building software you don't have to throw away six months later. When I'm not at my desk, I'm usually at the gym or playing sports.

GitHub activity

2,697 this year