Billy Rhoades

About Me

2023: I'm available for hire!
Looking for opportunities, especially early-stage, that align with my personal values.

I'm a software generalist that thrives in ambiguity. I've been fortunate to have roles that consistently reinforce a core belief: software engineering is ultimately a people business. I lean toward growth-minded organizations that put an emphasis on their people. My professional mission is to add business value, foster team communication, provide technical insight, and ultimately enable the business to reach great outcomes.

If I were asked to “tell me about yourself” in an interview, I would begin with my hometown. I grew up in a small town of 161, Blue Eye, Missouri and it heavily influenced how I see education and learning. I attended the same, small school for 13 years and graduated in its largest-ever class of 76 students.

With a small school, I lacked opportunity for a formal introduction into computer science. In 8th grade, I was really into RuneScape but became bored with actually playing it. I joined an online community that wrote bots to play the game for them where I learned my first programming language, Pascal.

In High School, I became co-owner of Knights of Reason, a gaming community centered around a game Tremulous. Over the next 4 years, I learned much of my management fundamentals and people skills from structuring, discipling, and leading a group of 40 diverse individuals from around the globe. I built complex tools in PHP / Bash which assisted in this: KoRPS and KoRMS, which enabled democratic voting of members into our group.

Projects

httpot

Rust
HTTP
Honeypot

A small HTTP honeypot, developed as an excuse to write a homegrown HTTP/1.1 server. Supports generating infinite directory listings from a seed as well as looking like a vulnerable PHP server.

dlux

Rust
Linux
Hardware
DDC/CI

dlux (pronounced like "deluxe") is a tiny hardware brightness control daemon that automatically sets hardware display brightness based on the time of day. Unlike f.lux and Redshift, it saves power by physically reducing the light output by your monitor based on configuration.

Grader

Docker
Python
Automation

Grader uses Docker and Python to easily grade many assignments in an encapsulated and safe manner. The overall grading process is configurable; in general, it starts by creating a Docker image for a class or an assignment. The image can be given a payload, a protected grading script, which has a grading hooks. When ran, grader creates an individual Docker container for each student’s assignment and then runs a payload hook in that container. The payload returns a JSON response with stdin, stdout, and additional response information depending on the image ran.

Markovirc "Marko"

Ruby
Machine Learning
Natural Language Processing
Postgres

Marko is an IRC bot in Ruby that uses Markov Chains to generate text which appears to be human written. It gathers its source text from any channel it sits in, leading to humerous messages or drivel. Markovirc drew deep inspiration from another IRC bot, SeeBorg. Core logic from Marko has been separated into a gem here.

Selenium Wrapper

Python
Selenium
Load Testing
Curses

Selenium Wrapper is a Python wrapper around the Selenium web testing framework. Selenium Wrapper was created as part of my co-op with Monsanto to assist my team in load testing websites where WebLOAD was not properly recording all data. This project wraps many headless PhantomJS instances to run a recorded and converted script to load test a website. The instances of Selenium Wrapper can then be configured to report upstream to Splunk, which then aggregates and reports data. More details here.

KoRx

C
Quake
Game Development

KoRx was a mod of Tremulous, which in turn was a mod of ioquake3. Tremulous was a game in which humans fight against aliens in a FPS-style, but with a RTS twist. With the help of 3 team members, I was the project manager and head programmer for the project. Initially KoRx started as a mod to fix some bugs and things that bothered me, as can be seen hereand then it slowly transformed into a recognizable and unique game type. Around 2010, along with the demise of Tremulous, KoRx ceased development.

Experience

Senior Software Engineer - Tech Lead

ngrok
May 2023 - August 2023
October 2020 - April 2022

I was employee number 9 at ngrok. With Go and Rust, I developed microservices which ran on Kubernetes clusters globally. My networking and Linux knowledge expanded significantly through debugging and troubleshooting operational incidents against ngrok's network edge. Throughout, I interviewed over a hundred candidates, onboarded a director of engineering, served as the only onboarding mentor for years, refined interview process, and created high quality technical artifacts for the company. I was fortunate to have the opportunity to rework core fundamentals in ngrok's platform over the years.

  • Redesigned and tested core ngrok functionality written in Redis Lua to a Rust module
  • Designed and implemented custom module loading system for loading and interfacing with a Redis Rust module from Go deployments
  • Prototyped, implemented, and migrated a mission critical, fragile, on-cluster Redis deployment to a custom Redis Sentinel system which fits within Kubernetes' API and can be deployed without downtime
  • Upgraded a year+ old on-premises distribution for ngrok's largest client, working closely with them throughout
  • Interviewed more than 125 candidates: roughly 50/50 between IC and mangement roles
  • Referred 10 engineers from my network with 5 hired (for a time it was 30% of engineers at ngrok)
  • Diagnosed and improved performance of Postgres, reworking serializable transactions and tuning the database of a billion+ row delete-heavy database
  • Worked with new on-call engineers to diagnose Postgres replication (via wal2json) erroneously TOASTing values in the WAL

Engineering Manager - Team Network Edge

ngrok
April 2022 - May 2023

I managed a team of 7 great engineers in building out and maintaining ngrok's network edge. All the while onboarding our first 3 enginering managers, passing the tech lead torch, acting as PM and TAM, managing upwards, and creating clarity in a new ngrok era.

  • Led process creation: SDLC, next generation per-team oncall, postmortems, and engineering onboarding process
  • Technical account manager and primary point of contact for ngrok's largest and only on-prem client
  • Wrapped and launched the largest ngrok project yet, Global Network, which spanned over a year of development time
  • Reduced deploy times for pgreplica, ngrok's in-house Postgres replication system, to bring deploy times from 5 hours down to 1.5 hours

Software Engineer

ngrok
October 2019 - October 2020
  • Architected and developed SSO OAuth integration for endpoint authentication that enforces user-specified constraints
  • Designed and implemented sweeping changes to existing tunnel middleware system, enabling continuous updates of previously static endpoints based on controlplane changes
  • Designed technical interviews used by the company for the next 4 years
  • Developed webhook verification middleware to easily enforce webhook authz with ngrok
  • Greatly improved CI coverage by running integration tests against a per-job Kubernetes cluster with production-like ngrok deployment

Team Lead | Senior Software Engineer

Cerner Corporation - HealtheIntent - Consumer
September 2018 - October 2019
  • Managed and onboarded a team of 7 excusively new engineers in fixing defects and enhancing Patient Portal
  • Triaged, prioritized, and handled client escalations for a product with 1,000+ clients while filtering and investigating incoming defects
  • Designed, proposed, and led implementation of a mechanism to passively enforce uniqueness on a large, high volume Oracle DB table totaling over 2 billion rows
  • Streamlined release processes: combined 7 redundant workplans signed more than twice a month by multiple people into 2 workplans; reduced time spent creating artifacts every release from 2 hours to 15 minutes
  • Prototyped, estimated, and proposed a Python 2.7 to 3.4, Django 1.7 to 2.0 conversion of 5+ year old Django monolith
  • Prototyped and proposed a Dockerized Patient Portal

Associate Senior Software Engineer

Cerner Corporation - HealtheIntent - Consumer
June 2016 - September 2018
  • Developed and maintained Patient Portal, a Django web portal for patient self-service
  • Designed and developed pageletized (iframe-embeddable) versions of existing pages in Patient Portal
  • Created and executed Gatling tests for Consumer Portal, a client-configurable and extensible website framework
  • Converted Clipboards from Django templates to React; Clipboards is a set of configurable online forms that can be filled out prior to visiting a doctor's office
  • Deployed a containerized Patient Portal to EC2 using Spinnaker, Packer, and Chef
  • Led team in using redux-form across multiple products to reduce time spent handling common form functionality
  • Managed an intern that built a commonly used utility and returned full time
  • Wrote documentation for Django unit testing best practices that cover performance, reusability, and antipatterns
  • Mentored 12 people in DevAcademy, Cerner's multi-month Software Engineer onboarding program where mentors act as both mentors and quasimanagers

Grader

Missouri S&T – CS5201 / CS328
January 2016 – May 2016
  • Graded homework assignments for Object Oriented Numerical Modeling
  • Served as sole point of contact for all programming questions
  • Held regular office hours to answer student questions
  • Lectured on CRTP / static polymorphism, virtual memory management, and C++11/C++14 features

Lab Assistant

Missouri S&T – CS1570 / CS53
August 2015 – December 2015
  • Assisted students with completing programming assignments

Grader

Missouri S&T – CS1570 / CS53
August 2015 – December 2015
  • Graded programming assignments for the Intro to C++ course

Software Development Consultant

batee.com
May 2015 - July 2015

Developed a proprietary program in C for testing Corvette instrument panels. The program manually handled a display with features such as menu navigation, test feedback, and clean state transition. This program ran on a PIC16F1789 with 28 KB of memory, 2 KB of RAM, a 160Ă—128 display, and 4 buttons.

Student Lead

Missouri S&T - IT - Desktop Infrastructure
December 2014 - November 2015
  • Delegated and assigned work to students
  • Trained incoming and senior students
  • Set up and interviewed new student candidates
  • Served as a point of contact for DI
  • Created new policy which puts all new packages and code on Git
  • Managed campus SCCM site as a primary administrator

Service Performance and Reliability Co-op

Monsanto - IT - Global Infrastructure
June 2014 - December 2014
  • Developed Selenium Wrapper for performance testing internal sites
  • Collaborated with a hackathon team to make a web-based idea board
  • Created a dashing-based dashboard to monitor SalesForce and AWS cloud status

Desktop Engineer

Missouri S&T - IT - Desktop Infrastructure
May 2013 - June 2014
  • Packaged and maintained Perl applications
  • Used Microsoft SCCM for software and OS deployments to over 4,000 machines
  • Created custom Windows 7 builds for campus hardware
  • Maintained license servers for academic applications

Student Lead / Mentor

Missouri S&T - IT - Campus Tech Support
Feburary 2013 - May 2013
  • Coordinated and conducted meetings for more than 20 CTS students
  • Made and maintained procedural reference material
  • Trained, supervised, and coordinated time off for service desk student workers
  • Kept and recorded CTS student schedules across all teams

Student Support Analyst

Missouri S&T - IT - Help Desk
Feburary 2011 - May 2013
  • Responsible for coordinating and scheduling appointments with customers
  • Called on to assist professors as a first contact
  • Tasked with assisting staff and faculty remotely and in person

Education

Missouri University of Science and Technology

Computer Science B.S.