Sign in

Hamilton Ulmer

@hamilton.bsky.social
3.2K followers 338 following 328 posts

👁️📈👁️ design & eng @ MotherDuck. UI, statistics, databases. Ex Rill Data, Mozilla

PostsRepliesMedia
Hamilton Ulmer @hamilton.bsky.social · 14/07/2026
made a little pirate map spinner for something I'm working on. Just plain SVG + React just an Euler spiral as f(t), superposition of waves for speed & cup modeling w/ addl waveshaping for other paper quirks Surprisingly performant on old computers!
170
Hamilton Ulmer @hamilton.bsky.social · 07/07/2026
finally revamped my website ~ same fonts, same overall design, but more about where I currently am and what I've done. & more diagrams & videos First time ever I'm talking about my previous music career on this platform, so I added a page about that too. after all, why not
050
Hamilton Ulmer @hamilton.bsky.social · 24/06/2026
Dives already support near-instant crossfiltering on millions/billions of rows. We're now working on making it a native part of the experience with some new primitives low latency makes whole new classes of interactions possible!
080
Hamilton Ulmer @hamilton.bsky.social · 20/06/2026
everything they're saying about it is true: GLM 5.2 really DOES have all the info it needs to write the plan
240
Hamilton Ulmer @hamilton.bsky.social · 10/06/2026
⌯⌲ Introducing Flights, a new agent-native data pipeline tool Author in python / SQL, trigger in SQL + MCP + on a schedule. I use it for data pipelines, but also for agent workflows, classical ML tasks, screenshotting Dives and posting to Slack, you name it. Give it a spin in Motherduck!
190
Hamilton Ulmer @hamilton.bsky.social · 27/05/2026
I've been reflecting on this post. If people are actually getting 10x or 100x gains, this indicates that per-developer productivity gains from AI don't convert to revenue very well. So either people are working on the "wrong thing" (very likely) or the gains are more modest (also likely)
470
Hamilton Ulmer @hamilton.bsky.social · 27/05/2026
Happy National Paper Airplane Day! I made a little parametric mini-app to figure out good angles for a paper airplane hero. Another fun 3d svg modeling task. Favorite parts are the particle occlusion and ribbon trail I promise this content will make sense soon
080
Hamilton Ulmer @hamilton.bsky.social · 25/05/2026
I've been using Claude artifacts to create parametric systems for icon development. While models are only sort-of good at drawing svg, they're obviously quite good at getting basic math right. Especially helpful for getting 16x16 footprints to feel nice usually I can do the rest
140
Hamilton Ulmer @hamilton.bsky.social · 17/05/2026
iterating on a fun little isometric paper airplane loading hero for a new feature I'm excited about. Thinking about how to mitigate the ink trap problem while keeping the simplicity of three shapes
1471
Hamilton Ulmer @hamilton.bsky.social · 27/12/2025
This break, I've been building a constraint-based implementation of a new time series axis component. The goal is to make it nice & comprehensible for any size / time range It's a nice pattern: React part of it is simple, the TS part is complex / well-tested, and the dev UI uses the test cases
070
Hamilton Ulmer @hamilton.bsky.social · 26/10/2025
Continuing the semantic code-folding design exploration. Instead of showing the typical "..." button, it shows an LLM summary of what's folded. Like "calculate 30-day revenue" for a collapsed CTE. Not sure if this would be useful yet!
090
Hamilton Ulmer @hamilton.bsky.social · 07/10/2025
I like the “retvrn to terminals” discourse around UIs, but imo it misses why old terminal programs were (or were not) good. So it’s a boring aesthetic argument and not a functional one based on how humans consume information.
020
Hamilton Ulmer @hamilton.bsky.social · 02/10/2025
only took me two years before I needed to do my own safety triangle implementation this works great for our upcoming "quick look" editor features aside from function docs, what other quick look features would you like in the DuckDB UI?
070
Hamilton Ulmer @hamilton.bsky.social · 30/05/2025
My Data Council talk on Instant SQL is up on YouTube! Instant SQL is MotherDuck's new realtime ad hoc querying and data debugging mode. I go into details, but the talk itself is really about designing tools that both require mastery AND enable joyful flow. www.youtube.com/watch?v=GSeB...
youtube.com
Instant Preview Mode Real Time Feedback to Make SQL Data Exploration Fly
YouTube video by Data Council
172
Hamilton Ulmer @hamilton.bsky.social · 20/05/2025
This is tomorrow! lu.ma/xakrgxqu
lu.ma
Stay in Flow with MotherDuck's Instant SQL - May 21 · Luma
Imagine writing SQL queries that give you instant visual feedback, transforming your entire data exploration experience. See how MotherDuck's Instant SQL…
071
Hamilton Ulmer @hamilton.bsky.social · 17/05/2025
I'm going to be talking online about the "why" and "how" of Instant SQL, our new ad hoc querying experience that enables keystroke-fast previews of results & deeper introspection into your query's data flow. Weds. May 21st, 9:30am PDT link in reply!
171
Hamilton Ulmer @hamilton.bsky.social · 24/04/2025
So thrilled to announce we've released Instant SQL in both the MotherDuck and DuckDB UIs! It's a new interaction pattern for writing SQL queries that provides realtime result previews and deep query inspection & debugging. Bye bye run button 👋 Truly, literally only possible with DuckDB
35411
Hamilton Ulmer @hamilton.bsky.social · 28/03/2025
Instant Preview Mode has been achieved internally
4444
Hamilton Ulmer @hamilton.bsky.social · 20/03/2025
Migrating over my DuckDB AST path generation code to our UI. The way I've done gut-checks on the grammar is to use this CodeMirror semantic highlighting extension I wrote We can implement a very long tail of unique features with the path generator, including instant preview mode
0130
Hamilton Ulmer @hamilton.bsky.social · 12/03/2025
So thrilled the DuckDB UI is out to the world! Read the post, but wanted to also share a couple small design details we thought about in thread
3385
Hamilton Ulmer @hamilton.bsky.social · 10/03/2025
a gratifying animation (and much lower instance size changing times in the MotherDuck UI)
060
Reposted by Hamilton Ulmer
MotherDuck @motherduck.com · 10/03/2025
Are you ready? 03.12.2025
0123
Hamilton Ulmer @hamilton.bsky.social · 08/03/2025
The prod push begins ... starting with my TS-based re-parse of the DuckDB grammar to get the end positions of AST nodes & all clauses of select & set operation nodes. This tedious work enables a long tail of hot UI magic. Can't wait to deprecate it once we have the PEG parser!
060
Hamilton Ulmer @hamilton.bsky.social · 06/03/2025
new in the MotherDuck UI: a very nice file -> table flow combines duckdb-wasm with MotherDuck to enable easy file validation and previews before taking the CTAS plunge
1194
Hamilton Ulmer @hamilton.bsky.social · 11/02/2025
Big release day for MotherDuck! We're rolling out a new Business Plan and a bunch of great new features. Cherrypicking a few small design details that I enjoyed working on below (see the blog post for way more data warehouse context!) motherduck.com/blog/introdu...
motherduck.com
MotherDuck for Business Analytics: GDPR, SOC 2 Type II, Tiered Support, and New Plan Offerings - MotherDuck Blog
Introducing new features designed to better support businesses looking for their first data warehouse, including SOC 2 Type II and GDPR compliance, tiered support, read scaling, and a new Business Pla...
1110
Reposted by Hamilton Ulmer
Hannes Mühleisen @hannes.muehleisen.org · 07/02/2025
We're testing a new DuckDB install experience for Linux and MacOS: curl install.duckdb.org | bash Happy to hear feedback!
install.duckdb.org
1412323
Hamilton Ulmer @hamilton.bsky.social · 15/01/2025
duckdb-wasm now has OPFS support! This means that you can now persist a DuckDB database in the browser for a given origin. This will make caching & local operations much nicer! github.com/duckdb/duckd...
github.com
Add OPFS (Origin Private File System) Support by e1arikawa · Pull Request #1856 · duckdb/duckdb-wasm
Description: This PR implements OPFS (Origin Private File System) support in the latest version of duckdb-wasm based on PR #1490. This allows database files to be read and written to the OPFS. API:...
2296
Hamilton Ulmer @hamilton.bsky.social · 14/01/2025
First pass at a new DuckDB extension that generates svg time series IN the db (below screenshot copied into figma) and how, using M4 should be trivial! And then setting elem.innerHTML = result even easier One step from effortlessly throwing a thousand low-cost small multiples into any UI
1211
Hamilton Ulmer @hamilton.bsky.social · 13/01/2025
I had the privilege of chatting with @jthandy.bsky.social on the Analytics Engineering podcast about – you guessed it – DuckDB, exploratory data analysis, and the messy middle of doing data work. Lots of historical context! listen: www.getdbt.com/blog/interse...
1133
Hamilton Ulmer @hamilton.bsky.social · 07/01/2025
Working in a DAW, one will loop over a small isolated set of tracks and work out EQ, reverb. etc. The fast feedback loop makes it easy to dial into the right sound, and then you can unmute the rest of your tracks for context. Why doesn't this exact pattern exist for UI tooling?
140
Reposted by Hamilton Ulmer
Hamilton Ulmer @hamilton.bsky.social · 02/01/2025
🚀 New DuckDB instant SQL preview feature: decompose result sets in real time! Break apart any select list expression to triage unexpected NULL values and results Scales seamlessly to arbitrarily complex expressions
1424
Hamilton Ulmer @hamilton.bsky.social · 02/01/2025
🚀 New DuckDB instant SQL preview feature: decompose result sets in real time! Break apart any select list expression to triage unexpected NULL values and results Scales seamlessly to arbitrarily complex expressions
1424
Hamilton Ulmer @hamilton.bsky.social · 18/12/2024
DuckDB's Node client got a huge makeover! I've gotten to watch my colleague Jeff work on it and it's been a masterclass in how to nail the ergonomics. Give it a spin ~ duckdb.org/2024/12/18/d...
duckdb.org
DuckDB Node Neo Client
The new DuckDB Node client, “Neo”, provides a powerful and friendly way to use your favorite database
2334
Hamilton Ulmer @hamilton.bsky.social · 13/12/2024
My toddler is extremely into orchestral music. People are always surprised to hear this, but my wife is a professional musician and I used to be. Music is a critical part of our family fabric. It feels very rewarding to have him grow up in the culture; something neither of us quite had.
4210
Hamilton Ulmer @hamilton.bsky.social · 11/12/2024
I finally did it. I bought the $160 book on the history of mathematical tables.
0130
Hamilton Ulmer @hamilton.bsky.social · 05/12/2024
DuckDB just shipped a rowid filter pushdown! This can be used to get a fast tail of the table. Lots of other great uses for this too! Along w/ the tablesample pushdown PR, DuckDB 1.2 is going to have much faster ways to subset large tables. github.com/duckdb/duckd...
github.com
`rowid` filter pushdown by Maxxen · Pull Request #15020 · duckdb/duckdb
This PR adds support for pushing down static and dynamic filters on the rowid column into table scans. The rowid column is not a real stored column and doesn't have statistics, but since row-id...
2200
Reposted by Hamilton Ulmer
Jack Rusher @jackrusher.com · 30/11/2024
Inspired by the graphic design of the Penguin paperbacks I grew up reading…
826836
Hamilton Ulmer @hamilton.bsky.social · 29/11/2024
Do any of my DuckDB experts know how to use sniff_csv (or any table function) on a list of files in a query? I want to apply sniff_csv to each file in a list. I can always do string templating with union all but it'd be nice to keep this pure SQL so I can make a macro out of it. any ideas?
150
Hamilton Ulmer @hamilton.bsky.social · 29/11/2024
🎯
030
Reposted by Hamilton Ulmer
Nate Sooter ⛳️ @natesooter.bsky.social · 28/11/2024
Happy Thanksgiving, especially to all the Export to CSV buttons out there
0274
Reposted by Hamilton Ulmer
IntentToShip @intenttoship.dev · 26/11/2024
Blink: Intent to Ship: WebAssembly Memory64
groups.google.com
Blink: Intent to Ship: WebAssembly Memory64
Blink: Intent to Ship: WebAssembly Memory64
076
Hamilton Ulmer @hamilton.bsky.social · 27/11/2024
thinking about bringing both this loading spinner in to the MotherDuck app
2100
Reposted by Hamilton Ulmer
Emily Liu @emilyliu.me · 25/11/2024
now you can run `npm install bluesky-comments` to use bluesky replies as your blog's comment section! thanks @coryzue.com 🙌
21541113
Reposted by Hamilton Ulmer
Emily Liu @emilyliu.me · 24/11/2024
While Bluesky looks like other social apps on the surface, it’s actually quite different. It’s an open network. I blogged about it here:
emilyliu.me
Benefits of an open network
2454184925
Reposted by Hamilton Ulmer
Hamilton Ulmer @hamilton.bsky.social · 13/09/2024
instant-feedback SQL editing aka "query-as-you-type" uses DuckDB's AST, duckdb-wasm for local-first caching, and MotherDuck as the backend Still early, but should enable arbitrary scale and still retain a near real-time feel while writing ad hoc queries! Bye bye run button 👋
6582
Hamilton Ulmer @hamilton.bsky.social · 22/11/2024
IMO SQL is hard because it's nearly impossible to build good tooling for it. And that's because of SQL's grammar (verbose) and parsers (ancient) this @duckdb.org change is huge Exciting times ahead if you work with SQL!
1121
Reposted by Hamilton Ulmer
Ed @eddaword.bsky.social · 21/11/2024
How does one find Design Eng BlueSky? Or Product Dessign Blue Sky?
152
Hamilton Ulmer @hamilton.bsky.social · 21/11/2024
the local regression line is 😙🤌 I bet loess might also be kind of interesting here
161
Hamilton Ulmer @hamilton.bsky.social · 21/11/2024
🚢 just shipped in the MotherDuck UI: Table Summary Click a table/view in your catalogs to see column distributions, top values, & null %s. Plus an easy way to peek at actual rows when you need that security blanket. An easy way to build intuition about your tables w/o having to write SQL!
4407
Hamilton Ulmer @hamilton.bsky.social · 21/11/2024
do any @bsky.app folks know if it's either possible (or on the roadmap) to allow people I don't currently follow to chat with me?
000