He was a talented engineer himself and a good friend. We ended up working together again at another company. A few months after he arrived, I had a slump and the cycle repeated itself. This time we had long meetings where he accused me of being cynical and questioned my dedication; I defended it ("I'm here making much less than I was before, aren't I?"), which was exhausting in itself. I thought the problem was all on my side, so I didn't put up much of a fight when he told me I'd be writing integration tests full-time--no more "real" coding--until I proved whatever he thought needed proving. I forced myself to ignore any side projects I had going. He called me in again later to complain that the tests weren't coming along quickly enough and that they "read like sketch comedy routines". (They did, actually. I was bored, and the tests were full of things like, e.g., Eve getting unfriended by Alice but not Bob and, wounded, trying to spy on Alice. It did tehnically test our access controls!)
Because I was convinced it was my problem, I stuck around long enough to get fired this time. I'm lucky enough right now to have very interesting work (at a big company, of all places), but this article has given me an opportunity to reconsider what happened at the old job in a different light.