Applied Materials | Interview to offer during the tough time

Background:
I was laid off by a startup in March since they had to reserve their cash. After 2.5 months of search, I finally landed an offer at Applied Materials as a software engineer.

CS/Programming experience before work:

  • I did not have cs/programming experience when I was in school, except for the following:

    • 1 C++ class in undergrad where I was so confused about pointers
    • Matlab
    • Taught myself Python due to the need of it in my Master's research project
  • Two jobs as a Machine Learning Engineer at two startups after my Master's degree.

Preparation

Coding Interview:

(EDIT START)
The total number of problems on Leetcode that I have solved since ~9/2016: 755.
During this specific 2.5month interveiw prep, I tried to solve 4-5 questions if I didn't have any interview on that day.
(EDIT END)

System Design:

I had a very terrible system design interview while doing an onsite interveiw with Facebook last year so I knew I would have to focus on it.

Thanks to some posts here, I checked out *** *** this time which provided me with general mindset on how to design a distributed system and some common examples asked in interviews. I practiced how to proceed during an interview on a piece of paper based on the step by step guide and spent more time on the part that I felt less confident in. For example, in the back-of-envelope stage, I had difficulty deriving how many bytes/kb/mb a single object takes in different questions. Therefore, I made a table to help myself review before an interview. Also, I found breaking a scenario into a series of steps helped my understanding. For instance, in a messaging app like FB Messager, what exactly happened when we send someone a message?

  1. the sender makes a request with his/her message to the server.
  2. the server receives the request and store the message into data storage.
  3. the server sends an acknowledgement that it receives/stores the message to the sender
  4. the server sends the message to the recipient
  5. the recipient received the message
  6. the server sends an acknowledgement that the recipient has received the message to the sender.

Daily Routine if there was no interview:

  • Solved as many leetcode problems as I could in the morning
  • Studied system design in the early afternoon
  • Applied to new openings that I had not applied to for the rest of the afternoon

Mindset:
It was really a tough time to search for a job now especially when you try to get one in a short period of time after being laid off. Other than your technical skills, patience, perseverance and one or two ways to reduce your stress are very essential for your job hunting at this moment. With a bigger candidate pool forming by individuals impacted by plenty of layoffs and less companies hiring, it is reasonable to give yourself a little more time to get an offer. Before an offer comes to the door, it is highly likely that plenty of rejections will come first. When you are frustrated about the disappointing outcomes, take some time off and do something that can help you reduce your stress. Keep grinding and offers will come one day. I am going to talk about my own experience below.

I did not spend too much time processing my thoughts but jumped right in applying to jobs and starting my interview prep on the day when I received the notice of layoff. I told myself that I would try to get an offer within 1 month.

After passing several phone screens in the first two weeks, I had 4 virtual onsites interviews lining up in the next two weeks. I thought that I could probably get an offer from one of the companies. However, I received 4 rejections. All the feedback was that I interviewed well but there were other candidates with specific experience and skillsets that fit the roles better.

I felt quite frustrated after the 4 rejections. If I performed not well on some specific interviews (ie, DS/algorithm, system design, etc) I could easily improve my skills within a short period of time. However, I could not improve/add my experience in a short period of time.

I took a weekend off and reduced most of my stress before I started to apply to new jobs and to take other phone screens. Since then, I slowed down my pace on interviewing and tried to work on some side project at the same time which really prevented me from accumulating too much stress in a short period of time.

I got several onsites which also ended with rejections. However, I just focused on my daily routine and finally I got an offer.

Comments (34)