Software engineer with 4 years of professional IT experience with focuses on software development, technical support, leading QA teams, and developing scalable cloud services. A native of the Pacific Northwest, Joe enjoys hiking, strong coffee, and finding remote locations where his email can't keep up.

Skills

Test Automation

Mentored others
  • Selenium WebDriver
  • Nightwatch.js
  • Robot Framework
  • JMeter
  • Page Objects
  • BDD
  • TDD

Frontend Development

Used professionally
  • HTML 5
  • JavaScript
  • jQuery
  • CSS

Backend Development

Used professionally
  • Go
  • Ruby
  • Python
  • PHP
  • REST APIs

Web Development

Used privately
  • Rails
  • React
  • Angular 2
  • Vue.js
  • Foundation 6

Web Development

Learning
  • ES6
  • Gatsby
  • Flexbox
  • CSS Grid

Databases

Used professionally
  • MySQL
  • MariaDB
  • Redis

Cloud Providers

Used professionally
  • AWS
  • Google Cloud Platform
  • Scaleway

DevOps

Used privately
  • Docker
  • Ansible
  • Chef
  • Vagrant
  • Packer

Work Experience (6)

Test Engineer
Customer.io
April 2017 - Current
https://customer.io/

Authored automated blackbox tests for the Customer.io SaaS application using a mix of Python and Go. Built and maintained test services to support automated tests of Customer.io's product. Specialized in testing SMTP services as well as backend REST APIs. Participated in Guru-style support, dedicating time on an as-needed basis to the Technical Support team on tickets.

  • Introduced a blackbox test framework to complement existing unit tests.

  • Built multiple microservices using Go to assist in testing, namely an SMTP blackhole and webhook collector to log API metrics.

Technical Support Engineer
Customer.io
October 2016 - April 2017
https://customer.io/

Decided to pursue a change of pace from the corporate medium-large scale businesses I'd previously worked for and joined a small startup with less than 25 employees as their second Technical Support Engineer. In addition to supporting customers, this role involved writing scripts using Python, Ruby, and Go programming languages. Also went beyond the support role by pairing with backend engineers to improve a Go CLI tool to interface with the Customer.io backend and run debug operations.

  • Learned the Go programming language and shipped enhancements to internal CLI tools written in Go.

  • Collaborated regularily with Product teams to advocate customer feature requests and pain points as product enhancements.

  • Rewrote external REST API documentation and improved the styling to include clearer code examples.

QA Automation Lead
Dealer Spike
May 2016 - October 2016
http://www.dealerspike.com/

Joined company to establish dedicated QA department to help resolve production bottlenecks due to rapid growth. Helped lead the core backend development team in a transition to agile delivery processes and improved communication with the remote offshore QA team. Quickly learned and adapted to a Microsoft server infrastructure and developing with the .NET framework having previously worked primarily with Linux and PHP. Mentored junior developers on learning to use Git version control software and assisted in improving the overall software development process by introducing TDD, continuous delivery, and frequent code reviews.

  • Unified QA strategy across all product development teams.

  • Built Angular 2 internal QA dashboard for controlling Selenium Grid Docker cluster and reporting test suite status.

QA Automation Lead
Xpressbet
August 2015 - May 2016
http://www.xpressbet.com/

Managed the company’s on-site QA team as well as remote QA staff to ensure all application changes were fully tested and moved into production within project deadlines. Maintained consistent communication with CTO to plan overall QA strategy as well as expanding and improving QA processes. Acted as QA stakeholder within major IT projects. Developed custom QA tools and software as well as leading team on day-to-day test plan execution and enhancement. Supervisory experience including interviewing and hiring staff, conducting yearly performance evaluations, and mentoring new and existing staff to achieve full potential.

  • Managed a 5-person QA team with both onsite and remote employees.

  • Mentored and grew team of non-technical manual tests into coding savvy automation engineers.

  • Led large scale QA test initiative to deploy and validate secondary data center for disaster recovery.

QA Automation Engineer
Xpressbet
November 2014 - August 2015
http://www.xpressbet.com/

Primarily responsible for implementing an automation suite utilizing Selenium WebDriver and Robot Framework to complement company’s existing manual testing effort and further enhance software delivery pipeline. Established a performance budget and baseline to measure optimization throughout company’s IT infrastructure. Participated in bi-weekly software builds with development teams ensuring new features were moved into production with minimal impact to customer experience. Worked closely with SysAdmin and Network Engineering teams to maintain quality in the performance of the entire IT infrastructure.

  • Implmented organization's first automated testing effort.

  • Built QA specific tools and web applications to simplify and enhance testing process.

NOC Administrator
Xpressbet
July 2013 - November 2014
http://www.xpressbet.com/

Managed a mix of open source and proprietary monitoring systems to ensure maximum uptime of all company servers and infrastructure. Acted as the communication hub of company's IT department and as the first responder to significant events. Administrative duties in regards to Asterisk phone system and computer systems access control. Acted as onsite desktop support to company's QA, Customer Service, and IT departments. Participated in QA testing of internal and external software as well as authoring new test plans. Supervisory experience includes scheduling for the department, providing mentoring and feedback to team, screening candidates and conducting interviews.

  • Rewrote department training procedure and guides to reduce new hire confusion/time in training.

  • Assumed responsibility for department scheduling as well as hiring new staff when manager abruptly left company.

Publications

15 August 2015
  • Docker
  • Test Automation
  • Shell Tools

I write short actionable blog posts centered on technology I've been using and problems I've recently solved. I started this as a way to give back for all the times I struggled with a problem and found the answer in an informative blog post by someone else in the tech community. Occasionally I'll author editorial content as well.

Languages

English

Native Speaker

Interests

Whisky

  • Lagavulin
  • Laphroaig
  • Glenlivet
  • Glenfiddich

Whiskey

  • Blanton's
  • Maker's Mark