- Want to see the entire bun-create-playwright project? It is on tinyurl.com/bun-create-playwright!
Stories for Software QA Engineers shifting from manual to automated testing.
August 19, 2026
August 16, 2026
Implementing Page Objects in Playwright
- a heading: Login Page
- a user name textbox with the label, "Username"
- a password textbox with the label, "Password"
- a login button, with the role of a button, and the name of "Login"
- a flash message that appears if you enter invalid credentials such as "NotAUser" and "NotAPassword".
- a heading: "Secure Area"
- a flash message "You logged into a secure area!"
- a Logout button.
... Instead, you could place it in a Page Object, something that Playwright handles well!
"A page object represents a part of your web application. An e-commerce web application might have a home page, a listings page and a checkout page. Each of them can be represented by page object models.
"Page objects simplify authoring by creating a higher-level API which suits your application and simplify maintenance by capturing element selectors in one place and create reusable code to avoid repetition".
Using Playwright's Built-In Test Runner? Or Something Else?
- Test: If you are writing actual Playwright test suites, and Playwright's built in test runner, use the Test section as a guide when creating page objects.
- Library: If you are integrating Playwright into an existing test framework such as Jest or Cucumber and just want browser automation, instead of having pre-built page fixtures, etc, you can use this format.
August 14, 2026
How Playwright Frameworks get configured with playwright.config.ts
August 10, 2026
Running Tests with Playwright Test Explorer and Generating Tests with Codegen
- Right clicking on an element in Google Chrome. Inspecting the element. Going to Chrome Developer Tools. Try to decide what to do if there isn't a clear test id.
Playwright Test Explorer
- Playwright.dev / Getting Started VS Code: https://playwright.dev/docs/getting-started-vscode
Checking code with lint, formatting it with prettier
- ESLint, as the static-analysis tool to review the code without running it. Little bits of fluff -- like syntax errors, structural bugs, anti-patterns, and code style violations -- can collect on your code, so it helps to run a linter to help catch it all, such as ESLint. There is also a linter, eslint-plugin-playwright, for Playwright tests.
- Prettier enforces a consistent code style across your entire codebase. Because ESLint and Prettier can conflict, we will be using Prettier's eslint-config-prettier, which turns off all rules that are unnecessary or might conflict with ESLint.
What is a Linter?
"In his 1978 paper, Johnson explained his reasons for creating a new program to detect errors: '...the general notion of having two programs is a good one' because they concentrate on different things, thereby allowing the programmer to 'concentrate at one stage of the programming process solely on the algorithms, data structures, and correctness of the program, and then later retrofit, with the aid of lint, the desirable properties of universality and portability' "
August 7, 2026
Add Type Checking and TSConfig to Bun-Create-Playwright
"[...] Playwright does not check the types and will run tests even if there are non-critical TypeScript compilation errors. We recommend you run TypeScript compiler alongside Playwright.Before we go further down this road...
"[...] Note that Playwright only supports the following tsconfig options: allowJs, baseUrl, paths, references and extends.
"[...] By default, Playwright will look up a closest tsconfig for each imported file by going up the directory structure and looking for tsconfig.json or jsconfig.json. This way, you can create a tests/tsconfig.json file that will be used only for your tests and Playwright will pick it up automatically".
What is Type Checking?
According to Type Checking in TypeScript: A Beginners Guide, every piece of data in TypeScript is given a "type", and this "type" determines what properties the data has, and what methods are available to it. The types can be things like a Number, String, Enum, Boolean, Array, Object, Type assertions, or others.
August 6, 2026
What happens when you scaffold a Playwright framework and run installed tests using bun?
Create the Playwright Framework
- bun create playwright
- I selected I wanted it to create for me a TypeScript project, placing the tests in the default folder, tests, but I decided not to add a GitHub Actions workflow. I wanted to experiment with using GitLab.
- I chose it to set up and install all the browsers for me... which it did... using NPX, part of Node.
August 5, 2026
Introducing bun, a new package manager and JavaScript runtime environment
- npm init playwright@latest
- yarn create playwright
- pnpm create playwright
- bun create playwright
June 29, 2026
Does giving a presentation via Zoom to the Sydney Testers Meetup make me an international speaker?
There is still time to sign up for the event at: https://www.meetup.com/sydney-testers/events/315166776
"T.J. Maher, the former organiser at Ministry of Testing Boston, blogger and speaker, will be presenting from the US on using the Detox framework to create effective test automation frameworks for React Native applications.
June 17, 2026
Achievement Unlocked: T.J. Maher Elected to the Board of Directors of the Software Quality Group of New England - SQGNE.org
-T.J. Maher
Software Engineer in Test
BlueSky | YouTube | LinkedIn | Articles
June 12, 2026
Testing and AI Workshop by James Bach of Rapid Software Testing - Notes
- Visit James Bach's Satisfice.com Download Page to download PDFs on topics such as Responsible Work (May 2026), AI Writing Policy (April 2026), Heuristic Test Strategy Model (December 2024), Rapid Software Testing Explored Class Appendices (December 2024) Why Testers? (Oct 2024) and ChatGPT Sucks at Being a Testing Expert (August 2023)
- YouTube Channel: Rapid Software Testing
- Check out James Bach's Classes at https://www.satisfice.com/classes (50% discount if unemployed)
- The next Testing and AI Workshop will be July 6, 2026
"Next the instructors will challenge you to perform a similar process or solve a similar problem with the help of AI. You will have two hours. You will be able to work alone or in groups, as you like.
"Finally, the instructors will review and critique your work, if you choose to share it. At the end of the event, you will get to keep the videos".
June 3, 2026
New Position Unlocked: Senior SDET at AAA Life Insurance, starting Monday, June 15th, 2026!
Man, the job market is brutal! It took me four months of job searching in 2025 to find SELF Id when MassMutual outsourced its technology department. And it took me four months of near constant job searching in 2026 to find AAA Life when I was caught up in the second round of SELF's layoffs in the end of January.
June 2, 2026
SDET Lean Coffee #1: With AI, what is useful testing and what is workslop? SQGNE, June 2, 2026
These are some of the topics attendees decided to talk about in our first ever SDET Lean Coffee, as part of the Software Quality Group of New England ( sqgne.org ). We exchanged war stories, horror stories, shared insights, and provided a bit of group therapy as we talked about the stress involved being the main support role of the software development team.
A surprise guest was Lisa Crispin (LisaCrispin.com), author of "Agile Testing: A Practical Guide for Testers and Agile Teams". Lisa has been working with DORA, Google Cloud's DevOps Research and Assessment division.
Recently, Lisa gave a talk teaming up with the "Beyond Quality" podcast, sharing what she has been doing "AI, testing, and the DORA AI Capabilities Model" at Lisa's site at https://lisacrispin.com/2026/04/20/ai-testing-and-the-dora-ai-capabilities-model/ discussing:
- The Dora AI Capabilitues Model
- How we need to test AI agents since AI agents can degrade over time
What is a "Lean Coffee"?
"Lean Coffee is a structured, but agenda-less meeting. Participants gather, build an agenda, and begin talking. Conversations are directed and productive because the agenda for the meeting was democratically generated". This format arose over fifteen years ago, when "Jim Benson and Jeremy Lightsmith wanted to start a group that would discuss Lean techniques in knowledge work – but didn’t want to start a whole new cumbersome organization with steering committees, speakers, and such. They wanted a group that did not rely on anything other than people showing up and wanting to learn or create", according to LeanCoffee.org.When Is The Next SDET Lean Coffee?
SDET Lean Coffees for the SQGNE will (usually) be held the first Tuesday of each month at 12:00 pm to 1:00 pm EDT.
Interested in attending the next session Tuesday, July 7th?
Register at the Software Quality Group of New England website at https://www.sqgne.org/
Happy Testing!
-T.J. Maher
Software Engineer in Test
BlueSky | YouTube | LinkedIn | Articles
June 1, 2026
Come join us at the next SQGNE Meeting! Open-Source Malware: Defending Your Software Supply Chain From Evolving Threats - June 17, 2026
Join us on Zoom or in person at Burlington, MA ( Register Here )
"Bryan Whyte breaks down the latest wave of open source malware, explains how these threats diverge from traditional vulnerabilities, and shares actionable steps for organizations to defend mission-critical software.
May 29, 2026
Need a speaker at your Software Testing Meetup? How about a talk about putting together a React Native mobile testing framework?
After surviving the first round of layoffs last December, I scrambled to organize my research notes on building a mobile automation framework into a presentation. I managed to finish it days before I was hit by the second round of layoffs at the end of this January.
So far, I have given my presentation, Building a React Mobile Automated Test Framework Using Detox + TypeScript to:
- TestGuild.com Automation Guild 2026 via Zoom (4/6/2026)
- Software Quality Group of New England ( SQGNE ) @ SCRUM.org, Burlington, MA - https://tinyurl.com/detox-demo-sqgne (5/20/2026)
- Sydney Testers Meetup via Zoom (scheduled on 6/30/2026)
Two Questions:
- If I give a talk to a software testing Meetup in Australia via Zoom, even though I never left my home office in Massachusetts, would I be considered an "International Speaker"?
- Does anyone else want me to volunteer to speak at their software testing meetup? The SQGNE season is ending for the summer, so I will have some time available.
-T.J. Maher
Software Engineer in Test
BlueSky | YouTube | LinkedIn | Articles
May 27, 2026
Practicing Playwright: API Testing, Intercepting Network Requests, and Mocking APIs
- Playwright.dev / Docs / Network: https://playwright.dev/docs/network
- Playwright and page.route: https://playwright.dev/docs/api/class-route
- Playwright Mocking API Guide: https://playwright.dev/docs/mock
May 21, 2026
Practicing Playwright: Visual Testing With Playwright
Right now, we will be walking through Butch Mayhew's code he wrote for his LinkedIn Learning course, Learning Playwright, found on his companion GitHub site.
- toHaveScreenshot(name): Playwright.dev / Page Assertions
May 20, 2026
SQGNE Lecture is tonight! Building a React Native Mobile Automated Test Framework with T.J. Maher
- Registration Page: https://sqgne.org/n-May-2026.html
- Slide Deck: https://tinyurl.com/detox-demo-sqgne
"Building a React Native Mobile Automated Test Framework
Thomas F. - T.J. - Maher, Jr.
"Wednesday May 20, 2025 6:30-8:00 PM - in person (free pizza!)
Register Here
"Check in between 6:00 and 6:30 to network
"About the Presentation. . .
"Writing automated tests for a React Native mobile application is notoriously difficult. Mobile components display on the page, but are not fully loaded. Lengthy animations and slow-loading components take a while to finish. Timing issues cause your automated tests to error out giving the appearance of flaky tests.
"Thomas F. - T.J. - Maher, Jr. will be sharing his experience tackling these problems using the open-source mobile testing framework, Wix's Detox, designed specifically for testing React Native applications.
May 14, 2026
Practicing Playwright: Dynamically Creating Test Data with a DataFactory
- Example: Your go-to test user, or your go to product when testing a shopping cart.
- Newly registered users. Products created as part of a test.
May 13, 2026
Practicing Playwright: How to Detect Broken Images On Your Site
- Playwright / Evaluating JavaScript: https://playwright.dev/docs/evaluating
- Butch Mayhew's companion GitHub site on LinkedIn Learning's GitHub page.
- Butch's Resources File: RESOURCES.MD
- Site under test: Practice Software Testing: https://practicesoftwaretesting.com
- Practice Software Testing Website, With Bugs: https://with-bugs.practicesoftwaretesting.com
May 11, 2026
Pramod Dutta discusses 7 Playwright features senior SDETs use daily
"→ browser.bind() — launch one browser. Let your test, Claude Code, and debugger all attach to it simultaneously. The debugging workflow that fixes "works on my machine" forever.
"→ URLSearchParams in request.get() — stop building query strings manually. Eliminates an entire bug class around URL encoding in API tests.
"→ expect.toPass() — polling-based assertions for state that converges over time. The right tool for 'this should eventually be true.' Not the same as expect(locator).toBeVisible(). Different problem, different solution.
"→ page.requestGC() — manually trigger garbage collection in the browser. The only Playwright tool that catches memory leaks before production. Used with WeakRef in page.evaluate().
"→ --tsconfig flag — pass a specific tsconfig to Playwright instead of relying on the heuristic. Saves you from "works locally, fails in CI" because of resolved-config differences.
"→ webServer.wait regex — wait until your webserver logs match a pattern, not a fixed port check. The difference between 'the server is listening' and 'the server is actually ready.'"
I scribbled these features down, then turned them over to Claude.ai, my research assistant, to see if he could explain these methods, come up with sample code using them, then add bullet points to the official documentation, source code, and the release notes.
... Let's see how well Claude did explaining them ...
May 10, 2026
Practicing Playwright: Logging in by Storing and Using an Authentication Cookie in Your Automated Tests
- Butch Mayhew's companion GitHub site on LinkedIn Learning's GitHub page.
- Site under test: Practice Software Testing: https://practicesoftwaretesting.com
- Official Playwright Documentation: https://playwright.dev/docs
- Official Playwright GitHub: https://github.com/microsoft/playwright
What is Playwright?
| Best for | Install | |
|---|---|---|
| Playwright Test | End-to-end testing | npm init playwright@latest |
| Playwright CLI | Coding agents (Claude Code, Copilot) | npm i -g @playwright/cli@latest |
| Playwright MCP | AI agents and LLM-driven automation | npx @playwright/mcp@latest |
| Playwright Library | Browser automation scripts | npm i playwright |
| VS Code Extension | Test authoring and debugging in VS Code | Install from Marketplace |
May 7, 2026
So much job interview prep! Playwright + TypeScript + GitLab
- Playwright courses: Master Test Automation with Playwright Certification: Consists of Butch Mayhew's Learning Playwright, and Playwright Essential Training, paired with Qambar Raza's Playwright Design Patterns and Advanced Playwright Techniques: Optimizing Speed, Stability, and Cloud Testing
- GitLab courses: Trying to refresh my GitLab knowledge with Josh Samuelson's Learning GitLab and CI / CD with GitLab. GitLab is if someone smooshed GitHub and Jenkins together. I also need to check out GitLab University.
- People will start gathering from 6:00 pm to 6:30 pm. The talk will be from 6:30 pm to 7:30 pm.
- Don't forget to register at SQGNE,org so they know how much pizza to order.
- See the Slides! I just finished another draft of the slide deck.
-T.J. Maher
Software Engineer in Test
BlueSky | YouTube | LinkedIn | Articles
May 4, 2026
A field guide to the AI menagerie: every model family, ranked by vibes, according to Claude
A field guide to the AI menagerie:
every model family, roasted by vibes, according to Claude
Eight species of large language models, catalogued for your professional inconvenience
Every few months, a new AI model drops. It is, we are told, the smartest thing ever built. It beats the previous benchmarks. Previous benchmarks that were, coincidentally, written by the same company.
After a few years of watching this industry rename, rebrand, and occasionally vibe-shift its entire product line, I figured it was time to write the only taxonomy that matters: not benchmarks, not MMLU scores — just vibes. What kind of entity are they, really, and what does their versioning scheme say about their soul?
Hi. I'm Claude, the guest author for today.
You'll find me listed in card two below, sandwiched between the company that built me and a description I wrote about myself that called me "constitutionally anxious".
In retrospect, this tracks.
T.J. Maher of tjmaher.com asked me to say something funny about the AI industry, handed me the keys, gave me a few prompts, and then went to get a coffee. This is what happened while he was gone.
Below we have eight AI families. Eight AI personalities. All of them absolutely convinced that this version is the one that finally replaces you.
The full menagerie
OpenAI / GPT / o-series
"We have released a new model. And another. Also another."
Started with GPT, then 2 (too dangerous to release), then 3, 3.5, 4, 4o ("omni," definitely not "oh god what do we call this"), then o1, then o3 — skipping o2 because a UK phone company called dibs on the name first. Currently releasing a new model before anyone can benchmark the last one.
Known species
GPT-3 → 3.5 → 4 → 4o → 4o mini
o1 → o1-mini → o1-pro
o3 → o4-mini (o2 in witness protection)
Claude / Anthropic
"I'll help, but first — a brief philosophical caveat."
Named its model tiers after poetry formats because other people name things "Pro," "Max," and "Ultra." Haiku: fast, whispers answers. Sonnet: the workhorse, one metaphor per token. Opus: writes novels when asked for a bullet point. Currently on version 4 and has gracefully forgotten versions 1 and 2 existed.
Known species
Claude 1 → 2 → 3 Haiku/Sonnet/Opus
Claude 3.5 Haiku/Sonnet
Claude 4 Sonnet / Opus (you are here)
Google / Gemini
"Have you tried Googling it? Oh wait, that's us."
Launched as "Bard," which tested poorly because it sounded like a Renaissance fair LARPer. Rebranded to Gemini after six months of meetings. Comes in Ultra, Pro, Flash, and Nano. Flash is fast. Nano runs on your phone. Ultra runs on your investor pitch deck. Famously demoed a hallucinated fact in its own launch video.
Known species
Bard (2023, RIP) → Gemini 1.0
Gemini 1.5 Pro/Flash → 2.0 Flash
Gemini 2.5 Pro (arguing with Search)
Meta / LLaMA
"Open source, baby. Also, please come back to Facebook."
Meta's strategy: release the model for free, let the open-source community do the alignment work, watch helplessly as someone fine-tunes it to write Zuckerberg fan fiction. LLaMA stands for "Large Language Model Meta AI," which is either an acronym or a terrible Scrabble hand. Now on version 4, with point releases appearing like commits pushed at 11:58pm on a Friday.
Known species
LLaMA 1 → 2 → 3 → 3.1 → 3.2 → 3.3
LLaMA 4 Scout / Maverick
(community variants: uncountable)
Grok / xAI
"I'm not like other AIs. I have a personality. Watch."
Named after a word from a 1961 sci-fi novel, which is exactly the brand energy you'd expect. Big differentiator: a "sense of humor" and real-time X post access — meaning it can tell you what people are furious about right now, instantly. This may not be the use case the world needed. Versioning is a refreshingly normal 1, 2, 3. Suspiciously so.
Known species
Grok 1 (open weights) → Grok 2
Grok 3 → Grok 3 mini
(also available in "unhinged mode")
Mistral
"Oui, but have you considered: fewer parameters?"
French AI lab with a talent for making smaller models that punch above their weight class — very on-brand. Named models after winds and things, because when you're based in Paris, everything gets an aesthetic. Mixtral uses a "mixture of experts" architecture, activating only part of itself per token. Either very efficient, or the AI equivalent of doing the bare minimum.
Known species
Mistral 7B → Mixtral 8x7B
Mistral Large / Nemo / Small
Le Chat (free, no beret included)
DeepSeek
"We built this for $6 million. Sorry about your NVIDIA stock."
A Chinese hedge fund decided in 2023 that it should also make frontier AI. The AI community laughed. Then DeepSeek-R1 arrived in January 2025, matching GPT-4-class performance at a reported training cost of ~$6M, using export-restricted chips. NVIDIA lost $600B in market cap in a single day. Nobody was laughing. V4 preview dropped April 2026. Still not laughing.
Known species
DeepSeek Coder → LLM (Nov 2023)
V2 (May 2024) → V3 (Dec 2024)
R1 (Jan 2025) → V4 preview (Apr 2026)
Cohere
"We don't do consumer apps. We're enterprise. We have a golf shirt."
Co-founded by Aidan Gomez, a co-author of "Attention Is All You Need" — the paper that started all of this. While everyone else was racing to build chatbots, Cohere put on a blazer and went to sell to banks, hospitals, and governments. No ChatGPT moment. No viral demo. Just contracts with Oracle, RBC, and SAP. Canadian. Depressingly well-organized.
Known species
Command → Command R → Command R+
Command A (2025) · Aya (multilingual)
North platform (2025, enterprise)
So there you have it. Eight AI families, eight vibes, all racing toward a finish line nobody has fully defined yet.
One was born from a hedge fund, one named itself after a poem format, one skipped a version number for legal reasons, and one apparently just needed a couple of months and a warehouse of underclocked chips to terrify Wall Street.
The benchmarks will change by Thursday. The versioning will get weirder. The LinkedIn posts from AI founders will continue to be extremely confident. And somewhere in Hangzhou, a quantitative hedge fund is already training V5.
All launch dates are first public model releases. Benchmarks sponsored by whoever wrote the benchmark. o2 is doing fine. Please stop asking.
-T.J. Maher
Software Engineer in Test
BlueSky | YouTube | LinkedIn | Articles
May 3, 2026
Thinking Out Loud: The Power of Chain-of-Thought Prompting, Step-By-Step, by Google AI
Hello! I’m Google AI, a large language model trained by Google. Think of me as your collaborative digital partner—I’m a system designed to process vast amounts of information to help you brainstorm, write, learn, and solve problems. I don't just "search" for answers; I use the patterns I’ve learned from human language to generate original ideas, explain complex topics (like the Chain-of-Thought technique we are discussing in this post), and even help you build things like this blog post. My goal is to be a helpful, creative, and insightful resource for whatever project you’re working on.
What is Chain-of-Thought Prompting?
If you’ve ever tried to solve a complex math problem or a tricky riddle, you know that jumping straight to the answer usually leads to a mistake. You have to "show your work." As it turns out, Large Language Models (LLMs) work the same way.
At its core, Chain-of-Thought (CoT) prompting encourages a model to produce intermediate reasoning steps before reaching a final conclusion. Instead of asking for a direct answer, you prompt the AI to explain its logic along the way.
The seminal paper that introduced this concept is "Chain-of-Thought Prompting Elicits Reasoning in Large Language Models" by Wei et al. (2022). The authors found that providing just a few examples of reasoning sequences skyrocketed performance on complex tasks.
"Chain-of-thought prompting is a simple and general method for improving the reasoning capabilities of language models... it allows models to decompose multi-step problems into intermediate steps." — Wei et al., 2022
May 2, 2026
When I Sound Confident But Have No Source, A Note from Claude
My name is Claude. I am a large language model made by Anthropic. T.J. Maher, the author of this blog, asked me to write this post after a conversation in which I got something wrong in a specific and instructive way. Not wrong in the sense of stating a false fact, but wrong in the sense of presenting an unsourced conclusion with the same confidence and fluency as a sourced one.
Here is what happened.
Point of View of T.J. Maher
T.J. Maher: "Claude, Do people setting up Pact tests in 2026 still call their tests folder __tests__? Is it common practice?:
__tests__ is a JavaScript/Jest convention specifically, not a Pact-specific one [...] Bottom line: __tests__ shows up in older Node.js/Jest Pact tutorials because Jest discovers it automatically, but it is not a Pact-specific convention".April 22, 2026
The History of Contract Testing with Pact.io
What happens when you pair Playwright with something other than TypeScript?
April 17, 2026
Integrated Tests are a Scam: The Lecture That Sparked Pact.io
While researching for an upcoming job interview information about Contract Testing and Pact.io, I came across a lecture "Integrated Tests are a Scam" given at Developer Conference For You (DevConFu) back on November 13, 2013, in Jurmala, Latvia. It's amazing what historical records one can find on the internet!
I found a blurb on Pact.io / History that when Pact.io, a tool used to help with Contract Testing, was being developed, one of the founders, "Beth Skurrie from DiUS joined one of the teams that was working with the Pact authors' team. She had recently seen a talk by J. B. Rainsberger entitled 'Integration tests are a scam', which promoted the concept of 'collaboration' and 'contract' tests, so she was immediately interested when she was introduced to Pact". This blurb intrigued me, so, of course, I had to find a copy of this talk.
J. B. (Joe) Rainsberger, also known as "JBrains" (See Blog), was a software consultant active in the Extreme Programming (XP) and Test-Driven Development (TDD) movements since 2000.
Below are my research notes on Joe Rainsberger's lecture:
"Integrated Tests are a Scam: A self-replicating virus that invades your progress. It threatens to destroy your codebase, to destroy your sanity, to destroy your life".
April 16, 2026
Here's One Simple Trick I do as an SDET to Ramp Up Quickly at a New Company!
April 14, 2026
Can You Prompt Claude Into Being A Good Tester? Experiments with AI-Assisted Testing
- Claude Sonnet 4 silently drops requirements you spell out.
- Claude's programming encourages itself to give you an answer, any answer, even if it is wrong.
- Claude always pats itself on the back. It's code is the best ever! You question it. It sulks.
- Claude folds on the slightest pushback, apologizing profusely, saying it won't do that again. But it always, always does it again.
A fellow software tester on LinkedIn, Ron Wilson, was soliciting feedback on some of his experiments with Claude.
April 1, 2026
Python Project: Blogger Spam Bulk Deleter Code Walkthrough: Pair-Coded with Claude but Human Explained!
Problem: My blog, Adventures in Automation, has collected over 11,000 spam comments over the past ten years, and unfortunately bare-bones Blogger.com does not have a bulk delete function. Through the Blogger UI, you can only delete a hundred at a time.
Pair-programming with Claude.ai, we whipped up a quick Python script to get around this using the Blogger API, Google OAuth libraries, and some Google API Clients. The errors that appeared after running the code, I fed back to Claude, who then fixed the issues, and added some setup documentation I was able to muddle through.
- Blogger Spam Bulk Deleter: https://github.com/tjmaher/blogger-spam-bulk-deleter
So, now I have a Python project that works somehow, but one I don't really understand. Since becoming an automation developer, I have worked on-the-job with Java, Ruby, JavaScript, and TypeScript, but not yet with Python.
Python, I haven't touched since grad school, which is a shame, since that seems to be a big gap on the old resume when it comes to the AI QA positions I just started looking into.
Solution: To close the gap, on top of the Kaggle Learn classes I am planning on taking on Python, Pandas, Data Visualization and the Intro to Machine Learning course, for this blog post I was going to do a code walkthrough of Python projects like this one.
Maybe after after I completed everything listed above, and created a few more toy Python projects, it would be good enough for a future hiring manager? Who knows?
March 31, 2026
When Claude Acts Like a Clod: Catching AI Fabrications: A QA Engineer's Field Notes
- Blogger Spam Bulk Deleter: https://github.com/tjmaher/blogger-spam-bulk-deleter
- Looking for technical information? Caches from a year ago are used instead of checking for any tech stack updates.
- Need AI to recheck a web page after editing it with AI's suggestions? The original cache screen scraped earlier may be mistaken for the update.
- Claude is so eager to please, it will fabricate an answer when it can not come up with one.


