TypeScript Engineer (UI State Management & CRDTs)
Requirements
Experience with complex UI state management
You can lead and teach engineers how to write signal-based UI state management with unit testable "view-models". You have solved problems and designed interfaces with reactivity libraries similar to Jotai, RxJS, SolidJS's createSignal
, TanStack Store, or equivalent.
For the most complex interactions, your logic is unit-testable without a React render loop.
We avoid state management relying on React's hook context in most cases, but when it comes to common, visual-only things like resize handles and animations it's probably fine to put that in the React side.
Experience with diverging states (CRDTs/OT/LWW)
You can write full-stack implementations for versioning, branching, and rebasing flows leveraging a CRDT or OT library, or using your own LWW approach.
You've gained some pretty strong opinions about the right time and place for CRDTs, OTs, or LWW. Perhaps you've even watched videos from GDC about multiplayer netcode and rollback out of curiosity. You probably had to use yjs at some point and decided it's design is kinda shit but the community, resources, and ecosystem around yjs still make it the best option for most teams (our versioning environment allows for us to use multiple state management strategies together, so we can choose the best tool for the job (usually depending on ecosystem) in most cases). Otherwise, we default to Loro.
AI Optimism
You have optimism towards async AI fixing bugs and making tweaks to the codebase and you plan for that by checking your interfaces and design with an LLM to see where your approach is weak.
We have high optimism for async AI handling the majority of the coding in the long-tail of our software process. But, we don't find AI effective at every stage of development.
Generally, we think about AI usage following a trend like the following;