Maximum Effort
Posted on
A few of my coworkers and I say “Maximum Effort” to each other a lot. Don’t confuse Maximum Effort with perfectionism.
per·fec·tion·ism noun
refusal to accept any standard short of perfection.
Our team is called Design Systems. We make trade-offs on a daily basis. Our job is to maintain a bunch of components, tools, documentation, technical infrastructure, design guidelines, etc. The goal is to make all of the UI more consistent and to make the teams using the design system more productive.
Custom Mechanical Keyboard
Posted on
I ordered a mechanical keyboard from WASD Keyboards awhile back. I got Cherry MX Brown switches. The still have a satisfying click but aren’t insanely loud like greens or blues. After having it for awhile, I decided to get dampers for it to make it even quieter. This made it feel too squishy and I removed them.
A few months in, I decided to design new keycaps. It’s fairly cheap to order a new set, so you can change your mind often if you’re into that. Here’s my latest iteration:

Bundle Command Line Tool in macOS App
Posted on
I spend a lot of time in Terminal. There are several things that I’ll reach for in Terminal before something like Spotlight or Alfred. Here’s an example:
The s alias is defined as:
This simply opens the current directory in Sublime Text, my editor of choice. I really love how fast this let’s me get started on something. I first ran into this pattern with TextMate’s mate command. So great.
Aggressively Hiding the Cursor
Posted on
I’m working on a Mac app that has a color picker in it. Here’s a screenshot:

For this to work, I hide the cursor and have a custom view track your mouse movements. (When I say cursor I mean the pointer on screen you control with your mouse, and when I say mouse I mean your physical input device.) I use a full screen, borderless window and NSTrackingArea to do this. Nothing too crazy there. I do this to avoid dealing with custom a NSCursor since that was a lot more work.
Automating Simple Things
Posted on
Most of my projects contain a Rakefile with some common tasks. rake is Ruby’s tool for running tasks. It’s my tool of choice for little scripts, but you could of course do whatever you want. My friend Ayaka even did a talk on scripting with Swift!
Usually my scripts are for something tedious that can be easily automated. Here’s a few examples in my own projects:
Some of the most elaborate scripts I’ve written in projects have been to automate gathering dependencies. This can be complicated depending on your setup. My goal is always for someone that isn’t a developer to clone, run the command, open Xcode, and build. That may seem like overkill, but if you make it that easy, you make it that easy for yourself and teammates which saves a ton of time.