top of page

Staff QA Engineer @ Medium

In 2021, Medium was a 10 year old "start up" with seemingly infinite tech debt and no QA. As the QA Lead at Projector, when Medium acquired Projector, Jeff was named the Staff QA Engineer. His duties included building the QA function from 0, creating a release process, documenting all of the procedures, standards, and formats for bug writing, triage, refinement, and releases across web and native mobile apps.

Duties Performed

Leadership

Medium was in dire need of QA when Jeff arrived. The backlog was massive, the bugs were endless, and there were no standards to speak of. Jeff lead QA through major changes at Medium, while adapting to the new structures effortlessly. Medium went from Agile to Kanban, and from durable teams(pods) to a dynamic team structure.

Testing

At first, Jeff started by creating a manual regression suite for each of Medium's supported platforms, with the goal of stopping P0 and P1 regressions. After the manual regressions were built, and he was leading testing of new features, Jeff implemented a stable and performant suite of automation smoke tests using Selenium and Appium through WebDriverIO. Rollbacks were reduced to < 1% of releases, a massive change in stats.

Automation

When the Selenium suite was developed, Medium only had Jeff as a QA resource, after the team grew under Jeff's leadership, he transferred the suite from Selenium to Playwright, in order to more easily onboard QA Engineers into the automation. For mobile, Maestro was introduced as a way to automate large amounts of features in very little time. Jeff integrated the automation suites into the build process through GitHub Actions.

Tools Used

Medium started out with JIRA for test/ticket tracking, but later adopted Linear. Jeffrey was the administrator for both. After the move to Linear, it was obvious that JIRA had better tracking and reporting by way of charts, so Jeff used the Linear API to connect Google Sheets in order to generate graphs that could quickly tell the story of quality.

​

For automation, Jeff started with Selenium, having had the most experience in it. After the QA org grew, he adopted Playwright in order to make the onboarding of new engineers into automation significantly easier without sacrificing speed or quality.

​

Medium, like everywhere Jeff has worked, was not automation-focused. Instead, the goal was to test every feature of the app completely. For every new feature, dozens to hundreds of new tests were written and executed. Jeff filed over 500 issues / year while at Medium while simultaneously mentoring QA Engineers and building automation.

​

Jeffrey utilized DataDog to understand flows and identify potential issues before they were reported by users. 

bottom of page