---
title: "Jeff Thoensen (@jeffthoensen) | Hashnode"
description: "QA Engineer focused on users, not just test cases. Read the latest articles by Jeff Thoensen on Hashnode."
url: "https://hashnode.com/@jeffthoensen"
---

@jeffthoensen

# Jeff Thoensen

@jeffthoensen · Atlanta, GA · Joined June 2025

QA Engineer focused on users, not just test cases

[Website](https://jeffthoensen.com/)

### [None Is Not an Error](https://jeffthoensen.hashnode.dev/none-is-not-an-error?utm_source=hashnode&utm_medium=feed)

I have a small CLI tool that looks up an MLB player's season stats by name. The lookup used to fail without ever raising anything: if the MLB API had no player matching a name, search\_player\_id printe

2 min read · [jeffthoensen.hashnode.dev](https://jeffthoensen.hashnode.dev/none-is-not-an-error?utm_source=hashnode&utm_medium=feed)

[Sep 12](https://hashnode.com/posts/none-is-not-an-error/6aa56ab8a7f8ab9fcaf90ebc)

### [Flaky Isn't a Diagnosis](https://jeffthoensen.hashnode.dev/flaky-isn-t-a-diagnosis?utm_source=hashnode&utm_medium=feed)

A test fails, someone reruns it, it passes, and the failure gets filed under "flaky" without anyone checking whether that's true, even though a test that fails one run in twenty and a test that fails

2 min read · [jeffthoensen.hashnode.dev](https://jeffthoensen.hashnode.dev/flaky-isn-t-a-diagnosis?utm_source=hashnode&utm_medium=feed)

[Sep 12](https://hashnode.com/posts/flaky-isn-t-a-diagnosis/6aa55e7d9dad74423b00efea)

### [When the Mock Is Right and the API Isn't Anymore](https://jeffthoensen.hashnode.dev/when-the-mock-is-right-and-the-api-isn-t-anymore?utm_source=hashnode&utm_medium=feed)

A test suite built against a mock API passed every run for months. The real endpoint's response contract had changed in that time, but the mock hadn't, and nothing caught it because the tests only eve

2 min read · [jeffthoensen.hashnode.dev](https://jeffthoensen.hashnode.dev/when-the-mock-is-right-and-the-api-isn-t-anymore?utm_source=hashnode&utm_medium=feed)

[Jul 25](https://hashnode.com/posts/when-the-mock-is-right-and-the-api-isn-t-anymore/6a64ef49f585b3a6a4c57e8d)

### [The Test That Only Failed in CI, Never Locally](https://jeffthoensen.hashnode.dev/the-test-that-only-failed-in-ci-never-locally?utm_source=hashnode&utm_medium=feed)

A test checking that a scheduled reminder appeared on the right day passed every time I ran it on my machine and failed every time it ran in CI, with nothing about the code or the test itself differen

3 min read · [jeffthoensen.hashnode.dev](https://jeffthoensen.hashnode.dev/the-test-that-only-failed-in-ci-never-locally?utm_source=hashnode&utm_medium=feed)

[Jul 25](https://hashnode.com/posts/the-test-that-only-failed-in-ci-never-locally/6a64eb665b4d7d930bce2a7c)

### [Where Exploratory Testing Earns Its Keep](https://jeffthoensen.hashnode.dev/where-exploratory-testing-earns-its-keep?utm_source=hashnode&utm_medium=feed)

Happy paths should be automated, and that part isn't up for debate. A suite that runs the same core flows on every commit is what actually keeps a release stable, and there's no version of "we'll just

3 min read · [jeffthoensen.hashnode.dev](https://jeffthoensen.hashnode.dev/where-exploratory-testing-earns-its-keep?utm_source=hashnode&utm_medium=feed)

[Jul 18](https://hashnode.com/posts/where-exploratory-testing-earns-its-keep/6a5bb7d4c536b4eea0954e68)
