I'm a Full Stack Developer who enjoys building complete products end to end — from the interface people use to the systems and data behind it. I like understanding what happens underneath the abstractions, not just learning enough of a framework to make a feature work.
These days I work mainly with Next.js, React, and TypeScript on the frontend, and NestJS, Prisma, and PostgreSQL on the backend. I'm particularly interested in architecture, performance, developer experience, and building systems that remain understandable as they grow.
I recently completed my Bachelor of Science in Computer Science from UET Lahore. I started out with programming fundamentals and Android development before moving toward full-stack web development.
These days, I enjoy building complete products and understanding the engineering underneath them — authentication, databases, APIs, background jobs, performance, deployment, and the boundaries between different parts of a system.
I'm particularly interested in software architecture and AI engineering: using strong software fundamentals to build systems that are useful, maintainable, and practical.
Updated August 2026
Not a transcript — a rough map of how my focus shifted, stage by stage, from first principles to shipping full-stack apps.
Started with C++ and programming fundamentals. Writing small programs taught me to break a problem into smaller pieces, reason about the steps, and understand what the code was actually doing.
Moved from procedural programs to object-oriented design with C#. Classes, interfaces, inheritance, and SOLID principles changed how I thought about organizing larger programs instead of simply making individual features work.
Started connecting programming with the fundamentals underneath it — data structures, algorithms, relational databases, SQL, database design, and how queries are actually executed and optimized.
Moved into application development with Android, starting with Java and XML before moving to Kotlin and Jetpack. This was the shift from solving isolated programming problems to building complete applications with real state, persistence, networking, and authentication.
Shifted toward web development and started building complete products across the stack — React and Next.js on the frontend, TypeScript and NestJS on the backend, with PostgreSQL, Prisma, authentication, background jobs, payments, and cloud deployment.
Now I'm spending less time asking only how to build a feature and more time asking how the system should be designed — architecture, performance, developer experience, deployment, and where AI can genuinely improve a product.
A full-stack team collaboration platform on a two-tier authorization model — global platform roles and per-team roles enforced as genuinely separate checks — with a BullMQ/Redis notification worker fully isolated from the API's request path and 123 backend tests against a real in-memory MongoDB replica set.
A link-management SaaS built with three teammates. I owned the authentication system end to end — local and Google OAuth login, 6-digit OTP email verification, password reset, and the JWT access/refresh token model everything else in the app runs on top of.
Designed and built this site with Next.js 16, TypeScript, Tailwind CSS 4, and Framer Motion — a minimal, editorial layout with a consistent purple-accented theme, light and dark, throughout.
A full-stack pet management platform with authenticated CRUD, Stripe-gated premium access, and Server Actions throughout — built with Next.js 15, NextAuth v5, and PostgreSQL.
A city-based event discovery platform with search and filtering, built with Next.js, Prisma, and a Framer Motion interaction layer across the listing and detail views.
University of Engineering and Technology (UET), Lahore
Graduated: 2026
CGPA: 3.44 / 4.00
Packt (Coursera)
Coursera
HackerRank
Scored in the 97.7th percentile (71/100) among 33,000+ students from 199 universities.
Regular practice with data structures and algorithms, including arrays, strings, linked lists, trees, hash maps, recursion, graph traversal, sliding window, and other common problem-solving patterns.
I want to understand why something works before I worry about memorizing how to use it. Frameworks and tools change quickly, but the mental models behind databases, networking, architecture, concurrency, and distributed systems stay useful.
When I build something, I try to understand the trade-offs behind the design — what happens when it fails, where the boundaries should be, and how the system behaves beyond the happy path. I use AI to move faster, but not as a substitute for understanding the code or the decisions behind it.