>

journal.md

2024-01-11

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

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 (it is statically typed), I am opting to use Python this time around.

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.

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.

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

2024-01-16

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

2024-01-17

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

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 Google Docs.

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

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

2024-01-20

(Fuck, took me 1.5 hours)

  • Scheduled a mock interview with my brother:
    • We 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

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.

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:

2024-01-23

2024-01-24

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.

2024-01-26

2024-01-27

  • Crunch time. Really need to hit heaps today.

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 data structures and algorithms, 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

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.

2024-01-30

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

2024-01-31

  • Same as yesterday.

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-in-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 data structures and algorithms. They probably never failed a coding interview because the company they work for doesn't believe in coding interviews. Fuck that soft shit.


2024-12-24

Back from the dead. After getting flushed from Google, I decided to try to make the most of my situation at Workiva. I worked extremely hard throughout 2024, delivering multiple high-impact projects in order to reach Staff Software Engineer. If I could get recognition for my hard work and dedication, I'd consider staying. For reasons I won't get into–at least right now–my promotion was rejected. In the end, I came to the conclusion that there is just a fundamental misalignment between me and Workiva and that it's time to move on.

  • Submitted an application to Netflix:
    • Distributed Systems Engineer (L5) - Compute Abstractions

Back to the grind...

2024-12-25

2024-12-26

2024-12-27

2024-12-28

  • Basically just got organized. I stopped my interview prep at the end of February 2024, so I'm trying to pick back up from where I left off.

2024-12-29

  • Damn. I had a lot of unfinished LeetCode problems. What's interesting though, is even after 10 months of zero studying, I'm still much better than when I started back in January 2024. For example, I have a much better intuition around dynamic programming. Case in point, completed House Robber.

2024-12-30

2024-12-31

  • Picking up steam. I've been rotating between studying (/docs), algorithms (/algorithms), and solving LeetCode problems (/leetcode). I'll expand on this framework later...

2025-01-01

  • New year, same grind. Studying arrays (gotta start somewhere).

2025-01-02

After studying specific topics I reinforce what I've learned by applying the knowledge to related LeetCode problems.

2025-01-03

2025-01-04

  • Grindin' on the weekends again. Started Reorganize String, then realized I needed to refresh my knowledge of heaps...

2025-01-05

  • More heaps...

2025-01-06

Updated my resume to make it more ✨ATS-friendly

2025-01-07

  • Heavy meetings day.

I'm just a happy-go-lucky, lobotomized IC doing my little tickets, making no noise and pretending I'm not there.

2025-01-08

  • Applied to PushPress (Senior Software Engineer, Core) and ProsperOps (Senior Software Engineer). I didn't even get a confirmation email from ProsperOps. LMAO. This is probably why:

Date Posted: August 9th, 2024

Shit's stale.

2025-01-09

Trees are easy.

Applied to Upstart (Senior Software Engineer, Delivery). I have no intentions of working here, but I need to get some interview reps.

2025-01-10

Damn. Subtree of Another Tree was a LeetCode easy and it took me over an hour to get the solution. Confidence at an all-time low.

Hi Nickolas,

Thank you so much for applying to Senior Software Engineer, Core at PushPress. We truly appreciate the time and effort you put into your application.

After careful consideration, we’ve decided to move forward with other candidates who more closely align with our current needs for this position.

...

Holy shit, not even a phone screen. That's rough.

2025-01-11

  • Cleaning up some of my previous solutions.

2025-01-12

  • Cleaning up some of my previous solutions.

2025-01-13

Literally zero return emails apart from the flush from PushPress. What the fuck is up with the job market?

  • Applied to the following companies:
    • Raft (Senior Software Engineer)
    • SentinelOne (Senior AI Platform Engineer - NLP | LLM)

Completed Linked List Cycle

2025-01-14

  • Applied to the following companies:
    • Monarch Money (Software Engineer, Infrastructure & Platform (Senior / Staff))

Got sucked down the rabbit hole of edit distance after looking into Longest Common Subsequence. Implemented Levenshtein Distance.

2025-01-15

Applied to Ramp (Staff Software Engineer | Backend). Heard about them on a podcast. Why the fuck not?

Finished the algorithm and LeetCode problem for Longest Common Subsequence:

2025-01-16

  • Cleaning up some of my previous solutions.

This is my workday:

  1. Pick up Jira ticket in the morning.
  2. Complete ticket before standup.
  3. Spend the rest of the day grindin'. Easy bag 😎💰

"Show me the incentives, and I'll show you the outcome."

2025-01-17

  • Added my solutions for the Amazon online assessment in 2022. I was pretty shit at coding back then. Probably still am. Well maybe less shit. Also, monotone priority queues!? How was I supposed to come up with that?

2025-01-18

2025-01-19

  • Grinded for 28hr 15min this week. Worked my job for 7hr 15min (including meetings). I spent literally 1hr 15min doing actual, ticketed work. Who cares about how much work I actually do, I'm good vibez guy now 😎.
  • Fuck. Spent over 4 hours on a recursive and memoization solution to Longest Increasing Subsequence. Was it worth it? I don't know. The 'tism took over and I couldn't stop working on it until I found a solution.

2025-01-20

  • Finished adding my solutions for the Architect.io online assessment in 2022.
  • It's MLK Day again and I'm back to where I was last year. Grinding.
  • Off to a good start. Gotta beat my high score of 28hr 15min from last week.
  • Wrote a lot of journal entries...

2025-01-21

2025-01-22

I decided to do these from easiest to hardest.

2025-01-23

  • Finalized roadmap.md.
  • Reviewed and removed notes.md (this seemed redundant).
  • Flushed from Ramp:

Hi Nickolas,

Thank you for your interest in joining Ramp. We greatly appreciate you considering us in your job search. We've reviewed your application and, unfortunately, will not be moving forward with your candidacy for the Staff Software Engineer | Backend opening.

...

I was going through my notes and found this:

When prepping for the technical interview, it is important to balance priorities. You should spend probably 50% of your time studying and 50% of your time doing problems. This balance should be complimentary, as studying provides the foundational knowledge for solving problems, and solving problems reinforces what you've learned.

Couldn't agree more.

2025-01-24

  • Feeling good today. Fridays are always good days to grind.
  • A man of my word. Completed linked lists.

2025-01-25

2025-01-26

  • Starting heaps. Heaps a hard.

2025-01-27

  • OK, let's implement a heap and heapsort.

2025-01-28

2025-01-29

2025-01-30

  • Added kth smallest (largest) to Heaps section in the roadmap.

2025-01-31

  • Finished heaps. Whew, lad. Now just need to finish the LeetCode problems.

2025-02-01

  • First full month of interview grinding complete. 107hr 15min. Dwamn. Gotta try to beat it in Feb., even though I lose 3 days.

2025-02-02

2025-02-03

2025-02-04

Bird by bird, buddy. Just take it bird by bird.

As of today, I've been studying for 6 weeks.

2025-02-05

  • Working on tree traversal.

2025-02-06

tfw all you want to do is grind, so you try to churn out some AI slop as fast as possible for your job, but it doesn't work, so you end up having to read documentation and actually learn some shit.

2025-02-07

  • Got a phone interview with some dust company. Beggars... Choosers... all that jazz. Never mind, rescheduled to Monday.

2025-02-08

  • Added Google interview. The flush that started it all!

2025-02-09

2025-02-10

  • Phone interview with Kingland. TC is ~$150k, base + bonus (LMAO). Also requires 2-3 days in office. I'm just going to go through the interview process for the reps.

2025-02-11

  • Focusing on doing more LeetCode. I think I've been too theory heavy. Practice how you play!

2025-02-12

  • Literally grinded all day.

2025-02-13

  • 'Binary Tree Right Side View' took me 10 minutes. Am I becoming not trash? Nah, still trash, 'Construct Binary Tree from Preorder and Inorder Traversal' took me over an hour.
  • Had a call with a recruiter about an opportunity at Seek AI. Also, had an Amazon recruiter reach out. Are the SWE job market Dark Ages over?

2025-02-14

  • OK, just need to finish 'Tree Operations' and the last three LeetCode problems, then I'm done with trees.

2025-02-15

  • Why am I doing this?

2025-02-16

  • Once I hit around 35 hours of studying / work, I totally run out of steam.

2025-02-17

  • OK, finishing up trees.

2025-02-18

  • Created a login page for grind.rip... Got a little distracted...
  • Completed 'Kth Smallest Element in a BST' in about ten minutes.

2025-02-19

2025-02-20

  • Took PTO today. Finally finished all my open tasks on my roadmap for trees. Moving on to arrays, then strings...

2025-02-21

2025-02-22

  • Studying every weekend is kinda a drag.

2025-02-23

  • Around 35 hours of dedicated, focused work per week is about where I tap out.

2025-02-24

  • Ripping through sliding window.

2025-02-25

  • SSDD

2025-02-26

  • I honestly work maybe 1-1.5 hours per day. Absolutely nuts.

2025-02-27

  • More of the same.

2025-02-28

  • "Sorry, babe, I can't celebrate your birthday–I have to Merge Strings Alternately..."

2025-03-01

  • February stats: 91 hours of studying.

2025-03-02

  • Down the rabbit hole: Palindromic Substrings -> Manacher's Algorithm. Why am I doing this? Is it even worth it?

2025-03-03

"Can I have an extra [obscure coding problem]?" [I] asked Mr. [LeetCode]. "It's my birthday." To everyone's surprise, Mr. [LeetCode] gave it to him.

2025-03-04

'Cause sometimes you just feel tired
Feel weak, and when you feel weak
You feel like you wanna just give up
But you gotta search within you
Try to find that inner strength and just pull that shit out of you
And get that motivation to not give up
And not be a quitter
No matter how bad you wanna just fall flat on your face and collapse
  • Ayyy. A recruiter reached out from Assured. Scheduled a call for Friday, March 7th @ 10:00.

2025-03-05

  • Upstart got back to me. Absolutely no interest in joining this company, but I need interview reps.

2025-03-06

  • A recruiter reached out from Stytch. Set up a call for Monday, March 10th @ 11:00.
  • Applied to American Express (Senior Engineer - Cloud APIs & Orchestration).

2025-03-07

  • Phone interview with Assured (@ 10:00) and Upstart (@ 13:15) today.
  • Wow. I really need to tighten up my elevator pitch–just started rambling.
  • This is why you have to practice interviewing. I've been focusing 100% on the technical portion and just fumbled a phone screen with a recruiter.
I am a Senior Software Engineer on the Platform Operations team, where I lead a
team of 5 engineers that is responsible for the software development lifecycle
at Workiva.

I build software that allows engineering teams to deploy code to production
safely and reliably 1000s of times per day.

Some of the projects I've led recently are a distributed caching and storage
system, Workiva's first AI platform, that allows teams to deploy LLM-based
solutions to production.

I am currently leading a project to enable advanced deployments at Workiva for
canary deployments, blue-green deployments, and fast rollbacks.
  • Interview with Upstart was better, though I need to write down all my STAR examples.
  • My wife, Megan Kraus, listened in. Her feedback:
    • Don't say "stuff like that" at the end of every sentence.
    • Don't be self-deprecating. There was a point in the interview where I said "frontend isn't my strong suit...". Just don't even say that.
    • Ask thoughtful questions that demonstrate your knowledge and interest in the company.

2025-03-08

2025-03-09

2025-03-10

  • Flushed from Datadog. Suspicion confirmed that that req was a honey pot.
  • Hiring manager interviews scheduled with Assured (3/12 @ 13:00) and Stytch (3/17 @ 16:00).

2025-03-11

  • Moving forward with Upstart.

2025-03-12

  • Purchased LinkedIn Premium. Watch out world!

grind.rip

From Grind Hell, with Love