Andrew J. Reitz San Francisco, CA (408) 480-4327 andrew.reitz@gmail.com http://redefine.dyndns.org/~andyr Objective: ========== Experienced software engineer with 20 years of expertise in UNIX systems, networking, and programming, seeking to improve the developer productivity for companies that leverage technology. Skills: ======= * UNIX systems including Linux, macOS, FreeBSD, and Solaris * Programming in Ruby, Python, shell, Perl, Java, Go, and C * Data networking including TCP/IP, Ethernet, VLAN, Routing, Firewall, NAT, and DHCP * Tools including Jenkins, Review Board, puppet, git, Confluence, Jira, GitHub Enterprise, AWS, and Pants Experience: =========== Reddit Inc. San Francisco, CA 8/2023 - Present ------------------------------------------------------------------------------- During my tenure on the Release Infrastructure team at Reddit, I played a key role in stabilizing and improving the GitHub Enterprise Server installation. I accomplished this by establishing a staging cluster that mirrors production, developing automation for major version upgrades, and successfully executing three major version upgrades. Prior to these improvements, GitHub upgrades were daunting, often resulting in excessive downtime and significant challenges for the team. Now, upgrades are rigorously tested before rollout, and they are installed efficiently. As a result, Reddit is not only on a supported version of GitHub Enterprise Server but can also leverage the much-desired Merge Queue feature, which I integrated into Reddit’s key frontend repository. This involved reworking aspects of the CI builds to better align with Merge Queue and creating comprehensive end-user and administrator documentation. I also led the rollout of GitHub Copilot, designing a self-serve onboarding flow and crafting internal documentation for users. Additionally, I enhanced transparency and internal communication within the team by pushing to open our Slack channel for company-wide visibility, initiating a devx-notes@ email list for sharing meeting notes with vendors and stakeholders, and consistently posting daily work updates in Slack. The quality and level of my work has culminated in a promotion to Staff Software Engineer. Stripe Inc. San Francisco, CA 1/2016 - 8/2024 ------------------------------------------------------------------------------- In my 7.5 years at Stripe, I served as a senior engineer focused on ensuring Stripe’s engineers could write code with velocity and safety. I started off helping to maintain Stripe’s Continuous Integration (CI) system, developer environment, and source control (SCM) systems. Over time, as the company grew, I focused more on Stripe’s core SCM and Code Review tooling and the integrations between these systems and CI. I joined Stripe as part of an experimental batch of SREs, but my role and body of work were indistinguishable from other software engineers at the company. During my time at Stripe, I helped to maintain and push forward various tools used by engineers internally. I helped the company grow by completing over 450 interviews, writing design documents, managing projects, managing customer expectations, working across teams, mentoring junior engineers (including several interns), and partnering with recruiting on improving hiring practices. In 2022, I focused on building a team around code storage, search, and review. This initiative involved mentoring new members of the team, setting the overall direction, and leading the scoping, design, and implementation of projects. In addition, I owned Stripe’s relationship with GitHub, participating on their customer advisory board, negotiating contracts, and directing Stripe on the best ways to leverage GitHub’s software. For over 6 years, I was primarily responsible for the maintenance, performance, and reliability of the GitHub Enterprise Server at Stripe. I lead the development of Stripe’s first Merge Queue, which enabled engineering velocity to be maintained as Stripe grew. I was heavily involved in developing Stripe’s processes around code storage and code review. As a key stakeholder in Stripe’s code review system, I was able to lead the development of several projects focused on improving code review processes, including the development of a system that could automate reviews when we could statically assert that a proposed change was safe. I also directed the migration of over 600 git repositories from github.com to an internal GitHub Enterprise Server instance. Twitter Inc. San Francisco, CA 7/2011 - 10/2015 ------------------------------------------------------------------------------- Software Engineer, Build Team 4/2012 - 10/2015 ----------------------------- In April of 2012, I joined a newly formed team at Twitter focused on developer productivity. During my time on this team, I performed a variety of duties, ranging from maintaining internal git and Review Board services, maintaining our use of maven in a large scala repository, and helping to maintain Pants (Twitter’s homegrown build tool). Along the way, I worked on projects to convert said scala repository from Maven to Pants, performed critical integration work to upgrade Pants, and worked on getting Twitter into a monorepo, with a true monobuild. I also wrote documentation, developed training courses (that I frequently delivered inside of Twitter), and provided excellent support to our customers. During this time I worked on several side projects, including revamping Twitter's internal people directory which included adding a feature to support employee recognition. Software Engineer, Release team 7/2011 - 4/2012 ------------------------------- As a release engineer at Twitter, my team was responsible for daily deploys of Twitter’s frontend Ruby on Rails application. This role entailed not only performing deploys but also performing light QA, site reliability functions, and on-call support. I also helped maintain several in-house tools (written in everything from Ruby, to Rails, to Java). In addition, I was part of a small team that built out a new test environment and built a complete copy of Twitter from scratch. This effort involved learning how to install and configure every layer of Twitter’s stack, including discovering service dependencies, rewriting config files, and figuring out how to bootstrap the system while including enough data for the test site to be useful. Sugar Publishing Inc. San Francisco, CA 4/2008 - 6/2011 ------------------------------------------------------------------------------- For two years, I was the sole dedicated member of the operations staff at PopSugar Inc. I was in charge of all aspects of the operation of PopSugar’s web properties. This included maintaining two different software stacks (one Java/Tomcat, the other PHP/Lighttpd) in two separate managed facilities. I built and/or maintained the following: alert monitoring, performance monitoring, on-call support, build/release, MySQL administration, backups, and tools for development. Notable projects included: building an environment that passed PCI DSS audit, a full data center migration, and building alert monitoring from scratch. Aggregate Knowledge San Mateo, CA 9/2006 - 4/2008 ------------------------------------------------------------------------------- As a Systems Administrator and Developer I helped to build out Aggregate Knowledge’s web infrastructure, including managing Linux and Solaris machines, performing code releases, building networks, managing in-house IT resources, and automation programming. Notable projects included: building a new co-located facility from scratch, crafting a flexible on-call rotation system, writing custom Nagios plugins, and implementing custom statistics gathering/graphing scripts. EDS Sunnyvale, CA 4/2003 - 8/2006 ------------------------------------------------------------------------------- As a Field Engineer in the Automated Operations business unit at EDS (formerly Loudcloud, Inc.), I provided advanced support and maintenance of a state-of-the-art operations system. In this role I supported various legacy systems, including an automated network device configuration tool that functioned as part of the Opsware system. As a software developer in Production Engineering, I was part of a team that built custom software for EDS’ global operations. This role included writing new functionality in Perl and Java, as well as refactoring legacy Perl code, promoting stability, code reuse, and supportability. I also promoted next-generation communications technologies, including blogs, Wiki and RSS, to promote easier collaboration within the organization. CCSO, University of Illinois Urbana, Illinois 3/2000 - 5/2001 ------------------------------------------------------------------------------- Held the position of research assistant in the Workstation Services Group. Designed and deployed pilot SunRay project (which required network design, system integration, documentation, troubleshooting, and ongoing support). I investigated the feasibility of a unified campus-wide storage system, under the auspices of the Storage Project Working Group. As part of this effort, I researched Samba, clustering, AppleTalk integration, and authentication issues. Ameritech Broadband Lab Hoffman Estates, IL 1995 - 1998 ------------------------------------------------------------------------------- For four consecutive summers I was an intern at Ameritech and worked on testing network devices and protocols such as ATM switches, ATM NICs, ADSL CPE, Redback PPP concentrator, Frame Relay ISDN dial backup, Frame Relay to ATM interworking, PPP over ATM, and Fax/Voice/Video over IP. I provided advanced technical support for Ameritech’s initial ADSL trial, including management of production IP firewalls and direct customer support. In addition, I managed several UNIX systems, including web, DHCP, and SMTP servers. Education: ========== University of Illinois Urbana, Illinois 1999 - 2001 MS in Computer Science Case Western Reserve University Cleveland, Ohio 1995 - 1999 BS in Computer Science Masters Thesis: =============== "The Dynamic Port Reservation Protocol". With advisor Robin Kravets, I designed an UDPv4 protocol to simplify inbound port reservations on NAT gateways, solving the "NAT traversal" problem for applications.