Blog
Learning, Building, and
Documenting
Insights and experiences from my journey as a developer—exploring ideas,
overcoming challenges, and sharing lessons learned along the way.
Adapt the library, don't upgrade the framework
web3-react v6 couldn't give me the Magic login I needed, and v8 was a ground-up rewrite. So I wrapped magic-sdk in v6's AbstractConnector instead of migrating the whole app — a backported connector, and the Anti-Corruption Layer pattern.
- architecture
- javascript
- webdev
- typescript
Why Date.now() Is Still Wrong
Deriving a countdown from Date.now() fixes the render loop — but Date.now() is device time, and device time isn't necessarily the clock your app should trust. Server-time sync, monotonic clocks, and a tiny library.
- javascript
- frontend
- ntp
- react
Why Your Countdown Timer Lies After the Tab Goes Idle
A countdown showed garbage after a tab sat in the background — but only when nobody was watching. The cause was background-tab timer throttling; the real bug was accumulating time instead of deriving it.
- javascript
- frontend
- debugging
- browsers
Your list is a stream, not a snapshot
Offset pagination quietly duplicates and skips rows the moment your data changes underneath you. Why LIMIT/OFFSET breaks on live lists, how cursor (keyset) pagination fixes it, and where virtualization fits — with a playground you can drive.
- javascript
- webdev
- databases
- frontend