I am a fullstack software developer with over 21 years of experience building mobile and web applications.
For the web, I believe Rails is not just a development framework but also a development philosophy teaching principles like MVC, DRY, KISS, and separation of concerns. I’ve carried those same principles into everything I build regardless of language.
For mobile, I began developing apps back in 2003 on the first generation of smartphones, long before iOS or Android existed. Since then I've helped corporate clients, nonprofit organizations, and UN agencies develop mobile apps to gather data, engage their community, and empower citizens.
The same mobile design principles I learned in those early days like utilizing limited screen space and handling unreliable connections still apply today, and continue to help me build world class mobile and web applications.
Some of the incredible organizations I've had the opportunity to work with over the years.
Some recent projects I'm proud to have helped bring to life. Wanna see more? Checkout all my past projects.
Receive scheduled summaries for your issues, milestones and pull requests.
New tab extension for Chrome that makes it fast and easy to find and search through your bookmarks and history.
Emergency checkin system making it easy to triage communication so teams can stay up to date during a crisis.
An iOS and Android prototype to showcase the city's open data initiative, displaying AED locations across Saskatoon.
Here are some of my popular repos on Github.
Turbo-iOS base project that's entirely driven from your backend Rails app.
Rails 6 project sharing some strategies for using Rails 6 with Webpacker, Vue, and Bootstrap.
GitHub Action to attach GitHub commits and pull requests as a comment in a Trello card
The following principles guide me in everything that I develop, whether it's my own initiative or for clients.
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.
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.
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.
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.
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.
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.
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.
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.
Kind words from some the incredible people I've had the opportunity to work with.
Interested in a past project? Wanting to collaborate? Let's connect, I'd love to hear from you!