thoughts on building systems, thinking with data, and learning through real projects.

Everything

Projects and opinion

Every post in one place, newest first. Projects are systems I've built end-to-end. Opinion pieces are shorter takes on what I've learned along the way.

opinion2026-07-11·11 min read

Feared, and Deadly

Chapter 6 of Measuring New York. 'Safety' averages together three harms that could not be more different in permanence — a life ended, a body injured, a thing stolen — and calls the sum 'the crime rate.' Pull death out and look at it alone, and the fear map breaks: murder and the road kill comparable numbers of New Yorkers, but murder concentrates on young men in a few networks while traffic kills the old and the unlucky, everywhere — and hardest in the neighborhoods that feel safest.

Read →
opinion2026-06-14·11 min read

Pay to Belong

Chapter 5 of Measuring New York. The public realm splits in two: the social life you pay for — restaurants, cafés, bars, galleries — and the kind that's free — parks and plazas. Measured per resident, the two barely track each other: a neighborhood thick with places to spend money tells you almost nothing about whether it has room to simply be. And the free kind is the one that's hedged — libraries close at six, parks curfew at one, 'public' plazas are built to move you along. The question under it all: where can you be in the city without buying your way in?

Read →
opinion2026-06-06·11 min read

Close Enough?

Chapter 4 of Measuring New York. The geography of getting groceries, medicine, a doctor, a school, a childcare seat — without a car. Proximity turns out to be the easy part: in most of New York you can walk to almost everything in ten minutes, and the three access dimensions correlate so tightly they're really one signal — built density. The hard question is whether what's nearby is enough. On childcare it isn't: New York has licensed slots for about half its under-5 children, and being close to a day care barely predicts having a seat in one. The chapter is about the gap between within reach and enough.

Read →
opinion2026-05-30·11 min read

Breathing Room

Chapter 3 of Measuring New York. PM 2.5, green-space access, and the volume of environmental 311 complaints split into three semi-independent dimensions — no pair of them co-ranks tightly enough to collapse into a single 'environmental quality' score. The chapter is about what that independence means, and about a metric trap on the third dimension: one zip code in the Bronx accounts for 11% of NYC's noise complaints, almost all of it from a small number of addresses. Counting blocks instead of calls makes the burden ranking change.

Read →
opinion2026-05-24·10 min read

The price of standing still

Chapter 2 of Measuring New York. Median rent points away from housing stress, not toward it. The community districts with the highest rents are the ones with the lowest rent burdens; the CDs with the highest burdens are also where eviction filings and housing-code violations stack up — three signals that point the same way, and a fourth (the headline-rent number) that points the opposite way.

Read →
opinion2026-05-23·10 min read

Methodology & Limits

A living reference companion to the Measuring New York series. Per-chapter algorithms, scoring frameworks, and the caveats that don't fit inline. Updated whenever a new chapter ships.

Read →
opinion2026-05-23·13 min read

The size of your world

Chapter 1 of Measuring New York. The 45-minute AM-peak transit isochrone, computed for all 2,303 NYC census tracts. From Midtown East the median resident reaches 3.06 million jobs — 68% of all jobs in the city. From Tottenville, 13 thousand. The variance between CDs is 229×; the variance inside some CDs is 5×. A neighborhood's true size is measured in minutes, not blocks.

Read →
opinion2026-05-23·8 min read

What does "livable" even mean?

Opening the Measuring New York series. Why 'livability' is a slippery word, why NYC is one of the most measurable cities anywhere, and a first look at where the daily friction concentrates — across 296,426 311 calls in a single month.

Read →