I’m a full stack developer with nearly a decade of experience building applications with React, Ruby on Rails and other web technologies. I started my software development career ten years ago with Wordpress, jQuery and backbone.js. Five years ago I started doing backend development using Rails. More recently I started building my own SaaS product using Node.js. I have worked on teams of various sizes, using variations on SCRUM and Agile development processes.
I care about building software with an emphasis on readability and maintainability. I have recently returned to Canada after spending 6 years in Australia and am currently available to join a team in Edmonton or any remote team. I am comfortable working independently, in a team or remotely. If you would like to get to know me better please contact me through the options below:
- Ruby On Rails, MVC, Object-Oriented, Design Patterns
- Jest, Mocha, Rspec, e2e, Capybara, Selenium
- HTML, CSS, SASS, LESS, Bootstrap, TailwindCSS
- AWS, S3, EC2, Linode, Ubuntu, Docker
- CI/CD, Gitlab-CI, Git
- React.js: I have five years experience creating user interfaces with React.js and various state-management tools including Redux.
- Ruby on Rails: I have used this Object-Oriented MVC framework for the past five years to create RESTful JSON APIs, as well as server side rendered applications.
- Automated Testing: I have experience writing unit tests in TDD workflows, as well as writing end-to-end tests. The testing and automation tools I have most experience with are Jest, Mocha, Capybara, Selenium and RSpec.
- Continuous Integration and deployment (CI/CD): I have experience using and configuring CI/CD tools like SemaphoreCI and Gitlab-CI.
- IaaS/PaaS Products: I have used Amazon S3, EC2 and Linode to configure infrastructure for various applications. For the past eight years I have maintained my own VPS with Linode for personal projects.
- User Experience Design and Client Requirement Gathering: In all my roles I have been involved in the process of designing solutions to meet business needs. In my most recent role I often interacted with clients to discuss their specific business requirements and to collaboratively design user experiences to achieve business goals.
- HTML + CSS: All of my roles have included front end development using HTML and CSS. I have used numerous tools to write CSS and style applications. Some of these tools are SASS, LESS, PostCSS, Bootstrap and Tailwind CSS
- Node.js: Recently I started development of my own SaaS product using Node.js with express.js
Employment & Education
Software Developer at Two Red KitesFebruary 2019 to October 2019
I worked on numerous projects for smaller businesses and organisations. I regularly communicated with clients to capture their requirements, assess the scope of the work they requested and designed solutions for their specific business needs. A large portion of my work focused on enhancing the look and feel of older applications. I also dealt with maintenance items such as fixing bugs. The majority of my work was focused on Ruby On Rails applications with erb templates, jQuery and Bootstrap.
I became very familiar with many ruby gems used for rendering pages server-side such as Formtastic, Cocoon, and Administrate.
Developer at Genie SolutionsFebruary 2018 to December 2018
I helped build a medical practice management cloud SaaS product using RESTful APIs and a React.js user interface. I worked on the team responsible for the invoicing modules and integrations with third-party services like PowerBi. I became familiar with the nuances of end-to-end testing strategies using Cucumber and Capybara. I learned communication strategies to help me advocate for the adoption of Continuous Deployment and other good development practices. Through the opportunity of brown-bag presentations, I introduced many of my colleagues to design patterns I had learned at my previous workplace.
I took initiative in identifying technical debt that was significantly slowing development of invoicing modules. I drafted a comprehensive report for the product owner explaining specific problems with the relevant modules. I used static analysis tools to quantitatively support my argument and chartered a strategy to incrementally improve the relevant code in preparation for new features to be added.
Software Engineer at everydayheroSeptember 2014 to November 2017
The team at everydayhero was large with many mentors available to teach me about various design patterns and practices to build high quality software. We built Single Page Applications (SPAs) using cutting edge tools such as React.js and Webpack. The backend for these applications were Ruby on Rails applications with a RESTful JSON API. The interfaces we built were used by charity administrators to manage their campaigns.
We emphasised comprehensive testing and test driven development using unit tests and end-to-end feature tests. This was done using Cucumber and Selenium web-driver as part of our continuous integration (CI) workflow. I also made contributions to the reporting application built with Elixir to deliver reports to charities about their donors and donations.
HTML5 Developer at Lixar I.T.September 2012 to September 2014
Developed and styled applications for embedded and mobile platforms using HTML5 and CSS3. Developing new features and providing support for legacy web-applications on a C#.Net platform. In this role I was working on both small and large teams in close communication with project managers and team members.
Freelance Web DeveloperAugust 2012 to October 2012
Worked on the creation of Flash ad banners. Built a small CMS for in store display with CodeIgniter and MySQL.
Web Developer at Victory ArtsMarch 2011 to August 2012
Interactive Multimedia Developer Diploma Student at Algonquin CollegeSeptember 2009 - May 2011
Learned the basics of design, digital photography, video production, motion-graphics and web technologies.
Web Developer at Canadian Forest Tree EssencesJune 2010 - September 2010
Set up an stock photography e-commerce site with a custom theme and collaborated with client to create a workflow for uploading images.
Bachelor of Fine Arts Student at University of LethbridgeSeptember 2004 to May 2008
The art studied at this faculty focused on conceptual art of the late 20th century. My practice was heavily focused on conceptual art and rigorous processes. Concepts were explored by designing a methodology and process that would then be carried out to completion. In presenting the art the experience and knowledge of viewers was assessed and considered to ensure the concept was conveyed in a meaningful way
Graduated with distinction.