Burning Robot

Photograph of John

Hello. My name is John and I write code.

Here are a few things I have created.

Looper – Super GIF Camera

Screenshot of Looper cameraScreenshot of gif in MessagesScreenshot of Looper gif player

Create your own GIFs!

  • GIFs loop forever, preserving the precious moments of your life for all time
  • Each frame is lovingly enhanced, so you always look your best
  • iMessage GIFs to your friends to win their affections
  • Wow your professional colleagues by including GIFs in your email

Built with

B-View 2

Screenshot of the B-View cameraScreenshot of the B‑View painting detectorScreenshot of the B‑View painting explorer

Experience the interactive art exhibit

  • Explore G. Wiseman's B-Paintings 1-9
  • Reveal nine versions of each B-Painting
  • Uncover works spanning four years
  • Awarded PNCA's Best Painting for 2015

Built with

  • iOS 8
  • Swift 1.2
  • AVFoundation
  • iBeacon
  • CoreBluetooth
  • CoreImage
  • CoreLocation
  • UIKit Dynamics

Bike Maps

Screenshot of Bike Maps searchScreenshot of Bike Maps routingScreenshot of Bike Maps location detail

Get fast, safe bike directions on your iPhone and get riding

  • Search by keyword or address
  • Get bike directions from your current location
  • Quickly get directions using your address book

Built with

  • iOS 6
  • Objective-C
  • MapKit
  • CoreLocation
  • Google Local Search
  • Google Maps
Gently retired, not available for download


// Write this 💎✨
addConstraint(label.layout.width <= superview.layout.width / 2 + 20)

// Instead of this 💩
addConstraint(NSLayoutConstraint(item: label, attribute: .Width, relatedBy: .LessThanOrEqual, toItem: superview, attribute: .Width, multiplier: 0.5, constant: 20))

Algebraic AutoLayout

  • AutoLayout code you can actually read
  • Simple, intuitive syntax
  • Easy installation with Carthage
  • Released under the MIT license

Built with

  • Swift 1.2
  • Carthage

Let's make beautiful apps together.

Drop me a line.