Interactive QA playground built to showcase automation, testing strategy, debugging mindset, and production-quality engineering.
Built like a modern SaaS for recruiters, hiring managers, and engineers — not a tutorial site.
Crafted for hakdogan.com · ships to lab.hakdogan.com
Product modules
Sign in (demo account) to traverse the app shell — each module is intentionally testable.
Run automation tests
Click a card to inspect the spec, then run the animated trace. Left pane is copy-pasteable; right pane mimics headed execution; bottom stream mirrors CI logs.
Login Test
import { test, expect } from '@playwright/test';
test('demo login happy path', async ({ page }) => {
await page.goto('https://lab.hakdogan.com/login');
await page.getByRole('button', { name: /use demo account/i }).click();
await page.getByRole('button', { name: /sign in/i }).click();
await expect(page.getByText(/welcome, hasan/i)).toBeVisible();
});Idle — run trace to animate the browser timeline.
Console
API mocking lab
Inspired by the Playwright network sandbox: flip behaviors and watch the wallet tile react — no remote server required.
await page.route('**/api/ledger/balance', async (route) => {
await route.continue();
});Wallet service (mocked)
$2,840.55
live fixture
The UI on the right mirrors what recruiters see in code review: deterministic data, explicit failures, and timing under control.
Why this exists
Recruiters skim bullet points. Hiring managers remember products. Validation Lab is a product-shaped argument for ownership across automation, tooling, and customer-grade experience.
Auth → dashboard → money movement mirrors how quality shows up on real roadmaps.
Stable roles, data-test hooks, and chaos toggles map directly to Playwright projects.
Build widgets, pass-rate trends, and log streams echo what you ship in pipelines.
Inject latency, 500s, flaky modals, and session expiry — practice triage with intent.
Glass UI, motion, and accessibility affordances prove polish isn’t divorced from QA.