Mobile Developer & Designer

Mobile First

Veteran mobile developer that was building and designing mobile apps, before mobile apps were cool ;)

I am a senior software developer and architect with over 21 years of experience building and designing mobile and web apps.

I began developing apps back in 2003 when the first generation of smartphones were just being released, long before iOS or Android even existed.

Since then I've helped corporate clients, nonprofit organizations and UN agencies develop mobile apps to gather data, engage their community or empower citizens using mobile technology.

The same mobile design principles I learned in those early days like utilizing limited screen space and handling unreliable connections still apply even more today, and continue to help me build world class mobile applications.

Ruby on Rails
Ionic Framework
Angular & Vue.js
Native iOS
Native Android

Past Clients

Some of the incredible organizations I've had the opportunity to work with over the years.

Recent Projects

Some recent projects I'm proud to have helped bring to life. Wanna see more? Checkout all my past projects.

Ushahidi, April 2018

Emergency checkin system making it easy to triage communication so teams can stay up to date during a crisis.
android crisis disaster ionic ios pwa

Ushahidi Mobile

Ushahidi, March 2017

Mobile app for Ushahidi's mapping platform providing offline capability to view and gather reports from any deployment.
android crisis disaster ionic ios mapping

Core Principles

The following principles guide me in everything that I develop, whether it's my own initiative or for clients.
Keep It Simple

Although it's one of the earliest things you learn as a software developer, too often we forgot the KISS principle and over complicate things. If you're having to jump through several hoops to make something work, you're probably doing it wrong.

Don't Repeat Yourself

Ruby on Rails isn't just a framework, it's a philosophy on how to develop great software. Being a Rails developer, the DRY principle is now baked into my DNA and something I incorporate into all software that I develop, including mobile and web.

Follow UI Guidelines

Apple and Google have invested millions to establish industry UI Guidelines and UX Best Practises, it's important we follow and embrace these guidelines to ensure the things that we design and build should already be familar to our users.

Design With Constraints

Contrary to common belief, constraints can be good for design helping keep things focussed and avoiding scope creep. It's especially important on mobile considering the small screen size, limited processing power, and unreliable internet connection.

Don't Reinvent The Wheel

There are so many well established frameworks, plugins and modules out there, it seems crazy not to utilize them when possible. Too often developers reinvent the wheel, when so much time and pain could be avoided by reusing existing components.

Keep It Consistent

Consistency is so important, within an application as a whole but also with the target platform. Following target conventions are so important, the app should should be instantly familiar to a user, they shouldn't have to learn how to use.

Should Work Offline

Although we live in a ultra-connected world, it's still incredibly important today to ensure that apps work gracefully offline, caching data locally to ensure they are fast and responsive when internet connection are unavailable.

Self Documenting Code

Self-documented and well-formatted code isn't just cleaner and easier to understand, it's pure poetry! It can also improve the overall design of the program, help reduce bugs, and make it easier for others to maintain.

Kind Words

Words of praise from some the incredible people I've had the opportunity to work with.

Contact Info

Have an idea for an app? Interested in a past project? Send me a message, I'd love to hear from you!
Message Me