Kooltra was a startup with ~10 people and a founder/CEO who was a domain expert in Foreign Exchange (FX). With my affinity for FX developed at OANDA, and a PM role on offer here, I was happy to dive in.
The Work
Product Manager - Being the fixer (Apr 2017 – Oct 2017)
Engineering
The first thing I realized walking into Kooltra was that the people were smart, but literally everyone was doing their jobs for the first time - from the CEO, to the VP, to basically everyone on Engineering.
The engineering set-up was a big mess, created by the VP of R&D (let’s call him Men), who had a stellar resume with a Ph.D. and an MBA, but no practical experience building software.
- Nobody knew git branching, so for the same codebase, everyone had their own repo, and would force push into a central repo for integration.
- On top of this, everyone created separate repos for prior versions of the software. One codebase ended up being cloned into 30 repos (that were not even forks of each other) across the team. 🤯
- The code that went into production wasn’t built from source control, so unintentional changes would frequently leak into production with nobody noticing. 🤯
- Individuals “owned” individual code files, and there was no code review.
- Men, the VP, insisted on personally QA’ing every change as they went into production.
- Setting up a development environment would take 2-3 days and a bunch of manual clicking, so nobody kept their dev environments up-to-date, causing configurations wildly inconsistent with production.
Despite having PM as my official title, I knew more about a modern engineering process than anyone else on the team.
One change at a time, I convinced, taught, negotiated with, and sometimes fought the team, and eventually revamped the engineering process to a point where we could finally produce software in a consistent manner.
Men, the VP, offered occasional support, but more often than not, was pushing back on the changes. His objections didn’t appear to come from a place of reason, and he didn’t offer much in terms of alternative solutions. Those few months remain the most painful of my career. Our fight eventually boiled over in an email chain that copied the entire company. Three weeks later, Men was gone.
Product
The product side was also somewhat dysfunctional. Adam, the CEO, would frequently go directly to individual engineers asking for features to be implemented within the day. The direct feedback loop could have helped the product, but bypassing the engineering processes, combined with ineffective communication, unfortunately led to a vicious cycle of bugs → rushing to fix them → more bugs.
I spent a lot of time with Adam in his office, debating & negotiating how to build a robust roadmap that worked for both customers and engineering. By consistently delivering visible outcomes, as well as keeping a fully transparent communication channel, I built enough trust with Adam that he gradually stepped back from the daily operations of the product engineering org.
Software Engineer - Back on track (Oct 2017 – Sep 2018)
Everything changed for the better when Ryan joined.
Ryan was a true engineering leader, a former senior director at Salesforce who had also founded his own company. Even before he joined, he appreciated the problems at Kooltra and the journey we took to solve them.
With Ryan at the helm, the product engineering org continued to improve. We hired some great engineers too.
At the same time, Ryan convinced me to stay technical, so I moved back to Engineering, and took on an official Team Lead role. With a great team and meaningful work, the year went by quickly.
One notable achievement I had was shortening new environment provisioning from a few days of manual work, all the way to a few minutes running a single automated script.
Exit
I acquired my Canadian citizenship in August 2018. Being a software engineer, I felt I ought to experience what it’s like to work in the US.
Takeaways
Most of my learnings at Kooltra came from my attempt at being a change agent:
- To a founder, the company is their baby, so they’ll always be a little protective of it. Establishing trust takes time, but goes a long way.
- Smart people can do dumb things. They’re more prone to reinventing the wheel, especially when they refuse to be open to the world.
- There’s really no need to have heated arguments in public. I got lucky this time, but what I did wasn’t right.
- Instilling change is difficult, especially when the stakes are high. It takes a lot of time, patience, finesse, and skill.
- Having a wide variety of exposure and experiences is really important. It gives you perspective and helps you stay calm.
Otherwise:
- My list of interview questions gained a whole section on engineering processes.
- I got to work as a Product Manager for some time, and learned about the challenges of managing a roadmap, and the intricacies of balancing customer requests and engineering capacity.
- I spent a lot of time wrestling with building software on Salesforce, and it helped me develop a good appreciation for Developer Experience.
- I learned about FX trading at OANDA, and here I expanded my knowledge of the settlement and operational side of it.
People
- I’m thankful for Adam placing a lot of his trust in me early on. I know it’s not easy as a founder/CEO.
- Ryan became a mentor I looked up to for years to come, who taught me the important lesson of being patient.
- Janet joined Kooltra around the same time, and almost exactly mirrored my experience on the Customer Success side. We fought over processes early on, but quickly recognized each other’s talent, bonded over our efforts to fix them, and became good friends.
- Coming back to engineering, I had the pleasure of working with Andrii, Yuliia, Ajay, Alice, and Brandon.
- Later on, Janet, Andrii, Yuliia, and Ajay all took a leap of faith and joined me at Unit21.