I make software and write.
Want to reach me? Send me an email or message me on Twitter.
- Stash—the personal finance mobile app that makes you a money-saving badass as Maker
- Taplytics—the mobile optimization platform as Head of Architecture.
- Segment—the customer data hub where as one of the first engineers I built much of the platform
- Basecamp—the project management tool as a prototyper to revamp how they do mobile (formerly known as 37signals)
-
timecop—a gem providing “time travel” and “time freezing” capabilities, making it dead simple to test time-dependent code.
- TRVSClangFormat
—Xcode plug-in to use Clang's format tools and consistently format your code.
-
Jocko —distributed commit log, i.e. Kafka implemented in Golang.
-
mocha—a simple, flexible, fun javascript test framework for node.js & the browser. (BDD, TDD, QUnit styles via interfaces)
-
ecs-deploy
—CLI tool to easily deploy your ECS services.
-
ecs-exec
—CLI tool to run commands your ECS container instances.
- See my GitHub profile for the full list…
-
Building a Kafka that doesn’t depend on ZooKeeper
19-01-17
-
How Kafka’s Storage Internals Work
13-10-16
-
Monitoring with InfluxData's TICK stack
23-09-16
-
Techniques to Achieve High Write Throughput With Elasticsearch
08-06-16
-
Using Golang and JSON for Kafka Consumption With High Throughput
09-05-16
- EC2’S Magical Address to Get Instance Metadata 29-11-16
- Graphing Kafka Offset Lags With StatsD 26-03-16
- SSH into EC2 Instances By Instance Id 30-11-15
- Outbound connections from Docker with VirtualBox not working? 17-11-15
- Building a custom Zendesk app 10-11-15
- Library and Lambda function to show your Rdio Heavy Rotation on your website 24-10-15
- Error responses on Node.js with Koa 21-10-15
- Building Infrastructure with Docker, AWS ECS, and Hashicorp's Terraform 07-10-15
- Piping into a docker container 25-09-15
- Animated nyan cat in the terminal 25-06-15
- Re-architecting the api 25-03-15
- How to hide Chrome's notification icon in the menu bar 24-07-14
- NSURLSession and NSOperationQueue working together = TRVSURLSessionOperation 17-06-14
- Added support for promises in mocha v1.18.0 14-03-14
- Jasmine-jQuery v2 adding support for Jasmine v2 13-01-14
- Writing @ prefixed macros 10-01-14
- My Xcode plug-in to have Clang format/style your code using the new clang-format 07-01-14
- Text processing with NSLinguisticTagger: implementing Writer Pro's syntax control 25-12-13
- Preventing 'IB auto generated at build time for view with fixed frame' when using Auto Layout 28-11-13
- URL Linking in a non editable NSTextView 09-11-13
- Using UIImage, UIColor, UIFont code on mac os x 02-11-13
- Using TextKit to put an image in a text view 20-10-13
- How to know when a UIScrollView (includes UITableView, UICollectionView) finished scrolling 19-10-13
- Server-sent event event source api client in objc for ios and mac using nsurlsession 12-10-13
- Async testing with xcode and any testing framework such as xctest, sentestingkit, expecta, etc. 11-10-13
- Writing your own Emacs interactive functions with completion 10-09-15
- `git author sha` - get author info for a given sha in git 05-10-13
- Xcode attaching to app running in simulator not working 03-10-13
- Basic authentication with afnetworking 2 27-09-13
- Disable microphone muting when typing in google+ hangouts 24-09-13
- Scroll to the very bottom of a uicollectionview 19-09-13
- Testing javascript projects with grunt, jasmine, and jshint 03-09-13
- Installing ruby with rbenv and homebrew on os x mavericks 24-06-13
- When google chrome won't open itunes links 04-06-13
- Getting the status bar's height in ios 06-05-13
- Converting avfoundation's power levels to/from logarithmic and linear scale 08-02-13
- Notify yourself of successful/failed xcode builds by email 17-01-13
- Overriding uiviewcontroller's view property, done right 28-12-12
- Quick staging and other file operations in git 01-11-12
- Making custom transitions between uiviewcontrollers 22-10-12
- Alias in zsh with completion 08-08-12
- iOS how-to mask and shadow an image 06-08-12
- Adding a drop shadow to a table view 23-07-12
- Getting the index path of a table view cell via a subview event 22-07-12
- Rendering errors in json with rails 27-04-12
- How-to test starting backbone's history 16-04-12
- Web inspector's new dock to right feature 01-04-12
- errors.js - client side errors object 30-03-12
- What is this? i don't even... bind this to your object in javascript! 29-03-12
- JavaScript conditional assignment 20-03-12
- Generate rails migrations that automagically add your change 16-03-12
- Using git's include for private configuration information (like github tokens) 09-03-12
- Find rails partial references in vim 23-02-12
- Using postgresql's hstore with rails 20-02-12
- Tidying up with the power of :g 17-02-12
- Modern grep 09-02-12
- Search a git repo like a ninja 02-02-12
- Zsh's extended glob, and octopress's new_post script 30-01-12
- Comments, and automatically folding them in vim 17-01-12
- Building regexps in javascript 05-01-12
- Expressive domain specific languages (dsl) in ruby 28-12-11
- Keeping your git repo clean of .orig files! 03-12-11
- Saving files in nonexistent directories with vim 28-11-11
- Markdown headers in vim 18-11-11
- Mess up a rebase? reflog your problems away 31-10-11
- M-x occur for vim 31-10-11
- Hello. yes, this is blog. 29-10-11