Ian Wagner
banner
ianwwagner.com
Ian Wagner
@ianwwagner.com
Explorer of 🌏. Originally from the east coast 🇺🇸. 🇪🇪 e-Resident. Living in 🇰🇷. Serial entrepreneur. Current work: cofounder of @stadiamaps.com.

Normally @ianthetechie@fosstodon.org but checking this out too ;)
Bored of scrolling social media during the CloudFlare outage? Maybe you can suggest an even more ergonomic trackball for me ;)

ianwwagner.com/elecom-deft-...

(Blog ironically not down as it's hosted on GitHub Pages.)
Elecom Deft Pro - Two Months In
It's not quite two months in, but I said I'd give an update on the Elecom Deft Pro after some use, s...
ianwwagner.com
November 18, 2025 at 5:02 PM
Reposted by Ian Wagner
History repeats.
October 4, 2025 at 6:54 AM
New on the blog: const assertions.

ianwwagner.com/const-assert...
Const Assertions
I'm currently working on a project which involves a lot of lower level data structures. By lower lev...
ianwwagner.com
October 7, 2025 at 5:00 AM
New trackball arrived today. I wrote a bit about it here: ianwwagner.com/elecom-deft-...
Elecom Deft Pro - First Impressions
I recently picked up a new trackball to replace my prematurely aging Elecom HUGE. Here are my first ...
ianwwagner.com
September 27, 2025 at 9:38 AM
Reposted by Ian Wagner
🪄 Good AI tooling, especially for APIs, isn't automatic or intuitive. 🪄

In fact, our first attempts failed spectacularly. Read the first post in a new series we're writing about how to build great AI tools (including #MCP servers) for #API companies. 👇

stadiamaps.com/news/ai-tool...
AI Tools for API Companies: AI Needs Context, or How Our Auto-Generation Failed Spectacularly
Why our obvious approach to building MCP servers failed spectacularly, and what we learned about AI-native API consumption. This is the first post in our series about AI tools for API companies.
stadiamaps.com
August 1, 2025 at 8:12 AM
Super proud of this :) It’s been quite a journey the past few months building this. Expect a few more deep dive blogs soon! (And in case you missed it, I wrote about the quirks of Unicode normalization here: ianwwagner.com/til/unicode-...)
July 3, 2025 at 11:40 PM
Reposted by Ian Wagner
Howdy all. I'm unfortunately not going to be with my employer for much longer due to team relocation. If anyone has any info on roles that would allow me to continue my Rust compiler work (in New York City), they'd be greatly appreciated.
July 2, 2025 at 5:31 PM
In Seoul? You should come to our meetup next month ;)

Wednesday Jul 2 at 7pm. RSVP: www.meetup.com/rust-seoul-m...

#rust #rustlang
Seoul Rust Meetup, Wed, Jul 2, 2025, 7:00 PM | Meetup
# Welcome to our Meetup! Seoul Rust is a monthly meetup for Rust developers and enthusiasts. Whether you're just learning Rust or are an experienced developer, we hope you
www.meetup.com
June 10, 2025 at 2:41 AM
Weekend light blog: Ownership benefits beyond memory safety. Or, how the way you implement APIs in can prevent footguns. Inspired by an old friend's post in a Slack chat about hours wasted on this entirely preventable problem!

ianwwagner.com/blog/ownersh...

#rust #rustlang
Ownership Benefits Beyond Memory Safety
Rust’s ownership system is well-known for the ways it enforcesmemory safety guaranteees. For example, you can’t use some value after it’s been freed. Further, it also ensures that mutability is explic...
ianwwagner.com
May 31, 2025 at 7:41 AM
Rust has some pretty baller tooling crates 😀 Generated this railroad syntax diagram for a mustache derived template DSL using github.com/nu11ptr/pest... in just a few seconds 🤯

#rustlang
May 18, 2025 at 4:00 AM
Building a fitness app? Or planning a hill climb? We can help :)
↗️ Elevation-aware routing can help you seek or avoid challenging paths for bicycles, pedestrians, etc.

⚙️ And we make it easy to return elevation data for each leg of your route.

👉 Learn more in our new tutorial: docs.stadiamaps.com/tutorials/ge...

#routing #gis #mapping #maps
Getting an Elevation Profile With Your Route - Stadia Maps Documentation
Learn how to visualize the difficulty of your ride, walk, or hike with an elevation profile.
docs.stadiamaps.com
May 14, 2025 at 10:35 AM
Today's fun with Unicode, OpenStreetMap, Foursquare OS Places, and giving users useful search results :)

ianwwagner.com/til/unicode-...

#unicode #programming #openstreetmap
May 9, 2025 at 7:05 AM
It's been 0 days since it was DNS 😂 I learned a few things today, and you can too!

ianwwagner.com/til/edns-cli...
EDNS Client-Subnet and Geographic DNS
DNS is a complex beast, so it’s little surprise when I learn something new. Today I learned a bit more about the internals of how DNS works at various privacy-centric providers.
ianwwagner.com
May 3, 2025 at 5:09 AM
I'm definitely doing some crimes with my proc macro implementation, but it's pretty hard to argue with ~200 LOC to replace 456 unit tests and generate a proper data model from a few hundred YAML files at compile time 😂

#rust #rustlang
March 18, 2025 at 4:01 PM
I missed #SilentSunday but is #MistyMonday a thing?
March 10, 2025 at 4:04 AM
As we turn the corner into March, here's a good reminder to be *very* careful if you're ever tempted to use JavaScript for anything ;)

ianwwagner.com/til/date-ins...

#JavaScript #TIL #Programming
Date Insanity with JavaScript
Earlier today, a friend sent me a joke about boycotting <some big evil tech company> for three days: Feb 29, 30, and 31. I thought this was pretty funny.
ianwwagner.com
March 3, 2025 at 4:10 PM
Absolutely wild fact: creating a new V8 isolate (assuming I’m not “holding it wrong”) and compiling a large ES module can take over 100ms. But creating a new component instance in wasmtime is more on the order of 10ms 🤔

I *think* this is roughly apples to apples.

#WASM #javascript
February 18, 2025 at 2:22 PM
This weekend I finally got around to trying something “real” with WASM components.

I was able to successfully componentize a sizable library *written in JavaScript* using jco, and then call it from a Rust application! many right edges but it works! Blog post coming.

#WASM #rustlang #javascript
February 16, 2025 at 11:56 AM
Wait, Bluesky doesn't have the ability to save/bookmark a post for later?
February 14, 2025 at 3:17 AM
Finally found some ski buddies here and had an amazing (but long!) day on the slopes yesterday :) Guess I can also say I've skied an Olympic venue now haha.
February 14, 2025 at 3:14 AM
Reposted by Ian Wagner
“Terrible things are happening outside. Poor helpless people are being dragged out of their homes. Families are torn apart; men, women and children are separated. Children come home from school to find that their parents have disappeared.”
-Anne Frank

www.democracynow.org/2025/2/6/hea...
ICE Agents in Colorado Go Door to Door Demanding IDs and Asking People to Turn In Their Neighbors
In Colorado, heavily armed ICE agents carried out large-scale immigration raids at apartment complexes across Denver and Aurora on Wednesday. The Denver Post reports masked agents knocked on doors dem...
www.democracynow.org
February 8, 2025 at 10:23 PM
Reposted by Ian Wagner
We are happy to announce DuckDB v1.2.0 “Histrionicus”!

The new release has several usability, security and performance improvements. It has new features for the CSV and Parquet formats, as well new (opt-in) options for DuckDB's own format.

Read more at duckdb.org/2025/02/05/a...
February 5, 2025 at 2:54 PM
We’re making it even easier to search the world. Our latest geocoding and search API update brings in a new data source (in beta): Foursquare OS Places. I’ve been using 4sq apps for almost 15 years, and it’s great to see them embracing open data!

Try it out and let us know what you think!
🎉 Announcing a new beta data source in our geocoding API endpoints, foursquare.

🌟 With Foursquare OS Places, we have enhanced our API with millions of POIs.

🔐 Unlock new possibilities with our geocoding APIs: docs.stadiamaps.com/geocoding-se...

#geocoding
Geocoding and Autocomplete Search - Stadia Maps Documentation
Geocoding and autocomplete search APIs help you quickly and easily convert between places and geographic coordinates.
docs.stadiamaps.com
February 5, 2025 at 5:16 AM