It will take much longer than you think to build a company
One of the most overlooked parts of building a business is time. From the time it takes to close your first customer to…
None of it matters until you try
Building a business is very hard. It’s quite frankly one of the hardest paths to take when it comes to making money…
The Power of patience in software
I think the secret to becoming a great software engineer is actually really easy, but often overlooked. When your…
What it means to want it badly enough
I was recently asked what it means to “want it badly enough” in a sub-comment on Reddit and I thought I’d share my…
Some thoughts about Practical AI Tooling
I think I have a couple of ideas for what some of the tooling, infrastructure or products around AI might look like in…
Working with an array of refs in React
This is how you’d tap “next” to select the next TextInput when you have an arbitrary amount of inputs Say that you…
Troubleshooting Type Error Load Failed in React Native
I recently struggled with fixing an cryptic error message: in my React Native app. I’m running a service worker within…
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
Some opening thoughts I’ve been a fan of Messari’s Theses since 2018. Ryan can be annoying on Twitter, but I think we’d…
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
Cairo is a powerful language. Their developer docs could use some work 😅 I was going to PR this until I realized their…
Creating Fun Selfies with Stable Diffusion
It’s been fascinating to watch all the big updates coming to Stable Diffusion v1 and v2. I’ve created a Notion doc where…
Joining Backpack
I’m thrilled to announce that I’ve joined Backpack to lead mobile engineering 🎉 I recently stepped down as Draftbit’s…
Setting up Ikea Fyrtur Blinds in HomeAssistant without a Gateway
Setting up IKEA’s Fyrtur blinds with Home Assistant is easy. No gateway required. My blinds were previously controlled…
Quickly delete old git branches with fzf and zsh
Do you fall victim to having a million branches when typing in ? It’s a pain. I wrote this quick helper that lets me…
Installing Home Assistant on Ubuntu, The New Way
Have you recently tried installing Home Assistant on a new Ubuntu box? The installation docs are different and the thing…
Easily Deleting Deeply Nested Files with fd
is a modern replacement to the unix util called . MacOS has all of these installed by default but they’re really out of…
Using async / await with reduce in Javascript
I got stumped trying to figure out how to use async / await. Here’s how you do it: Pretty sick huh
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
Want to know one of my favorite git secrets? It has to do with . Sometimes you’ve made and committed files that shouldn…
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
We’ve been using , and maybe even for years to manage our Node.js version. They have been good enough until now. fnm…
Adding Spotify to Home Assistant
Home Assistant recently changed the way Spotify’s configured so I wrote up a guide. This works with most versions of…
GraphQL Getting Past Step 3
GraphQL is becoming one of the most popular data query libraries in the world. This is a talk that I’ve converted into…
Reason Apollo Cache Update Patterns
are great when you need to refetch data that’s not easy to handle with cache updates. Updating the cache using an…
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
If you haven’t heard of Emotion yet, it’s one of the fastest CSS-in-JS libraries to date. Its API is similar to styled…
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
I’ve been snooping around Paul Irish’s dotfiles and discovered this gem. I instantly noticed the difference and…
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
I’ve been thinking a lot about how I can improve my productivity as a technical startup founder. “Work smart, not hard…
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