I’ve been in the computer industry since 1991, initially as a localization engineer before I moved into QA. During the years I’ve been a tester, I’ve been mostly a Quality Assurance Engineer (or variations on that title, such as Quality Assurance Analyst or Software Test Engineer). More recently, I’ve been an SDET.
platforms
My career has included work on Windows, Mac, and Linux machines. In the realm of Windows, I have worked with practically every release of the operating system, up to and including Windows 11. I have been a Mac user since the days of Snow Leopard, and have done testing on that platform for over ten years as well.
Linux-wise, I’m most familiar with Debian as that’s what we run on our household Linux servers. Professionally as well as personally, I’ve also used Ubuntu in multiple iterations.
I have manual test experience on both iOS and Android devices, and automated test experience on iOS.
automation and testing tools
My experience with automation includes Python, Java, and Swift.
In Python, I’ve worked with BeautifulSoup and Selenium, doing mostly front-end web testing, but with some middle-tier stuff as well, mostly to verify that particular services returned things that agreed with what displayed on the web pages tested. I have mostly used nosetests as my test runner for Python, but am teaching myself pytest to get caught up with that.
In Java, I have predominantly done service testing, i.e., REST APIs.
Tools I have used to do automation include, most recently, Eclipse and IntelliJ. In Eclipse, I used Pydev to do Python. In IntelliJ, I’ve used both TestNG and Maven to run test suites.
For Swift, I’ve worked with XCUITest in Xcode. On the last contract I worked (2019-2023), I wrote a significant part of the automation framework we used to test our app flow.
I am familiar with Jenkins for running CI/CD build jobs, both manual and via cron. I’ve set up Jenkins installs on my own dev boxes, as well as used it in a continuous delivery context for managing builds going to staging environments.
I’m also familiar with using Gitlab for CI/CD, and in general am comfortable using Git.
other tools
I have experience using Docker, and in particular, using it to set up images for doing Selenium testing.
I have experience testing tools built on a Vagrant platform, in conjunction with Virtualbox and Node. While I do not yet have experience actually building a Vagrant VM, I am comfortable with running Vagrant and Node shell commands in order to bring up a VM for testing.
I’m very familiar with using Postman to manually verify API behaviors.
I have used both TestRail and qTest to manage test case suites.
And I’m long familiar with other core tools used by tech companies, including Jira, Slack, Webex, Zoom, and of course the Microsoft Office suite.
coding languages
- Used most often and most recently: Swift, Java, Python
- Used in professional contexts in the past: C++, Javascript
- Used in personal projects: PHP, Javascript, C#, Perl
My most recent scripting language is Swift, utilized on my last contract for about four years. We used Xcode and XCUITest, and I learned Swift from scratch on that position, going on to write a significant portion of the overall automation framework we used to test our app flows.
Prior to that, my test experience with Java was to write two small BVT suites for testing endpoints on internally developed services, and analyzing the JSON payloads that those endpoints provided. I’ve used that background in my own personal project work on my Github, to show examples of the kinds of automation work I know how to do. This came to about a year’s worth of Java experience in a professional context, plus another year or so of developing my own test projects.
(And I’d like to note for the record that my GitHub was established before AI and LLMs ever became a thing. I do write my own code.)
My Python experience, which amounts to about five years of testing, involved using BeautifulSoup and Selenium to test the front end UI of the Big Fish Games website. As with Java, I have since utilized that knowledge in my Github testing projects.
Aside from one short three-month contract, I do not have much professional experience working with Javascript. But I am not entirely unfamiliar with it, and have played with it on my own. (Specifically, before I started maintaining my personal site in WordPress, I had a hand-coded site where I had a Javascript-driven menu that changed text on a blurb on hover events.)
I am comfortable enough with PHP that I can read it, and delve into existing source code for WordPress plugins and themes. I’ve applied fixes to WordPress plugins, and have generated child themes when I haven’t been entirely happy with what a theme can do for me.
I do not yet have any professional experience using C#, but have studied it on my own time. I do have test projects for it on my Github, similar to the ones I’ve built in Python and Java.
C++ goes way back in my professional history; I have not used it recently. But I’ve used it in professional contexts before, and could refresh my memory about it if required.
spoken languages
While I do not necessarily call myself fluent in any non-English language, I’ve worked with enough localized products at this point that I’m comfortable testing in any language that involves Roman characters. In particular, since I have studied a lot of French and to a lesser degree German and Spanish, I can sometimes catch grammatical errors in those two languages. This has proven helpful when I’ve needed to work with localization specialists on previous jobs.
wordpress
My WordPress experience comes from years of hosting several WordPress blogs on murkworks.net, the tiny ISP my wife Dara Korra’ti and I run. We host several small community neighborhood blogs, one for the Lexington Fantasy Association (a sci-fi fandom group in Kentucky), my wife’s personal site, and my own site here.
linux
As is necessary for self-hosted WordPress sites, we have the usual LAMP stack. This has given me plenty of opportunity to get familiar with the Linux command line, how to run Apache, how to deal with a MySQL database, and how to deal with PHP. I also manage the mailing lists hosted on our servers, which has given me experience working with Mailman.
other skills
I write very thorough documentation, which lets me leverage my writing skills. On my 2019-2023 contract, I wrote up a walkthrough of our app flow that was regularly used as a teaching resource for newer team members.
I have strong skills in organizing test efforts among multiple testers, including when a team is split between US and India personnel.
I’m practiced at communicating with devs to understand not only root causes for any bugs I might discover, but also to understand the overall functionality I’m testing.
And I’m experienced at functioning as the primary voice of QA in a scrum meeting, including delivering estimates on how long a testing effort needs to take, giving reports on how testing is going, etc. Similarly, I have frequently served as a triage contact to assist other teams assigned to testing the same app flow I’m responsible for.
looking for work
As of this writing (Spring 2024), I’m looking for remote SDET work, either FTE or contract. I invite interested parties to reach out to me on LinkedIn or Mastodon.
And if you’re interested in seeing the kinds of test automation I know how to write, check out my Github.