How react-native-ease runs animations with no JavaScript loop
A deep dive into how react-native-ease hands animations entirely to Core Animation on iOS and ObjectAnimator on Android, with zero per-frame JavaScript involvement.
What's actually happening inside Legend List
An interactive simulator showing how Legend List decides what to render, how many containers to create, and where the scroll buffer zones land.
It will take much longer than you think to build a company
An honest look at how founders consistently underestimate timelines — from landing the first customer to building something truly sustainable.
None of it matters until you try
Why the only real way to learn if your business idea works is to stop planning and start trying — even when you feel unprepared.
The Power of patience in software
The underrated skill that separates good engineers from great ones: slowing down to fully understand a problem before jumping to a solution.
What it means to want it badly enough
What 'wanting it badly enough' actually means in practice for founders and builders — turning abstract motivation into concrete, consistent action.
Some thoughts about Practical AI Tooling
Early ideas on what practical AI tooling infrastructure might look like — model hosting, evaluation pipelines, and the product gaps that still exist.
Working with an array of refs in React
How to manage an array of React refs for a dynamic list of inputs, including a pattern for forwarding focus to the next TextInput.
Troubleshooting Type Error Load Failed in React Native
How I tracked down and fixed the cryptic TypeError: Load Failed error in a React Native app — what causes it and how to resolve it.
Simple Script for Expo's Eas Build Notifications in Slack
Expo doesn't currently have a way to send updates when a build succeeds or fails. I created this simple script for Cloudflare Workers.
Time is becoming more precious
How do I make sure that I'm focusing on what's most important?
My Thoughts on Messari's 2023 Thesis
My personal reflections and reactions to Messari's 2023 crypto thesis, covering the macro trends and bets I agree and disagree with.
React Native SectionList Expand & Collapse Guide
Getting a SectionList working with expand/collapse using the extraData prop and a Set data structure.
Getting Cairo, Starkware's Language Up and Running on an M1 Mac
A practical guide to getting StarkWare's Cairo language installed and running on an Apple M1 Mac, filling in the gaps the official docs leave out.
Creating Fun Selfies with Stable Diffusion
How I used Stable Diffusion to generate creative selfie-style images, including the prompts and settings that produced the best results.
Joining Backpack
Announcing that I've joined Backpack to lead mobile engineering and build the future of crypto on mobile.
Setting up Ikea Fyrtur Blinds in HomeAssistant without a Gateway
How to connect IKEA Fyrtur smart blinds to Home Assistant without the IKEA gateway, keeping your existing remote and repeater setup intact.
Quickly delete old git branches with fzf and zsh
A short zsh function using fzf that lets you interactively select and delete old Git branches without hunting through git branch output.
Installing Home Assistant on Ubuntu, The New Way
How to correctly install Home Assistant Supervised on Ubuntu after the documentation changed and the Supervisor panel went missing from Docker installs.
Easily Deleting Deeply Nested Files with fd
How to use fd, the modern find replacement, to quickly locate and delete deeply nested files across a project without complex glob syntax.
Using async / await with reduce in Javascript
A quick, practical example showing how to correctly use async/await inside JavaScript's Array reduce function without losing resolved values.
Using Global Node Modules The Right Way
Stop re-installing the same global node modules for every version of Node
Git Checkout Tricks You've Never Heard Of
Lesser-known git checkout tricks for cleanly removing committed files and cherrypicking changes without the hassle of revert or cherry-pick.
Filing for Blog Bankruptcy
I am *so* fed up of trying to get my blog l00kin' right
Installing & Securing dd-wrt
I recently upgraded my TP-Link Archer c9 version 1 router to use dd-wrt. It’s powerful as it is but the additional…
Protect your Home & Mobile Network with NextDNS
NextDNS is the privacy-enabled tool you’ve been waiting for. It’s like Pi-hole but runs in the cloud. Right now it’s…
FNM: The Fastest Node Version Manager Ever
Why fnm (Fast Node Manager) is the best replacement for nvm and n — written in Rust, it switches Node versions nearly instantly.
Adding Spotify to Home Assistant
Step-by-step guide to integrating Spotify with Home Assistant after the configuration change introduced in version 106 and later.
GraphQL Getting Past Step 3
Practical patterns for moving beyond the GraphQL basics: cache updates, optimistic responses, and structuring queries in a real production app.
Reason Apollo Cache Update Patterns
Practical patterns for managing Apollo cache updates in ReasonML — optimistic responses, refetchQueries, and manually updating lists after mutations.
Learning Higher-Order Components in React
We're building a general purpose loading screen
Your first ReasonML PR into an existing React Native Codebase
Type-safe, fast with a similar syntax to javascript makes it an obvious choice.
Taming React Native’s ScrollView with flex
Is it flex? Is it the ScrollView?
Shaving 2 Minutes Off Our Graphcool Deployment Times
In as little as 1 minute
Environment Variables in Expo using Release Channels
Makes it easy to release to multiple environments
Command Line Tip: Lowercase all file names in a given directory
If I didn't write about it, I'd forget it.
Thoughts on Structuring your Apollo Queries & Mutations
After using Apollo for the last few months, I've picked up some great patterns
Apollo Tote, Declarative Patterns and a Sneak Peek into Apollo 2.0
A guest post on the Apollo GraphQL Blog
Building High Performance Web Apps with Emotion and Next.js
How to use Emotion, one of the fastest CSS-in-JS libraries, with Next.js to ship performant server-rendered styles with an API similar to styled-components.
9 Things I Wish I Knew When I Started Writing Code
I’ve been paying it forward for the last two years by teaching newer programmers how to craft their code. On an informal basis, I’ll guide…
5 Vim Plugins I Can’t Live Without for Javascript Development
I’m constantly looking for ways I can improve my workflows and development environment.
Speeding up Git with SSH Config
A simple SSH config trick borrowed from Paul Irish's dotfiles that noticeably speeds up Git operations over SSH connections.
Save 20px by Going Frameless and Getting Rid of Atom’s Title Bar
That's an extra line of code in your editor!
React Router Authentication
An easy way to route based on a logged in user
Quickly Preview iTerm2 Themes Without Having to Import Them First
Faster access to themes
Thoughts on Becoming a Better Developer
Reflections on what separates truly great engineers — deliberate practice, deep thinking before coding, and lessons from watching world-class developers work.
React Native Android & Custom Fonts Checklist
A checklist to make fonts easier to manage
Operator Mono & Fira Code — The Best of Both Worlds
Making your terminal editor font beautiful
Implicit imports in Webpack using ProvidePlugin
Get rid of commonly used import statements
Working Through cannot find module unicode/category/So in Keystone
Fixing Keystone's unicode problem
