Mobile Developer & Designer
Mobile First
Veteran mobile developer that was building and designing mobile apps, before mobile apps were cool ;)
Experience
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.
Skills
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.
TenFour
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.