Writing on software design, company building, and productivity.

All of my long-form thoughts on programming, leadership, product growth, and more, collected in chronological order.

Mental models as a startup engineer

STARTUP ENGINEER SERIES: Mental models for decision-making - This is a series covering problems I've worked on. I discuss how I use mental models to improve my decision-making and solve them iteratively.

Company productivity: Tech Leader's purpose

When I first started my career I thought being a tech leader meant being the best coder. Then I thought it was a software architect that designed the best systems. While these things are great qualities to have and help move the needle, they shouldn't be the aim of someone who wants to be a CTO of a company.

My First Growth Project

An experiment I did in my early years when Pokemon Go took the world by storm. In the U.S. many small businesses were capitalizing on the local Pokemon Go opportunity. At the time, Pokemon Go had not been officially released in Canada. My biz partner Mark and I decided to see if local businesses in our community were interested in a managed Pokemon Go service. We also wanted to test to see if marketers and growth hackers were looking for an authoritative source in marketing to Pokemon Go players.

Gamerbet Engineering

I had a lot of fun with my team at GamerBet. We designed and implemented a real-time betting platform for League of Legends games. I implemented most of the backend code in Golang. This included a core API written in Golang and 4 microservices. The 4 microservices were as follows. Event manager that managed games in the database by polling a third party API. An Interest manager which parsed game data and determined interest level of games. A web scraper which extracted data from websites for player stats. Here's how that worked...