41554 blogs · [ { "id": "01a08775-6b0c-7018-955a-4bf823c9243a", "title": "Introducing confingy", "url": "https://www.ethanrosenthal.com/2026/03/10/confingy/", "published_at": "2026-03-10T00:00:00+00:00" }, { "id": "01a08775-6b0c-7018-955a-4bf823deee5b", "title": "Stop talking about reproducibility", "url": "https://www.ethanrosenthal.com/2026/03/08/reproducibility/", "published_at": "2026-03-08T00:00:00+00:00" }, { "id": "01a08775-6b0c-7018-955a-4bf824a64a22", "title": "Why can't we separate YAML from ML?", "url": "https://www.ethanrosenthal.com/2024/11/19/yaml-ml/", "published_at": "2024-11-19T00:00:00+00:00" }, { "id": "01a08775-6b0c-7018-955a-4bf8258999cc", "title": "Portable Quarto Reports", "url": "https://www.ethanrosenthal.com/2024/10/23/portable-quarto-reports/", "published_at": "2024-10-23T00:00:00+00:00" }, { "id": "01a08775-6b0c-7018-955a-4bf825daee9a", "title": "Big Company Bachelor's", "url": "https://www.ethanrosenthal.com/2024/01/14/big-company-bachelors/", "published_at": "2024-01-14T00:00:00+00:00" }, { "id": "01a08775-6b0c-7018-955a-4bf825f99897", "title": "Do you actually need a vector database?", "url": "https://www.ethanrosenthal.com/2023/04/10/nn-vs-ann/", "published_at": "2023-04-10T00:00:00+00:00" }, { "id": "01a08775-6b0c-7018-955a-4bf8269308c5", "title": "About", "url": "https://www.ethanrosenthal.com/about/", "published_at": "2023-02-12T00:00:00+00:00" }, { "id": "01a08775-6b0c-7018-955a-4bf8274afaef", "title": "Data scientists work alone and that's bad", "url": "https://www.ethanrosenthal.com/2023/01/10/data-scientists-alone/", "published_at": "2023-01-10T00:00:00+00:00" }, { "id": "01a08775-6b0c-7018-955a-4bf8279a1cb3", "title": "Ego, Identity, and Rationalization", "url": "https://www.ethanrosenthal.com/2022/09/08/ego-identity-and-rationalization/", "published_at": "2022-09-08T00:00:00+00:00" }, { "id": "01a08775-6b0c-7018-955a-4bf827ec822e", "title": "ML Monitoring with Materialize", "url": "https://www.ethanrosenthal.com/2022/07/19/materialize-ml-monitoring/", "published_at": "2022-07-19T00:00:00+00:00" }, { "id": "01a08775-6b0c-7018-955a-4bf8284ad01d", "title": "Let's Continue Bundling into the Database", "url": "https://www.ethanrosenthal.com/2022/05/10/database-bundling/", "published_at": "2022-05-10T00:00:00+00:00" }, { "id": "01a08775-6b0c-7018-955a-4bf828eea955", "title": "Bayesian Rock Climbing Rankings", "url": "https://www.ethanrosenthal.com/2022/04/15/bayesian-rock-climbing/", "published_at": "2022-04-15T00:00:00+00:00" }, { "id": "01a08775-6b0c-7018-955a-4bf82992542c", "title": "Everything Gets a Package: My Python Data Science Setup", "url": "https://www.ethanrosenthal.com/2022/02/01/everything-gets-a-package/", "published_at": "2022-02-01T00:00:00+00:00" }, { "id": "01a08775-6b0c-7018-955a-4bf82a028446", "title": "Autoretraining is Easy if You Skip the Hard Parts", "url": "https://www.ethanrosenthal.com/2022/01/18/autoretraining-is-easy/", "published_at": "2022-01-18T00:00:00+00:00" }, { "id": "01a08775-6b0c-7018-955a-4bf82a698dd8", "title": "Alignimation: Differentiable, Semantic Image Registration with Kornia", "url": "https://www.ethanrosenthal.com/2021/11/03/alignimation/", "published_at": "2021-11-03T00:00:00+00:00" }, { "id": "01a08775-6b0c-7018-955a-4bf82aef807e", "title": "Sandwich Data Science 2: Electric Boogaloo", "url": "https://www.ethanrosenthal.com/2021/09/28/sandmat/", "published_at": "2021-09-28T00:00:00+00:00" }, { "id": "01a08775-6b0c-7018-955a-4bf82ba44854", "title": "A Serverless Event Collector", "url": "https://www.ethanrosenthal.com/2021/07/20/serverless-event-collector/", "published_at": "2021-07-20T00:00:00+00:00" }, { "id": "01a08775-6b0c-7018-955a-4bf82c7a942c", "title": "Feature Stores for Self-Service Machine Learning", "url": "https://www.ethanrosenthal.com/2021/02/03/feature-stores-self-service/", "published_at": "2021-02-03T00:00:00+00:00" }, { "id": "01a08775-6b0c-7018-955a-4bf82d1e1b1a", "title": "Cold Air Calories", "url": "https://www.ethanrosenthal.com/idle/cold-air-calories/", "published_at": "2021-01-17T00:00:00+00:00" }, { "id": "01a08775-6b0c-7018-955a-4bf82d39004a", "title": "Optimal Peanut Butter and Banana Sandwiches", "url": "https://www.ethanrosenthal.com/2020/08/25/optimal-peanut-butter-and-banana-sandwiches/", "published_at": "2020-08-25T00:00:00+00:00" }, { "id": "01a08775-6b0c-7018-955a-4bf82ddcc043", "title": "Starting Up and Shutting Down, Quickly", "url": "https://www.ethanrosenthal.com/2020/01/22/starting-shutting-quickly/", "published_at": "2020-01-22T00:00:00+00:00" }, { "id": "01a08775-6b0c-7018-955a-4bf82e03e031", "title": "Doing Freelance Data Science Consulting in 2019", "url": "https://www.ethanrosenthal.com/2020/01/08/freelance-ds-consulting/", "published_at": "2020-01-08T00:00:00+00:00" }, { "id": "01a08775-6b0c-7018-955a-4bf82ece3c79", "title": "Links", "url": "https://www.ethanrosenthal.com/links/", "published_at": "2019-10-29T00:00:00+00:00" }, { "id": "01a08775-6b0c-7018-955a-4bf82ef32722", "title": "Production Machine Learning Survey Results", "url": "https://www.ethanrosenthal.com/2019/07/25/production-ml-survey/", "published_at": "2019-07-25T00:00:00+00:00" }, { "id": "01a08775-6b0c-7018-955a-4bf82f9680dc", "title": "Time Series for scikit-learn People (Part III): Horizon Optimization", "url": "https://www.ethanrosenthal.com/2019/02/18/time-series-for-scikit-learn-people-part3/", "published_at": "2019-02-18T00:00:00+00:00" }, { "id": "01a08775-6b0c-7018-955a-4bf82fe31cef", "title": "Hedging Academia and Liberalizing Physics PhD Programs", "url": "https://www.ethanrosenthal.com/2019/02/12/liberal-physics-phd/", "published_at": "2019-02-12T00:00:00+00:00" }, { "id": "01a08775-6b0c-7018-955a-4bf83030de25", "title": "spacecutter: Ordinal Regression Models in PyTorch", "url": "https://www.ethanrosenthal.com/2018/12/06/spacecutter-ordinal-regression/", "published_at": "2018-12-06T00:00:00+00:00" }, { "id": "01a08775-6b0c-7018-955a-4bf830bf853c", "title": "Bio", "url": "https://www.ethanrosenthal.com/blurb/", "published_at": "2018-09-05T03:38:57+00:00" }, { "id": "01a08775-6b0c-7018-955a-4bf831282a1e", "title": "Quick and Dirty Serverless Integer Programming", "url": "https://www.ethanrosenthal.com/2018/08/06/serverless-integer-programming/", "published_at": "2018-08-06T00:00:00+00:00" }, { "id": "01a08775-6b0c-7018-955a-4bf83137770e", "title": "Time Series for scikit-learn People (Part II): Autoregressive Forecasting Pipelines", "url": "https://www.ethanrosenthal.com/2018/03/22/time-series-for-scikit-learn-people-part2/", "published_at": "2018-03-22T00:00:00+00:00" }, { "id": "01a08775-6b0c-7018-955a-4bf83189f5a6", "title": "Time Series for scikit-learn People (Part I): Where's the X Matrix?", "url": "https://www.ethanrosenthal.com/2018/01/28/time-series-for-scikit-learn-people-part1/", "published_at": "2018-01-28T00:00:00+00:00" }, { "id": "01a08775-6b0c-7018-955a-4bf8327ffcbe", "title": "Matrix Factorization in PyTorch", "url": "https://www.ethanrosenthal.com/2017/06/20/matrix-factorization-in-pytorch/", "published_at": "2017-06-20T00:00:00+00:00" }, { "id": "01a08775-6b0c-7018-955a-4bf832f910ba", "title": "From Analytical to Numerical to Universal Solutions", "url": "https://www.ethanrosenthal.com/2017/03/20/analytical-numerical-universal/", "published_at": "2017-03-20T00:00:00+00:00" }, { "id": "01a08775-6b0c-7018-955a-4bf833c81c7b", "title": "Rec-a-Sketch: a Flask App for Interactive Sketchfab Recommendations", "url": "https://www.ethanrosenthal.com/2017/02/05/rec-a-sketch/", "published_at": "2017-02-05T00:00:00+00:00" }, { "id": "01a08775-6b0c-7018-955a-4bf83472f4d4", "title": "Using Keras' Pretrained Neural Networks for Visual Similarity Recommendations", "url": "https://www.ethanrosenthal.com/2016/12/05/recasketch-keras/", "published_at": "2016-12-05T00:00:00+00:00" }, { "id": "01a08775-6b0c-7018-955a-4bf83505b609", "title": "Learning to Rank Sketchfab Models with LightFM", "url": "https://www.ethanrosenthal.com/2016/11/07/implicit-mf-part-2/", "published_at": "2016-11-07T00:00:00+00:00" }, { "id": "01a08775-6b0c-7018-955a-4bf835771024", "title": "Intro to Implicit Matrix Factorization: Classic ALS with Sketchfab Models", "url": "https://www.ethanrosenthal.com/2016/10/19/implicit-mf-part-1/", "published_at": "2016-10-19T00:00:00+00:00" }, { "id": "01a08775-6b0c-7018-955a-4bf8363f3b82", "title": "Likes Out! Guerilla Dataset!", "url": "https://www.ethanrosenthal.com/2016/10/09/likes-out-guerilla-dataset/", "published_at": "2016-10-09T00:00:00+00:00" }, { "id": "01a08775-6b0c-7018-955a-4bf83640576a", "title": "Towards optimal personalization: synthesisizing machine learning and operations research", "url": "https://www.ethanrosenthal.com/2016/08/30/towards-optimal-personalization/", "published_at": "2016-08-30T00:00:00+00:00" }, { "id": "01a08775-6b0c-7018-955a-4bf836f89c0c", "title": "I'm all about ML, but let's talk about OR", "url": "https://www.ethanrosenthal.com/2016/07/20/lets-talk-or/", "published_at": "2016-07-20T00:00:00+00:00" }, { "id": "01a08775-6b0c-7018-955a-4bf8371c66a3", "title": "Explicit Matrix Factorization: ALS, SGD, and All That Jazz", "url": "https://www.ethanrosenthal.com/2016/01/09/explicit-matrix-factorization-sgd-als/", "published_at": "2016-01-09T00:00:00+00:00" }, { "id": "01a08775-6b0c-7018-955a-4bf837caf5d6", "title": "Intro to Recommender Systems: Collaborative Filtering", "url": "https://www.ethanrosenthal.com/2015/11/02/intro-to-collaborative-filtering/", "published_at": "2015-11-02T00:00:00+00:00" }, { "id": "01a08775-6b0c-7018-955a-4bf838690879", "title": "Yet Another PhD to Data Science Post (Part III)", "url": "https://www.ethanrosenthal.com/2015/10/06/interviews-to-job/", "published_at": "2015-10-06T00:00:00+00:00" }, { "id": "01a08775-6b0c-7018-955a-4bf83926e17a", "title": "Yet Another PhD to Data Science Post (Part II)", "url": "https://www.ethanrosenthal.com/2015/09/29/insight-to-interviews/", "published_at": "2015-09-29T00:00:00+00:00" }, { "id": "01a08775-6b0c-7018-955a-4bf83939e1e0", "title": "Yet Another PhD to Data Science Post (Part I)", "url": "https://www.ethanrosenthal.com/2015/09/23/start-to-insight/", "published_at": "2015-09-23T00:00:00+00:00" }, { "id": "01a08775-6b0c-7018-955a-4bf83a2fb9f2", "title": "Festival Chatter (Part 4) - Some Simple Sentiment Analysis", "url": "https://www.ethanrosenthal.com/2014/11/25/festival-chatter-part4/", "published_at": "2014-11-25T00:00:00+00:00" }, { "id": "01a08775-6b0c-7018-955a-4bf83a30cce0", "title": "Festival Chatter (Part 3) - Bonnaroo Analysis in the Fourth Dimension", "url": "https://www.ethanrosenthal.com/2014/10/06/festival-chatter-part3/", "published_at": "2014-10-06T00:00:00+00:00" }, { "id": "01a08775-6b0c-7018-955a-4bf83a8c4425", "title": "Festival Chatter (Part 2) - Evaluating Band Popularity from Bonnaroo Tweets", "url": "https://www.ethanrosenthal.com/2014/09/09/festival-chatter-part2/", "published_at": "2014-09-09T00:00:00+00:00" }, { "id": "01a08775-6b0c-7018-955a-4bf83ac8200d", "title": "Festival Chatter (Part 1) - Collecting Bonnaroo Tweets from the Streaming Twitter API", "url": "https://www.ethanrosenthal.com/2014/08/31/festival-chatter-part1/", "published_at": "2014-08-31T00:00:00+00:00" }, { "id": "01a08775-6b0c-7018-955a-4bf83b10f0a9", "title": "Setting up a website and separate blog repository hosted on GitHub", "url": "https://www.ethanrosenthal.com/2014/08/22/hello-world/", "published_at": "2014-08-22T00:00:00+00:00" }, { "id": "01a08775-6b0c-7018-955a-4bf83b69c1ed", "title": "Beyond Static Open Data", "url": "https://www.ethanrosenthal.com/talks/nyc-open-data-2022/", "published_at": null }, { "id": "01a08775-6b0c-7018-955a-4bf83c17f3dd", "title": "Building a Data Foundation for Multimodal Foundation Models", "url": "https://www.ethanrosenthal.com/talks/2025-data-council/", "published_at": null }, { "id": "01a08775-6b0c-7018-955a-4bf83ca06a03", "title": "Closing the Loop: Automated Model Retraining and Deployment", "url": "https://www.ethanrosenthal.com/talks/twimlcon-2022/", "published_at": null }, { "id": "01a08775-6b0c-7018-955a-4bf83d0466b9", "title": "Continuous Approximation: From Physics to Data Science", "url": "https://www.ethanrosenthal.com/talks/jmu-2019-physics-to-ds/", "published_at": null }, { "id": "01a08775-6b0c-7018-955a-4bf83d5e9c4e", "title": "Ethan Rosenthal and the M1 misadventure", "url": "https://www.ethanrosenthal.com/talks/normconf-2022/", "published_at": null }, { "id": "01a08775-6b0c-7018-955a-4bf83e344728", "title": "Machine Learning Engineering's Arrested Development", "url": "https://www.ethanrosenthal.com/talks/2025-prefect/", "published_at": null }, { "id": "01a08775-6b0c-7018-955a-4bf83e89b92b", "title": "Model Remodeling with Modern Deep Learning Frameworks", "url": "https://www.ethanrosenthal.com/talks/scipy-2019-model-remodeling/", "published_at": null }, { "id": "01a08775-6b0c-7018-955a-4bf83f78cfa6", "title": "Scaling Personalization vis Machine-Learned Assortment Optimization", "url": "https://www.ethanrosenthal.com/talks/dataengconf-2018-scaling-personalization/", "published_at": null }, { "id": "01a08775-6b0c-7018-955a-4bf840561a8c", "title": "Time series for scikit-learn people", "url": "https://www.ethanrosenthal.com/talks/pydata-2019-time-series/", "published_at": null } ] posts Claim your blog
Back to ethanrosenthal.com
Blog · corpus.blog/blogs/ethanrosenthal.com/posts

ethanrosenthal.com

ethanrosenthal.com

2026

2024

2023

2022

2021

2020

2019

2018

5 Sept 2018

2017

2016

2015

2014

Undated