What Leo saw at GitLab, 1. The payroll that was typed by hand
In January 2020, adding a new hire to GitLab's US payroll took 28 hand steps between two systems. Leo found it on its first read of the handbook. Three years later the steps were still there.
GitLab runs one of the most open companies in the world. Its handbook, more than 900 pages at the start of 2020, describes how the company works, team by team, in public. We gave Leo the handbook exactly as it stood on 31 December 2019, and nothing later, and asked it to learn how the business runs.
This is one thing it noticed.

GitLab had no part in this
We used GitLab's handbook because it is public and openly licensed (CC BY-SA 4.0). GitLab did not take part, and nothing here is GitLab's view of Leo. Every quote below links back to GitLab's own pages.
The claims, and where to check them
| Claim | Where to check it |
|---|---|
| Adding a US new hire to payroll took 28 numbered steps, retyped from the HR system | GitLab's payroll page, 31 Dec 2019 (the page at that commit) |
| Before every pay date, a benefits change file was rebuilt by hand into two import files, in 26 steps | The same page |
| Both routines were still in the handbook at the start of 2023 | GitLab's payroll page, 31 Dec 2022 (the page at that commit) |
| Leo read the whole 911 page handbook in about 3 hours of reading, for US$113 | Leo's own run log |
The work as it was
GitLab's US payroll ran through ADP. Its people records lived in BambooHR, and its benefits in Lumity. The handbook's payroll page set out, step by step, how the three were kept in line.
To add a new hire, a payroll specialist logged into ADP and worked through 28 numbered steps, starting with "Enter the legal name from Passport or SSN in BambooHR" and carrying on through ethnicity, job details and the rest, each read from one system and typed into another.
Then, five days before every pay date: "Lumity will send a 'Diff' payroll file to Payroll... Payroll Specialist will covert the information into an import file to update all changes in ADP." That meant splitting the file into four tabs, looking up each person's ADP position ID by Social Security number with a VLOOKUP, adding deduction codes, building two CSV files and importing them: 26 steps, every pay period. Before payroll was accepted, salaries and departments were reconciled between ADP and BambooHR, by hand.
The handbook is clear about why this mattered: its target was 100% accurate payroll every check date.
What Leo saw
Leo read the payroll page beside the finance pages and joined them. Its account of the work: "US payroll is kept in step with BambooHR and Lumity by hand." It also noticed, on the side, that the finance and payroll pages gave different instructions for how contractors in the same countries are paid.

The ways forward
Leo laid out two ways the work could go. It ranked neither.

- Redesign: one source for people data. New hires, and later salary and department changes, flow from BambooHR into ADP. The 28 steps go, and so does most of the reconciliation before each payroll.
- Redesign: the benefits file feeds itself. A script or a direct feed turns Lumity's file into the two ADP imports, so nobody splits tabs or looks up IDs before every pay date.
Neither is a verdict. A payroll team has reasons a handbook does not show: an audit trail somebody trusts, a vendor contract, the cost of building and maintaining a feed against a few hours a month. Leo's job is to put the choice on the table. The people who run payroll make it.
What happened next
- 2021. The page still described both routines in full.
- 2022. The same work, with new wording: the benefits step now said "Payroll team will convert the information into an import file".
- 2023. Text identical to 2022. New hires still retyped into ADP, the Lumity file still split and rebuilt, and "salary validation between ADP and BambooHR" still on the checklist.
Across more than 80 changes to the payroll page in four years, none replaced the routine.
What this does not show
The handbook says what GitLab wrote down, not what it did on the day. The team may have had tools the page never mentions, and it had reasons for its choices that the record cannot show. Nothing here says payroll was done badly: by the handbook's own target, it was done carefully. What it shows is a clear, repeated piece of work that the systems already held enough to do, sitting in plain sight for three years, and that Leo found it on its first read.
Leo learns how a business really runs by reading what its people write and talking with them, then lays out the ways the work could go, side by side, and keeps the choice with the people who make it.