Dan Imhoff
Software Architect at OpenPhone.
A Primer on Optimistic UI
There are two competing theories in UI development.Pending UI, where a pending state is presented to the user until their action is committed (usually to a remote database), has been the dominant implementation for years. Loading spinners, progress bars, or even a lack of an indicator altogether hav…
Dan Imhoff·Published
Retrofuturistic MVVM: Achieving View Purity with MobX ViewModels
Just one more useState() won’t make this component any worse.—Me, a jackassComponent bloat is real. We’ve all experienced it. What was once a simple component with a manageable dozen lines or so is now an endless sea of hooks, callback functions, and inlined sub-components followed by a disgusting m…
Dan Imhoff·Published
Using Results in TypeScript
Result, AKA Either, is a type that is used to represent the result of an operation that can either succeed or fail. If the operation succeeds, its result represents a value (or non-value). If it fails, its result represents an error.If you’ve ever written Rust, chances are you’ve already used result…
Dan Imhoff·Published
Film Review: Freaks (1932)
The history of Freaks follows the classic tale of controversial art facing backlash from a society unprepared to question its collective norms. Upon its debut in 1932, the film had already been gutted by a third to ease the stomachs of audiences. Contemporary critics revealed their true colors. MGM …
Dan Imhoff·Last updated
Parallelizing Jest with GitHub Actions
While working on the automated testing of Capacitor Plugins, I realized the same parallelization strategy I was using could be applied to anything using GitHub Actions. Not only was it possible to create multiple jobs from a single definition using strategy.matrix, it was possible to dynamically cre…
Dan Imhoff·Last updated