Profile picture of Hutson Betts

Hutson Betts

Husband and father working in the software and systems infrastructure fields. On this profile page you will find links to projects I have worked on, my printed publications, any public talks I’ve given, and guides I adhere to in my work.

My professional passion is to improve the software engineering experience through advocacy, guidance, and the development of automation tooling. Typically this means one of three things: automating away daily toil so developers can focus on tasks that are more enjoyable and better aligned with their skills, deploying infrastructure to provide the appropriate layer of abstraction needed by development teams (IaaS/PaaS/SaaS), and offering my opinion when asked on topics such as engineering best practices, software sustainability, or what it takes to create a happy and productive environment for software development.

Places You Can Follow My Work

=> GitHub

=> Npm

=> PyPI

=> Scuttlebutt

My Projects

dotfiles

Personal shell scripts and development environment configuration files.

=> dotfiles

hyper-expanse.github.io

This website.

=> hyper-expanse.github.io

dayone-to-joplin

Import a Day One JSON export into the Joplin note-taking application with all journal entries and photos.

=> dayone-to-joplin

@hutson/parse-repository-url

Parse repository URLs to extract, SCM platform, domain, user, and project information.

=> @hutson/parse-repository-url

@hutson/semantic-delivery-gitlab

Automatically generate a deliverable, along with a corresponding git tag, for GitLab-hosted source code.

=> @hutson/semantic-delivery-gitlab

@hutson/npm-deploy-git-tag

Deploy a package to an npm-compatible registry using the latest git tag from that package’s repository.

=> @hutson/npm-deploy-git-tag

@hutson/set-npm-auth-token-for-ci

Set authentication token placeholder into .npmrc file for use in automated CI processes.

=> @hutson/set-npm-auth-token-for-ci

@hutson/conventional-changelog-config

Standard conventional-changelog configuration as used by projects maintained by Hutson Betts (@hutson).

=> @hutson/conventional-changelog-config

Projects Where I Contribute

Conventional Commits

Organization devoted to developing a commit message convention for consumption by developer tooling.

=> Conventional Commits

My Publications

Pepper and Carrot - Episodes 1 - 6

A collection consisting of episodes 1 through 6 from the amazing Pepper and Carrot webcomic, assembled here in a comic book style format.

Suitable for all ages, Pepper and Carrot is a story about an orphan witch and her cat living in the magical world of Hereva, a world full of potions, adventure, and strange creatures.

Story, artwork, including cover art, and synopsis on the back cover are all generously provided to the public by the Pepper and Carrot author, David Revoy, under the Creative Commons Attribution 4.0 license.

=> Purchase printed copy of Pepper and Carrot - Episodes 1 - 6

Pepper and Carrot - Episodes 7 - 12

A collection consisting of episodes 7 through 12 from the amazing Pepper and Carrot webcomic, assembled here in a comic book style format.

Suitable for all ages, Pepper and Carrot is a story about an orphan witch and her cat living in the magical world of Hereva, a world full of potions, adventure, and strange creatures.

Story, artwork, including cover art, and synopsis on the back cover are all generously provided to the public by the Pepper and Carrot author, David Revoy, under the Creative Commons Attribution 4.0 license.

=> Purchase printed copy of Pepper and Carrot - Episodes 7 - 12

Pepper and Carrot - Episodes 13 - 18

A collection consisting of episodes 13 through 18 from the amazing Pepper and Carrot webcomic, assembled here in a comic book style format.

Suitable for all ages, Pepper and Carrot is a story about an orphan witch and her cat living in the magical world of Hereva, a world full of potions, adventure, and strange creatures.

Story, artwork, including cover art, and synopsis on the back cover are all generously provided to the public by the Pepper and Carrot author, David Revoy, under the Creative Commons Attribution 4.0 license.

=> Purchase printed copy of Pepper and Carrot - Episodes 13 - 18

Guides I've Written

=> Developer Certificate of Origin

=> Labels

How to Sponsor Me

=> Open Collective

=> Librepay

Employment

FactSet Research Systems

Position: Lead Software Engineer, June, 2012 - Present

September, 2019 - Present

  • Responsible for managing FactSet’s source control, binary artifact, and CI/CD infrastructure.
  • Recruited and trained a geographically-distributed agile engineering team.

January, 2019 - August, 2019

  • Contributed to a Platform as a Service internal product.
  • Developed shared library, and its release process, for sharing components across PaaS portals.

February, 2018 - December, 2018

  • Led Open Source initiative for System Infrastructure department, doubling the number of Open Source projects.
  • Managed infrastructure for automated dependency management; including upgrading and deprecation of packages.
  • Developed release tool prototype capable of on-boarding many languages with automated package release workflows, all while minimizing operational overhead.

October, 2015 - January, 2018

  • Delivered on our company’s need for pre-configured tooling to build client facing web applications, libraries, and NodeJS services.
  • Leveraged best of breed tools, such as GulpJS, Babel, Mocha, Karma, Express, Webpack, Rollup, etc.
  • Reduced response time to changing business requirements for engineers, enabling them to go from new product, to shipped code, by offering project scaffolding tools based on the Yeoman framework.
  • Accelerated tool adoption through extension documentation, training, and regular community engagement.
  • On-boarded over 200 engineers within 2 years; a nearly 60% adoption by the web community within the company.
  • Saw an average of 113 engineers per week leveraging our build tools.
  • Lowered the barrier for cross-team collaboration through process and code standardization efforts.
  • Established a process for quick deployment of tool configuration for consistent use of best practices across software projects; such as TSLint, Babel, and TypeScript.
  • Authored our company’s NodeJS usage policy for production processes, and fulfill role as point person for engaging the NodeJS community, including the Node LTS Working Group.
  • Organized a bi-weekly developer tool roundtable consisting of developers from across the company.

October, 2015 - September, 2016

  • Participated in on-call rotation for git-based GitLab source control instance, artifact repository, and continuous integration and delivery (CI/CD) platform; providing effective, and timely, support for outages and consumer needs.
  • Appointed to the Architecture Review Board; a group tasked with defining company-wide engineering best practices and approving standard technology solutions.

October, 2014 - September, 2015

  • Developed scaffolding tool, using Yeoman framework, to bootstrap new Analytics and Fixed Income NodeJS services.
  • Collaborated with engineers across multiple departments to maintain the build and deployment infrastructure for the company’s web products; which included working with Jenkins and Perforce.
  • Assisted Analytics and Fixed Income software engineers troubleshoot build and deployment issues affecting their web products.
  • Researched emerging web technologies, such as the evolving ECMA-262 standard, and explored approaches to improve the developer experience.

June, 2012 - October, 2014

  • Led retirement of key legacy application through community and product stakeholder engagement.
  • Collaborated on building, from the ground up, one of the first web-based products for the Analytics department using BackboneJS, before migrating to AngularJS in response to our changing requirements and needs.
  • Participated in a critical on-call rotation managing client portfolio data.

Texas A&M University

Position: Graduate Assistant, February, 2010 - June, 2012

  • Provided infrastructure support for the Texas A&M University's Virtual Network Engineering Lab (VNEL).
  • Deployed 25 servers to 3 racks networked using 2 48-port CISCO 2960 switches.
  • Enabled VNEL’s ability to rapidly scale by deploying an OpenNebula private cloud with GlusterFS as the storage backend.
  • Built a virtual network orchestrator with Python, exposing functionality through a REST API.
  • Sustained strong uptime at VNEL through network monitoring and alerting using an in-house deployment of OpenNMS.

Texas Engineering Extension Service

Position: Part-Time Software Engineer, August, 2006 - August, 2009

  • Contributed to the development and maintenance of flight and ground support software for Texas A&M University's AggieSat2 satellite (Which flew on STS-127).
  • Streamlined multidisciplinary team collaboration by deploying collaboration tools, such as Trac and git, onto 4 Linux servers.
  • Gained experience in various engineering fields through cross functional collaboration, system operations, and embedded hardware and software teamwork.
  • Gained experience in management and organizational system processes.
  • Led year long development effort on mission critical ground support software project with a team of 5 undergraduate students following Agile principles facilitated through the Scrum development framework.

Texas A&M University - Galveston

Position: Part-Time Office Assistant, August, 2005 - May, 2006

  • Supported various office functions including receptionist, intra campus mail delivery, organization of student documentation, and student documentation filing.