TypeScript-first full-stack engineer · React · Next.js · Node.js · NestJS · React Native
Islamabad, Pakistan · Open to remote, hybrid and relocation
const shabir = {
role: "Senior Full-Stack Engineer",
now: "Leading frontend architecture on Auspira @ Nexora AI",
building: "Grid at RabtX — a self-hosted workspace for people and AI coding agents",
stack: ["TypeScript", "React", "Next.js", "Node.js", "NestJS", "React Native", "Bun"],
cares: ["clear architecture", "fast interfaces", "code a team can live with"],
experience: "8+ years shipping SaaS, dashboards, APIs and mobile apps",
} as const;- Grid (RabtX): a self-hosted workspace where people and AI coding agents (Claude Code, Codex, opencode, and other ACP agents) can collaborate on a single board with shared files, live agent threads, terminals, PR checks, and context.
- Auspira (Nexora AI): leading the frontend of an NEC contract-management platform for a UK client. Built with Next.js 15, React 19, TanStack Query, Ant Design, and Tailwind v4, with shared UI patterns across multiple product modules.
| Project | What it is | Stack |
|---|---|---|
| Grid (RabtX) | Workspace for people and AI coding agents: board, live agent threads, files, terminals, PR checks. Public beta soon. | Bun · SolidJS · Hono · Drizzle · Postgres |
| BullseyeEngagement (Excelorithm) | Led the frontend rebuild of a US HR and performance platform used by PepsiCo, Intel, and Emory University. 35% faster page loads. | Next.js · React Query · Tailwind |
| Kansai Group | Web and mobile platform for an Osaka-based used-car exporter: listing site, admin panel, and Expo app. 35% faster loads, 50% smaller payloads. | Next.js · React Native · WebSockets |
| School OS | Multi-tenant school SaaS with QR attendance and WhatsApp alerts to parents. | Next.js · Expo · NestJS · Postgres |
| Starter | Production monorepo template with CodeQL, Dependabot, and secret scanning on every merge. MIT / Apache-2.0. | Bun · Turborepo · TypeScript · GitHub Actions |
Contracts before components. Routes, payloads, and failure states are defined before the UI.
Failure states are product. Loading, empty, and error states are designed alongside the happy path.
AI makes good engineers faster. It doesn't replace understanding the code you ship.



