Nael Shiab
@naelshiab.bsky.social
5.9K followers 370 following 170 posts
Senior data producer, CBC/Radio-Canada. Behind https://github.com/nshiab/simple-data-analysis and https://code-like-a-journalist.com/. More on https://naelshiab.com/.
Posts Media Videos Starter Packs
Pinned
Exciting news! 🎉 I’m pressing pause on my work at CBC News for the next three months to focus on a passion project: www.code-like-a-journalist.com.

It’s a free, open-source online course designed to teach data analysis and visualization using TypeScript. 🚀

Stay tuned!
Code Like a Journalist
A free online data analysis and data visualization course using TypeScript by computational journalist Nael Shiab.
www.code-like-a-journalist.com
Thanks for the mention in your newsletter, @observablehq.com!
Happy to see @nodejs.org! But it would be wonderful to add @deno.land as well! 🦆
Recoding parts of my TypeScript libraries using generics and function overloads. It's beautiful. 🥹
We have just updated our international trade tracker with the latest numbers from July. See all imports and exports broken down by country, province, and product!

Link below!
My most popular interactive @observablehq.com notebook, Math for Journalists, just got a fresh update! 🧑‍🎓

👉 Sample size and confidence: I explain how sample sizes work, like in a survey.
👉 Tests for statistical significance: I break down what "statistically significant" means.

Link in comments! 👇
What an amazing dataset!
New project is live! We're now tracking all products coming in and out of Canada 🇨🇦. See how international trade is rapidly shifting, with breakdowns by country, province, and product 🚗🥦🛢️.

Link in the comments! 👇
Amazing work by @maxxen.bsky.social and the @duckdb.org team. I've been using the spatial extension for a while now for my geospatial analyses, and it's wonderful to see it getting better and faster.

duckdb.org/2025/08/08/s...
Spatial Joins in DuckDB
DuckDB v1.3.0 significantly improved the scalability of geospatial joins with a dedicated SPATIAL_JOIN operator.
duckdb.org
Will you be the 300th person to fall in love with this amazing library? 😏
I asked Gemini-CLI to fix mistakes and add examples to the documentation of the open-source library journalism. It updated 58 files and did a pretty good job in half an hour. I used the free tier, but the @simonwillison.net LLM pricing calculator estimated the cost at $6 USD! Very impressed. 😶
Last week, we published our interactive project on climate matches. I published my detailed methodology on how we wrangled the data. Here's the link, with a shout-out to @freakonometrics.bsky.social who helped me with the statistical approach! 🧑‍🏫

👇
newsinteractives.cbc.ca/features/202...
Coded in Svelte! Maps done with Observable plot!
New project! I've always felt climate projections were a bit too abstract. To make them more concrete, I identified North American cities that already experience the projected temperature and precipitation of Canadian cities. And the result is... 😳

Link in the comments! 👇

#dataviz #climate
Over 100 heat records could be broken today in Ontario and Quebec. 🫠
So nice of you! Feel free to ping me if you are stuck on anything! :)
Thank you @datawrapper.de for mentioning our Climate Dashboard! 🤩
Terrible air quality in Alberta and Saskatchewan right now. 😷
No, just a problem with it right now. Working on a fix. 😢