Misha Kaletsky

tools, usually

I work at iterate. I've written some TypeScript tools and occasionally database clients because I don't like ORMs.

I worked at Microsoft before it was cool and tried some F#. I loved it, never wrote any again, and remain pleased whenever TypeScript starts to look like it.

Projects

expect-type

— Tests for TypeScript types. 2 billion downloads, wow

Compile-time assertions for public and internal types. Part of Vitest so gets downloaded about a hundred million times per week. Lots of your agents use it too it seems. I make about one millionth of a dollar per download so that's nice.

npm · source

trpc-cli

— A better way of making CLIs in TypeScript than whatever you're doing.

Originally: turns a tRPC or oRPC router into a typed CLI. Now you can just write a normal TypeScript module and magic it into a CLI with docs and helptext and stuff.

npm · source

sqlfu.dev

— SQLite clients, migrations, TypeScript generation, and more things.

SQL-first database tooling. Fairly new; useful for you if you still look at queries that your agents write.

site · npm · source

fetchomatic

— Fetch, with consequences.

Retries, timeouts, logging, caching, and other things you definitely want to do when fetching things.

npm

mopub

— Publish packages in a pnpm monorepo.

It's a bit like changesets but doesn't require writing changeset files. Or, it's like np for monorepos. I'm also a maintainer of np.

npm · source

schematch

— Pattern matching using Standard Schema.

Use zod, valibot, arktype, typebox, or other Standard Schema validators as match cases. I would have been so excited about this in 2021. Now less so but that's because all code is kind of less exciting now the machines write it.

npm · source

artifact.ci

— A web viewer for GitHub artifacts.

GitHub for some reason make you download artifacts zip files, unzip them on your computer, then serve them locally if you want to just... look at them. This does that stuff for you so you can just look at them in the browser.

site · source

eslint-plugin-codegen

— Codegen as a hacky lint rule.

I think this is a great idea even if you don't. If you need part of a JS/TS file to be generated, you can use this to have eslint/oxlint keep it up to date for you (lint error + autofix when out of date/missing/wrong).

npm · source

pgkit

— PostgreSQL tools. Moving to sqlfu.

site · npm · source

umzug

— Migrations.

I don't really use it anymore, but those Sequelize people do.

npm · source

CV

  1. now: iterate.com — London
  2. before: drb.ai — NYC
  3. before: havenhealthcare.rip — NYC
  4. before: zocdoc.com — NYC
  5. before: microsoft.com — London
  6. before: university, school, birth, etc.