My first commit to Sourcetable, an AI spreadsheet, was in November 2022 and my last in July 2026, with 3,300+ in between.

The box at the top was the AI chat, which I put on the workspace home in 2026. Down the right, the app recommended data sources to connect. From September 2025 until I left, I built the Connectors page and the dialog that routed each source to OAuth, a database form or an API key. Another engineer built most of those forms, and others built the backend.
| Year | What |
|---|---|
| 2022 | Shaping the brand, the site and the product in Figma; my first commits, to the marketing site |
| 2023 | My first commits to the app; the AI chat |
| 2024 | The rendering engine behind the marketing site; Tailwind and shadcn/ui in the app |
| 2025 | Trials, credits and billing |
| 2026 | The charting page; the chat on the workspace home |
The chat had to stop the moment you pressed Escape and never send a message twice, even on a slow image upload. On the way from signup to paywall, I fixed a first-click hang in the Google sign-in for connecting a data source and built the snap-scroll survey in front of the wall. Thousands of marketing pages came out of the rendering engine, and I made the charting page faster on phones. I also redrew the Sort dialog and built the app’s crash screen.
Tailwind into a three-year-old app, without a rewrite
In the summer of 2024 the app was three years old and styled with Bulma and hand-written SCSS. I brought in Tailwind and shadcn/ui alongside Bulma, then moved parts of the app over in stages. The chat, login, modals and menus went first, in a 73-file pull request merged that August. Its checklist listed 23 surfaces for a manual regression pass, among them signup, password reset, pivots, joins and the Data Library. Later I unified all the dialogs and tooltips. By the time I left I’d written 70 of the 92 commits to the app’s shared UI components. I added Tailwind to the marketing site in June 2025.
The pitch kept changing
The May 2023 billboard designs in my Figma archive promised to sync live data and automate reports. That September an ad-poster concept put AI last in its tagline, “Spreadsheet. Database. Charts. Automation. AI.”, and by May 2026 the features page I drew led with “The spreadsheet for AI analysis and data science”. In July, my last month, the archive’s Headless concepts pitched a spreadsheet engine for agents. The landing page I built for that pitch was still unmerged when I left.
Three gaps I left open
I never wrote end-to-end tests for the chat’s cancel and upload-race paths, and there’s no activation rate to report for the steps from signup to paywall. The marketing site’s page templates got manual checks across devices and no visual-regression tests. In 2026, at another company, I built a visual-regression system from zero.