Bio

What are you currently working on?

Testing Taxi

Testers shouldn’t need to create tests for functionality even a computer can understand. Testing Taxi unit tests your web application like a self-driving car with zero supervision required.

https://testing.taxi

Status List

Uptime monitoring, debug tools and hosted status page in one service.

https://statuslist.app

Consulting

I do software consulting with a twist of business included for good measure. My consulting work operates under the name Blue Giraffe Software (https://blue-giraffe.ca)

Everyone asks about the name Blue Giraffe, so I’ll explain here. Easy to remember names have two common things that are unique when you combine them. Blue is my favorite color. And I’m tall, like a giraffe.

I’m very privileged to work with so many unique business folks. It’s a blast. Here’s a couple samples.

Water Monitoring Device Software

For a local company that builds water monitoring devices. I maintain a windows-based, client-installed software that supports the devices. The software communicates with their custom chips and does some data analysis.

Insurance Business Management Software

For a local company that builds water monitoring devices. I maintain a windows-based, client-installed software that supports the devices. The software communicates with their custom chips and does some data analysis.

For a large insurance company that handles several thousand claims per day. I work with a small team of engineers maintaining a legacy workflow application. The software is a web-based application that supports their core business activities.

I’m involved in software architecture, planning, business requirements, maintenance, construction and team management.

Trucking Business Management Software

For a local trucking company that moves large modular buildings. I consulted, designed and maintain a management system. The system has a web application for the in-office folks and a mobile app for the drivers.

What projects have you tried and failed at?

Product Sonar

A competitive intelligence and monitoring solution for hardware stores.

WkHTMLtoPDF Service

A RESTful WkHTMLtoPDF rendering service so you don’t have to setup or maintain infrastructure.

QuickReceipts

An easy way for non-profits to track and issue Canadian tax receipts.

MortarQ

An inventory tracking and analysis system for small manufacturing companies.

Where have you worked as an employee?

Ladder Software

Ladder was a small company, 4 people when I started, that made child care business management software.

The engineering team started out with only 2 of us and that grew to 6 by the time I moved on. I was very privileged to work on a wide variety of technical and management problems while I was there. Here’s just a few of the things I worked on.

Service-based Refactoring

The application structure made it quite difficult to maintain. The logic was encoded in sometimes giant procedural controller methods or stored procedures. The procedures meant that distinct features implemented many times, sometimes in contradictory ways. Some of the identical features were also spread over 3 applications.

We were able to address this with a service-based architecture on the server side. We grouped logics related to individual features into their own services and methods. Part of this was migrating complex stored procedures into smaller LINQ queries. With these two techniques, over several years we were able to make some big improvements.

jQuery -> Angular

The original application was built in ASP.NET MVC with jQuery on the client side. Over my time there we received more requests for complex client side features. We already had Angular in the code base, so it was a natural solution for complex client side logic. We were able to move some of our more complex jQuery pages into Angular. This made a big difference in maintenance.

Database Optimization

During my time at Ladder the customer base grew quite a bit. Some of the application’s database interactions didn’t scale well with the data. Unfortunately, we didn’t have the resources to change data-access patterns. I spent a lot of time optimizing queries, indexes and adjusting infrastructure.

I was able to leverage a couple things to our advantage. I adjusted where-clauses and joins to take best advantage of indexes. I implemented some of Ola Hallengren’s (https://ola.hallengren.com/) scripts for auto-optimization. I also adjusted indexes as necessary.

Team Lead

As our team grew, I had the role of team leader. I enjoyed helping other devs and advocated for them. I spent quite a bit of one-on-one time with our team. I would onboard the new devs and mentor the junior ones. I would discuss solutions with the more experienced ones.

I also helped in recruiting and performance evaluation. I would perform the second screening for engineering candidates and attend final interviews. As it came up, I would discuss performance with co-workers throughout the year. Once a year, I would provide a performance evaluation to our management team.

Project Management

As the company grew, project management suffered. We didn’t have enough resources for a full time PM, so I filled the gap. I spent quite a bit of time doing requirements, prioritization, planning and communication.

We started by managing via a support person’s notebook. By the time I handed off my responsibility to a PM, we were using a dedicated project management software.

You can check them out at https://runsandbox.com

University of Ottawa – Sunlab Data Collection

The Sunlab does solar panel research and testing. They have a lot of field sensors that each had its own manual control and data collection method. I spent a summer organizing data and creating a master control application. The control application was a single software that interfaced with all their sensors. One of the big challenges with this project was writing all the custom device interfaces.

PF Software

I spent a summer migrating a Microsoft Access application to a web application. It was a long time ago, that’s about all I remember.