A RESTful WkHTMLtoPDF rendering service so you don’t have to setup or maintain infrastructure.
You can check it out at https://wkhtmltopdfservice.com/
A monitoring tool that keeps an eye on your RESTful service providers. You can check it out at https://statuslist.app
An easy way for non-profits to track and issue Canadian tax receipts. You can check it out at https://quickreceipts.ca
An inventory tracking and analysis system for small manufacturing companies.
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 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.
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.
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.
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.
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.
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.
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.
- Building a nice Postgres / Golang / HTTP StackI’ve been struggling to find a nice set of frameworks for my day-to-day work. Yes, I’ve got those big packages like Golang, React, React Native, Postgres, TimescaleDB … but I’m talking about the finer things. Like how to setup your server-side routing and authentication in a nice way. Or how to deal with authentication and […]
- Hello world!This post marks the beginning of something new. This post is really just here because it makes me happy to start new things with “Hello world!”.