Andrew Newdigate's CV
- Phone: +27 63 669 3695
- Email: linkedin@newdigate.me
- Location: Cape Town, ZA
- GitHub: andrewnewdigate
Summary
Experienced engineering leader with 20+ years of experience delivering large-scale software projects. Currently focused on leading the engineering effort for GitLab Dedicated, a new isolated SAAS product for Enterprise and Federal customers. As an engineering leader, I believe my job is to help my team build consensus while avoiding groupthink, encourage pragmatism, to facilitate the definition of standards and processes, while avoiding cargo-cult programming, to mediate conflicts, and to foresee productivity blockers and remove them before they become a problem. I believe in establishing a long-term technical vision for a product, shared by the team, and achieved through hundreds of small incremental releases: in other words: Always Be Shipping. I believe the vision should be slowly, but constantly evolving — driven from the experience the team gleans from delivering the product, not from transient trends in the software industry.
Education
University of Cape Town, B.Sc in Computer Science
Jan 1996 – Jan 2000
Experience
Senior Distinguished Engineer, Infrastructure, GitLab -- Remote
Aug 2023 – present
-
Designed end-to-end automation from AWS Account and GCP Project creation through provisioning and configuration, with automated upgrades and day-two maintenance operations
-
Designed for resilience as a geographically distributed product over multiple cloud provider regions
-
Developed a comprehensive SLI/SLO monitoring solution based on the same monitoring used for GitLab.com
-
Built as a multi-cloud solution with a single control-plane shared across GCP and AWS, using Workload Identity Federation to avoid long-lived secret tokens
-
Implemented using Terraform, Ansible, Kubernetes, and Helm Charts, with Jsonnet used extensively for tenant configuration and rendering of configuration
-
Control-plane runs as jobs in Kubernetes clusters running in GKE and EKS, with a customer-facing Rails frontend, Switchboard
Distinguished Engineer, Infrastructure, GitLab -- Cape Town Area, South Africa
May 2019 – Aug 2023
-
Directly helped technical bootstrap of the Scalability and Dedicated teams, and set the technical direction for the Platforms sub-department
-
Drove Pre-IPO preparations to ensure stability of GitLab.com
-
Created labkit and labkit-ruby, resolving the long-running problem around log structure in the application and production, and added tracing capabilities
-
Created Tamland, a way to monitor and predict long-term trends to aid capacity planning
-
Designed and drove the implementation of Service Catalog for GitLab.com services
-
Drove the design of a single metrics catalog utilized by GitLab.com and GitLab Dedicated for greater efficiency between the two SaaS platforms
-
Regular point of contact in engagements with self-managed customers during the rapid growth phase of GitLab.com (2019-2021), including demos and pre-sales discussions for some of the largest customers
Staff Engineer, Infrastructure, GitLab -- Working Remotely from London
June 2018 – May 2019
-
Identified and documented single-points-of-failure, scaling, reliability and performance issues in the GitLab.com fleet
-
Worked with the monitoring, production and application development teams to improve observability of the application and reduce mean-time-to-detection on infrastructure issues
-
Proposed infrastructure changes to GitLab.com to address availability, performance and observability issues
-
Worked with engineering teams to identify and prioritise application changes that would improve availability, scalability and performance of GitLab.com
-
Built a roadmap with stakeholders within the infrastructure group, across engineering, product and finance
-
Documented the existing infrastructure of GitLab.com
-
Communicated about infrastructure and roadmap within the company and externally through blog posts
Interim Director of Infrastructure and Google Cloud Platform Migration Project Lead, GitLab -- Working Remotely from London
Jan 2018 – June 2018
-
Worked with multiple engineering teams across the company to ensure the transition of GitLab.com from Azure cloud to Google Cloud Platform
-
Sourced, hired and managed three infrastructure teams (Production, Gitaly, Database)
-
Measured and improved the happiness and productivity of the team
-
Defined the agile development and continuous delivery process
-
Drove quarterly OKRs (Objectives, Key-Results)
-
Worked across sub-departments within engineering
-
Responsible for the quality, security, availability, reliability and performance of GitLab.com
Git Infrastructure (Gitaly) Lead, GitLab -- Working Remotely from London
Jan 2017 – June 2018
-
Defined the roadmap for Gitaly, tracked and published progress against the roadmap
-
Established and iterated on an agile process for the new team
-
Established quality assurance and testing procedures, rolled out feature flags for gradually ramping Gitaly usage up in the production environment
-
Focused on tracking down performance, scaling and availability issues with the new service
-
Worked with the team to establish an architecture for the product
-
Recruitment for the team
-
As part of GitLab's acquisition of Gitter, also led the effort to open-source the Gitter code-base
Co-founder, CTO, Gitter -- London, United Kingdom
Oct 2012 – Jan 2017
-
Led the technology roadmap of the company
-
Led and implemented the architecture of application software, cloud infrastructure and client applications
-
Led the engineering and devops teams
-
Capacity planning and dealing with anything holding back team productivity (intra-personal conflicts, process problems, technical debt)
-
Built a modern cloud-based app on universal/isomorphic JavaScript using node.js, MongoDB, Redis, ElasticSearch, Neo4j, Marionette, lodash, Backbone, ReactJS, with hybrid applications for desktop, iOS and Android
-
Automated provisioning, deployment and reliability operations using Ansible, Jenkins, monit, Datadog, PagerDuty, Nomad and Consul
-
Only a handful of self-inflicted outages over four years; mitigated each problem to prevent recurrence
-
At last check, platform had over 1.2M registered users and 800K monthly uniques
-
Maintained a hands-on approach: writing and reviewing code, profiling and correcting production performance issues, working alongside the devops engineer to build out the EC2-based infrastructure, and dealing with PagerDuty alerts
Senior Software Engineer, Barclays Wealth -- London, United Kingdom
Oct 2011 – Oct 2012
-
Java + Spring Framework + Spring MVC
-
ExtJS front-end
-
SOAP
Senior Software Engineer, Daiwa Capital Markets Europe Ltd -- City of London, United Kingdom
Feb 2011 – Sept 2011
-
Writing Java code, plus some Scala
-
Ensuring the correct execution of overnight batch processing
-
Integrating new data-sources
-
Collecting requirements from risk analysts in the risk team and ensuring their implementation
-
Built using Java, Scala, Servlets, Apache CXF for REST, Apache Camel for integration, Oracle 11g, MS SQL Server 2008, and Elasticsearch for text indexing
Career Break: Round the World Trip, Time Off For Travel -- South Asia, South East Asia, Australia/NZ, Pacific, South America
Oct 2009 – Jan 2011
Senior Developer, Client Solutions Business, iShares.com | Barclays Global Investors (now BlackRock) -- City of London, London
June 2006 – Oct 2009
-
Java, J2EE, Hibernate
-
Spring Framework
-
Google Web Toolkit (GWT) and ExtGWT
-
Clustered MapReduce processing using Oracle Coherence
-
Member of company-wide technology steering committee
-
Led a company-wide developer forum, organising social events and inviting external and internal speakers on engineering topics
Owner, Datatribe Software Ltd -- London, United Kingdom
Nov 2003 – Aug 2007
-
Implemented using Server-Side JavaScript with Active Server Pages, Microsoft COM+ Transactions, Microsoft Message Queue, Microsoft SMTP server, and Microsoft SQL Server
-
Built specifically for one client, iHotDesk, while retaining ownership of the software
-
Allowed the client to scale from monitoring a few dozen servers to many hundreds of servers, while alerting on more problems than would otherwise be detected
Senior Developer, Barclays Capital -- London, United Kingdom
July 2005 – June 2006
-
J2EE
-
Spring Framework
-
Hibernate
-
Client-side JavaScript
-
AJAX
Principal Consultant, 7irene -- London, United Kingdom
May 2004 – May 2005
- Clients included The General Medical Council (UK), Dixons Store Group, and Moliere
Senior Developer (Contract), GlaxoSmithKline -- Essex, United Kingdom
May 2002 – Dec 2003
-
Delphi development of Microsoft COM, MTS and COM+ components
-
Oracle Database development
-
Integration with a large variety of industrial automation machinery for performing the HTC process
Senior Developer (Contract), Linc Communications -- Cape Town, South Africa
Dec 2000 – Apr 2002
Lead Developer, Tradesuite -- Cape Town, South Africa
Jan 1998 – Jan 2000
Senior Developer - Internet Solutions, Dimension Data -- Cape Town, South Africa
Apr 1998 – Oct 1998
Software Developer, UUNET -- Cape Town, South Africa
Apr 1996 – Mar 1998
-
Perl / mod_perl
-
HTML and JavaScript
-
C
-
mSQL and MySQL
-
Oracle
-
VB6
Projects
labkit and labkit-ruby
- Created libraries that resolved a long-running problem around log structure in the GitLab application and production, and added tracing capabilities.
Tamland
- Tool for monitoring and predicting long-term trends to aid capacity planning for GitLab.com.
Service Catalog
- Designed and drove the implementation of Service Catalog for GitLab.com services.
Metrics Catalog
- Drove the design of a single metrics catalog utilised by both GitLab.com and GitLab Dedicated, allowing for greater efficiency between the two SaaS platforms.
Gitaly
- Led the Git Infrastructure team at GitLab from inception, building the Gitaly Git RPC service to handle thousands of Git operations per second across the GitLab.com fleet.
ServerMetrics
Nov 2003
- Server monitoring tool designed for monitoring offsite servers running behind client firewalls. Built for iHotDesk, allowing the client to scale from monitoring a few dozen servers to many hundreds of servers.