Open source
A type-safe SQL query builder for TypeScript.
What a ride! we made it to 20M+ downloads per week on npm and 14k+ github stars.
Used by teams at Mozilla and Bluesky, and built into Better Auth, Langfuse, AWS Blocks, MikroORM, and OpenClaw.
Co-lead
– presentProject direction and API design.
Member
–Reviewing contributions, guiding contributors, shaping process, and building the first-party ecosystem around Kysely.
Actively involved in the community and discussing design decisions with Sami, the author.
First merged contribution: REPLACE INTO support.
My contributions include SQL Server support, window functions, type-safe JSON traversal, MERGE queries, controlled transactions and savepoints, query cancellation, kysely-ctl, and kysely-postgres-js.
Schema validation with static type inference.
Contributor
– presentFirst merged contribution: typed fatal issues.
My contributions include template literal validation, date and time checks, and BigInt validation.
Local Prisma Postgres for development.
Author
–Built the local Prisma Postgres development experience.
An embeddable database editor for exploring schemas, browsing data, and editing rows.
Created the embeddable core of Prisma Studio.
An open-source infrastructure-as-code tool.
Namegiver
Coined “Tofu,” the name that became OpenTofu.
Work
I've spent most of my career in small teams, building products while the shape of the problem was still changing. I like getting close to the people who understand that problem, then having room to think through the system and build it.
At Finaloop, bank and marketplace data had to become accounting reports people could trust. I built event-driven and event-sourced pipelines, worked across different database models, and chased reconciliation gaps with accounting and fintech experts. It was distributed systems work with real business consequences, and some fixes had to ship under pressure.
At Prisma, the questions were about tools for other developers. On the experiments team, I worked on query performance insights tooling and a security product exploring bundling, RPC, and FaaS. Later, I worked on the internals of the new Studio and built prisma dev, a local development tool for Prisma Postgres. The work took me from persistence and APIs to SDKs, CLIs, and the occasional dashboard.
Random takes
Posts and replies, in my own words.
- Learning in public
i do have strong opinions here and there, and i don't shy away from testing them, or my intuition/instincts about things, by stating/writing them as a way to learn/adjust if and when i get pushback. i do admit being wrong & show gratitude.
- Tests
i think there needs to be a culture of test removal/refactor, more than simply add tests everywhere. bad tests kill velocity.
- Testing real systems
purist hat on. the one major thing you cannot test with pglite, is transaction isolation. if you have a distributed system that relies heavily on that, you can't avoid spinning up a full-blown postgres instance. it's similar to unit tests, you cannot rely only on unit tests.
- Coding agents
slop coding doesn't decrease org costs when a code review now takes waaay longer because the slop development environment is touching things for no good reason, you have to question everything, and the submitter has no recall why things were changed/added. change my mind.
- Abstractions
people obssessing over DRY this DRY that like they've read "clean code" yesterday, need to hear this. Premature abstractions are a road full of pain, more often than not. And nope, you're not smarter than the good people that maintain the library you're about to wrap.
- Application code
The more I got involved with library TS code, the less I wanted to do non-basic TS code in applications. A lot of people go ham with complex shit in application code to scratch an itch, they don't have an outlet.
- Contracts
Return types are a must on exported functions and public class methods. Contracts are important, both for consumers and for maintenance of given functionality. Internals can be inferred or defined, depends on the complexity of the inferred type.
- Users first
Do yourself a favor, learn SQL. It's not as hard as some authors/vendors make you believe. Optimize for app's User eXperience, not Developer eXperience (it's also important, not as important). Pick predictable tools that empower you & get out the way.
- Hiring
when i interview people for an application-level typescript role, i wanna see application-level stuff. no wizardry. i wanna see you write some very maintainable, simple and type-safe code. ecosystem awareness. designs with extensibility in mind.
- Judgment
be pragmatic. know when to steer and teach by example. know when to take your hands off the wheel. its about type of work and feel. don't ever lose feel.
- Boundaries
the boundaries should always be explicitly typed and validated. this was true before agents. docs rot/drift/not tell the exact story. this was true before agents.
- Migrations
schemas and migrations should be boring, predictable and decoupled from application code.
- Package trust
trusted publishing is nice, but not enough. we need trusted maintaining, trusted process. something like `pnpm`'s `trustPolicy: no-downgrade` option but for not trusting packages with insecure repositories/processes.
Setup
Devices
- Laptop
- MacBook Pro 14″ · 2023 · Space Black
- Apple M3 Pro · 18 GB memory · 512 GB SSD
- 11-core CPU · 14-core GPU
- Phone
- Samsung Galaxy S25 Ultra
- Titanium Black · 12 GB memory
- SM-S938B/DS
Developer tools
Desk & gear
- Wrist rest
- HyperX Wrist Rest
- Headphones
- Sennheiser HD 6XX
- DAC / headphone amp
- E1DA 9038SG3
- Microphone
- Elgato Wave:3 MK.2
- Webcam
- Logitech C920
- Chair
- Steelcase Amia
Vinyls

Beats, Rhymes & Life
A Tribe Called Quest

Midnight Marauders
A Tribe Called Quest

The Low End Theory
A Tribe Called Quest

Ventura
Anderson .Paak

DIAMONDS & FREAKS
BLK ODYSSY

“Awaken, My Love!”
Childish Gambino

Be
Common

Voodoo
D’Angelo

Black Messiah
D’Angelo and The Vanguard

AOI: Bionix
De La Soul

Melt My Eyez See Your Future
Denzel Curry

New Amerykah Part One (4th World War)
Erykah Badu

Late Registration
Kanye West

BUBBA
KAYTRANADA

99.9%
KAYTRANADA

Mr. Morale & The Big Steppers
Kendrick Lamar

To Pimp a Butterfly
Kendrick Lamar

good kid, m.A.A.d city
Kendrick Lamar

Candydrip
Lucky Daye

Painted (Deluxe Edition)
Lucky Daye

Black on Both Sides
Mos Def

Stankonia
Outkast

Process
Sampha

Lahai
Sampha

Blank Face LP
ScHoolboy Q

Chasing Summer
SiR

Fantastic, Vol. 2
Slum Village

Ego Death
The Internet

Things Fall Apart
The Roots
