This is part 1 of a work-in-progress series that’s a mix of Data-Driven Documents (D3/d3.js) tutorial and reflection on being laid off. I’m using this as a way to cope with job loss and as an excuse to dive much deeper into a JavaScript library that I’ve only ever scratched the surface of, D3. In my (meager) experience, there’s a steep learning curve to being able to use D3, requiring knowledge of more than a few idiosyncratic patterns to be able to get started. Hopefully, through the posts in this series, you’ll be able use my trials and tribulations to hit the ground running and not spend as much time hitting your head against your desk in frustration.

If you’re just here for D3, feel free to go directly to the next post, Data-Driven Disappointment Part 2: Getting set up and getting started. I won’t be offended. 🙃

Meme of the scene from Mean Girls where Regina George (played by Rachel McAdams) calls out to Cady Heron (played by Lindsay Lohan) and says "Get in loser, we're going shopping!", but with a new caption that reads "Get in loser, we're doing layoffs!"

These days in tech, it feels like layoffs are the new pandemic overhiring. I don’t consider Canada Learning Code to be a tech company, but, as a company whose mission is to

[bring] accessible computer science to communities across Canada so everyone can create with technology

I think it would be fair to call it tech-adjacent. The New Year confetti had hardly settled when the email message1 landed in my inbox first thing in the morning on Thursday, January 11, 2024 (a.k.a. Judgment Day):

Effective immediately, your role as Learning Experience Designer for Adult Programs at Canada Learning Code no longer exists. You will be locked out of your company accounts at the end of the work day.

I wasn’t the only one affected by this: across the organisation, short meetings titled “Your role at CLC” were popped into calendars for those of us that were being laid off. These were perfunctory engagements that were followed up with an official termination letter that detailed, among other things, what we should expect in terms of statutory (i.e., legally mandated) compensation as well as what additional severance was being offered– standard layoff stuff, I imagine.

I say “I imagine” because this is the first time that I’ve been laid off from a job. I’ve worked fixed term contracts, where the end date is known from the get go; and I’ve voluntarily left (resigned from) organisations for one reason or another, but this is the first time I’ve been suddenly terminated while in a (supposedly) permanent role. It’s shitty and I think it feels especially shitty when you’re taken by surprise. Unlike when you’re anticipating an end date, when you’re surprised the processing can only start as early as the day of your termination.2

It wouldn’t be fair to say that it took me totally by surprise. As any accomplished calendar snoop or nosy person would know, you can tell when something is afoot. The evidence is there: meetings getting cancelled or moved; company-wide events getting delayed. Still, the scope of such plans can be hard to predict when all you have is the equivalent of digital tea leaves or animal bones. Perhaps it all amounts to nothing–a misreading of the signs; not so much a portent of things to come but a poor interpretation of normal scheduling churn (spoiler: it wasn’t nothing).

I think part of how I deal with upsetting or unsavoury occurrences like this is seeking to understand what happened. I know what happened to me–I was laid off–but what happened organisationally? This is something of an intellectual exercise since no matter the conclusions drawn or the lessons learned I will be no less laid off than at the start, but I will rise to the self-issued challenge, and a challenge it will be: naturally, I will only be able to use publicly available information regardless of whatever inside baseball I may or may not have been privy to (spoiler: none). This will also be (perhaps more importantly) a fine excuse to continue learning about a JavaScript library with which I have only dabbled: Data-Driven Documents (or D3.js).

Carry on my wayward son (or daughter) to the next post in this series, Data-Driven Disappointment Part 2: Getting set up and getting started


  1. This is paraphrased as I (foolishly) did not send myself a copy of the email message. 

  2. I have other thoughts as to why it feels extra shitty to get laid off from a mission-driven organisation (and about mission-driven organisations in general), but those will go somewhere (or nowhere) else so as to not derail this post too much.