The work below is mostly closed-source, so here's the stuff you can actually click into:
- sec_id - validate, parse, normalize and convert securities identifiers (ISIN, CUSIP, SEDOL, FIGI, LEI, IBAN, and more), check-digit math included. My oldest gem.
- clsx-rails -
clsx/cnview helpers for Rails; a drop-inclass_namesreplacement that benchmarks 2–4× faster. - clsx-ruby - the framework-agnostic core: conditional CSS class strings for ViewComponent, Phlex, or plain templates.
- hacker_news_sorted - Chrome extension to re-sort the HN front page by points/time/comments. TypeScript, Manifest V3, zero data collection.
- oz - config-driven CLI wizard framework in Go: define prompts in YAML, wrap any tool in a discoverable TUI.
- create-rails-app · create-gem - interactive wizards for
rails newandbundle gem, so you stop looking up flags. - http_wrapper - a small, ergonomic skin over stdlib
Net::HTTP. - smsru_ruby - dependency-free client for the SMS.ru API: send SMS, phone-call verification, delivery status. Fully RBS-typed, with constant-time webhook signature verification.
- A blank repo and broad ownership - schema, infra, deploy pipeline, the lot. Building something from zero is the part that actually energizes me.
- Small teams with a short chain of command. Move fast, but with quality; no long approval chains.
- Designing good interfaces - clean APIs for the people who call them, sharp CLIs and libs for the people who build with them.
- Untangling messy code into something you can reason about. Decomposition is the fun part, not the chore.
- Making slow things fast - finding the real bottleneck and killing it: N+1 queries, missing indexes, counter caches, hot-path denormalization. Measured wins, not guesses.
- Ruby/Rails by default, Go for CLIs and small services, TypeScript on the front end - increasingly AI-augmented across all of it.





