← back

Speaking

I gave a few meetup talks, mostly at Wrocław TypeScript, where I served as a placeholder speaker.

A tiny calendar with sync engines and CRDTs

TypeScript Fireside #4, Wrocław · May 2025
Why and how I built bear-fit, a calendar for finding a day that works for all my friends. Initial experiment with val.town Townie, then a migration to PartyKit and Yjs.
Code

Refinement Types

What refinement types are, a research paper that adds them to TypeScript, and live-coding a userland refinement type you can use today.
Code · extended slides · follow-up post

Building a Branded Styling DSL in TypeScript

Wrocław TypeScript Online #17 · Jul 2020
Module augmentation and declaration merging to make Theme UI’s sx prop accept only your design tokens. The live demo breaks at the end, for the exact reason the talk warns about. Thank god I had a GIF and screenshots.
Recording · Theme UI PR

Progressive Web Apps Demystified

Chop-Chop · May 2020 · in Polish
A PWA is just an app that fulfils a checklist. What’s on it, and a case study with Next.js and Apollo.
Recording

Fixing JSX.IntrinsicElements conflict in react-three-fiber

Wrocław TypeScript #12, Wrocław · Feb 2020
How I used the TypeScript Compiler API to generate react-three-fiber’s JSX types from three.js and stop them clashing with @types/react.
Slides · PR

Maybe-ts. A softer approach to optionals

Wrocław TypeScript #10, Wrocław · Dec 2019
The problems with Option from Rich Hickey’s “Maybe Not”, and a nullable Maybe for fp-ts that avoids them. It turned out not to be a lawful functor.
Slides · library

Reducers and Hooks in the Wild

Chop-Chop Academy, Wrocław · Dec 2019
Live-coding reducers, a Notification API hook and a Web Audio alarm into a pomodoro app.
Code · app

Power of Preconditions

Wrocław TypeScript #8, Wrocław · Oct 2019
Why TypeScript 3.7 assertion signatures are huge: partial vs total functions, throwing vs returning errors, and safer React code.
Slides

Linter Overload

Wrocław TypeScript #6, Wrocław · Jun 2019
So many linters for TypeScript. Which one should I use, and how do I configure it?
Slides

Matryoshka Code

A rant about over-abstracted code, DRY as the dunes of Arrakis, and how to deal with it.
Slides · notes

Using React with TypeScript

Wrocław TypeScript #1, Wrocław · Jan 2019
Why and how to use TypeScript in React apps.
Slides