Back home

Thoughts On My Recent Job Search

In mid-2022, I decided to see take a foray into the job market to see what the market was like. Every six or so months, I like to do this exercise so I can keep my interviewing skills sharp, and see what I’m valued.

Initial Job Applications

I’m fortunate that where I am at in my career I have a steady stream of recruiters reaching out to me every week, so to start my search I took some interviews with companies that looked interesting that I found either in my email or LinkedIn inbox. In the meantime, I took the time to cold apply to some other higher profile companies. These included Atlassian, GitHub, Instacart, Amazon (every 6 months lol), and Disney+. Luckily most of these companies take some time (a week or two) to get back to you, so I was able to wrap up the technical interview processes with the first round of applications.

I think that the first round of interviews was incredibly helpful in getting my “back in the saddle”. I was able to practice both prepping for the interviews and interviewing, before interviewing at the higher profile companies. It was also around this time I found a comment on Hacker News talking about a website called Hired. Hired is unique in that it reverses the job searching process, as a candidate you can create a profile, and companies can apply to interview with you. It was at this point I also created a profile on Hired and was very impressed with the quality of applications I was getting.

The last thing I will note in this section is that for the first time I was deeply involved with the hiring process at my current job. Performing two to three technical interviews weekly. I think that having more experience on the other side of the interview process was very helpful.

Interview Preparation

At this point, I had taken a call from Amazon, but I did not hear back from it. Had three more onsite interviews scheduled from Hired, and received a take-home from two companies. It’s also at this point I felt like I hit my stride when I came to preparing for the interviews.

I did three main things while preparing for this search

  1. Studied the classic Data Structures and Algorithm questions
  2. Studied System Design
  3. Did mock exercises, similar to those I ran into while interviewing

In my experience, with my most recent job search, I found that most companies that I interviewed at, actually had mock exercises rather than traditional Leetcode style DSA questions this time around. This was contrary to my last job search which was almost exclusively DSA questions. But with that in mind, I started doing more exercises.

Leetcode/DSA

For Leetcode/DSA prep, I did two things. I would do problems from Neetcode.io, which is a curated list of Leetcode questions, but each question has an accompanying video giving a conceptual overview on his YouTube channel. My typical flow would go like this:

  1. Try the question for 20mins.
  2. If I was unable to solve it I would watch the conceptual overview of the question, and then try the question again.
  3. At this point if I was still unable to solve the question I would then look at some answers and break down where I went wrong in my thought process. I should also note you can do this same thing on AlgoExpert, which I also used to follow the same process. However, AlgoExpert is paid, while Neetcode is free.

System Design

I found practicing system design to be challenging since in an interview it’s a very back and forth process. That being said, I did a few things that I felt helped me prepare for those highly technical conversations. Firstly I would do exercises by watching this channel on YouTube and take notes on his breakdowns. Second, I would read articles from Quastor, which gave lots of great real-world examples. Overall, I still feel like system design is the area I’m the weakest in and need to improve the most in before I decide to interview again.

Exercises

This was pretty new for me, but it was obvious that after five interviews in a row that featured exercises I needed to practice. If you don’t know what I mean by my “exercise” a quick example would be something like this.

“You are given a string containing several real estate listings. Parse the string and output a data structure containing each listing.”

Followed by something like

“Now that we have the listings parsed correctly, write a function that takes the listings as one parameter, and a state as the second parameter. The function should return all listings within that specific state”

Now luckily I was able to get some practice just by coding at my current job. But I also did FrontEnd Expert, which had a lot of great exercises in their JS and React sections.

Take Home’s

Both of the jobs I pursued the longest ended up having take-home exercises at the “first round”. I typically decline to do take-homes if they seem like they will take longer than one or two hours, but I was pleasantly surprised to find out that both take-homes were very respectful of my time.

On Sites

I did a few on-sites before these two but generally speaking, they were relatively similar. A series of panel-style interviews, where you have a chance to talk to many different people at the company in addition to a few extra coding challenges.

To prep for these interviews, I prepared a curated list of questions for each company, usually tailored to the specific people I will be talking to on the day off as well as researching the company itself to ask any company-specific questions. To prepare any technical portions, I much do the same technical prep as above.

Conclusions

After this round of interviews, I found a few things I need to focus on for when I inevitably go through the gauntlet again.

  1. Find a better way to prepare for system design interviews
  2. Do more preparation interviews / mock interviews to better prepare for coding under stress Overall I am happy with how I performed and the results. I start my new job in a little over two weeks now and am thrilled at where I ended up.