Hello JobsBlog Readers!
I set this blog up a few months ago, but I never really got around to posting anything until I was about to be featured on the popular JobsBlog. The piece that I wrote for Jenna was too long to go into a JobsBlog post, so we decided that she would put an abridged version on JobsBlog, and I could put the “director’s cut” here. Here’s the original piece:
***
So my personal planets aligned and the time came for me to make a career move. For various reasons, I hadn’t been able to give my career the attention it needed, and after nearly 9 years of drifting along I found myself plateauing, staring down a dead-end and I kind of went through an early mid-life crisis. I decided to back up and get my career back on track. That meant I needed to be at a company that could provide some serious experience and lots of potential for growth. I also wanted to work for someone whose core competency was software. The first employers that came to mind were Microsoft, Google, Yahoo! and Apple. This would be challenging. I didn’t have a network to speak of or much of an online presence. However, my old job had left my .NET and SQL skills in good form, so I just needed a resume that could cut through the noise. I figured I’m a pretty smart person with the heart of a true engineer, so if I could get an interview I might have a chance. As a hedge, I decided to apply at lots of other good companies too in case I was deluding myself. I learned about Gretchen & Zoe’s job seeker consulting business, and hired Gretchen to help tune up my resume and give me some job search advice. I was pretty impressed with the way it turned out and had renewed hope for my quest. Working with Gretchen is actually what led me to discover the JobsBlog, which I began studying to learn anything I could about getting a job at Microsoft. There were a few things in particular that attracted me to Microsoft. I would be exposed to a lot of influential technology and I would get to work with and learn from super-smart people. Plus being able to work on software that’s the best or competes with the best in the market and is used by millions of people is simply inspiring. Also, my wife and I had selected the Seattle area as one of our top-choice destinations. Finally, I really just wanted to work for an employer that understood software and developers. I think Steve McConnell put it best when he wrote “life is too short to work in an unenlightened programming shop.”
When I would apply for jobs at Microsoft, I would apply exclusively to SDE jobs. I didn’t think to apply to SDET jobs because I assumed it wouldn’t be as interesting to figure out how to test something. I wanted to solve problems that were grounded in reality, not meta-problems. So on I went for months, applying to jobs, getting a bunch of phone screenings (none from the big four), a few interviews, but no offers I felt really excited about. At least this gave me the chance to build my interviewing skills and get an idea of the weaknesses in my skill set that I needed to address.
One day, I was searching on Monster.com and I turned up a Microsoft posting about a CRM SDET Hiring Event. I normally would have passed it over, but I was intrigued by what a hiring event was. After reading the posting, it sounded like the CRM team was in need of several new hires and wanted to do it all at once. I felt like this could be my opening. To put it in trench warfare terms, this was the difference between going over the top by yourself and going over the top with your platoon. I had a better chance of not getting cut down. Plus, to respond to the post, I could email my resume to the recruiter directly. My resume would be looked at by an actual person, instead of sending it into the black hole of the main careers portal. Whoa - it also said they would let you know the results of your interview that day! Another thing that interested me was that the required skills list looked almost the same as those in SDE postings. Maybe I’ll like it, I thought. Eric Stuzman got back to me and had me fill out a screening questionnaire. It was pretty straightforward, asking about the various things recruiters use to gauge how serious a candidate you are. But I was encouraged by how much development-related stuff was on the questionnaire. I began to realize that SDET was not what I thought it was. So I did a little more research and asked Eric some questions about SDEs vs. SDETs. It seemed like SDET was actually a slight superset of SDE. When I thought about it, the difference really just came down to ego. Because an SDET is one degree removed from the final product compared to an SDE, they won’t get exactly the same feeling of pride when you tell people what you do. An SDE could say “That’s [widely recognized Microsoft product]. That’s my child.” Whereas an SDET would say something more like “That’s [widely recognized Microsoft product]. That’s my pupil.” I couldn’t think of another reason why SDE was more preferable than SDET. What about being able to work on real problems instead of meta-problems? I realized that’s debatable at best - in my experience, 90% of what an SDE solves are meta-problems anyway. So the competition for SDE positions is an order of magnitude greater than SDET positions because of the ego factor? I reasoned that if I let go of the ego requirement I could still have everything else I wanted in a job, plus I might actually be able to get the job. It was a no-brainer. I even discovered some better reasons for me make the move (or I was subconsciously justifying the decision to myself.) I had 8+ years of SDE-like experience. If I wanted to grow and learn new things, I needed a change. I wanted to look at software from a new perspective. So I went all out and prepared for the interview.
Of course Microsoft has this notorious reputation of being impossible to get into. My experience had definitely supported that so far. The interviews even have their own Wikipedia page. Some JobsBlogs readers post comments about how they won’t even apply to Microsoft because of the interview I was intimidated. I imagined being asked to implement an insert operation for a 2-3 tree on the whiteboard. To prepare, I studied my old data structures textbook, and worked out a lot of the coding exercises with paper and pencil. I read the testing chapter of Code Complete twice, and did a lot of reading online about Dynamics CRM. I would awkwardly interview myself out loud. Thankfully my wife and daughter were out of town and I had the house to myself. I didn’t know exactly how polished I needed to be, so I kept going until I would start second guessing my decisions, worrying I was preparing in one area too much at the expense of others. It got to the point that whenever I would learn something I would feel myself forgetting the stuff I studied yesterday. I took that to be the sign that I was pretty much as ready as I’d ever be.
It was an awesome coincidence that Jenna posted about taking an interviewee out to dinner just after I had received confirmation that I was going to Redmond. It took me about 5 minutes to quash the unease I felt about telling my story on JobsBlog. It turned out to be one of the best decisions I’ve ever made. Jenna obviously had a ton of great advice to share. But more importantly, being able to talk and get all of my interview worries off my chest with someone who understood what I going through was a huge boost. It allowed me to go into the interview the next day relaxed and composed. Plus, Jenna was really cool and I had a lot of fun. Even if I didn’t get the job, I wouldn’t have gone home disappointed.
The hiring event interview was a little different than the typical Microsoft interview. You don’t get a warm-up interview with the recruiter, because they’re back in a war room discussing candidates with interviewers between sessions. You wait in the lobby for someone to come in and call your name. At any given time, there are 1 to 5 other candidates in the lobby waiting to be called. All together, there was probably something like 10 interviews going on at once. After a few interviews, I was beginning to get concerned because I didn’t ace any of the whiteboard coding problems with the air-tight, elegant solution. There were some things I hadn’t prepared for, like implementing different data structures in SQL, so I had to fly by the seat of my pants sometimes. I frequently felt like I was ‘thinking underwater’; it seemed like I couldn’t work through the problems fast enough to produce a complete solution before the interviewer cut me off to move on. But I made sure not to get sloppy and to reason through my decisions rationally. It helped to think aloud because then at least I didn’t appear to be totally perplexed. A few times I slipped into thinking about the solution too deeply and I fell into some assumption traps that the interviewer set for me (just remember there are lots of variations of linked lists.) Sometimes I would get the feeling that my style of thinking about the problems was not working for the interviewer, but I guess for SDET positions they probe a lot to see if you are a breadth-first or depth-first kind of problem solver. I was a little disappointed I didn’t get any puzzle questions, because I enjoy trying to solve those. Another thing that helped me was having some good questions and discussion topics prepared for the interviewer. They can be a great asset in an interview that doesn’t go so well because you can reverse the momentum and end the interview on a positive note. I spent a lot of time thinking about what I could ask about and chose some topics that I was genuinely curious about. For example, some of my poking around turned up the fact that Microsoft was actually in the process of transitioning their own CRM system from Siebel to Dynamics, so I planned to ask about what kinds of things they had learned during their efforts. It’s pretty rewarding to hear the interviewer say “That is an excellent question.” Scott Simmons, one of the two recruiters running the event, would check in with me between interviews and ask how things were going. After my 3rd interview, he told me that the team liked me but they were still unsure if I could free my mind of assumptions like a true SDET. The funny thing is he gave me a Newcomer’s Handbook for moving to and living in Seattle, which I took as a sign that I was really close to getting the job. An interview later, I was beginning to feel the mental fatigue. Scott took me aside and said that the team gave me the thumbs up.
I was elated, but I was a little afraid that I might have received special treatment for being the JobsBlog featured candidate. Scott assured me that they take their hiring too seriously to give special treatment, so I was free to feel great about my outcome. Actually, it wasn’t long before I started worrying about whether I would sink or swim at Microsoft. I guess I have a sort of pessimistic outlook on things, always on the lookout for what could go wrong - hey, maybe I am cut out to be an SDET after all!