Recently published.
Older posts
10 posts · sorted newestAdvice for New Software Engineers
Honest career advice for new software engineers from an engineering manager: what college misses, how to grow, and why business sense matters.
NPM: What are project dependencies?
The difference between dependencies, devDependencies, and peerDependencies in a package.json, and when to use each type in a Node.js project.
CSS Box Model
Part one of 'CSS: The Important Stuff'. How content, padding, border, and margin actually lay out every element on a web page.
Start With No
Why saying 'no' as a default to feature requests protects your product, your team, and your users from the lifecycle that kills most software.
Making React Fast: Tips on Optimizing ReactJS
React performance from the ground up. How the reconciler works, when re-renders hurt, and the tools (memo, key, useMemo) for fixing jank.
Music That Defined My Decade: 2010-2019
The albums and songs that shaped a decade of my life. Heavy on post-rock, math-rock, and odd time signatures.
Lost Connections: Why You’re Depressed and How to Find Hope
Reflections on Johann Hari's Lost Connections: the nine social and cultural disconnections he argues are fueling modern depression and anxiety.
How Facebook Avoids Ad Blockers
How Facebook hides the word 'Sponsored' from ad blockers using per-character spans and DOM obfuscation, pulled apart piece by piece.
On Writing Clean Code
Writing cleaner code: name variables well, pick good function signatures, and leave behind code your future self can read without cursing.
Leveling Up Your Terminal/Command-Line Navigation
Keyboard shortcuts for moving around the terminal faster: cursor movement, history search, line editing, and process control.