Episode 30— Unexpected learnings from building vaccine-ontario.ca with fellow volunteers

Billy Lo
4 min readFeb 10, 2022


It all started with discussions with the amazing folks at VaccineHunters.ca on Discord. Back in May 2021, it was the early days of the availability of mRNA vaccines. Everyone was looking forward to having some form of protection, but the booking systems were all over the places and information were very fragmented. The end result? A real-life Hunger Games to secure vaccine appointments.

Software engineers like us cannot help treat patients or vaccinate people, but we could help remove systemic friction for the public. So, we made vaccine-gta.ca; then later vaccine-ontario.ca.

Then our volunteer group continued to fill in the gaps for the public:

  • Grassroots for importing vaccine receipts into Apple Wallet and Google Pay wallet for easy validation
  • Broadcast2patients to help family doctors make large number of voice calls to invite their patients to be vaccinated
  • ReportMyTest.ca to help the public make better decisions (remote vs in-person learning) and monitor absence rate at schools

Here are my Top 5 learnings.

#1: Walk while I work Sitting all day is indeed the new smoking. It slowly eats away our well being. But in a pandemic & work from home settings, it’s very hard to avoid. Inspired by my fellow volunteer, Ryan, I took the DIY path, picked up a basic walking treadmill and monitor mount from Amazon (~CAD600 investment), started to get my butt off my chair and walk slowly while I work.

Yes, I do have to pause when I do work that requires fine mouse movement. But the walking eliminated back strains from sitting all day.

Bonus: I can walk while watching Netflix too; further reducing the amount of sitting time.

#2: API-enabled web services are still not as commonplace as we would like it to be. We ended up writing dozens of custom web scrapers (using Puppeteer) to bring data together. The architecture is far from ideal, just enough for us to offer stable and useful features for Ontarians.

Looking at this from a different angle, the real lesson is this: A traditional web site without API access will miss out on unexpected growth opportunities. Entrepreneurs always gravitate towards simple paths (i.e. API-enabled options.)

3. Cloud DBMSes like Firestore are awesome for getting up-and-running quickly, but it can also rack up a lot of cloud usage fees as demand surges.

Case in point: Our site usage tripled within the 1st week and tripled again the week after. As we added support to more regional clinics, the double-whammy effect hit us hard. (a) The user base we serve expanded; (b) the number of rows shown per page also grew, burning a hole in our volunteer team’s pocket.

To solve it, we improvised by replacing the main DB calls (which returned read-only, public info) with pre-generated JSON files for the web UI, saving us the effort mount a fund-raising campaign and continue to focus on helping people.

4. Don’t expect corporate/governmental processes to be magically simplified during a crisis. It doesn’t change much.

5. In highly dynamic situations (in our case, tons of people trying to book from a very limited pool of vaccine appointments), notification features are very helpful.

a) users love the ability to specify what they want; and you (the system) delivers a notification when slots open up.

b) you, the system provider, are also happy because you do not have to handle repeated page reloads from lots of people (saves you cloud cost)

Many volunteers have contributed to these efforts. I got to meet the early members of the group for bubble tea. It’s a privilege to work with folks who truly care about the community.

Me, Evert, Anujan, Jason and Ryan