Skip to content
@irfantayyab

Irfan Tayyab

Full-Stack AI Engineer

I build web applications end to end, and lately the AI inside them: models that classify, route and draft, with a person still deciding what goes out.

I have shipped React, Next.js and Node.js products in teams, and my final year project in computer science is SQREAS, an AI platform that routes student queries, below.

I care about software that stays easy to change: typed code, real tests, and checks that pass before anything ships. This site is built that way, in the open. Its source is on GitHub, and the resume is a PDF to read or save.

Projects

SQREAS

My final year project: one place for every student query, whether it comes from the web, email or WhatsApp.

The problem. A university gets hundreds of student queries a day. Students don’t know which department to ask, so emails land in the wrong inbox, replies are slow, and nothing chases a query once it is forgotten.

My part. I built it end to end. A FastAPI backend classifies each query with Gemini through LangChain, falls back to a model on Groq when Gemini fails or is unsure, and strips personal details before any text reaches a model. It routes the query to whoever handles it, drafts a reply that a person approves, and escalates what waits too long. n8n runs the Gmail intake and the schedules, on an Oracle Cloud VM behind Caddy, with the React app on Vercel.

SQREAS's sign-in page, asking for a university Google account.

Orchiver

A personal archive for Markdown, LaTeX, Word and PDF files, with a history of every edit and a copy in the cloud.

The problem. My writing lives in four formats, in folders on one PC. I wanted each file’s history, conversions between the formats, and a backup off the machine, without handing the files to a service that keeps them in its own shape.

My part. A TypeScript monorepo. The React app works on the real folder through the browser’s File System Access API, with an editor and live preview for Markdown and LaTeX and a revision on every save. A three-way sync to Cloudflare R2 keeps every version it replaces and finishes cleanly after a crash halfway through. A small Fastify server converts between the formats with Pandoc and LibreOffice.

Plumb MCP

An open-source MCP server that hands Figma designs to AI coding tools, without rate limits.

The problem. Clicking a large frame froze the Figma file. The plugin serialized the selected node’s whole subtree on every selection change, whether anything had asked for it or not.

My part. I made selection pull-based. The plugin now reports only the node’s id on a click, and the tree is walked, and cached, only when a tool asks for it, the way it already fetched a node by id. Callers get the same result as before, and the fix merged with all 955 tests passing.

The fix's commit on GitHub: its message, and the diff of the selection tool's docs.

Portfolio site

A portfolio and a blog, served as static files, with its claims held to the resume by a test.

The problem. A portfolio that repeats the resume adds nothing, and one that drifts from it costs trust.

My part. A Next.js static export on Cloudflare, deployed from GitHub Actions only once every check passes, with a preview for each pull request. A test holds every job title, date and contact link on the site to the resume’s LaTeX source and its PDF, and a hash ties the PDF to the source it was built from. Every page is loaded in a real browser without JavaScript and scanned by axe in both themes.

A post on the portfolio site, its title and text in Newsreader on a plain white page.

Experience

  • Software Engineer, AmentoTech Pvt Ltd Nov 2025 – Oct 2026
  • Open Source Contributor, Plumb MCP Aug 2026
  • MERN Stack Engineer, Sprouto Group Mar 2025 – Nov 2025
  • MERN Stack Developer, CodeFlamme Pvt Ltd Jul 2024 – Feb 2025

Writing

All writing

Contact