As promised, I am writing a blog post about switching jobs. I am actually changing roles and cities: from a (support) escalation engineer in Charlotte to a software development engineer in Redmond.
Let’s start with the why. The decision to move to Seattle has always been in my plans. Somewhere between fear of the intellectual challenge and the hesitation to leave a comfortable position, I stayed in Charlotte for twice as long as I intended to. The city of Charlotte is a great place with its space, cleanliness, and low cost of living. I love my friends and the ultimate community. I was in a good job with great compensation. These factors combined made it hard to leave. A few months ago, I married my wife Fan and the support org started restructuring so I felt it was the perfect time to move. I committed heavily towards switching roles.
How did I go about the switch? I had actually looked internally and externally for the past year – applying to jobs here and there – but my intent wasn’t fully serious. A few months ago, I actually set a goal: I would change to a Seattle-based Microsoft role by summertime. I came to this goal after some introspection that I enjoyed working for Microsoft and I believed in the company. I started telling people my goal so that they could help me by referring me to job openings and professional resources, and by shaming me into taking my goal seriously (I’m big on people keeping their word).
The plan to switch was formulated after I did some research on the internet. Blind, the anonymous forum app, was especially useful. How did others study for and pass a coding interview? What engineering roles was I interested in? What does the compensation look like? The general answers are: study data structures and algorithms for 3-6 months, do mock interviews, and expect $110-140k base depending on your (Microsoft) level.
I then applied to something like 80 internal Redmond-based roles. I targeted software engineering, program management, and service engineering. From those 80, I got ~10 informationals and phone/technical screens. From those 10, I got ~4 official interview loops. When I got an offer from the team I liked, I accepted.
Here’s what I learned during this whole journey:
- Study not just hard, but efficiently. Each time you interview, you understand your strengths and weaknesses so you can calibrate your studying plan. I failed my first SDE interview because I did not study enough data structures & algorithms; I bought a copy of Cracking the Coding Interview (great book, by the way). During a second interview, I learned that I can talk easily through behavioral questions; I doubled down on studying compsci as that is clearly my weakness.
- Be honest in everything you do or say. Let’s flip it the other way around: would you want a company to lie to you about what you will be doing? Why would you lie to the company about what you want to do or what you’re capable of doing? Being honest in your interactions will lead to less stress, increased interviewing performance, and better fit with a team.
- Rejection is a part of the interviewing process. Don’t let the rejections determine your value as an individual. You simply did not fit with the team, or you were not ready for that role. Don’t stress out. Grit your teeth and grind forward.
- Patience is a virtue. When you’re applying for roles, the task becomes not just your job but almost your existence. You want the company to run on your clock and get you an answer ASAP – so you check your email hourly – but they are continuing on their rhythm of business. Try to relax and keep yourself busy while you wait for interview results.
- Stay relevant in today’s global workforce. I realized a lot of my coding skills had atrophied even though I looked at code on a daily basis. It’s because my work consisted mostly of troubleshooting and debugging code rather than writing code and designing software systems. An analogy might be that my biceps were really strong but my triceps were not. From now on, I’m going to stay constantly enrolled in at least one educational course (probably online) so that my marketable skills do not fade with the passing seasons.
I hope this post sheds on light on the interview process, and how to approach switching roles. If you’re on the same journey, good luck!