Bayley Green Gaillard

Bayley Green Gaillard

Web Developer and DevOps Engineer

Contact Me

About Me

I am a highly motivated professional with experience in both SQA and web development. I'm a very organized person, good at cutting through red tape and clutter; I'm good at organizing both code and data, coming up with sensible architectures and finding hidden meaning in data. I'm a renaissance woman at heart, always learning new things. I always strive to become better: more efficient, more experienced, and more knowledgeable.

Latest Projects


SockBot: A forum bot by SockDrawer

Open Source

I am one of the founding members of SockDrawer, an open source organization that makes node.js applications for entertainment purposes. Our flagship product, SockBot, is intended to integrate with the notoriously unstable forum software Discourse; we developed a plugin architecture to make it easy to write modules that could sit on top of SockBot Core. As a QA professional, my main contribution to SockBot 1.0 was a series of tests that would help ease the transition to the 2.0 codebase (updated to use ES6), as well as considerable amounts of documentation. Recently, I have taken the lead on a Mafia plugin that integrates with sqlite to persist data.

SockBot Mafia: A plugin to play Mafia using Sockbot

Open Source

One of the forums that makes use of SockBot enjoys a game called Mafia. The game is rather complex, and the Game Masters were having trouble keeping track of votes, days, and lists of players. I captured all this complex business logic and created a GM-assistant module called SockMafia. The bot has become an indispensible part of the forum's games, and new feature requests come in from customers who would like to run more and more complex games all the time. Later, I created a secondary add-on called AutoGM which runs simple games entirely unattended for practice between larger, more complex games run by human GMs.

BusFactor.js

Open Source

One of the first solo projects I have undertaken during my time in SockDrawer, BusFactor is a proof-of-concept application designed to help mitigate risk of knowledge loss in an organization. It calculates the "Bus factor" of a particular repository, defined as "the number of people who would have to be hit by a bus in order for this product to be unmaintainable". To do so, it integrates with version control systems (such as git or subversion) to determine the author of every line of a file in the repository, calculating the "owner" of that file as the person with the most lines authored. It then repeats the process for every file, ending up with a list in descending order of contributors to the project. This project stretched my growing skills in node.js as well as teaching me several quirks to various version control systems and how to operate their command lines. I transferred this knowledge of subversion to my job at Dealer Tire, where it was helpful when writing scripts to automate small pieces of routine tasks.

LogiosBot: An IRC Bot written in Perl

Open Source

Logios is one of my long-running playground projects; it is the project I created to teach myself perl and POE, and it is still useful to my gaming group for dice rolling and card drawing. The architecture supports a plugin system, and I have wrestled with the various build systems availible for the perl ecosystem in an effort to make installation more user-friendly, though this task has eluded me at present.

Google Picture Updater: A proof-of-concept application

Open Source

GPU is a quick demo I wrote to learn how to interface with both the Google API and the Facebook API. It updates the photo stored with your Google contact using their latest Facebook image so that you can have up-to-date images in your phone's address book. Not very useful, but fun to write :)

Other Projects

Paperfinder

PaperFinder was developed as a dissertation for the University of Salford. It was programmed entirely in Java. Major features include:

  • interfacing with search engines that catalog academic papers
  • processing raw text data into a more easily manipulated form
  • clustering data using half a dozen clustering algorithms
  • presenting results in the form of charts and graphs

Arduino scripts Open Source

In the course of doing some costume work, I had the opportunity to program an arduino to control several servos on the costume.

View on GitHub

Experience

Co-founder - Sock Drawer (2015 - Present)

Jack of all trades in this open-source organization. Hats include:

  • Subject matter expert in all things testing. Along with my co-founder Accalia, the subject matter expert in all things development, we created many pieces of software that attained 100% unit testing out of the box. I have run usability studies, integration tests, security scans, and suggested multiple architecture revisions based on testability and maintainability.
  • Build Engineer. I introduced many build and deployment tools to ensure that we are constantly getting feedback from production to improve our craft
  • Project Manager: On the StoryBB project, I am acting as a project manager as well as a backend developer. I have introduced kanban boards, collected status from the distributed team, and charted the milestones for this Agile project.
  • Backend developer: I have worked in Node.Js using TDD principles to engineer everything from an integration with Slack to the REST API for our new forum project. In particular, I am proud of being the tech lead on the SockMafia module, which is the single most complex Sockbot plugin to date.

Software Developer (Platform Ops) - Dealer Tire (Apr 2017 - Present)

Responsible for maintaining and developing tools to help developers become more productive and operations keep our systems running. Highlights include:

  • Maintenance of JIRA, Bamboo, and individual tools and scripts to help our Continuous Integration pipelines run smoothly and efficiently. Much of this was done using Ansible, to ensure repeatability and tracability of changes to the servers.
  • Administration of out in-house Docker implementation using Rancher, including host configuration and maintenance, overall architecture, and host monitoring. This includes the development of several control panels that use the Rancher APIs to perform common maintenance tasks, such as upgrading an application or taking down a host; these tools were written primarily in Node.JS and designed for Docker.
  • Containerizing several of our existing applications and building new deployment pipelines for them.
  • Evaluating, selecting, and implementing monitoring systems for our new container environment. Creating monitoring dashboards for developers and operations, implementing systems such as FusionReactor and AppDynamics, and providing training on the systems we use were all included in this work, as well as integrating systems together into a centralized Datadog instance.
  • Responding to developer needs and handling one-off inquiries. This includes maintenance of developer VMs, optimizing CI plans, teaching use of git and Bitbucket, and providing advice on Node.JS programming.

QA Analyst - Dealer Tire (2014 - 2017)

Responsible for developing and implementing QA systems and best practices across our IT organization. Highlights include:

  • Development of the company's first CI system, which we used to massively simplify the build and release process. This includes writing custom code to integrate test runners with legacy systems that were not architected for testing, as well as release scripts to deploy onto our various testing and production environments
  • Administration of our JIRA system, which we use to track work products and bugs found during pre-production testing
  • Weekly "teatime" sessions in which various topics in the quality domain are discussed on a technical level with the development and middleware teams
  • Creating functional automation suites in Java for multiple products, integrated with the Sauce Labs service for cross-browser testing
  • Advising on test case writing and manual testing best practices, including bringing code coverage metrics to version 6 of the flagship b2b application
  • Creating performance tests that can be used during the build process to ensure that performance does not degrade over time

Web Developer (Contractor) - Dealer Tire (2013 - 2014)

Worked on various web development projects, including a revised CMS application and several backend service upgrades.

SQA Contractor - Diebold (2011 - 2013)

Worked on a team that automated and tested ATM software and utility software produced by Diebold using IBM Rational framework.

  • Wrote test framework methods using IBM's Rational Functional Tester library, in Java.
  • Worked closely with development to ensure that quality was built in from day one.
  • Desgned, modeled, adn scripted test cases using Critical Logic's DTT and TMX products. These products allow the software to be modeled conceptually, and test cases to be automatically generated from the program model.
  • Trained and mentored interns.

Freelance web development (2005-2007)

Worked part-time with local small businesses to create web sites and custom applications that would showcase the clients' products, including a gallery site for a photographer with a custom slideshow.

Recent Github Activity