TypeScript satisfies Operator in Practice
The satisfies operator checks that an expression matches a type without widening the inferred type. const config = { theme: 'dark' } satisfies Config still…
Read article →Available for work
Interested in working together? Let's talk.
The satisfies operator checks that an expression matches a type without widening the inferred type. const config = { theme: 'dark' } satisfies Config still…
Read article →response.body is a ReadableStream. You can pipe it to TextDecoderStream or read it chunk-by-chunk with a reader to handle large or streaming responses.Server-sent JSON lines,…
Read article →color-mix(in oklch, var(--brand) 60%, white) produces a colour halfway between two colours in a perceptual space. It replaces a wall of design-token shades with one…
Read article →TanStack Query (formerly React Query) handles server state — fetching, caching, deduping, retrying, refetching on focus, and stale-while-revalidate — with hooks-shaped ergonomics.I…
Read article →Vite ships native ESM in dev and bundles with Rollup for production. Cold start is essentially instant on a typical project; HMR is sub-100ms.The configuration…
Read article →PHP 8.3 added type declarations for class constants. const VERSION: string = '1.0.0'; rejects an integer at compile time. The same applies to enum cases…
Read article →PHP 8.2 introduced readonly as a class-level modifier. Every property in a readonly class is implicitly readonly — perfect for value objects.Combined with constructor property…
Read article →PHP 8.1 enums replace the old constant-on-a-class pattern. Backed enums map to int or string values — enum Status: string { case Active = 'active';…
Read article →Fibers are stackful coroutines: Fiber::suspend() yields back to the caller, and $fiber->resume() picks up where it left off. They are the runtime primitive behind async…
Read article →The match expression is type-safe and value-returning. Unlike switch, it uses strict comparison, requires no break, and throws on an unhandled value (or falls through…
Read article →