Max Halford
Recent content in Blog on Max Halford
- Posts
- 127 from 3 Jun 2015 to 8 Sep 2026
- Posting
- monthly (15 in the last year)
- Kind
- personal blog
- Feed
- https://maxhalford.github.io/blog/index.xml
2026 14
- Squill: my canvas for writing SQL
- A brief guide to French polling data
- What's next for River (and myself)
- Will agents replace scripts?
- My unvarnished guide to solution engineering
- Resume max halford.pdf
- Autonomous web scraping with Claude Code
- Bio
- Lower your warehouse costs via DuckDB transpilation
- Squill
- Text classification with Python 3.14's zstd module
- Showerthoughts
- Solving Détrak with brute force
- Row level lineage at Carbonfact
2025 7
2024 6
2023 14
- Decomposing funnel metrics
- Efficient ELT refreshes
- Online machine learning on the road @ IDE+A, TH Köln
- Online machine learning on the road @ IDE+A, TH Köln
- Sh*t flows downhill, but not at Carbonfact
- Answering "Why did the KPI change?" using decomposition
- Measuring the carbon footprint of pizzas
- Graph components with DuckDB
- For analytics, don't use dynamic JSON keys
- Metric correctness doesn't matter, consistency does
- Online gradient descent written in SQL
- Using SymPy in Python doctests
- Online active learning in 80 lines of Python
- Are Airbnb guests less energy efficient than their host?
2022 14
- The future of River
- Parsing garment descriptions with GPT-3
- Dynamic on-screen TV keyboards
- NLP at Carbonfact: how would you do it?
- Matrix inverse mini-batch updates
- A rant against dbt ref
- First IRL meetup with the River developers
- Online machine learning with River @ GAIA
- Fuzzy regex matching in Python
- OCR spelling correction is hard
- Comic book panel segmentation
- Online machine learning in practice @ PyData PDX
- Online machine learning in practice @ PyData PDX
- The online machine learning predict/fit switcheroo
2021 20
- Weighted sampling without replacement in pure Python
- Online machine learning in practice @ Applied AI
- Online machine learning in practice @ LVMH
- Online machine learning in practice @ LVMH
- Web scraping, upside down
- One year at Alan
- Manipulating ephemeral data with git
- Manipulating ephemeral data with git
- Dashboards and GROUPING SETS
- Homoglyphs: different characters that look identical
- Automated document processing at Alan
- Text classification by data compression
- Reducing the memory footprint of a scikit-learn text classifier
- An overview of dataset time travel
- The challenges of online machine learning in production @ Itaú Unibanco
- The challenges of online machine learning in production @ Itaú Unibanco
- Quelle est l’empreinte écologique du Big Data? @ Toulouse Tech
- Organising a Kaggle InClass competition with a fairness metric
- Converting Amazon Textract tables to pandas DataFrames
- What my PhD was about
2020 18
- Computing cross-correlations in SQL
- Unsupervised text classification with word embeddings
- Focal loss implementation for LightGBM
- A few intermediate pandas tricks
- A brief introduction to online machine learning @ Hong Kong Machine Learning Meetup
- A brief introduction to online machine learning @ Hong Kong Machine Learning Meetup
- The correct way to evaluate online machine learning models
- Online machine learning with decision trees @ Toulouse AOC workgroup
- Online machine learning with decision trees @ Toulouse AOC workgroup
- Server-sent events in Flask without extra dependencies
- I got plagiarized and Google didn't help
- Our solution to the IDAO 2020 qualifiers
- Our solution to the IDAO 2020 qualifiers
- Speeding up scikit-learn for single predictions
- Machine learning for streaming data with creme
- Global explanation of machine learning with sensitivity analysis @ MASCOT-NUM
- Global explanation of machine learning with sensitivity analysis @ MASCOT-NUM
- Bayesian linear regression for practitioners
2019 16
- Under-sampling a dataset with desired ratios
- The benefits of online machine learning @ Quantmetry
- The benefits of online machine learning @ Quantmetry
- The benefits of online machine learning @ Element AI
- Finding fuzzy duplicates with pandas
- A smooth approach to putting machine learning into production
- The benefits of online machine learning @ Airbus Bizlab
- Machine learning incrémental: des concepts à la pratique @ Toulouse Data Science Meetup
- Machine learning incrémental: des concepts à la pratique @ Toulouse Data Science Meetup
- Skyline queries in Python
- Online machine learning with creme @ PyData Amsterdam
- Online machine learning with creme @ PyData Amsterdam
- SQL subquery enumeration
- An approach based on Bayesian networks for query selectivity estimation @ DASFAA
- An approach based on Bayesian networks for query selectivity estimation @ DASFAA
- Morellet crosses with JavaScript
2018 3
2017 8
- Unknown pleasures with JavaScript
- Subsampling a training set to match a test set - Part 1
- Docker for data science @ HelloFresh Berlin
- Docker for data science @ HelloFresh Berlin
- Halftoning with Go - Part 2
- Grid paintings à la Mondrian with JavaScript
- A short introduction and conclusion to the OpenBikes 2016 Challenge
- Challenge Big Data @ TSE