Great read on tackling memory bottlenecks! A complementary tip: when using Polars' lazy API, explicitly .collect() only at necessary stages (like before a .write_parquet()) to let the query optimizer maximize predicate and projection pushdown, minimizing the data in memory at any point.