ackwell.


a journey into search.

I’ve recently wrapped up the core implementation of a search feature - one that went through many twists and turns. It was a long journey to get to where it stands today, and I’d like to revisit that journey to share some of my learnings (and mistakes)!

creating a dynamic union in TypeScript.

Thanks to automatic type narrowing, a properly discriminated union is an incredibly powerful tool to model data in TypeScript. Unfortunately, as the model grows more complex, it becomes increasingly easy to disrupt the key discriminators of the union - and equally becomes a point of contention for vcs conflicts.