izzymiller
DataBench: A frontier benchmark for complex data work and analytical reasoning
Welcome to our benchmark, where everything's made up and the points don't matter [video]
We had to build new evals for Fable
We built a lab to evaluate data agents
Bitter lessons building AI products
Agents, for Analytics
Notebook Agent
State of Data Teams 2025
I'm sorry, but those are vanity evals
I Stopped Fighting My Dashboards and Learned to Love Hex
Engineering the Perfect Group Chat
Ex: https://contour.run/home?activityId=36948814953
I've been using three.js and react-three-fiber for it. happy to swap notes! nice work :)
Explore: A new visual data exploration experience in Hex
The future of analytics is multi-modal
Making AI charts go brrrr
Introduction to Hex 1̶9̶9̶0̶ 2024
Hex 2024 Spring Release
Why Hex isn't charging extra for "AI"
Groqchat
The Poles of Brand Inaccessibility
PS: secretly, I hope that this post starts ranking for “a comprehensive ecosystem of open source software for big data management”, which is why I have said it verbatim so many times and added a helpful callout at the top for students. To be honest, I'd settle for the 19th spot: just above highadviser.com.We still support ipynb import/export, but using yaml for our internal representation of notebooks has made it hugely easier to do human-readable diffs and makes git operations way easier. (https://hex.tech/blog/github-sync/)
This blog post has made $0
- I get an analysis that I like, but there isn't a good way to share it with others, so I end up just taking screenshots.
You can publish any Hex notebook with literally just a few clicks, and anyone you share it with can access it, or edit it, or fork it, without installing anything— or you can even make it public. You can easily turn a notebook into an "app" or interactive report if you want, hiding/showing certain cells or choosing cells to show only code/only output. You can just share the raw notebook though too.
- There isn't a good way to take the same analysis and plug new data into it, other than to copy-paste the entire notebook.
Super easy to duplicate a Hex project and hit a different table or data source, or you can use input parameters (like ipywidgets) to make one notebook parameterized and work on a bunch of different data sources.
- The process to "promote" fragments of a notebook into being reusable functions seemed very high-friction: basically you're rewriting it as a normal Python package and then adding that to Jupyter's environment.
You can promote any part of a project to a "Component" (docs: https://learn.hex.tech/docs/develop-logic/components) that you can import into other projects. They can be data sources, function definitions, anything. If you make upstream changes to the component, you can sync them down into projects that import it.
- There aren't good boundaries between Jupyter's own Python environment, and that of your notebooks— if you have a dependency which conflicts with one of Jupyter's dependencies, then good luck.
Hex has a ton of default packages in its already installed standard library, and all the dependencies are ironed out— if you have packages you want to use that aren't there, you can pip install them, pull them in from a private github repo, or ask us to add them to the base image. You can also run Hex projects using a custom-provided docker image if you have super custom needs.
You should *definitely* check it out if you have these pain points. Here's an example of a pretty complicated public Hex project: https://app.hex.tech/hex-public/app/9b882bc1-ead3-4f0b-87d1-...
And here's a simpler one I just made the other day on a cool Silk Road dataset https://app.hex.tech/hex-public/app/cdc1b8fe-144b-4a74-a5ef-.... There's a bunch more examples at https://hex.tech/use-cases. Happy to answer any questions!