2018 Goals

Sport Goals

  • Post a Strava activity everyday (30+ minutes of activity, including weightlifting, running, cycling, swimming, diving, yoga)
  • Reach 180 pounds at any point of year (Currently 170)
  • Earn following specialities, up to 50 dives (18 -> 50 dives, currently at 33 dives)
    • ✅ Rescue Diver
    • ✅ Night Specialty
    • ✅ Deep Specialty
    • ✅ Wreck Specialty
    • ✅ Nitrox Specialty
  • Compete in Sprint Triathlon
    • ✅ Stanford Triathlon (March 3, registered)
  • Run half marathon
    • Oakland Half Marathon (March 25, registered)
  • Complete the Crevasse Rescue Course on Rainier (April 14)
  • Compete in olympic triathlon
    • Half Moon Bay Triathlon (April 22)
  • Summit Mt. Hood (May 19)
  • Compete in second olympic triathlon
    • Santa Rosa, NM (June 9, registered)
  • Double Dipsea
    • (June 16)
  • Tahoe Ragnar
    • (July 20-21)
  • Compete in Half Ironman
    • Ironman 70.3 Santa Cruz (September 9)
  • Run marathon
    • California International Marathon (Dec 2)
  • Complete various cycling routes
    • ✅ Summit Mt. Diablo
    • Circle Lake Tahoe
    • Summit Mt. Hamilton
    • Circle Lake Washington
    • RSVP (August 17, registered)
  • Lead sport outdoors 3 times
    • Pinnacles
    • Castle Rock
    • Yosemite
  • Lead an 10.c outdoors
  • Climb a 12.a in the gym
  • Climb a multipitch route
    • Intro to Multi-Pitch Climbing with Alpenglow (courses available in June)

Goals removed or altered:

  • Will be doing a second ascent, but will be Whitney, not Rainier, Rainier is a stretch goal
  • Leading sport from 4 times to 3 times
  • Doing RSVP in 2 days, not 1, cycling distance PR off the table
Lessons learned building a prototype iOS donation app with ApplePay

On November 8th, I made the initial commit for Donate for iPhone, my first app for iOS. The idea was to build an app that enabled donors to give to a hand-selected list of non-profits through ApplePay.

I find that when learning a new language or platform, it’s best to start with a recommended set of lessons and then jump immediately into a project you’re interested in building. A project aiming to solve an interesting problem keeps a developer motivated and immediately thrusts you into real-world development challenges. I started with the series of lessons through Bitfountain’s The Complete iOS 8 Course with Swift, an up-to-date series using Swift and Xcode 6.

Behind the scenes, ApplePay requires a third-party payment processor to handle the actual charge and thankfully Stripe was a launch partner. When ApplePay is triggered on the device, the user uses TouchID to confirm the payment and then a token is generated. You take this token and pass it to an external API that you’ve set up to handle charges. After successfully charging or rejecting the card through Stripe’s API, you return a JSON response to the app, close ApplePay and display a relevent success or error message.

In the course of the project I learned:

  • IBOutlets and IBActions, using Assistant Editor with Storyboards
  • Autolayout, including autolayout within a scrollview
  • Static and dynamic tableviews
  • cellForRowAtIndexPath, didSelectRowAtIndexPath, numberOfRowsInSection
  • Passing data to controllers using seques
  • ApplePay + Stripe integration, including PaymentKit integration
  • Swift-Objective-C bridging header
  • Creating smooth tableview scrolling with SDWebImage for image calling and caching
  • Moving views up to enable seeing textfield and keyboard simultaneously with TPKeyboardAvoiding
  • In-app notifications with TSMessages
  • UIWebView, including passing and loading URL, back, forward, refresh and stop controls
  • Building a LaunchScreen.xib
  • Interacting with a Rails API using AFNetworking
  • Installing and using Cocoapods
  • Creating app archive and uploading build to iTunesConnect
  • Setting up screenshots, description, app info and submitting to TestFlight Beta Review
  • Adding pull-to-refresh with UIRefreshControl
  • Changing the UINavigationBar background color, text color, and transparency Creating round images with clipsToBounds
  • Creating field validations for email and dollar amounts
  • Using Images.xcassets with 1x,2x,3x assets
2013 LRA Crisis Tracker Annual Security Brief

The @crisistracker team has published the 2013 LRA Crisis Tracker Annual Security Brief, analyzing LRA activity and the continued international response to the crisis. With Paul on writing and analysis, and myself on design, visuals and mapping we’ve worked hard for the last two months to really drill down into the data the @invisible team has collected from the early warning network in DRC and CAR. With Margaux on further data analysis, and Saskia and Maree on the French translation we had a great team contribute to the report.

Major takeaways from the report include:

  1. Ugandan male combatants, comprising the core of the LRA’s fighting force and command structure, lost significant numbers with up to 20% killed or captured over the course of 2013.

  2. Instability in Seleka controlled areas of CAR has created a lifeline for the LRA, where AU-RTF troops in pursuit of Kony have limited reach and LRA mass attacks have increased.

  3. LRA violence has dropped in DRC for the fourth consecutive year, with a 44% reduction in abductions from 2012. When comparing 2008-2010 with the years 2011-2013, LRA killings in DRC have dropped 94%.

We’ve had a great response from policymakers and our partners on the ground, and the U.S. Ambassador to the United Nations spread the word of the report here:

The report extends my work last year to push the reporting from a PDF to a primarily web format. The report is built on Jekyll for templating and uses Bootstrap for base styling. I designed the underlying basemap in QuantumGIS and then uploaded to Mapbox. Datasets were then overlaid and embedded with CartoDB. Visuals were built with Highcharts.

LRA Crisis Tracker API

I started work on the LRA Crisis Tracker API, which provides a REST API to LRA attack, returnee and commander location data. This project later became the backbone of LRA Crisis Tracker Pro, which is replacing the legacy Crisis Tracker.

Technologies: Ruby on Rails, JS, Highcharts.js, Leaflet.js

Donately Auth

I rebuilt Donately’s authentication system, creating a better authentication flow and squashing longstanding errors.

Technologies: Ruby on Rails

Donately Authentication

Loosening Kony's Grip

I led design and cartography for Loosening Kony’s Grip, a report detailing effective defection strategies for today’s LRA. Coverage: Fox News, Yahoo News, Toronto Star, MSN

Form Generator

I engineered Donately’s form generator using Angular.js, giving users the ability to customize their donation form and be able to drop in the customized Javascript into their own website.

Technologies: Ruby on Rails, JS, Angular.js

Form Generator

World Vision Youth

Recently worked with World Vision to internationalize World Vision Youth, working to give users the ability to specify a language and making all text within the Ruby on Rails application multi-language capable. Technologies: Ruby on Rails


Hidden in Plain Sight

I led design and cartography for Hidden In Plain Sight, a groundbreaking report exposing Sudan’s harboring of the Lord’s Resistance Army from 2009-2013 in the Kafia Kingi Enclave Coverage: The Times, Washington Post, Stars and Stripes, Amnesty International

Donately Insights

I contributed to the conceptual planning and lead development of Donately’s new Insights dashboard. Also engineered Donately’s team dashboard, giving Donately staff key metrics on daily donation totals and platform growth. Technologies: D3, Angular.js, Highcharts.js, Ruby on Rails, Redis

International Standards in Casualty Recording

I participated in a working group for the International Standards in Casualty Recording development process, sponsored by the Oxford Research Group and held in Bogota, Colombia in Feb. 2013


Fifty & Fifty

In January I joined Fifty & Fifty, a creative humanitarian studio based in San Diego, CA as a web engineer building Donately, a donation management platform.

2012 Annual Brief

I led the design, cartography and data visualization for the LRA Crisis Tracker 2012 Annual Security Brief. Coverage: L.A. Times, Fox News, Stars and Stripes

Getting Back on Track

Here’s the final release of Getting Back on Track, a report sponsored by 10 human rights organizations providing detailed recommendations to the U.N. Security Council on ending the threat of the Lord’s Resistance Army. Coverage: the Guardian

International Conference on Crisis Mapping 2011

I participated in the 2011 International Conference on Crisis Mapping in Geneva, Switzerland with the Crisis Tracker team.

Following the conference Michael, Chelsea John and I traveled to Paris on the train for some much needed R&R. Stayed in the Latin Quarter in the aptly named Young and Happy hostel.

In a couple short days saw the Arc de Triomphe, Eiffel Tower, Louvre Tour, Notre Dame and Basilique du Sacre-Coeur, took a tour on the Seine and ate at Le Café Constant.

Launch of the LRA Crisis Tracker

I’ve worked as a core team member on the conceptual development, launch and management of the LRA Crisis Tracker, a real-time crisis mapping application aggregating data of attacks by the Lord’s Resistance Army on civilians from 80 early-warning HF radios in DR Congo and CAR. I’ve also led a 3-person team in developing the database schema, codebook, and data quality control of the seed attack dataset.

Coverage: BBC, Fast Company, iRevolution

Oklahoma Holdout

I co-led the Oklahoma Holdout, an 11 day campaign and vigil seeking the release of Senator Tom Coburn’s hold on the Lord’s Resistance Army Disarmament and Northern Uganda Recovery Act. The Holdout broke the last barrier of passage for the most cosponsored-piece of Africa related legislation in at least 37 years, marking the way for a public signing ceremony by President Obama and the first public statement on the LRA by a U.S. President in the 25 year history of the conflict.

Coverage: Daily Kos, Think Progress, Politico, the Oklahoman



In January I joined The Resolve - a humanitarian advocacy organization - as a Legislative Fellow. As a Legislative Fellow I’m responsible for leading meetings with Foreign Affairs staff in the House of Representatives to advocate for the Lord’s Resistance Army Disarmament and Northern Uganda Recovery Act.

New Zealand

Starting in August of 2010, I hitchhiked 2000km+ across the North and South Islands of New Zealand over the course of 4 months, working on farms, doing carpentry work, and learning how to horsetrek in the shadow of Mt. Doom. I trekked on 2 of New Zealand’s Great Walks, the Heaphy and Abel Tasman Tracks on the southern island. In the last month I bungee jumped from the Nevis Platform in Queenstown, freefalling for 7 seconds. More stories to come.