>

journal.md

Day 0 (2024-01-11)

  • Submitted applications:
    • Software Engineer III, Google Cloud Storage (L4)
    • Senior Software Engineer, Google Cloud Storage (L5)

Day 1 (2024-01-12)

  • Contacted by recruiter
  • Completed brief questionnaire
  • Created this repository (originally it was called interview-grind)

In the past, I have done technical interviews in Go. Since Go is a less forgiving language (in that it is statically typed), I am opting to use Python this time around.

Day 2 (2024-01-13)

  • Called brother

My brother, Stefan Kraus, is a Software Engineer (L4) at Google. We talked about the interview process and areas I should focus on. Since he recommended focusing on the Software Engineer III role (as opposed to the Senior Software Engineer role, which has a far more rigorous interview process), my preparation should focus mainly on algorithms and data structures.

  • Developed a study plan

Since the L4 (or Software Engineer III) interview is focused mainly on one's ability to solve technical problems, this is where the bulk of my preparation will focus. This includes reviewing Grokking Algorithms by Aditya Y. Bhargava and completing LeetCode problems.

Day 3 (2024-01-14)

Warmed up with an easy one. It took longer than expected, but, as I've learned, it takes a little bit of time to get the LeetCode flow back.

Another easy one (sliding window). Again, it took longer than expected and I should keep in mind that a sliding window can also look backwards. I was able to quickly find the O(n^2) solution, however, this will not cut it for Google. If ever a solution runs in O(n^2) time, you will probably need to rethink the problem and find a better solution.

After lunch I plan to read through some documentation on the Tech Interview Handbook.

Day 4 (2024-01-15)

  • MLK Day. Planning to study for 5-6 hours. Starting by getting organized, then diving into some problems.

  • Focusing on dynamic programming today

Day 5 (2024-01-16)

  • Spent over 4 hours studing today. Mostly dynamic programming. Finally getting the gist of how to solve these problems, though I still find the iterative approah (bottom-up approach) difficult to come to intutively.

Day 6 (2024-01-17)

  • Heavy work day. Only got in 45 minutes of study.

Day 7 (2024-01-18)

It looks like Google is moving me forward with the L5 interview. RIP

Thank you for your response! Our team has reviewed all of your information and would like to move forward with next steps, including scheduling an initial screening using Google Meet.

Congratulations!

I was provided the following preparation materials:

Start by familiarizing yourself with what to expect in the Google interview process. Additionally, here are some resources that will help guide your preparation. Many of these resources come highly recommended from recently hired Google Engineers.

General Technical Screening Resources - Software Engineer

Additionally, I was asked to schedule an initial virtual technical screen. This will last 45 minutes and be in a Google Docs document.

Note: You will not have access to an editor or compiler

Day 8 (2024-01-19)

  • Completed an additional application:

Employment Application (This form is different from the application you may have used to apply to Google and contains a non-disclosure agreement.)

I plan to spend the full day studying heaps and priority queues.

Interview has been scheduled:

  • Date: Monday, January 29th, 2024
  • Interview Time: 1:00pm - 1:45pm CST

Day 9 (2024-01-20)

(Fuck, took me 1.5 hours)

  • Scheduled a mock interview with my brother:
    • Did Longest Common Subsequence and Number of Islands

His advice:

  • They might ask warm-up questions
  • Look into domain specific information (Google Cloud Storage)
  • Possibly a system design problem
  • Domain specific knowledge

Day 10 (2024-01-21)

  • Feeling a little down–like I am going to fail, like I'm not good enough. I just need to keep pushing through.

  • Cleaning up a few tasks from the mock interview I did with Stefan yesterday.

Day 11 (2024-01-22)

  • The Google recruiter reached out:

I wanted to reach out since your initial screen is confirmed and see how you're feeling. :)

Kind of a nice touch. It also cleared up some questions I had regarding the phone screen. It was probably automated.

I really need to finish up the following questions:

Day 12 (2024-01-23)

Day 13 (2024-01-24)

Day 14 (2024-01-25)

I submitted my application two weeks ago. So far, I've completed 13 LeetCode problems and spent a bit under 40 hours studying.

Day 15 (2024-01-26)

Day 16 (2024-01-27)

  • Crunch time. Really need to hit heaps today.

Day 17 (2024-01-28)

One more day before my interview with Google. Whatever happens, happens. I've been studying consistently for over two weeks. I am still not where I should be in terms of preparedness, but this is just one step in my journey. This process has lit a fire in me to continue to improve my knowledge of algorithms and data structures, the true bedrock of computer programming. I have a year to get as good as possible.

  • Bought the following books:
    • Introduction to Algorithms, 3rd Edition by Thomas H Cormen, Charles E Leiserson, Ronald L Rivest, Clifford Stein
    • Programming Pearls, 2nd Edition by Jon Bentley
    • Art of Computer Programming by Donald Knuth

Day 18 (2024-01-29)

  • Today's the day. I put a lot of preparation into this interview–if I fail, iiwii. I'll just study more.

Day 19 (2024-01-30)

  • Took a rest day today to get caught back up with my actual job.

Day 20 (2024-01-31)

  • Same as yesterday.

Day 21 (2024-02-01)

  • As I kinda expected, got that flush today:

Hi Nick,

I've received your initial screening feedback, and unfortunately the recommendation is not to move forward in the hiring process at this time.

I also started a new project: grind.rip

This project is meant to document my job interview preparation journey. It's meant to be serious, but also a little tongue-and-cheek. Grinding kinda sucks, but it's good for you. Have you ever worked with a Software Engineer who couldn't code worth shit? They probably never had to grind. They probably never spent nights and weekends learning algorithms and data structures. They probably never failed a coding interview because the company they work for doesn't believe in coding interviews. Fuck that soft shit.

grind.rip

From Grind Hell, with Love