Majid Hajiheidari
Majid Hajiheidari is a machine learning engineer at Picnic, where he builds production recommendation systems that help customers discover products and recipes. His interests span recommender systems, efficient data and training pipelines, and the engineering needed to turn machine-learning experiments into reliable production systems.
Outside of work, Majid enjoys exploring programming languages such as Rust and C++, building electronics projects, and experimenting with mathematical and machine learning ideas. He writes about these projects at majid.blog (https://majid.blog/).
Session
Over the past year, we rebuilt our recipe recommender at Picnic. The project was prompted by a new recipe application UI, which changed our recommendation problem from retrieval to ranking. This forced us to rethink our recommendation pipeline by modularising it to allow personalisation in any context across our app, and rethinking our model choice from a fast, retrieval-optimised two-tower model to an expressive Deep & Cross Network (DCN) ranking model. Running these experiments at scale required rethinking the data pipeline, too. We rebuilt our training data pipeline using Polars and Apache Arrow to process tens of millions of interactions efficiently, construct purchase histories with lower memory overhead, and move features into PyTorch with minimal copying. Finally, we built a constrained Autoresearch loop in which coding agents proposed configurations, ran training, evaluated results, and recorded the next hypothesis, all while data splits, metrics, production constraints, and reproducibility controls remained fixed.