available for work
Charlie Tonneslan.
Software engineer. The work I keep coming back to is civic and urban: housing, zoning, transit, civil infrastructure, and the policy that shapes them. Plenty of backend and developer tooling on the side, mostly Go.
Lately I've been shipping bug fixes into jackc/pgx, nats.go, wails, urfave/cli, and colly, with around 150 more PRs open across the Go, Rust, and Python ecosystems.
§ about
I'm a software engineer. The work I keep coming back to is civic and urban: housing, zoning, transit, civil infrastructure, and the policy that shapes them. Day-to-day I'm in TypeScript and Go, with some Python and Rust mixed in.
A lot of my time goes to open source. So far that's meant shipping bug fixes to Tailscale, LiveKit, etcd, pgx, gRPC, and a bunch of other Go projects. Good way to learn how large codebases actually work and to ship something other people use.
Looking for software engineering roles, especially anywhere code meets cities, planning, or public infrastructure.
What I Work With
Focus Areas
§ projects
littledb
Tiny embedded key/value store in Go. Single-file ACID with a copy-on-write B+tree, two-meta-page commits, and MVCC-style snapshot reads. Around 1,500 lines. Benchmarks within 5% of bbolt on writes (both bottleneck on fsync); ~6x slower on reads because there's deliberately no mmap.
civic-philly
A real-asset civic tool, not a data viz. 5,000+ housing developments, zoning permits, transit projects, and capital infrastructure investments in Philadelphia, joined against 408 ACS census tracts, 10 council district polygons, 239 Registered Community Organizations, every city council member's contact info, 4,212 OPA property owners (the shell-LLC pattern catcher), and 6,400+ L&I displacement signals (demolition permits + housing-code violations). Postgres tsvector full-text search. Top-applicants and top-owners leaderboards. Per-district briefing pages with year-by-year activity charts. Status-history accountability tracker for stalled projects. Equity overlay choropleth on the map. Mobile bottom-sheet for organizers at meetings. /this-week content homepage with weekly aggregations. RSS feeds per district. Dynamic next/og preview cards for every project and district. Sitemap.xml so project pages are Google-indexable. /embed iframe for blogs and CDC sites. Public JSON API at /api/v1. Cited methodology page. Email alerts and weekly per-district digests via Resend. Built for council aides, organizers, and reporters.
groundwork
Interactive map of 6,500+ affordable-housing projects across six U.S. cities (NYC, SF, LA, DC, Chicago, Philly), unified into one Postgres + PostGIS schema. Adds a census-tract rent-burden choropleth, a supply-demand gap analysis (burdened households per nearby affordable unit, pure PostGIS spatial join), and a stakeholders panel that surfaces the elected representative for any clicked development.
fourth-down-audit
NFL 4th-down decision audit. Trained a new XGBoost win-probability model on 300k plays of nflverse pbp; held out 2024 and landed at log-loss 0.465, within 0.3% of nflfastR's bundled WP model on the same plays. Added a conversion logit, an FG-make logit, and an empirical punt-net lookup, then scored every 4th down in 2018-2024 with 1,500-iter bootstrap CIs per coach-season. The dashboard ranks coaches by WP lost with confidence-interval bars, filters by situation (red zone, two-minute, own territory, FG range) and decision type, and on click pops a play drawer with the three-option E[WP] breakdown and an animated WP curve over the surrounding plays.
flamectl
Render a pprof profile as a single-file interactive SVG flamegraph. Takes input from a file, an HTTP URL, or stdin; emits one SVG you can open in any browser. About 600 lines of Go with hand-rolled tree aggregation and SVG layout.
agent-eval
Evaluation framework for agentic LLMs, built from scratch with the Anthropic SDK. 28 tasks across web, code, multistep, and reasoning, scored with a mix of deterministic checks and LLM-as-judge rubrics. Reports per-category pass rates with 95% confidence intervals because n=28 means real uncertainty.
airwaves
Tune into about 5,000 live internet radio stations from a spinning 3D globe. Pick a country, click any glowing marker, hit play. Built on Next.js, Three.js (via globe.gl), and the volunteer-run Radio Browser API. The whole thing runs in the browser, no backend.
§ open source
Bug fixes, race conditions, and edge cases I've run into in the wild. Mostly Go and Rust.
notable
tailscale/tailscale
etcd-io/etcd
jackc/pgx
livekit/livekit-cli
livekit/server-sdk-go
livekit/rust-sdks
pterm/pterm
charmbracelet/bubbles
charmbracelet/log
uber-go/goleak
jmoiron/sqlx
hashicorp/go-retryablehttp
nats-io/nats.go
uber-go/atomic
gorilla/schema
coreos/go-iptables
fatih/structtag
bwmarrin/discordgo
other
charmbracelet/lipgloss
charmbracelet/glamour
goccy/go-yaml
pelletier/go-toml
sashabaranov/go-openai
caarlos0/env
charmbracelet/fang
go-chi/chi
golang-migrate/migrate
hibiken/asynq
alecthomas/kong
valyala/quicktemplate
Masterminds/sprig
tucnak/telebot
tursodatabase/turso-cli
go-jose/go-jose
urfave/cli
samber/lo
launchbadge/sqlx
charmbracelet/x
charmbracelet/freeze
simonw/sqlite-utils
rust-itertools/itertools
go-redis/cache
cookiecutter/cookiecutter
charmbracelet/glow
go-ldap/ldap
open-telemetry/opentelemetry-go-contrib
uutils/coreutils
§ stack
languages
TypeScript, Python, Go, Rust, SQL
frontend
React, Next.js, Tailwind CSS, Framer Motion
backend
Node.js, FastAPI, Gin, Express, GraphQL
data & ai
PostgreSQL, Redis, DuckDB, Anthropic SDK, Pandas
infra
Docker, GitHub Actions, AWS, Vercel
practices
CI/CD, Testing, Code Review
§ contact
Looking for software engineering roles, especially anywhere code meets cities, planning, or public infrastructure. If you're hiring or want to collaborate, drop a line.