So what happened exactly?
Clearly, they appreciated me.
So without going into too many specifics, let me explain some of what happened. Perhaps this kind of insight will be valuable to someone in a similar position.
The Need For a Good CTO
I remember years ago, when the original company I had helped build from scratch was bought with leveraged Wall Street money by the cats over at Topps Digital Services, thinking that perhaps things would change. I had hoped for the better. At that point we were young and scrappy and there were no managers, just AEs and artists and engineers. It was a good time. Then they brought in Tom (the name was changed).
Now Tom is still running that ship, and it's been I think close to 6 years. Our growth has been incredible. We are 20x of our original size with much more growth to come. Tom is currently listed as the CEO, the CEO, and CFO. What is missing? The CTO. Literally we don't have one. Never did. What we had was me, the Engineer.
I built the entire platform, from scratch, 3 times over: the prototype, I did a complete refactor for the move to Rails 3.x, and another complete refactor which was never launched. I think Tom felt challenged by me, so instead of either promoting mo to CTO, or hiring one, he just left it alone. He thought he could do the job. Basically because the Engineer was so good, for 9 years we didn't have a CTO. But we were racking up technical debt, which is a concept that Tom didn't understand. So after giving free hours year after year to keep the TD at bay, I started having children and I didn't have those free hours to give. I demanded a bonus and got it, and I tried to stop putting in unpaid hours, but I couldn't.
The Hard Concepts
Here is why you need a good CTO - sometimes there are concepts that are hard to understand. Concepts that you can't bluff your way through, especially when it comes to trade-offs. Decisions are hard to make. But you still have to make them. We failed because of a lack of leadership. I pitched a BI product (Periscope) that proved to be woefully inadequate for what we needed (white-label embeds), and 4 months into the implementation I sounded the alarm, and we needed to pivot. We either refactor the implementation, or we choose a new product. A or B. I made the case over and over again, and no one could put a finger on the map. I was not empowered to decide, yet no one else could make the decision. Tom was in Europe for most of the year and was pretty much MIA for the whole summer. We lost a whole quarter to a bad product, but because no-one could enable a pivot, we threw good hours after bad. And then it was too late. If you don't have someone in a leadership position that understands, at a minimum:
- What a stack is
- what technical debt it, and why refactoring is important (hint: it has to do with needs changing)
- how all decision makers need to be managed in order to achieve a functional SDLC
- how complexity growth and scaling needs to impact infrastructure
then your Engineer is not going to be very successful, no matter how hard he tries.
The Last Straw
On the last call I had with Tom, he complained about a 'bug' from months ago. One that had been fixed, but that had not yet been re-tested by QA. The feedback loop between Dev, the users, and QA was so slow that he had not had an update from them in 3 MONTHS. That is just not an environment conducive to anything productive at all. I carried that stress for as long as I could, because I love working in the BI space and I loved working with people from Facebook, and StubHub, and Netflix. But as long as Tom is where he is, knowing as little as he does about what his engineering team needs, that is no place for me.