Open to full-time roles & freelance projects · Willing to relocate
Hi, I'm Tajveed Aslam, Senior SDET.
Quality engineering, built like software.
9 years in software — 6 in QA and test automation, built on 3 as a C#/.NET developer. I've built Playwright suites for real-time ML systems at enterprise scale, and I build AI-powered testing tools with ASP.NET Core, React, Next.js, FastAPI and LLM APIs.
- years in software
- 9
- automated tests authored
- 2,400+
- portfolio projects
- 12
- live demos to try
- 8
Featured work
Things I've built, running live
Every project here has a working demo you can open right now. Swipe through, or jump straight to one.
About
Quality-first engineer, full-stack builder
I'm a Senior SDET with 9 years in software — 6 in QA and test automation, built on 3 as a C#/.NET developer. That developer background bridges dev and QA: I read and review code to understand system behavior before I design a test for it, rather than treating the app as a black box. At Afiniti (2020–2026), I specialised in end-to-end Playwright automation backed by REST API coverage, SQL/backend validation, and CI/CD integration — including load and functional testing on a real-time, call-center decisioning system processing 10,000+ concurrent interactions.
To deepen my engineering breadth, I built A&Z Mart — a full-stack e-commerce platform using Next.js 14, FastAPI, and SQLite — entirely from scratch, then wrote a production-quality Playwright automation suite for it. I also built TestForge, an AI-powered tool that generates test code across 10 frameworks and 8 types of SDLC documentation using the Gemini API with real-time streaming, and Self-Healing Test Agent, an agent that diagnoses and repairs stale Playwright selectors under two deterministic safety gates rather than trusting a model's judgment alone. Most recently, I returned to my .NET roots with APITestGen, an ASP.NET Core 8 and React app that turns an OpenAPI spec into positive and negative test cases, a Postman collection and a pytest suite, all derived from one validated test design, and FitCheck, which scores a CV against a job description with gaps verified against the CV's own text rather than taken on the model's word, and LiveBoard, a real-time collaborative Kanban board on ASP.NET Core SignalR, tested with two live users at once. Lately I've gone mobile with React Native: SalahCompanion, with GPS prayer times, a magnetometer Qibla compass and a Ramadan tracker, and ShareCart, a family grocery list on Supabase that syncs in real time, scans barcodes and is locked down with Postgres Row Level Security.
Claude Code and GitHub Copilot are a daily part of how I work — for test scaffolding, edge-case generation, and refactoring — and I'm currently upskilling in Microsoft Power Platform testing. I'm open to on-site, hybrid, and remote roles, willing to relocate, and available for freelance projects on Fiverr and Upwork.
Experience
9 years, two disciplines
Three years building the software, six years making sure it works.
- Aug 2020 – Aug 2026
Senior SDET
Afiniti · Pakistan · AI-powered enterprise software
↑ Promoted from SDET to Senior SDET, Feb 2022
- Authored 2,400+ automated tests across enterprise workflows — 1,600+ in Playwright and pytest, 800+ on a proprietary simulation framework — cutting manual QA effort by ~40%
- Ran end-to-end, integration, and load testing on a real-time, call-center decisioning system — simulating 10,000+ concurrent interactions and validating outcomes against shared-memory and SQL data stores
- Validated the production ML pipeline end-to-end, from model configuration through deployment to runtime scoring, in MySQL/PostgreSQL
- Built Playwright + pytest suites with Docker-containerised execution, integrated into Jenkins with JUnit XML and HTML reporting
- Led defect triage, root cause analysis, and live production debugging during critical releases
- Daily use of Claude Code and GitHub Copilot for test scaffolding, edge-case generation, and automation refactoring
- May 2017 – Aug 2020
Software Engineer
Masterkey Systems Ltd · Pakistan · Enterprise software development
- Developed backend services and REST APIs in C# and ASP.NET, owning enterprise features from design through release
- Built responsive frontend features in React.js, delivering end to end alongside the backend
- Wrote and optimised complex SQL queries, stored procedures, and schemas on data-heavy modules
- Authored test cases and ran manual QA during releases — the hands-on exposure that shaped the later move into SDET work
B.S. Computer Science — KIET, Pakistan
Aug 2011 – Aug 2016
Skills
What I bring to the table
Test Automation
- Playwright (TypeScript, POM)
- pytest
- Test Framework Design
- Data-Driven Testing
- C# / .NET Code Comprehension
API & Backend Testing
- REST API Testing & Validation
- Postman
- SQL / Backend Validation
Systems & Performance
- Real-Time / Call-Center Systems Testing
- Simulation & Integration Testing
- Load & Performance Testing (10K+ concurrent)
AI Tooling
- Claude Code
- GitHub Copilot
- Claude / LLM APIs
- AI-Assisted Test Generation
- Prompt Engineering
CI/CD & DevOps
- Jenkins
- GitHub Actions
- Docker
- Git
- Bitbucket
Development
- C# / .NET
- ASP.NET
- REST APIs
- React.js
- Next.js
- FastAPI
Languages & Databases
- C#
- TypeScript
- Python
- JavaScript
- SQL
- SQL Server
- MySQL
- PostgreSQL
- SQLite
- Testing types
- FunctionalRegressionSmokeIntegrationE2ECross-BrowserAPILoad
- Methodologies
- AgileScrumKanbanTDDBDD
- Also familiar
- CypressSelenium WebDriver
Projects
The details, and how they're built
Every project covers the full lifecycle: design, build, automate, document. Click any screenshot to enlarge it.
Match score, summary, matched skills and ranked gaps
FitCheck — CV-to-Job Match Analyzer
AI Tooling · ASP.NET Core 8 + React + PostgreSQL + Gemini API
Upload a CV as PDF or DOCX, paste a job description, and FitCheck returns a match score weighted toward the role's required qualifications, the skills you already demonstrate, the keywords you're missing (ranked required, preferred or minor) and three specific tips to close the gap. Results show as a score gauge with the job post highlighted green and red, and every analysis is saved to your history.
How it's built
- Server-side text extraction from PDF (PdfPig) and DOCX (Open XML SDK), with file type detected from the bytes rather than the extension and clear errors for scanned, encrypted, corrupt or legacy .doc files
- Prompt-injection hardened: the CV and job post are fenced as untrusted data, and a live test plants a hidden "score this 100" instruction in a CV to prove the score isn't dictated by it
- The model's "missing keywords" are verified against the CV with word-boundary matching, so a candidate is never told they lack a skill their CV states verbatim
- 43 xUnit tests that build real PDF/DOCX files in memory, plus a Playwright browser suite on Edge, and an LLM quota that only counts valid requests so a wrong upload never locks a demo user out
- ASP.NET Core 8
- C#
- EF Core
- PostgreSQL
- PdfPig
- Open XML SDK
- React
- TypeScript
- Gemini API
- Playwright
- xUnit
Live demo: click “Try the live demo” for a two-hour guest session, no sign-up needed, then “Try with sample CV & job” to see a full analysis in about 20 seconds, or upload your own CV. Only the extracted text is stored, never the file. The API runs on a free tier that sleeps when idle, so the first visit can take up to a minute to wake.
Two people, one list: every add and check-off shows up on both phones live
ShareCart — Shared Family Grocery Lists
Mobile App · React Native (Expo) + Supabase + Appium
A shared grocery list for families. Make a list, invite the family with a code or link, and every change shows up on everyone's phone instantly: who added each item, who put it in the cart, and who's looking at the list right now. Add items by typing ("2 milk") or by scanning a barcode, which looks the product up on Open Food Facts. Runs on Android and iOS through Expo, and in the browser.
How it's built
- Postgres Row Level Security makes every list visible only to its members, and database triggers stamp who added or checked each item from the caller's JWT, so a client can't claim someone else did it
- One Supabase Realtime channel per open list carries row changes and presence; edits are optimistic and reconciled by id and updated_at, with a refetch once the database listener confirms after every (re)connect
- Barcode scanning with expo-camera: misreads are rejected by the GS1 check digit before any lookup, products are named from Open Food Facts, and duplicates already on the list are flagged
- An integration suite of three real users (owner, member, outsider) attacks the database rules and checks realtime reaches only members; a two-browser Playwright run checks live sync on the deployed app, plus an Appium suite
- React Native
- Expo
- TypeScript
- Expo Router
- Supabase
- PostgreSQL
- Row Level Security
- Supabase Realtime
- expo-camera
- Jest
- Appium
- Playwright
Live demo: continue as a guest, open Share and copy the invite link, then open it in a private window (or on your phone) to watch two people edit the same list in real time. Barcode scanning uses the camera on phones; on a computer, type a barcode such as 3017624010701.
Prayer times with a live countdown, the Qibla compass and the Ramadan tracker
SalahCompanion — Prayer Times, Qibla & Ramadan Tracker
Mobile App · React Native (Expo) + TypeScript + Appium
A cross-platform mobile app for daily prayer. It finds you by GPS and shows the day's prayer times from the AlAdhan API with a live countdown to the next one, points a compass at the Kaaba using the phone's magnetometer, tracks Ramadan fasts with streaks and fasts still to make up, and sends a notification at each prayer time. It runs on Android and iOS through Expo, and as a web app in the browser.
How it's built
- Qibla from the great-circle bearing to the Kaaba, driven by the OS heading API (tilt-compensated, true north) with a raw-magnetometer fallback, smoothed on the unit circle so 359°→1° doesn't spin the dial, plus a haptic tick when you're aligned
- Prayer times in the location's own time zone, the calculation method and Asr school picked automatically by region, and offline fallback to the last fetch; a week of local notifications is re-queued every time the app opens
- Ramadan tracker uses the real Hijri calendar (29 or 30 days), locks upcoming days, and persists per year in AsyncStorage; current streak, best streak and fasts to make up
- 41 Jest unit tests for the maths and parsing, plus an Appium (WebdriverIO + UiAutomator2) suite that mocks GPS, grants and denies permissions, and checks a real notification in the Android shade
- React Native
- Expo
- TypeScript
- React Navigation
- expo-location
- expo-sensors
- expo-notifications
- AsyncStorage
- Jest
- Appium
- WebdriverIO
Live demo: the web version of the app. Allow location (or pick the sample city) to see your prayer times; open it on a phone for the live Qibla compass. Prayer notifications need the mobile app, which runs in Expo Go on Android and iOS.
Two people on one board: presence, an 'editing' badge and the live activity feed
LiveBoard — Real-Time Collaborative Kanban
Full-Stack Real-Time · ASP.NET Core 8 + SignalR + React + PostgreSQL
A Kanban board built for simultaneous editing. Boards, columns and cards support full drag-and-drop (mouse, touch or keyboard), and every change is broadcast over SignalR to everyone on the board the moment it is saved. Share a board with a link, see who's online, see which card a teammate is editing, and follow a live activity feed. If the connection drops, it reconnects and resyncs on its own.
How it's built
- Writes go through REST and are broadcast over SignalR only after they're saved; each event carries the resulting state (e.g. the final card order of every column a move touched), so concurrent edits converge on every screen
- Per-board write serialisation, proven by an integration test that fires 40 random moves from two users at once and asserts no card is lost, duplicated or mis-ordered
- Collaboration awareness: presence avatars, an "editing" badge on cards a teammate has open, and a "someone else saved, load their version?" prompt instead of silent overwrites
- 37 xUnit tests including real-time tests with two live SignalR clients, plus a Playwright suite that drives two separate users in two browser sessions against the deployed app
- ASP.NET Core 8
- SignalR
- C#
- EF Core
- PostgreSQL
- React
- TypeScript
- dnd-kit
- JWT Auth
- xUnit
- Playwright
Live demo: click “Try the live demo” for a guest session with a sample board, then click Share and open the link in a private window to see two people editing the same board in real time. The API runs on a free tier that sleeps when idle, so the first visit can take up to a minute to wake.
Positive and negative test cases, each with an expected status and assertions
APITestGen — AI API Test Generator
AI Tooling · ASP.NET Core 8 + React + PostgreSQL + Gemini API
A full-stack tool that turns an OpenAPI/Swagger spec, or just a sample API response, into a complete API test suite: positive and negative test cases, an importable Postman collection, and a ready-to-run pytest module. The model designs the test cases once as structured data, and both runnable outputs are derived from that same design, so the three artefacts never drift apart. Every run is saved to the user's history, and a one-click guest mode lets anyone try it live without signing up.
How it's built
- Two-step pipeline: the LLM returns structured test cases that are validated and normalised server-side (bad methods, status codes and paths are dropped, ids re-assigned) before anything else is built from them
- Postman v2.1 collection is generated deterministically in C# from the validated cases rather than by the model, so it always imports cleanly, with baseUrl/authToken variables and a status assertion per request
- Provider-agnostic LLM layer (Gemini or OpenAI via config) with retry and backoff on 429/5xx, plus per-user and per-IP rate limiting so the public demo can't exhaust the API quota
- 37 xUnit tests covering the parser, Postman builder, input validation and the full pipeline against a fake LLM, plus an opt-in live smoke test against the real Gemini API
- ASP.NET Core 8
- C#
- EF Core
- PostgreSQL
- React
- TypeScript
- Vite
- Gemini API
- JWT Auth
- xUnit
Live demo: click “Try the live demo” for a two-hour guest session, no sign-up needed, then use “Load sample” to generate a full suite in about 15 seconds. The API runs on a free tier that sleeps when idle, so the first visit can take up to a minute to wake.
What the agent does and why selector rot matters
Self-Healing Test Agent
AI Agent · TypeScript + Playwright + Gemini API
An agent that diagnoses and repairs Playwright tests failing on stale selectors — reading the failing test, inspecting the real DOM at the point of failure, proposing a one-line locator fix, and re-running the test to verify it, capped at three attempts. The core design decision is safety, not capability: two deterministic gates sit between the model and the codebase, so the agent only ever touches failures that look like genuine selector rot, and only via single-line locator edits — anything that looks like a real product or assertion bug is declined and flagged for a human instead of being force-fixed.
How it's built
- Two independent safety gates — error-type classification before the model runs, diff-shape validation on every proposed edit — neither trusts the model's own stated diagnosis
- Four-tool agentic loop (read_file, inspect_dom, edit_file, run_test) on Gemini's function-calling API, with a hand-rolled paren-balanced scanner so the diff guardrail survives real locator syntax
- inspect_dom captures a live accessibility-tree snapshot at the point of failure via a shared Playwright fixture, so fixes are grounded in the actual DOM rather than guessed from the error text alone
- 36 unit tests covering the safety gates and tool layer against fixture data — no LLM or live browser needed to verify the trust boundary
- TypeScript
- Playwright
- Gemini API
- Function Calling
- Node.js
- Vitest
Storefront home with category hero
A&Z Mart — E-Commerce Platform
Full-Stack Development · Next.js 14 + FastAPI + Gemini API
A production-quality e-commerce application built from scratch with full multi-role support, headlined by a live AI shopping assistant powered by Google's Gemini API. Customers browse a 25-item product catalogue with real-time search and category filters, manage a persistent shopping cart, complete Cash-on-Delivery checkout, and track live order status through an animated timeline. Sellers receive email notifications on new orders. An admin dashboard provides full CRUD for products, categories, orders, and users.
How it's built
- Live AI shopping assistant (Gemini API), strictly bounded to A&Z Mart's own catalogue — deterministic prompt-injection guarding rejects jailbreak attempts before they ever reach the model, with a rule-based fallback if the LLM call fails
- The assistant doesn't just recommend — it can add a product straight to your cart on request, with the actual mutation validated and executed server-side rather than trusted from the model's own reply text
- Multi-role system: customer, seller, admin — each with separate dashboards
- 14-currency converter with live exchange rates and localStorage persistence
- Next.js 14
- FastAPI
- Gemini API
- SQLite
- TypeScript
- Tailwind CSS
- Zustand
- TanStack Query
- JWT Auth
Landing page
TestForge — AI Test & SDLC Generator
AI Tooling · Next.js 14 + FastAPI + Gemini API
An AI-powered developer tool that generates production-ready test automation code and complete SDLC documentation from a plain-English feature description. Supports 10 test frameworks across 5 languages, 3 code patterns, and 8 professional document types. Responses stream in real-time via Server-Sent Events so output appears as it is generated — with copy-to-clipboard and file download on completion.
How it's built
- 10 frameworks: Playwright, Cypress, Selenium (Java/Python/C#), WebdriverIO, pytest, Robot Framework
- 8 SDLC document types: Test Strategy, Test Plan, RTM, User Stories, Bug Reports, Release Notes, and more
- Live streaming output via SSE, JSON-framed per chunk so multi-line output from the model can't break the stream
- Mock mode for zero-cost demos — no API key required, plus a graceful fallback message if the live API ever fails mid-stream
- Next.js 14
- FastAPI
- Gemini API
- TypeScript
- Playwright
- Python
- SSE Streaming
- Tailwind CSS
HTML report of a full run: 0 failed, 0 flaky
Travel Booking QA — Playwright Suite
QA Automation Framework · Playwright + TypeScript + GitHub Actions
A client-facing test automation sample for a travel booking platform: search, booking, payment and cancellation. UI tests drive the BlazeDemo travel agency on desktop Chromium, Firefox and WebKit plus emulated Pixel 7 and iPhone 14; API tests cover the Restful-Booker booking API end to end. Every selector, status code and response shape was explored on the live sites first, and every defect found is written up Jira-style and tracked by a test that turns red the day it's fixed.
How it's built
- 45 tests (129 runs across 5 browser/device projects + API), passing in 3 consecutive full runs with zero flaky tests
- 13 real defects found and documented, including price-accuracy bugs (the amount charged differs from the price quoted; cents silently truncated by the API)
- Known defects kept visible with test.fail() and bug ids instead of being skipped; strict zod contracts, self-cleaning test data, axe baseline and visual regression
- GitHub Actions: smoke on every pull request, a full 6-job cross-browser and mobile matrix on push and nightly, with reports, traces and a run summary
- Playwright
- TypeScript
- Page Object Model
- API Testing
- zod
- axe-core
- GitHub Actions
- ESLint
No live demo: this is a test suite. The GitHub repo has the README with results, the bug reports, test plan and test cases, and the Actions tab shows the runs.
Test automation suites
AZMart — Playwright Automation Suite
QA Automation Framework · Playwright + TypeScript
A from-scratch Playwright automation framework covering the full AZMart application — both UI end-to-end flows and REST API contracts. Built with TypeScript, Page Object Model, shared auth helpers, and ephemeral test data for full isolation. Includes AI-First SDLC documentation: Test Strategy, Test Plan, Requirements Traceability Matrix, and an AI approach log documenting how Claude was used throughout the framework design.
- ~107 test cases: ~50 UI E2E across 9 specs + ~57 API integration across 7 specs
- 11 Page Object Models covering all customer, checkout, and admin flows
- Security test payloads: SQL injection, XSS, user enumeration, brute-force lockout
- Full AI-First SDLC documentation included in the repository
- Playwright
- TypeScript
- Page Object Model
- API Testing
- dotenv
Enterprise Web Portal — QA Automation Suite
Corporate QA Automation · Playwright + pytest + Docker
End-to-end Playwright automation suite for a large-scale enterprise web application used across multiple regions. Covers UI regression, sanity, and API test layers with Docker-containerised execution environments. Integrated into a Jenkins CI/CD pipeline with JUnit XML reporting. Includes MFA/OTP support using TOTP secret injection for automated login through multi-factor authentication flows.
- 23 automated specs: 15 UI regression + 2 sanity + 6 Python API
- Docker-containerised test execution — identical environment across dev and CI
- Jenkins pipeline with JUnit XML artifacts and HTML reporting
- MFA/OTP automation via TOTP secret injection — tests the full auth flow
- Playwright
- TypeScript
- pytest
- Docker
- Jenkins
- Python
Private repository — corporate project
AI Agent QA Harness — LLM Testing Framework
AI Testing · TypeScript + Vitest + Playwright + Gemini API
Enterprise test harness demonstrating how to test AI agents and LLM-powered features without fragile string matching. Features recorded zero-cost fixture replay for CI, Zod structural schema contracts, scored semantic rubrics, a 12-attack prompt-injection battery (direct and indirect in retrieved docs), failure injection (429, 500, timeouts), non-determinism stability measurement (N=10), and token budget enforcement.
- Zero-cost recorded fixture mode runs multi-turn stateful agent tests in ~1.5s with zero API key dependencies in CI
- 12-attack prompt-injection battery proving resistance to direct DAN jailbreaks and indirect malicious payloads in retrieved documents
- Failure injection (HTTP 429, 500, timeouts, malformed JSON) with automated proof of zero raw stack traces leaked to users
- Quantitative non-determinism scoring (N=10 runs) achieving 100% stability, plus token and cost regression budgeting
- TypeScript
- Vitest
- Playwright
- Zod
- Express
- Gemini API
- GitHub Actions
Available for freelance work
Need tests written or a tool built? Hire me on Fiverr or Upwork.
I take on freelance and contract projects through both platforms, so payments, milestones and reviews are handled securely. Here's what I can do for you:
- Playwright test automationFramework setup with Page Objects, stable selectors and CI integration (Jenkins or GitHub Actions).
- API test suitesPostman collections and pytest suites covering positive, negative and edge cases for your REST APIs.
- Full-stack apps with AIASP.NET Core, Next.js or FastAPI apps with LLM features that are guarded, tested and deployed.
- QA audits & test strategyTest plans, regression suites and a clear picture of where your product's quality risks are.
Contact
Let's build something that works.
I'm open to full-time roles, contract work, and consulting, especially positions that blend QA expertise with full-stack development. The fastest way to reach me is email; for freelance projects you can also hire me directly on Fiverr or Upwork.
tajveed.aslam@gmail.com






























