I recently joined Microsoft last March as a Senior Software Engineer on Visual Studio org. The road to getting that job offer was a long and hard road that I wanted to briefly share my experience and what so that others that are out their looking right now might learn something, or at least some encouragement.
Year and half ago after two more member of my team got laid off, it was obvious that it was time leave my current employer at the time. I loved the team but was clear the company was going in cost cutting mode and not a good place to be long term. So, I decided to start looking. At first it was slow going because I had to create an updated resume, make improvements to my LinkedIn profile, and start practicing for the dreaded technical interviews.
Eventually I got my resume updated, went over my LinkedIn profile adding some more keywords to it, and started to practice some coding problems. I started to apply to a few places.
I was able to get interviews at a few companies, some because of a referral, most from contacts from recruiters through LinkedIn. Since I was still working, and married, it was hard to find the time to prepare and schedule interview, but was somehow able to practice a little bit and get time to interview.
My early attempts where not successful, one place I had one interviewer never really talked to me while I went off on the deep end on the question, he gave me. I had a feeling that despite doing well on all the other rounds, that would go nowhere, and I was right. While I felt I did good on other interviews I didn't get any offers. Here is a sampling of some of the feedback I got:
- My coding skills where not strong
- Not senior enough for the senior software engineer position
- While they felt I was strong technically, they thought I would not be happy there
After getting that feedback I knew one thing. Interviewers only get 45 minutes to an hour to talk to you and see you work. If you have a bad day, are nervous, forget something, get a bad interviewer, or a host of other reasons you can get rejected and really has no reflections on your personal skills or experience.
I spent time thinking back on some of the behavioral questions I answered and how I could have better answered them and show my past experience. I also cut back on some of the time I was using to practice programming problems. I had been spending too much time practicing technical questions, and felt I didn't really want to work somewhere that gave me brain teasers that required hours of study and that I felt had no practical application to the day to day work that I would be doing.
After applying those learnings, and taking a break from interviewing, I scheduled anther round of interviews, and this time I got offers back! All the places that I went to the questions where no brain teaser but felt where more practical type questions, the interviewers had real two way conversations with me, and I was able to bring out a lot of the experience and how I could apply it to the job I was interviewing for. I eventually decided to take the job at Microsoft because they agreed to let me work from home and stay close to my extended family. I also did not feel like commuting anymore and was excited about the work I would be doing there.
I think the most important one was never to base how skilled or "senior" I am as an engineer based on interview feedback. The fact is that interviewing is hard for everyone, and the way we do it by having people solve problems on a physical or virtual whiteboard is a flawed process. In fact North Carolina State University and Microsoft found that the classic white board interviews widely used today really measures how well we deal with the anxiety of doing the interview than our actual skills (https://news.ncsu.edu/2020/07/tech-job-interviews-anxiety/). So even if you have to play the game, never think that your bad engineer because just you failed interview at BigTechCo.
Second, I realized as stated above I only have a short window to showcase my experience and skills. You can easily get into tangents that distract the interviewer and rob you of precious time. There is also one method that I still not have mastered, which is the Situation, Tasks, Action & Results method of answer questions (STAR). It is a good idea to think about some common behavioral questions and how you can use your experienced in the past to answer them using STAR. Even if you don't get it right, like I did, I still found it valuable since it help me from getting trapped into tangents or other areas that I did not want to talk about.
I think the most important lesion is when the tables are turned and it is my turn to interview someone, is first show empathy and know that the person I am interviewing is nervous. Using hard problems or other brain teaser type questions might be tempting to use, but they would not really tell me much about the person I am interviewing and may even exclude an entire class of applicants. There are better ways of interviewing and we can do better, and really starts with each person doing the interview.
I hope this is of help especially now especially with so many people looking for work or just joining the tech workforce. You’re not alone!