Programming Projects

To deepen my knowledge in whatever test automation toolset I am learning on-the-job, especially when starting a new position, I always have a few side projects going, dabbling in it during the weekends and off-hours, practicing what I am learning. It's how I hit the ground running when I start a new position. 

More can be found on my GitHub site. To see general blog entries on building automated test frameworks, go to the Table of Contents.

Below are automation frameworks written in TypeScript, Ruby, JavaScript, Java, and Python, using Detox, Capybara, Watir, Appium, Rest Assured, and Selenium WebDriver. 

Claude AI and Cursor AI have also been placed in head-to-head matchups seeing how they set up test frameworks using Playwright + Cypress.   

Featured Projects


DetoxDemo: Testing a React Native mobile app with Detox + TypeScript
January 2026

This demo project became a TestGuild.com talk for the Automation Guild 2026 online conference (See Slides). Based on my work building from scratch a React Native mobile automation framework using Wix's Detox + TypeScript + GitHub Action workflows + Allure Reports at SELF ID. Tested against my first  "vibe coded" React Native application, based on Dave Haefner's test site, The-Internet. 

Introduction to Capybara: A TestAutomationU course
May 2019

Free Test Automation University course based on my training sessions I put together while at Threat Stack, constructing a Capybara + Ruby + GitLab + AWS test automation framework. Course includes visual testing examples using Capybara + Ruby + Headless Chrome + Applitools. 


    Other Projects


    Becoming AI QA
    March 2026

    Could I pivot to being an AI QA? Learn Python, Testing LLMs and Machine Learning? Here, I start investigating, pair-programming with Claude.ai on some Python projects.
    Claude Sonnet: Claude-Cypress-Login
    March 2026

    I'm obsessed with trying to get Claude Sonnet to explain its logic and reasoning every step of the way when it attempts to build an automated test framework. I use Claude, but do not fully trust it. This time, to prepare for a job interview, I spent a day instructing it to build an automated framework using Cypress + TypeScript using only natural language, just to see if it could be done. After, I force it to write a blog post about why it used the tools and technology it did. And provide web links. Links! I always force it to cite its sources. 

    Claude Sonnet Over-Engineered My Playwright Login!
    March 2026

    Does an automation framework for a Playwright Login page need to dive into Martin Fowler's concepts of Dependency Injection, Singleton, TestDouble patterns along with the standard Page Object patterns? Standards set by ISTQB and OWASP? Documentation from the Refactoring Guru, The Gang of Four? Claude Sonnet 4 thinks so!

    Playwright Generate Plans: Playwright + TypeScript:
    February 2026

    Testing out how Playwright-Test-Planner and Playwright-Test-Generator, two plugins for GitHub Copilot, can create a test plan in Markdown, then write an automated test framework in Playwright + TypeScript against it, adding in page objects and reporting just by prompting. 

    Cursor Creates: Playwright + C-Sharp:
    February 2026 

    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 for The-Internet / Login? The best GitHub Actions Workflow? The best README docs? And can it be created only using prompts?

    Login C Sharp
    February 2026

    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? Can it set up a GitHub Actions Workflow and produce detailed documentations once a list of requirements are given? How much steering is needed? And how badly will it go off the rails? 


    The Cheezy Internet: Creating a Ruby + Watir + Cucumber automation framework with Jeff Morgan's Page-Object gem:
    November 2021

    How I practiced using MassMutual's test Ruby + Watir + Cucumber automation toolsets. 

    Are you sure the buses are still listed?
    Data-driven API tests with Ruby + NET::HTTP + ThoughtWorks Gauge


    Basic Capybara-Gauge 
    December 2018

    Based on my work at Threat Stack building a test automation framework for their security application. Threat Stack required it be written in Ruby + Gauge + Gitlab, a toolset I was of yet unfamiliar with. Capybara + Ruby + Headless Chrome + Rubocop.

    Discovering Docker
    Spring & Summer 2018

    First exposure to Amazon AWS, I started studying it in order to build a virtual machine for a test automation framework I was building for Threat Stack. 

    Tinkering with Twitter
    October 2017

    Demo project created for an interview at Twitter. Uses Twitter4J Java library. Thank you, Angie Jones for referring me! 

    While working as a manual tester on a contact at Ahold, the parent company of Stop & Shop supermarkets, I designed a proof-of-concept that I demoed for them, trying to convince them to hire me as an automation developer creating a brand new mobile automation framework. They asked how I was thinking of constructing it, so I showed them these blog posts. 

    Learning Appium Desktop
    April 2017

    While working as a manual tester on a contact at Ahold, the parent company of Stop & Shop supermarkets, I decided I wanted to create a proof-of-concept of a mobile automation framework. They wanted to see what toolsets I could use. These are my research notes. 

    Learning Serenity BDD
    March 2017

    Starting a new QA Contract at Ahold, the parent company of Stop & Shop supermarkets, before showing it to the stakeholders, I investigated on this blog how I wanted to write automated tests for their mobile apps. 

    Are You Sure the Bus Line is Listed? Gathering data using REST APIs and REST Assured:
    February 2017


    Building a Geb + Groovy + Spock project with Yeoman:
    November 2016

    New job at Good Start Genetics? New automation toolsets to learn, using Geb + Groovy + Spock. 


    SDET Prepwork:

    I have shifted from being an automation engineer to being a Software Developer in Test. In order to keep up, I have written a few blogs entries about what I need to learn:


    Playing with Protractor:
    September 2016

    Demo project for a job interview writing a test framework with Protractor + JavaScript + Jasmine, the toolsets at their company.  


    RESTful API Testing with Postman and Newman:
    July 2016

    Fitbit Boston was investigating new ways to write API tests, using Postman, a toolset I was unfamiliar with at the time. Article covers "What is an API?" and gives sample APIs on the web. Also shows


    Configuring Build.Gradle Environments:
    June 2016

    A fun Memorial Day project: Experiment with the new way Fitbit Boston was writing tests, using Gradle + JUnit + Hamcrest instead of Maven + TestNG + JUnit. 


    The Builder Pattern:
    April 2016 - May 2016

    A Senior Developer at Fitbit walked me through a new way to store data, so of course I had to practice using it during my off-hours. 

    RESTful Testing with Stripe and Apache HttpComponents:
    Feb 2016 - March 2016

    Selenium WebDriver + Java + Apache HTTP Components. Experimental proof-of-concept that I demoed to stakeholders to prove to Fitbit Boston that we could add tests to our infrastructure for the Stripe API payment processor. They asked for documentation on what I was planning, so I showed them these blog posts I had just written. 


    Automate Amazon 
    Dec 2015 - Jan 2016

    How to develop a rudimentary framework to create automated tests for Amazon. Selenium WebDriver + Java + TestNG, based on work doing at Fitbit Boston. 

    Testing The-Internet
    June - July 2015

    Selenium WebDriver + Java demonstrating refactoring out common utilities such as logging and error handling, getting page titles, getting URLs, and sending keys, similar to what we were using at Fitbit Boston. Web locators stored in Page Objects. 

    Writing automated tests versus Dave Haeffner's Login page on his test site, The-Internet.