I am a continual learner, always seeking to improve myself and my craft. I’m not afraid of finding out that I’m wrong and learning a better way to do things. I honestly enjoy programming and the process of bringing ideas and specifications to life. Writing clean code is a passion of mine and so a primary goal is to always write well designed code that is easy to change and also easy to test. I’m an avid user of automated testing tools and generally practice a test-first approach to development.
In addition I have experience with the following related technologies:
- Databases: PostgreSQL, MySQL, Redis, MongoDB
- Linux server administration and application deployment
- Front-end web development: HTML, CSS, Sass, responsive design
- Automated Testing: Rspec, Capybara
- Version control systems: Git and Subversion
- Preferred developer tools: Vim and Tmux
Lead with Purpose, Senior Software Engineer
April 2015 - Present
I also build native mobile apps for iOS and Android in Flutter. These apps consume the Rails API and provide Lead with Purpose users with a customized mobile experience.
Glass Canvas, Software Developer
March 2017 - March 2018
Provide Chat, Co-founder / Software Developer
January 2009 - 2017
In addition to my duties as lead software developer, I help to manage the company operations and interact with our customers and partners.
iCan Systems Inc., Senior Software Engineer
January 2008 - March 2017
My primary work with iCan Systems involved building their web technology platforms, specifically Smartsettle One, a web application designed for simple, single-issue, two-party negotiations. The application has many use-cases including areas of debt and conflict resolution. I also built the International eNegotiation Exhibition, which has seen the involvement of universities from over 30 different countries, and Dutch eAuction which integrates the Smartsettle negotiation engine into an auction paradigm.
iCan Systems Inc. is a leader in developing software for the emerging eNegotiation industry. Their software implements algorithms which are based in the field of game theory, involving mathematical models for resolving conflict and encouraging cooperation between decision makers.
Lusora Inc., Software Developer
2004 - 2007
Lusora was a leader in developing embedded health and elder patient care technology. I was the primary developer of a Java server platform which was a communications hub for Lusora’s embedded health care devices. The embedded devices would connect to the server and send updates and alerts, then the server platform would also send down commands and updates to the devices. Additionally I built a Java-based web application (using Tomcat/JSP) that would allow the monitoring and management of these embedded devices.
Calltrex, Software Developer
2002 - 2003
At Calltrex I was the lead software developer on a team that developed custom web applications for call centres. I managed asterisk PBX servers and build custom web applications that would tie into the asterisk PBX and provide integrated functionality to call centre agents.
Shopping Sherlock, Software Developer
1998 - 2001
Was the lead software developer on a team responsible for developing e-commerce web-based applications. We built several custom online shopping applications initially using Perl and then migrated over to PHP3. One of our goals was to leverage open source technologies as much as possible and so we developed our applications on Linux, Apache, MySQL and other open source technologies.
Bachelor of Technology, Kwantlen Polytechnic University
Diploma in Computer Information Systems, Kwantlen Polytechnic University
Since 2016 I have served as one of the leaders for the 1st Central Surrey Cub Scouts.