Halmurat T.
Halmurat T.

Senior SDET

Home Blog Books ask About

Categories

Automation AI Testing CI/CD QA Strategy Case Studies

The Dispatch

Weekly QA notes from the trenches.

Welcome aboard!

You're on the list. Expect real-world QA insights — no fluff, no spam.

© 2026 Halmurat T.

Currently writing · open to consulting

Test automation that survives production.

I'm Halmurat T. — senior SDET writing about test automation at enterprise scale. Fifteen years debugging production systems at Fortune 500 telecom, insurance, retail, and financial services. The kind of scars you can't read about in documentation.

This blog is opinionated by design. Playwright vs Selenium isn't a tie. Page Object Model is overengineered. Your flaky test isn't flaky — it's broken. If that sounds useful, stick around.

Read the blog About me
~/halmurattahir — git log --oneline -n 6
  1. b4d693d 2026-04-23 (HEAD → main) Claude Code Has 2 Primitives, Not 3 — Use Skills First
  2. 5911ebe 2026-04-17 Stop Sharing Test Environments — Build One You Control
  3. ea762f8 2026-04-09 We Cut 150 Min of Test Setup with 3 Java Classes
  4. 0db946e 2026-04-02 Contract Testing vs API Testing — What's the Difference?
  5. 867b001 2026-03-24 Parallel Execution Without the Refactor Tax
  6. 726abac 2026-03-19 Stop Using locator() for Everything in Playwright
▋ ready · cd ./blog →

ship/ StepScout — IntelliJ plugin for Cucumber step navigation →

Don't miss a thing

Subscribe to get updates straight to your inbox.

HT

No spam · Unsubscribe anytime

Welcome aboard!

You're on the list. Expect real-world QA insights — no fluff, no spam.

§02 Status board
➜ Reading
The Art of Spending Money
Morgan Housel · book
➜ Writing
The Weekly Dispatch
Tuesdays & Thursdays
➜ Shipping
StepScout
IntelliJ · Cucumber steps
§01 Recent writing
View all →
§ Lead Story Issue • 2026
AI Testing April 23, 2026 / 12 min

Claude Code Has 2 Primitives, Not 3 — Use Skills First

Most engineers think Claude Code has three primitives. It actually has two — skills and subagents. Here's when to use which, with token-cost benchmarks.

Read the story →
Filed under ai-testing /claude /ai-agents
QA Strategy
April 17, 2026 / 24 min

Stop Sharing Test Environments — Build One You Control

Shared staging environments are the #1 source of flaky UI tests in enterprise teams. Here's the 5-pillar blueprint for building a controlled test environment.

Filed under qa-strategy /test-data
Case Studies
April 9, 2026 / 11 min

We Cut 150 Min of Test Setup with 3 Java Classes

How we built a Playwright API test data layer in Java — replacing UI setup that burned 150 minutes per run with 3 classes and a legacy API wrapping pattern.

Filed under case-study /api-testing
Automation
April 2, 2026 / 13 min

Contract Testing vs API Testing — What's the Difference?

Contract testing and API testing look similar but they catch very different bugs. Here's where contract testing fits next to unit, API, and E2E tests.

Filed under api-testing /design-patterns
Automation
March 24, 2026 / 13 min

Parallel Execution Without the Refactor Tax

Thread-level parallelism demands ThreadLocal and full framework rewrites. Process-level parallelism doesn't. Here's the difference and when to use each.

Filed under selenium /parallel-execution
Automation
March 19, 2026 / 9 min

Stop Using locator() for Everything in Playwright

Most Playwright teams still use CSS selectors via locator() out of habit. getByRole and getByText find elements the way users do — and survive redesigns.

Filed under playwright /selenium
§ Colophon

Halmurat T. — Senior SDET writing about test automation, CI/CD, and QA strategy from 10+ years in the enterprise trenches.

Set in
IBM Plex Sans, Lora, and IBM Plex Mono.
Built with
Astro, MDX, Tailwind CSS & Expressive Code. Served by Vercel.
Privacy
No cookies. No tracking scripts on the main thread — analytics run sandboxed via Partytown.
Source
github.com/Halmurat-Uyghur
Terminal
Try /ask to query Harry's notes in a shell prompt.

© 2026 Halmurat T. · Written in plain text, shipped in plain time.

Search
Esc

Search is not available in dev mode.

Run npm run build then npm run preview:local to test search locally.