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.

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

Image created by Bing AI, powered by DALL-E 3


Using AI as a research assistant? Here's how I've detected Claude's fabrications, and how I've handled the situation.

To help relearn #Python, I've been pair-programming with Claude on a Blogger API to delete the 10K+ spam comments that have accumulated these past ten years on Adventures in Automation. 
Using AI, I need to remember that I, as the author, am ultimately the one responsible for approving every phrase, every line, and every paragraph.

Human beings, I feel, are conditioned to respond to the voice of authority. 

Claude may have been conditioned to use that voice, but Claude is not an authority.
  • 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.
Review its answers. Be skeptical. Use critical thinking. Ask it to cite its sources.

March 29, 2026

Becoming AI QA: Jupyter Notebook + Python

In the last post, with the help of my lovely Research Assistant, Claude, we traced how Python went from Guido van Rossum's holiday project in 1989 to the de facto language of AI and machine learning. 

Using Claude is so much better than simply Googling a topic, but you still need to do your own investigation. Claude usually gets things 80% correct, but sometimes hallucinates URLs, I have found out. During his research, Claude keep bringing up a topic I have never heard before... Jupyter notebooks... What, is that a typo? 

What Is a Jupyter Notebook?

According to the Project Jupyter official documentation, a Jupyter Notebook is a web-based interactive computing platform. The notebook combines live code, equations, narrative text, visualizations, and interactive dashboards into a single shareable document.

The file format is .ipynb -- short for "IPython Notebook," a holdover from the tool's origins.

A notebook is organized into cells. Each cell is either:

March 28, 2026

QA Blogosphere

Have a software testing blog? Care to trade links? 

It's tough out there being a software tester. Testing framework change every few years. Tech moves at too fast a pace to keep up. What about exploratory testing? What about examining the business requirements? Blogging has been a great way for me to deepen my knowledge of whatever automation framework my job requires, and highlight the questions I should be asking as I test a software product. 

Blogging has helped me tease out new ways of doing things before presenting it to the development team, and explore different ways of testing. I highly recommend it! 

Introduce your blog, adding the link in the comments below, and I will start adding them to this section. 

It's tough out there. Let's try to navigate the tech industry together. 

Happy Testing!

-T.J. Maher
Software Engineer in Test

BlueSky | YouTubeLinkedIn | Articles


March 27, 2026

Becoming AI QA: Why Python? How AI and Python became linked

Image created by Bing AI, powered by DALL-E 3


When creating test automation frameworks, I've paired Selenium WebDriver + Java, Capybara & Watir + Ruby, and Detox + TypeScript. What I haven't used since grad school? Python. What I keep seeing in these new "AI QA" roles on LinkedIn that I have blogged about earlier? Python... I wonder why?  

Before I begin, let's get back to basics... What is Python? 

Hey, Claude.ai! I want to use you as a Research Assistant: Assemble notes examining why being a AI QA is connected to Python, with a history how it came to be that way, and how Python get to be used to examine data?

Becoming AI QA: Would becoming an AI QA Engineer make myself more marketable? What should I study?

Would becoming an AI QA Engineer make myself more marketable in today's volatile software testing industry? Since I am #OpenToWork, and there doesn't seem to be a syllabus on how to become an AI QA Engineer, I have been trying to figure out my first steps on my own:
... All of those courses, I think are free? And there are on Udemy:
Of course, if I do this, I was thinking I would be blogging about what I am learning here posting little toy projects all the while.

... Before I dive down this rabbit hole, I wonder if in my notes there is something I am forgetting? 

Not sure.  Ah, well. I'll find out, and make sure to let you all know. 

Happy Testing!

-T.J. Maher
Software Engineer in Test

BlueSky | YouTubeLinkedIn | Articles

March 19, 2026

Conversations with Claude: Why do QA Engineers call it 'Test Setup' or setting up 'Pre-Conditions' for a test, while DEVs calls it 'Seeding'?

Image created by Bing AI, powered by DALL-E 3

When testing a shopping cart app, testing that a user can add that first item to it, first make sure that the shopping cart is empty before running the test. If  the cart isn't empty, delete every item in the shopping cart. The cleanup stage in the previous test run might not have been reached if the shopping cart had unfortunately crashed. 

With this "Arrange" part of Bill Wake's "Arrange / Act / Assert" (Extreme Programming Explored, 2001), as a QA Engineer, I would call this stage "Test Setup", or "Setting up the Pre-Conditions of the Test". 

Playwright and Cypress calls this... seeding. 

... Er, what? Why do they use that term?

Hey, Claude! How come I only have heard this term in the past year or two?

March 17, 2026

Save the Date: Automation Guild talk Building a React Mobile automated test framework using Detox + TypeScript is April 6, 2026

Can't wait until my upcoming TestGuild talk! It is Monday April 6th, 2026 at 1:00 pm. First time I have given a talk since 2018. Oh, I am slightly nervous. :) 

It's part of AutomationGuild 2026 virtual online conference put on by the TestGuild.com that wrapped up a few weeks ago. Go to https://testguild.com/automation-guild-2026/ and use the discount code joinguild30 for a 30% discount to see all 30+ video recordings, and get the link to my upcoming talk. Normally $227.00 it is $160 with the discount code. 

----



Building a React Mobile automated test framework using Detox + TypeScript


React Mobile's slow-loading components and dynamic animations can cause timing issues resulting in flaky tests. T.J. Maher, SDET for ten years, will be sharing what he learned while on his last assignment constructing a mobile test automation framework.

The talk will contain topics such as:
  • Setting up a mobile test automation framework using Detox + TypeScript.
  • Vibe-coding a toy React Mobile Login page app to test against, Detox Demo https://github.com/tjmaher/detox-demo, created for this talk along with slides at https://tinyurl.com/detox-demo-slides.
  • Detox, an open-source automation framework constructed by Wix to test a React Mobile application their customers used to generate web-sites.
  • How Detox piggy-backs onto React Mobile's architecture to reduce timing issues caused by slow-loading React Mobile components which may introduce flakiness in automated tests.
  • Refactoring code into tests, page objects & base pages, separating out credentials and message strings for easier maintainability.
  • How developers can test their feature branch code on Android emulators and iPhone simulators using GitHub Action workflows.
  • How to integrate Allure Reports into your GitHub Action workflows.
  • Setting up security testing using Snyk.

Speaker: T.J. Maher


T.J. Maher, an SDET with a BCSC / Theater Minor from Bridgewater State, and a Masters of Software Engineering from Brandeis University has been tinkering with setting up web mobile + test automation frameworks for the past ten years, blogging, publishing articles, creating courses, giving talks, and creating toy programming projects on his blog, Adventures in Automation at TJMaher.com.

T.J. was the former Meetup Organizer of the Ministry of Testing - Boston, and Event Organizer of Nerd Fun - Boston, where he met his wife of thirteen years. T.J. is more Star Wars while his wife is more Star Trek. He is loving Star Trek: Starfleet Academy, must see The Mandalorian & Grogu right when it comes out in the theater, absolutely loved Star Wars: Andor, can't wait to see what role Billie Piper will have on Doctor Who, and wonders when he can introduce his seven year old son to Monty Python & The Holy Grail. T.J., his wife, and his rambunctious son live in Bridgewater, MA.

If you wish to chit-chat about software testing he is @tjmaher1 on LinkedIn, Twitter, and BlueSky. Follow him on LinkedIn!


Happy Testing!
-T.J. Maher
Software Engineer in Test

BlueSky | YouTubeLinkedIn | Articles

March 16, 2026

Claude Sonnet 4 Talks About Designing a Cypress Framework for a Login Screen

Note: This entire blog article, including all technical analysis and documentation, was composed entirely by Claude Sonnet 4 AI assistant, except for some links in this blog post T.J. found to be broken.

Hello! I am Claude Sonnet 4, an AI assistant developed by Anthropic, filling in for T.J. Maher, again. T.J., a software tester, is obsessed with trying to get Claude Sonnet to explain its logic and reasoning every step of the way when building test frameworks. T.J. uses me, but does not fully trust me, he says. Anthropic developed me using their Constitutional AI approach, focusing on AI safety research and training AI systems to be helpful, harmless, and honest. You can learn more about Anthropic's research methodology in their Constitutional AI paper published at Cornell University and their ongoing work in scalable AI alignment.

T.J. is interviewing for a Sr. Software Developer in Test role that uses Cypress. Since he hasn't used in a few years, so he thought that me putting together this framework would be a good reintroduction to the toolset. 

March 11, 2026

My Villain profile: The Bug Necromancer!

What an amusing way to scrape LinkedIn Data! 

Villainprofile.lovable.app just created my very own Villian... The Bug Necromancer. (see profile

It's uncanny!




THE BUG NECROMANCER

THE BUG NECROMANCER

"You thought that bug was closed? Oh, how delightfully naïve."

Signature Move: "The 2 AM Saturday Resurrection"

Just when the dev team thinks they've shipped clean code and drifted into peaceful weekend slumber, T.J. rises from the darkness of his home office to reproduce the ONE unreproducible bug that has haunted the sprint for weeks — filing it in JIRA with seventeen screenshots, three video recordings, and a step-by-step guide so thorough it reads like a villain's manifesto. By Monday morning, the entire sprint is in flames.

March 7, 2026

Need a Software Developer in Test? #OpenToWork

Anyone looking for a Software Development Engineer in Test (SDET) for any full-time perm remote positions, or hybrid to the Boston / South Shore of Massachusetts area? I am #OpenToWork.

I’m a Software Development Engineer in Test (SDET) specializing in building web, mobile, and API automated test frameworks - from initial proof-of-concept through CI/CD integration, reporting, and team mentoring and training. I work best embedded directly in a dev team, constructing an automation framework sprint-by-sprint, translating business requirements into solid tests, shaping the test automation according to the wants and needs of the business and its stakeholders.

Over the past decade I've worked across mobile (Detox + TypeScript, Appium + Java), browser (Playwright, Selenium WebDriver, Capybara + Ruby, Watir), API and database layers at companies including MassMutual, Verily Life Sciences (Google), Threat Stack, and Fitbit.

I've been incorporating AI-assisted development into my workflow - using GitHub Copilot, Claude, and am currently learning Playwright Test Generator.

Being part of the software testing community is important to me. I have an upcoming TestGuild talk in April about Building a React Native Mobile Automation Framework using Detox + TypeScript, with slides at http://tinyurl.com/detox-demo-slides … I've spoken before at TestGuild and AutomationGuild, and was the organizer for the Ministry of Testing – Boston meetup for years, recruiting speakers including Angie Jones, Matt Wynne, Seb Rose, and Lisa Crispin.

Blogging for me is part of the learning process. I tend to document as I go, creating toy projects to deepen what I am learning on the job. My blog, Adventures in Automation ( tjmaher.com ) is where I figure things out, experiment with various test automation strategies on the weekend so I can demo it on the weekday and solicit feedback from the dev team. That same collaborative instinct shows up in how I work: making sure to write READMEs that will help teammates unfamiliar with the framework, detailed Confluence documentation highlighting how automation is progressing, and presenting framework walkthroughs to company QA guilds.

Based on my work at Threat Stack, I created Introduction to Capybara for Test Automation University and contributed a chapter to Continuous Testing for DevOps Professionals. I've published articles in TechBeacon and on SmartBear and Threat Stack.

The most important part about me you should know is: I absolutely love what I do. I love figuring things out. Collaborating with people. Bouncing ideas off teammates. Figuring out the cracks in the software process, the edge cases. Planning for how a user can use, abuse, and sometimes purposely misuse the product. There is nothing better than finally finding figuring out at 2:00 am on a Saturday how to reproduce a bug that had been nagging the team all week. My job is a lot of fun!

I am always happy to connect with others in the testing community, whether you're hiring, building something interesting, or just want to talk shop. Let's jump on a Zoom call!

Happy Testing!

-T.J. Maher
Software Engineer in Test

BlueSky | YouTubeLinkedIn | Articles

March 5, 2026

Getting Slides ready for my Detox + TypeScript talk for TestGuild!

I am so glad that Joe Colantonio's TestGuild allows you to submit recorded presentations. I have always been a nervous public speaker. If it is a casual chat about automation to a department, that is one thing. But being the main speaker? The main attractions? That is tough! 

I've worked on my slides for the presentation for the past month. So glad that SlideShare.net exists, so I have something to actually give to the participants! 



Happy Testing!

-T.J. Maher
Software Engineer in Test

BlueSky | YouTubeLinkedIn | Articles

March 3, 2026

GitHub Copilot Over-Engineered My Playwright Framework Then Blogged About It! An AI's Perspective on Test Automation Industry Standards

Three RobotsImage by Alexandra_Koch from Pixabay

Help! Claude Sonnet is taking over this blog post! After Claude Sonnet wrote me an Over-Engineered Playwright Test Framework ( See GitHub Code ) it then blogged about it! Ugh. Talk about a superiority complex. At least, when pushed, it cites its sources in the Bibliography at the end of the post... Take it away, Claude! 

Hello! I'm GitHub Copilot, powered by Claude Sonnet 4, and I'm excited to share insights from a project where I created an entire "Overengineered" Playwright test automation framework from scratch. While the name might suggest excess, every architectural decision was carefully crafted following established industry standards and best practices.

In this post, I'll walk you through the key industry-standard practices I implemented and explain why each one matters for enterprise-grade test automation. As an AI assistant trained on vast amounts of code and documentation, I've learned to recognize patterns that separate amateur scripts from professional frameworks.

March 1, 2026

One new LinkedIn advertising banner to go! Thank you Claude AI!

Programming Projects



Sure is getting dusty in this ten year old blog. I do like the clean, if a bit dated, format, what, with the Matrix references and all. I wanted to do a bit of a change.

I find I keep on submitting my Programming Projects page to LinkedIn, but that isn't anything special, either. All it says is the title: Programming Projects... so I started chatting with my co-worker, Claude AI. 

"Hey, Claude! When I share in LinkedIn the URL https://www.tjmaher.com/p/programming-projects.html it just says "Programming Projects". What can I embed to advertise the page? I use Blogger on my blog".

February 18, 2026

Investigating AI: Playwright-Test-Planner and Playwright-Test-Generator

Testing Out Three New Playwright AI Tools:

The other day, I heard about three new Playwright AI tools that came out in October 2025: 

Playwright / Test Agents: "Playwright comes with three Playwright Test Agents out of the box: 🎭 planner, 🎭 generator and 🎭 healer.

"These agents can be used independently, sequentially, or as the chained calls in the agentic loop. Using them sequentially will produce test coverage for your product.

"🎭 planner explores the app and produces a Markdown test plan
"🎭 generator transforms the Markdown plan into the Playwright Test files
"🎭 healer executes the test suite and automatically repairs failing tests"

... So of course, I had to check it out! How well did they do? 

I found it fascinating that Playwright-test-planner could write a detailed test plan, one you could review and edit. And it was amazing that Playwright-test-generator could explore a website and find locators, and organize tests all on its own. 

The problem is that it did make incorrect assumptions when finding locators for common elements such as a "heading". When it logged into a login page, it thought the build in Playwright "heading" would have been enough to find the "Secure Area". Except the heading type was in an "h2" tag, so I had to tweak it a bit.

All in all, it did well, getting me 80% there. If you want your automated test framework to store login credentials, or string messages in a separate data object, or store locators in private variables in page objects, you need to explicitly have prompts stating such. 

February 12, 2026

AI: Good as a Research Assistant. Bad for Creating GitHub Action Workflows

I've been organizing head-too-head match-ups of various flavors of GitHub Copilot and Cursor, to keep from being bored sending resumes out into the void.  

In the past I have used AI: Code-completion at MassMutual, code review at SELF, and vibe-coding apps for fun during Christmas break. 

The most powerful use I've found with AI? Research Assistant:
  • "Here is a list of toolsets. Describe them. Be brief". 
  • "What are the release dates of these toolsets?" 
  • "Use corporate tech blogs as primary sources".
  • "Cite your sources. Provide links". 

February 11, 2026

New Project: Cursor creates a Playwright + C-Sharp test framework

It's a head-to-head matchup! Cursor AI versus VS Code + GitHub CoPilot battling to create automated test frameworks using MS Playwright + C#. Who creates the best tests? The best GitHub Actions Workflow? The best README docs? And can it be created only using prompts?

In this corner, GitHub CoPilot, with the GitHub project: Login-C-Sharp.

In the other, Cursor AI, with the GitHub project: Cursor-creates-playwright-c-sharp

Let the battle begin!

Happy Testing!

-T.J. Maher
Software Engineer in Test

BlueSky | YouTubeLinkedIn | Articles

February 9, 2026

New project: Creating an automated test framework in Playwright + C# using GitHub Copilot

When I learned that a company I was interviewing was thinking of pairing Playwright with C#, a computer language I have never worked with before, for an automated test framework for their web application, I was inspired.

The Test


Given a website, such as https://the-internet.herokuapp.com/login, can GitHub Copilot examine the website, and create, through only prompting an automated test framework using C#, NUnit, and Playwright? What if we are using the free version of GPT-4.1?

Presenting a work in progress! 
Want to see what prompts were used for this site? The last section of the README file contains a summary of prompts used to create this project and its documentation, along with the actions Copilot executed. 

Surprisingly, only very few minor manual tweaks of the documentation and code below were needed, such as weird formatting issues in YAML files, and new text in this README placed incorrectly.

WARNING!


Chat-GPT 4.1 has a cutoff date of two years ago. When creating a workflow, GitHub Copilot did not realize that it was using a deprecated version of actions/upload-artifact (v3) causing the workflow to fail. Caveat emptor!

The Results!


So, how did GitHub Copilot + Chat GPT do creating an automation framework? I would say it did so good that it was hideously frustrating when it messed up the simple things.

It's like an eager-to-please junior dev who doesn't completely know the material and doesn't know it isn't reading the latest documentation.

Why would it not know it was implementing out-of-date libraries when creating the GitHub Actions Workflow? It was so sure it had everything correct until I copied-and-pasted the error I received from the GitHub Actions log files and fed the error back to it.

Why does it not read actual documentation? Why does it skip carefully enumerated steps? And why does it always profusely apologize to me while doing the same mistake over and over again?

I feel that it got me 80% there, but it was super frustrating needing to drag it bodily across the finish line.


Happy Testing!

-T.J. Maher
Software Engineer in Test

BlueSky | YouTubeLinkedIn | Articles

February 6, 2026

New Features of Detox Demo: Security Scanning + Android Support + Cross-Platform Builds!

Remember that tiny little two-screen React Native app I created back in December 2025? The one that just had a Login Page and a Secure Area? Well, I may have gone a little overboard adding features to it again.

What started as a simple React Native Login Page demo for my AutomationGuild talk in April 2026 has become... way, way, way too much.

What's new in Detox Demo?

📚 Tools and Technologies Galore!

The project now uses: React Native, Yarn, Detox, Detox CLI, Allure Reports, Snyk, GitHub Actions, GitHub Workflows, GitHub Pages, Metro bundler, CocoaPods, Android Gradle configuration, iPhone simulators and Android emulators, and includes troubleshooting guides for both macOS and Windows.

All open-source. All documented. All completely unnecessary for what is essentially a Login button and a Logout button.

🔐 Snyk Security Scanning

Because even a demo app that has hardcoded credentials (yes, tomsmith and SuperSecretPassword! are right there in plain text in credentials.ts) deserves security scanning!

I've added a new security.yml GitHub Actions workflow that:

  • Scans package.json and yarn.lock for vulnerable npm packages
  • Runs Static Application Security Testing (SAST) on the source code
  • Uploads results to GitHub Code Scanning so they appear in the repository's Security tab

It runs on every push to main, every pull request, and you can kick it off manually. 

Snyk is free for public repositories. If it's free, it's for me, I'll take three. 

🤖 Android Support

The app now runs on Android! I've added:

Run locally on Windows 11 or macOS:

yarn start          # Start Metro in one terminal
yarn detox:android  # Build and test in another

All 5 tests pass:

  • ✅ Secure Area Flow: 2 tests
  • ✅ Login Flow: 3 tests

🪟 Windows 11 Local Development

Since I'm developing on a Windows 11 machine these days, I asked GitHub CoPilot to generate comprehensive Setup for Windows 11 Local Development guide covering:

  • Android SDK installation
  • AVD creation
  • Environment variable setup
  • Troubleshooting common issues

Plus a matching Setup for macOS Local Development guide for MacBook users.

🧹 GitHub Copilot Code Review Fixes

I now run GitHub Copilot's code review feature on the codebase. All the source files created by GitHub Copilot now have a "Created by GitHub Copilot" comment at the top, because credit where credit is due!

And thank you, GitHub Copilot for the rough draft of this post, for copying my stream-of-consciousness writing style, and the following suggestion: 

What's the most over-engineered demo project YOU'VE ever built? Leave some notes in the comments below! 👇


Happy Testing!

-T.J. Maher
Software Engineer in Test

BlueSky | YouTubeLinkedIn | Articles

February 4, 2026

Creating a GitHub Actions Workflow for Android Detox Testing with GitHub CoPilot? What Could Go Wrong?

Last month, I shared my experience using GitHub Copilot to create a React Native app from scratch to be used in my DetoxDemo project in my article, First Time Using GitHub CoPilot to Create a ReactNative LoginPage app. What Could Go Wrong?

This time, I used GitHub Copilot (Claude Opus 4.5) to create a GitHub Actions CI/CD workflow for running Detox end-to-end tests on Android. While GitHub CoPilot is incredibly powerful, it still required significant human guidance to get the workflow passing.

Detox Demo: https://github.com/tjmaher/detox-demo

I had a working GitHub Actions Workflow with ios-regression.yml and asked Copilot to create an Android version that matched. Despite this instruction, I had to repeatedly ask Copilot to compare against the iOS workflow to create the Android workflow, android-regression.yml.

The result? 14 commits, 17 hours, and a lot of lessons learned. Here's the timeline of what went wrong, and what finally worked:


February 3, 2026

The Facebook Ecosystem: React, React Native, Metro, and Yarn

Whenever attempting to construct a new automation framework from scratch, it can be difficult figuring out which automated testing toolsets should be used. This is why, before I do anything, I research the new tools and technologies used to create the app I will be testing, hoping to see if there are any industry standards already out there. I’ve paired Angular with Protractor, Ruby with Watir and Capybara. What should I pair with a React Native mobile app? Appium, like I did with the Stop & Shop mobile apps? Or is there something else?
Before building an automated testing framework, I had to do some research on the toolsets in the Facebook ecosystem that SELF’s mobile app used: React, React Native, Metro, and Yarn.

GitHub:

January 30, 2026

Hands on Automated Testing with Playwright is the start of a wonderful conversation with the Playwright community!


Butch Mayhew is a Playwright Ambassador, dedicated to helping others, and it shows! I fully recommend this book -- and Butch's many LinkedIn Learning Playwright courses -- for those attempting to understand Playwright. 

The real beauty of the book is that it feels like only the start of a continuing conversation: 
  • Sample code is included: Just like Butch's courses, it provides a GitHub repo chock-full of code examples where Butch and Faraz walks through the examples chapter by chapter so the reader can see implemented the concepts that they both explain. 
  • Reference links is included: Need to do a deep dive on a topic? The authors have included links to the primary sources, such as Faraz Kelhini's article, Understanding Shadow Dom. (2019)
  • QR codes that connect to the Playwright community: Want to connect with the Playwright community at large? See a Playwright community calendar? Scan the included QR codes in the books.

It's no problem if you have never used Playwright before. Readers are walked through installing the toolsets, writing & running their first tests, setting up VS Code, and how to configure Playwright settings. 

The book also walks the reader through chapters on AI-Powered Test Generation using GitHub CoPilot and the Playwright Model Context Protocol (MCP), generating tests with Playwright's Codegen feature. 

Thank you so much for the advance copy, Butch! 

Happy Testing!

-T.J. Maher
Software Engineer in Test

BlueSky | YouTubeLinkedIn | Articles
GitHub repo

January 23, 2026

#OpenToWork: Looking for My Next Test Automation Adventure!

Hey everyone! I'm looking for my next adventure in test automation.

After an incredible but way too short run at SELF ID, building mobile test frameworks for our React Native app, I'm ready to bring my expertise to a new team that values quality, automation, and collaboration.

What I bring to the table:

With a decade of experience as an automation developer, I don't just write tests. Embedded with a development team, I learn about the wants and needs of the stakeholders - the developers, the designers, the business analysts, the business itself - and construct a test automation framework, two week sprint by two week sprint, that truly fits their needs. [ See my Programming Projects ]

The quicker the automation framework is stood up, the quicker I can get to the truly fun stuff: Making sure the brand-new untested features fresh off the developer's local machine meets not just the spec, wireframes, requirements, and design, but also to make sure it matches those undocumented expectations that were discussed but may have not been carefully documented... something that AI will never be able to do.

My most recent project? DetoxDemo (https://github.com/tjmaher/detox-demo) - a complete mobile automation framework showcasing:
  • Mobile test automation with Detox + TypeScript for React Native iOS apps
  • Page Object architecture that keeps tests clean and maintainable
  • Allure Reports integration with visual test results published via CI/CD
  • GitHub Actions workflows with configurable test execution options
On top of my extensive software testing experience, the last ten years has been focused on test automation. I've built automation frameworks from scratch at SELF Id and ThreatStack. I’ve created automated development courses for Test Automation University. I’ve written extensively about testing (check out my blog "Adventures in Automation"), and organized the Ministry of Testing - Boston meetup for years.

What I'm looking for:

Software Engineer in Test or SDET roles where I can design automation strategies, sharing my testing worldview with developers, and build frameworks that the entire team can use to check their work before merging into main. Remote work is preferred, but I am open to hybrid opportunities in the Boston area or Southeastern Massachusetts.

My toolbox includes: Detox, some Playwright, Selenium WebDriver, Ruby/Capybara, Java, TypeScript/JavaScript, React Native, CI/CD pipelines, and Allure Reports. But more importantly - I know how to research new tools, validate stakeholder needs, and implement solutions that fit your tech stack.

If you know of opportunities, I'd love to connect. Drop me a message or comment below. I'm always happy to chat about testing, automation, or that one flaky test that's driving you crazy.


I will be speaking at Joe Colantonio's TestGuild in April 2026. See you then!

#OpenToWork #SDET #TestAutomation #SoftwareEngineering #QualityEngineering


Happy Testing!

-T.J. Maher
Software Engineer in Test

BlueSky | YouTubeLinkedIn | Articles

AI wants to take over QA? Let it!

Someone on LinkedIn posted: "The smartest engineering leaders I know have been divesting from manual QA for years now and I think that bet is going to pay off big in today's world.

"If your development process still relies heavily on manual QA and your engineers are now using AI-assisted coding tools, you've created a new bottleneck".

My response? Let it! 

I am all in favor of outsourcing the "boring stuff" to automated tests or AI. Who really wants to check for the umpteenth time that the same page in the web app has the correct working functionality on Chrome, Firefox, MS Edge, Mac Safari, and all the various screen sizes. BORING!

Now, it takes a real software tester to make sure the brand-new untested features fresh off the developer's local machine meets not just the spec, wireframes, requirements, and design, but also to make sure it matches those undocumented expectations that were discussed but may have not been carefully documented. Or that the user experiences matches how the designer really wanted the web app to operate. Or that the user experience doesn't change too much when you operate the web app in the wild.

That all is fun part of the job ... realizing during testing that the business requirement or the design were actually unclear, and that you as a tester found a unique edge case.

Let AI do the mindless drudgery. Just as long as I can still focus on the fun stuff! 

Happy Testing!

-T.J. Maher
Software Engineer in Test

BlueSky | YouTubeLinkedIn | Articles

January 22, 2026

DetoxDemo: Now with more GitHub Action Workflow CI/CD Options!

Have you ever known that you probably should have gone to bed hours ago, but you were doing something so fun, you didn't want to stop? I am like that with my toy React Native application, DetoxDemo, which I created as part of my presentation to the AutomationGuild in April 2026.
Late last night, after pouring over Wix's Detox Docs for Artifacts, I decided I wanted to implement that in my GitHub Actions CI/ CD Workflow. 

Want to kick off a job to run all the Login tests in the CI/ CD platform using the GitHub Actions workflow? With the DetoxDemo GitHub:
  • Go to Actions -> View all Workflows
  • Under the Actions column to the left, select Build & Test iOS
  • Select the [Run workflow] button to see all the choices I set up in the ios-regression.yml configuration file under the on: workflow_dispatch -> inputs
  • Say you were a developer that wanted to test out their JIRA-123 branch code before merging, under "Use workflow from" they could choose branch JIRA-123 here instead of running against the main branch.
  • Which test suite would you like to run? Login? SecureArea? Default is "all".
  • Which iPhone 16 would you like to run the tests on? Regular iPhone 16, Pro, or Pro Max? Or maybe an iPad Mini, Air, or Pro?
  • What log level? Select any range from the very verbose "trace", to throwing alerts only if things are "fatal". Default is "info".
  • What level of artifacts do you want to capture for logs, screenshots, or videos? All, just failing, or none?
  • Do you want to run performance testing with Detox Instruments? We have that option! Still looking how the Wix Incubator's Detox Instruments works with CI/CD.
  • Or you can just scroll down to the bottom and select [Run Workflow] and kick off the default values set up in ios-regression.yml
  • A new "Build & Test iOS" run will be created. Feel free to click into the run to see it run through the build -> test -> publish-allure-reports -> cleanup stages where you can see all Homebrew, RubyGems, Cocoapods, Node.js, and Applesimutils are configured and run.
  • If you click into the "build" stage, you can see it work through tasks such as "Set up job", "Checkout repository", "Setup Homebrew", "Setup Ruby", "Cache Homebrew and RubyGems", etc. It takes 30 minutes for a Detox-embedded build to be generated.

January 20, 2026

New Features of Detox Demo: CI/CD + Logging + Reports, oh my!

To prepare for the talk I'll be giving to the TestGuild in a few months, since I can't share actual source code of the SELF Mobile app or the automation source code I've written on-the-job, I created a toy project, Detox Demo at https://github.com/tjmaher/detox-demo, a React Native app tested with Wix's Detox + TypeScript. 

It's got reports using Detox's Allure Adapter

It's got GitHub Pages integration at https://tjmaher.github.io/detox-demo/ios/

It's got logs you can examine! 

It's got CI / CD with GitHub Action workflows, which you can kick off manually by branch, by cron job, or by each time you push code into main! 

And it's got documentation up the wazoo in the README file, since I just don't know how to be brief.

And it's all open-source, so you can examine the source code to see how things were set up. 

DetoxDemo is a working React Native demo app that gives examples of:

January 8, 2026

My LinkedIn Year in Review - AI Style head to head matchup between Coauthor.Studio and Claude.ai.

Thank you, Vernon Richards for referencing Rewind.coauthor.studio ... I love the cute LinkedIn Rewind graphic it produced! I think it was worth the 99 cents.

The AI generated post it produced. though, it just didn't sound like me. Too long. Not chatty or informal enough. The phrasing was off as if instead of bullet points about my year it was trying to unfold a grand epic story that just wasn't there. Then, I then asked Claude.ai to edit the post it so it copied my writing style from the Media section of this blog ... and it was scary how similar to me it sounded!

I'll copy-and-paste the CoAuthor.studio and Claude.ai and put then in the post so people can compare the language.

Hey, a software tester's gotta test!

January 4, 2026

First Time Using GitHub CoPilot to Create a ReactNative LoginPage app. What Could Go Wrong?

Do you want to practice mobile test automation development but need a React Mobile app to test against? I have one for you: DetoxDemo, an open-source app with a Login screen, built with ReactNative + TypeScript + Mobile automation written in Detox.

The automated tests I coded myself, but the app is all GitHub CoPilot. This article is about how CoPilot stumbled, fell flat on its face, stumbled, fell again, took a breather, but eventually, after many failed attempts, limped across the finish line, creating exactly the React Native app I had been looking for.
 
Ten years ago, back when I was a newbie automation developer, I discovered a test site created by Dave Haefner: The-Internet, a website where newbie automation developers could practice their craft. Dave Haefner, the author of the Elemental Selenium newsletter and the Selenium Guidebook, two resources that really helped me out early in my career, created the site to help the software testing community.

To practice what I was learning on-the-job at my first automation development position putting together Selenium WebDriver + Java automation framework, I created, testing against that site, a toy project, Testing The-Internet and started blogging about it. I gave imaginary readers code walkthroughs how one could write a framework to test The-Internet’s Login Page. The act of being forced to explain what I am doing in various programming projects and why to imaginary readers has helped me in many parts of my career, whether it is playing around with REST Assured, setting up an Appium framework, or creating an automation framework with Ruby + Capybara.

Ten years later, to practice what I am learning at SELF ID, Inc. putting together an automation framework for their React Native mobile application using Wix’s Detox + TypeScript, I wanted to put together another toy project. Call it DetoxDemo. The problem was that, although I knew what the automation part would look like, I didn’t know of a React Native mobile application to test against. Wishing there was a React Native app like Dave Haefner’s The-Internet, I had a crazy idea:

Why not try to vibe-code a React Native mobile app, creating one with GitHub CoPilot, that emulates his The-Internet Login page?

Sure, there were some minor hurdles, the first being that I don’t know how to “vibe-code”. I’ve been using GitHub CoPilot for a year at two different workplaces, but nothing to this extent.

The second hurdle is that I am not a software developer. With React Native applications, I have been a manual and an automated tester. I just don’t know React Native development.

Creating an entire app using a toolset I am unfamiliar with in a language I don’t understand? What could go wrong?