The Art of Engineering

Engineering, Art, and the Things in between

The portfolio of Stephen Barnes



I've had the opportunity work on a number of things such as 3D, real-time training simulations, babysitting apps, retail apps, and wearables/fitness apps.  Along the way I've had fun writing shaders in GLSL for an OpenSceneGraph based graphics engine.  I got to architect and build useful libraries such as RZTransitions.  And best of all, I got to work with a whole lot of really smart people to teach me things along the way.


Flock was a personal project started at USC under the GamePipe Laboratory and was built with the Unreal Development Kit targeting iOS, Mac, and PC. Built as an ambient, arcade crossover game, Flock was based on the steering forces AI that the player collects.

Read More



3d Spherical Pathfinding

Writing, Speaking, and Teaching


AltConf 2016

Bring Your App To Life with CALayers

Presented at AltConf 2016 with a massive cold - the sponsor Realm did a wonderful job filming and transcribing the talk!

The talk is a slightly updated verion of the one presented at UIKonf that covers using Sketch, PaintCode, and CALayers to create great animations.


UIKonf 2016

Bring Your App To Life with CALayers

The first iteration of a talk covering Sketch, PaintCode, and CALayers to create great animations. It uses examples from the Hourly Activity section of the Fitbit app as examples.


#HelloWorld 2016

Responsive UI for Asynchronous Data

Talk given at the Twitter Boston office. The discussion focused on the space in between a datastore and the user interface as well as when to use data binding and when to use observable collections. Also discussed considerations you should take when you have millions of users, and some of the approaches Fitbit has taken to provide a great user experience when dealing with lots of data. & 360|iDev

Android 101 for iOS Developers

What started as a guide for iOS developers curious about Android in spawned a host of code, talks, and articles based around increasing cross platform knowledge between these two worlds. Both iOS and Android developers are solving similar problems, but in slightly different ways on their respective platforms. I would like to encourage developers (and designers!) to step out of their comfort zone and take those problem solving skills with them. Increase your communication between teams by understanding some of the core components and techniques used on their competing platform. Design better APIs and approach app structure from a much more informed decision.

Who knows, maybe you'll find out that you like the other side more than you thought.

Code and slides available via Github:


Fitbit Engineering Blog

Bridging the Gap Between Design and Engineering

Written in 2016 using the updated weight goals design as reference. This blog post covers tools and techniques for working closer with design.


Additional Speaking Engagements and Writing

  • mdevcon, 2015.
    • Design 101 For Developers
  • 360|iDev, 2015. 360|iDev min 2014.
    • Android 101 for iOS Developers
  • AnDevCon 2013, 2014, 2015.
    • iOS Development 101 for Android.
    • The Art of Building Reusable UI
    • Android 101 for iOS Developers

The Right Side of the Brain

Digital Artwork

Sketches & Natural Media