Portfolio© 2026
Loading, 0 percent
Loading0%
Hafiz Hamdani · Software QA Engineer

HAFIZHAMDANI

I find the bugs before your users do. QA engineer testing Livin' by Mandiri, and a builder of side projects that keep my testing instincts sharp.

Download CV
Scroll to discover
01About

Methodical about breaking things.

I'm Dani, a QA engineer from Padang, now based in West Jakarta. My day job is testing Livin' by Mandiri, a mobile banking app: regression, smoke, UAT and API checks across its releases.

I studied computer engineering at Diponegoro University and learned QA by doing it: internships, test cases and regression cycles. After hours I build dashboards and trackers for the things I follow: fires, earthquakes, F1 and League of Legends. Shipping my own software makes me better at testing everyone else's.

~1 yr

of QA experience in mobile banking & fintech

5,000+

test cases executed on a live banking app

10+

production releases tested end to end

16

people in the QA team I work in

Now

  • Preparing for the ISTQB CTFL exam, with notes in public.
  • Going deeper on Playwright.
  • Learning Rust, from zero.
  • Learning Japanese, from zero.
02Experience

Where I've tested.

Jun 2026 to Present

PT Bank Mandiri logo

IT Quality Assurance

PT Bank Mandiri

Functional QA for Livin' by Mandiri, a mobile banking app used by millions. Regression, smoke, UAT and backward-compatibility testing across 10+ releases, including KSM Emas, Bullion gold savings, Deeplink/Universal Link and a security integration. Defects reported and tracked in JIRA within a 16-person QA team, with API verification through Postman and SQL.

  • Manual Testing
  • Regression
  • UAT
  • JIRA
  • Postman
  • SQL

Oct 2025 to Apr 2026

Home Credit Indonesia logo

IT E2E QA Intern

Home Credit Indonesia

End-to-end QA for HCI × OPPO projects, including AVANTO. Ran SIT, UAT, smoke and regression cycles; wrote test scenarios and test cases and carried them through review and approval. Ran daily UAT syncs with OPPO Mainland on progress, findings and clarifications. First exposure to test automation with Selenium and Katalon.

  • E2E Testing
  • SIT / UAT
  • Test Planning
  • Selenium
  • Katalon

Jan 2024 to Feb 2024

National Land Agency (BPN) logo

Information Systems Development Intern

National Land Agency (BPN)

Tested internal information systems used by agency staff and wrote the accompanying user documentation.

  • Functional Testing
  • Documentation
03Selected work

Things I've built.

01

Worlds 2026 Live

2026

A live tracker for the League of Legends World Championship: match center, bracket, standings, team pages, pick'em and push notifications. Next.js PWA backed by Supabase, syncing the official lolesports feed every 5 minutes.

  • Next.js·
  • TypeScript·
  • Supabase·
  • PWA
02

APEX F1

2026

A Formula 1 intelligence dashboard for the 2026 season: calendar, live timing tower, standings, telemetry lab and tyre strategy. 101 unit tests, 19 contract tests and 10 Playwright end-to-end scenarios keep it honest.

  • Next.js·
  • Supabase·
  • Playwright·
  • OpenF1 API
03

KARHUTLA Watch

2026

Indonesian forest- and land-fire monitoring: NASA FIRMS hotspots, air-quality stations and modelled smoke plumes on one map, proxied through serverless functions.

  • React·
  • TypeScript·
  • Vite·
  • NASA FIRMS
04

QuakeWatch

2026

Real-time earthquake dashboard pulling from USGS worldwide, BMKG for Indonesia and JMA for Japan, with regional views and a 60-second refresh.

  • React·
  • USGS·
  • BMKG·
  • JMA
05

ShelfSeeker E2E

2026

Playwright end-to-end suite for ShelfSeeker: 39 tests across desktop and mobile emulation, running in GitHub Actions with a self-updating report dashboard and an Allure report per run.

  • Playwright·
  • CI/CD·
  • GitHub Actions·
  • Allure
06

ShelfSeeker

2023

University project turned portfolio piece: a book-discovery app on the OpenLibrary API with a reading list, barcode scan and similar-book suggestions. Redesigned and extended in 2026. The badge here is live from the ShelfSeeker E2E suite (project 05), which tests this deployed app.

  • React·
  • OpenLibrary·
  • PWA
07

Dewa Management App

2025

Final-thesis project: a Flutter mobile app and companion website talking over a REST API, built for a real stakeholder, Dewa Management.

  • Flutter·
  • Dart·
  • REST API
08

SINDAPARKA

2024

Growth-monitoring PWA for posyandu cadres in Parakan Kauman, Temanggung, from a KKN team project with BKKBN in July 2024. The current build runs on Next.js and Supabase, with the PHP/MySQL original kept on the legacy-php branch: record a child's weight and height, get WHO 2006 z-scores on the spot, and follow each child's curve over time. Row Level Security keeps every cadre inside their own posyandu. The current codebase carries 19 unit tests and 22 Playwright end-to-end tests in CI.

  • Next.js·
  • TypeScript·
  • Supabase·
  • PWA·
  • Playwright
09

RiskLens

2026

Local fraud and transaction-risk analytics on a public synthetic dataset of 13.3 million transactions. FastAPI and DuckDB power a Next.js dashboard with transaction filtering, calibrated LightGBM scores, per-transaction explanations, model evaluation, exposure scenarios and a local case workflow. Historical labels, model estimates and simulated figures are kept separate. README, screenshots and a demo video are on GitHub; no hosted demo.

  • Next.js·
  • TypeScript·
  • FastAPI·
  • DuckDB·
  • LightGBM
10

PDF Lab

2026

PDF tools for the Undip community that run entirely in the browser: compare two versions, summarize or translate with Gemini, merge, split, rotate, crop, compress, watermark and more. Files are processed on your device with pdf-lib and pdf.js and never uploaded to a server. Sign-in is restricted to Undip email addresses.

  • Next.js·
  • TypeScript·
  • pdf-lib·
  • Auth.js·
  • Gemini
11

AirSubs

2026

A Chrome extension that puts live captions and translation on any tab: YouTube, Twitch, a livestream, a lecture recording. Tab audio is transcribed by Whisper on Groq's free tier with three accuracy modes; Balanced shows a fast draft and quietly replaces it with the more accurate read a moment later. Translation runs on Chrome's built-in on-device Translator where possible, with an open-weight LLM fallback, and sessions export to .srt.

  • Chrome Extension·
  • Manifest V3·
  • Whisper·
  • Groq
12

php2shell-check

2026

A defensive CLI that checks PHP runtimes against the PHP2Shell fixes (CVE-2026-109618 and CVE-2026-109619). It inventories local installs, SSH hosts, HTTP headers and logs, and tracks which Ubuntu package owns each binary so an unrelated package can never pass as a patch. It reports version and inventory evidence, never a blanket 'site is safe' verdict. 41 tests run in CI on Python 3.9 and 3.12.

  • Python·
  • Security·
  • CLI·
  • GitHub Actions
13

Lumenshelf

2026

A personal bookshelf for a real 50-volume collection of manga and novels. Drag spines into any order, open a per-book journal with ratings, notes, quotes and loan tracking, get a mood-based random pick, or play per-book soundtracks on a vinyl turntable. Add your own books by hand or by ISBN lookup. Local-first: everything stays in the browser, with validated JSON backup and restore. 194 unit and Playwright checks run against the production build.

  • React·
  • TypeScript·
  • Vite·
  • Playwright
14

Kedip

2026

A browser Arduino simulator for learning by wiring. Guided lessons plus a free-build workspace with more than 20 wireable parts, a sketch editor with the running line highlighted, analog reads solved from the actual resistor network, and plain-language hints about what the circuit is missing. A teaching model that says plainly what it does not simulate.

  • TypeScript·
  • Vite·
  • Simulation
15

Valleria Go

2026

A recreation study, not an original design. The Valleria commerce template by Sevgi Odabas (Framer Marketplace) recreated as a Go web app with templ and vanilla JS, matched to the reference layout from measured boxes at five viewports. Search, cart and per-country prices work from a local index and the store's public catalog; checkout and newsletter stay unconnected. The original photos, video and copy stay with the template author. Work in progress.

  • Go·
  • templ·
  • Tailwind CSS·
  • Vanilla JS
16

Worlds 2026 QA suite

2026

A Playwright and TypeScript test suite for my Worlds 2026 tracker: 117 test cases over the API, filters, time zones, languages, spoiler-free mode, the Swiss predictor and accessibility, with a test plan, run evidence and a log of five defects it found.

  • Playwright·
  • TypeScript·
  • axe-core·
  • GitHub Actions
04QA in practice

How I actually test.

A

API testing in CI with Postman + Newman

A self-directed API testing practice against two public Formula 1 APIs (Jolpica and OpenF1). No employer or private data is involved.

  • Designed a 13-request Postman collection with 41 assertions on real payloads: standings ordering, sequential finishing positions, required fields on every record.
  • Chained dynamic data between requests: the latest race session key feeds the driver and lap calls.
  • Verified pagination behaviour and documented each API's error quirks against the live endpoints, including rate limits and empty-result semantics.
  • Set a 3-second performance budget per response and wired the suite into GitHub Actions: on every change, on demand, and weekly as an availability monitor.

Shows how I design API tests: real assertions on real payloads, quirks documented instead of assumed, and a report anyone can open.

B

End-to-end testing ShelfSeeker with Playwright

A full E2E suite for my own book-discovery app: 39 tests running as 78 combinations across desktop Chrome and Pixel 7 emulation in GitHub Actions.

  • Mapped coverage from user flows first: search, filters, paging, reading list, import/export, then the unhappy paths: server errors, network failure, slow API, offline state.
  • Intercepted network calls against a mocked OpenLibrary so the suite is deterministic, and documented plainly what that does and does not prove.
  • Analyzed run history for flakiness and tracked it in a written flaky-test analysis.
  • Built a self-updating results dashboard and a full Allure report on every CI run.

Shows how I think about coverage: user flows before test counts, honest limits stated up front, and results visible without digging through CI logs.

C

Keeping a live data app honest: APEX F1

My F1 dashboard mixes live, delayed, historical and demo data from several providers, a correctness risk if any panel overstates what it knows.

  • Labelled every panel by data provenance (LIVE, DELAYED, HISTORICAL, DEMO DATA) so the UI never presents delayed or fallback data as live.
  • Protected that contract with 101 unit tests, 19 contract tests and 10 Playwright end-to-end scenarios in CI.
  • Used a bundled snapshot of real recorded race data as the demo fallback instead of fabricated numbers.

Shows the instinct I test with: the most expensive bugs are the ones where software looks right while saying something false.

05Sample work

The paperwork too.

The case studies above show the automation side. This is the manual craft: a test plan, test cases and bug reports from a real execution against SauceDemo, a public training app. My day-job artifacts are confidential, so this set stands in for them. 11 cases run, 7 passed, 4 defects reproduced and filed, all on 18 October 2026.

11

Cases run

7

Passed

4

Defects filed

06Toolbox

What I test with.

Core QA

  • Functional & Manual Testing
  • Regression
  • Smoke & Sanity
  • UAT / SIT
  • Test Planning & Design
  • Defect Tracking

Used at work

  • JIRA
  • TestRail
  • Confluence
  • Postman
  • SQL
  • Git & GitHub
  • Selenium & Katalon

In my side projects

  • TypeScript / JavaScript
  • Next.js & React
  • Python
  • Go
  • Flutter & Dart
  • Supabase
  • FastAPI & DuckDB
  • Tailwind CSS
  • Playwright
  • GitHub Actions
  • Newman & Allure
  • Maestro

Learning now

  • Rust
  • Solana & Anchor

An honest note: my automation experience comes from courses and side projects, not from owning automation in production. Not yet. Closing that gap is the point of everything on this page.

Credentials

  • ISTQB CTFLIn preparation, not certified yet
  • Playwright 101TestMu
  • Claude Code in ActionAnthropic
  • TOEFL ITP 603Englishvit
  • SFC · BAFC · SODFCSCRUMstudy, fundamentals

Education

Diponegoro University logo

Diponegoro University

B.Eng. Computer Engineering

GPA 3.73/4.00 · graduated Jul 2025