I’ve been a freelance software developer since 2007 and was a building automation controls technician between 2011 and 2017. You can find my GitHub profile here and my LinkedIn profile here.

I run a Mastodon instance for the Canadian Maritimes.

Education

Self-directed

I spent most of my childhood tinkering with obsolete, free computers. I learned a lot, and turned some cables into pink smoke too. By 13 I was making text-based games in C and tinkering with different distributions of Linux. Around 2007 I began freelancing as a Perl and ASP.NET programmer. That Perl experience gave me transferrable regular expression skills that changed the direction of my career.

University

I knew I wanted to be some kind of engineer, and I knew that I had an aptitude for computers. I imagined that information technology jobs would reside in windowless cubical prisons; I wanted to do something physically connected with the world around me. Mechanical Engineering seemed like a broad door-opener for that. I graduated with a Bachelor of Engineering from Toronto Metropolitan University1 in 2011. By the end of that degree I had a similar bias against junior engineering jobs.

I paid for most of my tuition by working as a freelance software developer. I loved the flexibility and relatively high hourly rate the work commanded. At the time it didn’t seem like a long-term possibility.

Career

Building Automation

Honeywell

My first “big company” experience was as a field automation technician with Honeywell Building Solutions in Toronto. My BEng foundation and computer aptitude allowed me to excel and develop expertise. I got to work all over the GTA and meet different people, products, and problems. I had a healthy working relationship with my manager that had a significant influence on my career and life, which I am thankful for. It was a great first job out of school.

The nature of my responsibilities grew as my expertise and confidence increased. I provided technical support for field technicians, proactively improved key sites, and handled field troubleshooting for high profile issues. I learned a lot about the inner workings of dozens hardware devices and their software, which my low-level experience ten years ago made possible. I’m especially proud of finding a bug in one of our flagship products that I was also able to solve using induction and static analysis tools.

Small Company

Eventually high management turnover left me stranded without a path forward. My future with the company seemed murky and I was feeling stagnant. It didn’t seem to matter if I did a good job or a mediocre one, and my feeling of self-worth was deeply (and problematically, as I think today) tied to that. I loved the autonomy, but I still need my work to matter.

I left Honeywell in 2016 to join a small controls company based in Burlington, Ontario. It was my first experience with installing controls systems from scratch and my first experience with hiring. The smaller company was stretched thin across Southern Ontario, and I even had a job in California! I became frustrated with travel time and did not last a year. I was disappointed by displays of poor emotional control from the owner and outsized egoism from people in positions of power at the company.

I found an opportunity to work a lot less for a lot more, and traded in my bucket in a boiler room for a large desk in an air conditioned space with a view.

Software Development

I was the first software developer hired by J. S. Ferraro, a small company that specializes in meat trading, livestock markets, and risk management. They posted an ad to HackLab.TO’s job board asking for help with scraping text files. At the time their systems were Excel based. In Python, I built them a data acquisition and notification system and converted their Excel spreadsheets into interactive Tableau dashboards. The acquisition was accomplished using a regular expression meta-language I created for the purpose. I migrated their servers from hosted virtual machines in an expensive datacenter to AWS and saved them a bundle doing it. Their data collection, predictive models, and visualization system now likely has no equal in the meat & livestock market; though this is a market where floppy disks and fax machines are not a distant memory.

After two years in the position the system was built and stable. I hired three software developers and filled a temporary position as the Acting Director of Information Technology. My former reluctance to enter the IT field proved justified, as I learned that management over information technology is not a position that I enjoy. My power to improve what I felt important to improve could only enact changes over long periods of time. The physical meat industry is improving, but there’s a lot of inertia in all those fax machines, the ancient enterprise software, and physical printouts.

Freelance & Burnout Recovery

I struck out on my own as a freelance software developer in February of 2020. With less reason to stay in a small, expensive Toronto apartment, my partner and I bought a house in Amherst, Nova Scotia.

I used my newfound freedom to learn the Rust programming language, develop my first Android app, NeuralNote, and recover from burnout while freelancing just enough to pay the bills.

The productivity “demon” responsible for my burnout sat on my shoulder whispering sweet nothings about my value, pushing me to produce monetizable things; and so I was convinced to start a project dedicated to the promotion of critical thinking in the mad noise-ridden world of trading; but I’m just not that interested in trading. Bayesian statistics was the real attraction there for me, but I see that as a useful tool rather than an end in itself.

I’m working on a multi-currency budgeting app that helps partners (from couples to polycules) manage finances together by doing it separately. Think YNAB plus Splitwise, except the former only supports one currency per budget. This’ll save me and my partner time, and I am hoping that others find that it does it for them, too.


  1. formerly Ryerson University ↩︎