This is not a light subject and if you are triggered by suicide, read no further.
When I started at Atalasoft, there were 3 other full-time engineers:
Dave – who specialized in web controls
Glen – who specialized in .NET Win controls and TWAIN/ISIS scanning
Seungyeon – who specialized in image analysis algorithms
I came in with a lot of PDF expertise as well as a great deal of architecture and bit-banging/optimization experience
It was a great time settling in with the group. Each of us had our own specialties as well as weaknesses, but between us we covered our product space very well. I got along with all of them pretty well, although I think I got along best with Dave.
Glen was an interesting bird. He was a transplant from Texas, complete with a very wry sense of humor colored by his southern accent. He was generally very quiet and reserved.
At one point, our CEO Bill decided that it was time to come out with a new version of the annotation product and I stepped in to try to fix the Glen/Dave problem. What I wanted was a greater amount of shared code and data for the annotations and at the same time to raise the bar for the feature set of our annotations.
I decided that we should have a strict Model-View-Controller design so that the data layer could be shared between the two products. Glen was not happy with this, since it was a very different approach from the existing architecture (and incompatible), but I also added in the ability to have arbitrary nesting layers of annotations, arbitrary appearances, extensible data, a strong rendering model and so on. Glen was left with the task of doing the reference implementation of my design on windows. He would come to me with questions on the implementation, hoping for a short cut and I would have to give him the bad news that it was going to be harder. Glen would say, “ohhhh-kay” in his dry Texas accent and head out to do what I had asked.
The design paid off, though. It was way easier for Dave to use the model code on the host and serialize it as json to his web controls. When Glen did a WPF version of the annotations, the model code went unchanged.
We moved into our new office and were there for several years, when Glen started having some medical issues. He was having neck pain and ended up having surgery to correct it. Glen also suffered from migraine headaches. There were days when he had to go home early and lie down. There were other days where he worked from home in the dark or just stayed in bed.
I emailed him on these days and offered to pick up food for him or run errands for him, but he never accepted my offers.
One day, Christina, our office manager, came into my office very agitated. She said curtly, “Steve, you need to come to Bill’s office. Now.” Christina turned and headed to Bill’s office with me in tow. I had no idea what was going on. Had I done something wrong? Had I pissed off a customer? When I got there Bill told me that they had gotten a call from the police and that Glen had died by suicide. I was struck dumb.
I remember taking Christina aside and admonishing her for taking me in blind, a reaction driven by my own emotions and I regret dumping on her like I did. She was suffering too – no need to make her suffer more.
As an aside, there is a very common reaction to problems in software engineering: “It’s my fault.” This stems from years of making (and correcting) mistakes. More often than not, it is my fault – my fault for not understanding an API, my fault for missing the key element in the documentation, my fault for not managing my side-effects or memory, my fault for using a weak model out of laziness, and so on.
To me, it was my fault that we lost one of our core engineers. I emailed instead of calling. I should’ve stopped by. I should’ve set up something where people checked in on him. I should’ve been more supportive. I should’ve known.
But I didn’t know. And I couldn’t have known. There was not enough feedback from Glen that he was suffering and reaching the end of his rope.
I miss Glen. I miss walking to lunch with him.
It hurt every time I passed by his condo on the way home from picking up my son at day care. I saw his white Pontiac in the lot, wondering when it too was going to be gone.
If you are reading this and you feel like Glen did, know that there are people who would gladly help you out. We can’t read your mind, but we can reach back if you reach out. No one is an island. It’s scary to open up about your pain, but trust that we will listen.