Skip to content
View awais1019's full-sized avatar

Highlights

  • Pro

Block or report awais1019

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
awais1019/README.md

Muhammad Awais Ashraf

Full-Stack Software Engineer

Building secure, production-deployed web applications end to end — APIs, databases, background jobs, and the interfaces on top of them.

Portfolio LinkedIn Email GitHub

Profile Views



About

I'm a Computer Science graduate from UET Lahore, building full-stack web apps end to end — REST APIs, authentication, and database design on the backend; responsive, type-safe interfaces on the frontend.

Most of my projects are solo-built and deployed to production, not tutorial-scale exercises: real authentication (JWT, OAuth, RBAC), real background jobs (BullMQ/Redis), and CI/CD pipelines that block a release if the tests fail. My strongest area is backend architecture and access control — I found and fixed a real privilege-escalation bug in one of my own APIs, the kind of issue you only learn to catch once you've shipped real software.

I work across two backend stacks (NestJS/Express, PostgreSQL/MongoDB) and two frontend frameworks (React/Next.js, Vue 3), and I'm currently looking for Software Engineer, Full-Stack, or Backend Developer roles.


Now

🚀 Built and deployed Dev-Collab, a solo full-stack team collaboration platform (August 2026)
🏗️ Sharpening backend skills: transactions, background workers, caching, and system design
Writing tests earlier — Dev-Collab shipped with 123 backend tests gating its CI/CD pipeline
💼 Open to Software Engineering, Full-Stack, and Backend Developer roles

Tech Stack

Category Technologies
Languages TypeScript JavaScript SQL
Frontend React Next.js Vue.js Tailwind CSS shadcn/ui React Query
Backend NestJS Express Node.js JWT Passport.js
Databases PostgreSQL Prisma MongoDB Redis
Testing & CI/CD Jest GitHub Actions
Tools Git Docker Vercel Heroku Turborepo pnpm

Featured Projects

Project Type Stack Link
Dev-Collab Solo Vue 3, Express, MongoDB, Redis Live
PetSoft Solo Next.js 15, Prisma, Stripe Live
Evento Solo Next.js 15, Prisma, Zod Live
NanoLink Team (4) NestJS, Next.js, PostgreSQL Private repo

Dev-Collab — Team Collaboration Platform

Solo project · Live at dev-collab.tech

A GitHub/Linear-style collaboration platform — teams, projects, Kanban tasks, comments, notifications, and analytics — built as a pnpm monorepo with a shared Zod schema package used by both the API and the client.

  • Two permission systems (JWT platform role + database-checked team role) chained through four access middlewares
  • Found and closed a real privilege-escalation bug where self-assigning a task silently granted delete rights
  • MongoDB transactions for cascading deletes and multi-document status changes
  • BullMQ + Redis notification worker running as a separate process from the API
  • 123 Jest + Supertest tests against a real in-memory MongoDB replica set
  • Deployed to Heroku (API + worker dynos) and Vercel, released through a GitHub Actions pipeline gated on the full test suite

Stack: Vue 3 · TypeScript · Express.js · MongoDB · Redis · BullMQ · Zod · Tailwind CSS


PetSoft — Pet Daycare Management Platform

Solo project · Live at pet-soft-beige.vercel.app

A full-stack pet management app with authenticated CRUD, Stripe-gated premium subscriptions, and Server Actions throughout.

  • CRUD workflows via Next.js Server Actions and Prisma, with a reusable shadcn/ui component library
  • Stripe subscription payments verified server-side through webhook signatures, not client-reported state
  • Solved a Next.js 15 edge middleware bundle-size limit with a two-layer auth check — lightweight JWT at the edge, full NextAuth v5 session check in-app
  • Found and fixed a real production bug: a gap in the middleware's authorization logic let one request state fall through unhandled, crashing a live Server Action instead of redirecting

Stack: Next.js 15 · TypeScript · Prisma · NextAuth v5 · Stripe · Tailwind CSS


Evento — Event Discovery Platform

Solo project · Live at evento-pi-ashen.vercel.app

A server-rendered event discovery platform with dynamic city-based routing.

  • Server Components for Prisma-backed, paginated event listings — no separate API route
  • Zod-validated data boundaries between the database and UI
  • Responsive interface with Framer Motion page transitions
  • Came back a year after shipping to patch a critical Next.js RCE (React Flight protocol) plus several SSRF/DoS/cache-poisoning CVEs — ongoing maintenance, not just initial delivery

Stack: Next.js 15 · TypeScript · Prisma · Zod · Tailwind CSS · Framer Motion


NanoLink — AI-Powered URL Management Platform (Final Year Project)

4-person team · Primary contributor for authentication · Repository private (academic team project)

A URL management, analytics, and monetization platform built as a capstone project in a Turborepo monorepo. My part was the authentication system end to end — the short-link, analytics, and AI features were built by my teammates.

  • Local + Google/GitHub OAuth login via Passport.js strategies, unified into a single TokenService
  • 6-digit OTP email verification and rate-limited password reset
  • Role-based access control via custom NestJS Guards
  • Shared Zod validation schemas between the NestJS API and Next.js frontend

Stack: Next.js · NestJS · TypeScript · PostgreSQL · Prisma · Turborepo


Engineering Philosophy

I want to understand why something works before I worry about 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, not as a substitute for understanding the code or the decisions behind it.

  • Understand why before learning how
  • Build mental models, not just framework knowledge
  • Think about failure, not only the happy path
  • Choose architecture around real constraints
  • Keep systems understandable as they grow
  • Use AI to accelerate engineering, not replace it
  • Learn through building and debugging
  • Prefer depth over collecting tools

Contribution Activity

contribution graph

GitHub Stats

GitHub stats Top languages

GitHub Streak


Let's Connect

I'm always glad to talk about software engineering, backend architecture, and full-stack development. If you're hiring or want to collaborate, feel free to reach out.

Portfolio LinkedIn Email

Pinned Loading

  1. dev-collab dev-collab Public

    Full-stack team collaboration platform — Express/MongoDB API + Vue 3 client, pnpm monorepo

    TypeScript 1

  2. Evento Evento Public

    A next js app to explore events happening in different cities.

    TypeScript 1

  3. PetSoft PetSoft Public

    PetSoft a modern full-stack pet management platform built with Next.js 15, enabling users to manage pets, search details, and handle secure premium payments.

    TypeScript 1

  4. Dsa_Preparation Dsa_Preparation Public

    DSA practice problems (Java)

    Java

  5. Mini-Excel-plus-Doc-Shell Mini-Excel-plus-Doc-Shell Public

    Mini Excel (quad linked list) + tree-based document shell in C++ — data structures showcase

    C++