Getting started
22nd February 2021
Originally posted to my internal blog at VaccinateCA
Here we go then... I’ve signed up to work on this project full-time, four days a week!
Several years into my time at Eventbrite I started an internal engineering blog, and it quickly proved itself to be really valuable. The great thing about an internal blog is that it gives you somewhere to post status updates on existing projects, thoughts on what you’re going to work on next and even ad-hoc documentation on things that you learn along the way.
I don’t know if I’ll post here every day, and I don’t intend to spend more than fifteen minutes on each post—but I think it’s a good habit to establish early on.
What I’m going to be doing
My initial goal, as directed by Jesse, is to help move VaccinateCA beyond Airtable as quickly as possible.
Airtable is an amazing product, so this is not a trivial undertaking. Every startup founder needs to watch out that they don’t end up accidentally competing against an Excel spreadsheet, because the spreadsheet will probably win. Airtable is already like a spreadsheet but better.
But... if we’re going to scale this thing to 10x its current size we need to gain complete ownership of our data.
My plan for this first week is to spin up a full fidelity Django + PostgreSQL prototype of an alternative stack, to help decide as quickly as possible if that’s the right path to go. A lesson I’ve learned from my career is that prototypes inevitable end up in production, so I build them with that in mind—the code I write will be tested, documented and ready to become not-a-prototype with as little additional effort as possible.
Why Django and PostgreSQL? Because they are boring technology, and that’s a huge bonus for this kind of project.
I’m also going to be talking to the Airtable power users within the organization to make sure I understand what works, what doesn’t and what the weird use-cases are for the existing stack that I might not have figured out.
What I’ve done
I’ve started building a few things agaist the existing public API, mainly because I think by building and this is a good way to help get familiar with the high level of what already exists.
- https://vaccinateca.datasette.io/ is a public (initially private) Datasette instance providing an interactive interface against the public API data. Datasette is my principle open source project at the moment—you can learn more about that at https://datasette.io/—and you can see how this particular Datasette works by visiting its repo at https://github.com/simonw/vaccinate-ca-datasette
- https://github.com/CAVaccineInventory/vaccinate-ca-history is a private repo that’s doing something weird and, I hope, valuable. It uses GitHub Actions to pull the latest copy of the public API data every ten minutes and commits any changes back to its own repository. It uses csv-diff (actually a new feature I just added to csv-diff) to try to generate a human-readable commit message. The key feature here becomes the commit history, which shows at a finely grained level what got changed and when.
- I started this internal blog
What I need to do next
- Short term: talk to people! Meet people who I’ll be working with, understand what’s been built so far and where everything is, use those conversations to help me decide what I should work on next.
Onboarding
So far I’m on:
- Slack
- Discord
- Airtable
- Auth0
- The GitHub organization
- Google account
- Honeycomb (via the new Google account)
More recent articles
- Project: Civic Band - scraping and searching PDF meeting minutes from hundreds of municipalities - 16th November 2024
- Qwen2.5-Coder-32B is an LLM that can code well that runs on my Mac - 12th November 2024
- Visualizing local election results with Datasette, Observable and MapLibre GL - 9th November 2024