Tuesday, July 3, 2018

Software engineering is not a sport


Last year my employer downsized their Seattle office, laying off hundreds of people, about 80% of the staff here. I still had my job, but decided it was in my best interest to start looking at other opportunities, if only to get a sense of what companies I might want to work for if I did get laid off in the future.

After actively interviewing for software test engineer jobs in the Seattle market for six months, taking numerous phone calls, take-home programming assignments, and four onsite interviews, here is what I learned.

Software engineering as I learned it in my career is no longer practiced in many of the technology companies in the Seattle area. What is practiced is something more like a competitive sport than engineering.


More than half of the interviewers did not have a copy of my resume and asked me no questions about it. Most asked the same data structures and algorithms questions as every other company.

Many asked their questions very poorly, often inviting me to read their minds and being shocked when I could not.


“Can you tell me which geek web site interview problem I am thinking about?”

No I couldn't. Neither would anyone else be able to, asking it so poorly.


At my last onsite interview, one of the interviewers, a senior software engineer like myself, did ask me a question about my resume, sort of.


"Why have you never worked for Microsoft?"


What an odd question. I answered it by saying that Microsoft had a reputation for poor work-life balance at the time he was asking about, which he admitted was true.

I have an active personal life and a family. I make no apologies for that. In fact I celebrate it. Being able to have that and keep the title of senior software engineer without ever having worked eighty hours a week is something I am proud of. I think that is pretty smart.
Later, the hiring manager and a senior database engineer took me to lunch at a nice restaurant. In ninety minutes I barely had time to eat a sandwich. The engineer kept grilling me about my last project, and expressing strong opinions that he held onto despite my patient attempts to explain that wasn’t how our product worked. I believe he was actually disappointed that I refused to be drawn into an argument with him.

The process felt a like a competitive sport. In sports try-outs, what matters is how you can perform, now. Show me that you know the answer to every programming problem I might think of, even if to do that would mean preparation so extensive it would mean doing nothing else in your life. Not doing your job, not having a family, not having any hobbies except interview preparation.

But engineering is not a sport. It is a body of knowledge and experience accumulated over time. And so it is important to me to talk about that experience. Not to do so would be disrespectful, at least as I see it. But several times when I talked about my experience, I got the impression that many of the interviewers thought it disrespectful, perhaps because what I have done in the past is irrelevant to my current performance.

“Can you not think of a faster algorithm?”

I got that question many times. The short answer is yes, there is often a faster algorithm, but I don't write those on a dime.

"Are you sure you want to be an individual contributor? It looks from your resume that you want to be a manager."

Yes I was actually asked that one. A manager who was interviewing me thought I shouldn't be applying for a role as a senior software engineer with my experience. Some companies have told me I was unqualified, others that I was overqualified because I have leadership experience. What I am supposed to make of that?

In sports, such as soccer, a player who knows the game really well, but cannot run as fast as they once could, reaches a point where they are only valuable as a team captain, and eventually, only as a coach.

The collective feedback seems to be telling me that I am more valuable to the software industry as a "coach", such as a team lead, scrum master, or manager, than a "player" or individual contributor. That may be true, if not now, then at some point in my career it will be. But that is a very different thing from telling someone they do not know how to play. I leave interviewers with this question.

“Can you not think of a better way to treat people?”

No comments: