Deconstructing marketplace unit economics, average order value, and lifetime value using the public Olist dataset.
Four ways to compute the share of a total within each group in PySpark — from the naive collect-to-driver pattern to a dangerously wrong window function and a broadcast cross-join.
Load Olist tables with PySpark, explore schemas and relationships, and run data quality checks before analysis begins.
How to download public datasets from Kaggle from code. Setup credentials and a reproducible path for keeping large files out of repos. Read environment variables, and use the Kaggle API from Python and R.
How I rebuilt my personal website using Quarto - project structure, blog setup, and deployment to GitHub Pages.
A comparison of subtree vs. submodule methods for deploying Hugo websites to GitHub User Pages.
Understanding publisher rules for sharing article versions on personal sites.
A discussion on the implications of using Type III sums of squares in ANOVA and the importance of choosing the correct parametrization.