How to Prepare for Google Interview Questions from a Google Engineer
An in-depth interview with a Google engineer about how he got the job
Intro
The interview between Hackpack founder Daniel Habib and hackpack alumni Tobias, who is now currently working for Google, shows Tobias’s path to landing a job in big tech and the obstacles that he faced along the way.
This interview is rich in advice for software engineers aspiring to secure a job in a big tech company. Throughout this article, Google software engineer, Tobias, will describe the hurdles and triumphs that he endured to obtain his position, as well as how having a community of like minded individuals and mentors benefited him on his journey.
Was Your Initial Framework Consistent with Your Actual Preparations?
To kick things off, Daniel reminds Tobias of the initial preparation plan that Tobias had shared with Daniel back when he had first joined the Hackpack.io community in December of 2021. Daniel asked Tobias if his actual preparations were consistent with his initial plan, or if he modified the plan as he practiced more and more. Tobias explained that his framework did not change much and in hindsight everything that he planned was ‘80% valid’.
One mistake that Tobias recalled was how when he encountered a difficult problem that he could not solve at first, he would keep trying to solve the problem for hours. He advises that instead, if you cannot solve a problem within a reasonable interview time window (35 minutes), then you should move on and try to understand the correct solution and how you could implement it into other similar problems.
When Did You First Break Into the Software Engineering Field?
Taking a quick step back, Daniel asks Tobias when he started breaking into the software engineering field. Tobias explains how he graduated college with a degree in electrical engineering, and transitioning from working with computer hardware to computer software was at first an arduous feat for him. Tobias further describes how in January 2021, he was so fed up with his job that he decided to take a chance and apply for a job at Google with a friend of his, using the book Cracking the Coding Interview by Gayle Laakmann McDowell, to help guide them.
Unfortunately for Tobias, in the time preceding his interview with Google, he had important events occurring in his personal life, and he was too busy to study enough. On the other hand, the friend that he applied with was able to secure a position, which proved to seriously motivate Tobias to return and make the most of his next opportunity. Tobias adds that this was around the time, July 2021, when he discovered the Hackpack community, which was an extremely valuable resource for him. He describes the Hackpack community as a gym membership, as it is an essential tool that you can use to significantly boost your skills, but you still must put the time and work in yourself.
How Did You Feel When Your Friend Got the Job that You Both Applied for While You Did Not?
Probing back to when Tobias and his friend had interviewed with Google, Daniel asks how Tobias felt when his friend got the job and he didn’t. Tobias admits that he had some feelings of jealousy, but was still very happy for his friend. He also further explained how it proved to him that it would be totally possible for him too to work for Google as an engineer. Tobias acknowledges that his friend was certainly a smart guy, but that he was no smarter than Tobias, and there was no reason that he could not also obtain his dream job with Google.
This proved to be a turning point in Tobias’s career, as it was when he fully decided that becoming a Google software engineer was what he wanted, and began his interview preparation. Tobias shares the major phases of his preparation, and begins with his initial struggles with even the easiest leetcode problems and Dynamic Programming. Specifically, Tobias recalls marveling at others who had completed thousands of leetcode problems, while he had to put so much time and effort in to complete only 50.
Tobias also recalls how he relied on support from the Hackpack community to keep him motivated through adversity, as well as help him learn and work through challenging solutions.
How Did You Break Up Your Day and Manage Work with Studying?
Refocusing a bit, Daniel then asks Tobias how he broke up his day, and whether he would study before work or after work. Tobias explains that he preferred to study and do his interview prep before work, as he was more of a morning person and this was his most efficient time of day. Tobias highlights that he took this approach because he was fully committed to becoming a Google software engineer, as he prioritized his preparation and used his less efficient hours of the day working his current job at the time.
Delving deeper into Tobias’s routine, Daniel asks him how many study hours he would get in every morning before work, and what time he would wake up to do so. Tobias recalls that he would wake up at 5:00 AM during one period of his studying, but that in general he tried to work in 2-3 hours every day when he could. Tobias admits that this was on average and wasn’t always possible, as he would sometimes be overwhelmed with work from his current job, but adds that whatever hours he had to miss during the week he would make up for on the weekends.
Daniel then asks Tobias how consistent he was with his morning routine. Tobias reveals that he was fairly consistent with his morning routine, and would sometimes end up doing his work in the evening. However, he preached the importance of doing problems or prep work everyday, even if it was only one leetcode problem. Tobias reiterates this, saying that even if you are tired and worn out after a day of work, try to do at least one leetcode problem before you go to bed, even if it is an easy one, just to keep your muscle memory fresh and stay in your routine.
Daniel acknowledges Tobias’s use of leetcode to prepare for his Google interview, but also asks if he used any other tools or resources to study. Tobias reiterates that he used the book Cracking the Coding Interview by Gayle Laakmann McDowell, and he also adds that he did not use The Algorithm Design Manual by Steven Skiena that many other software engineers use to prepare. In addition, Tobias mentions that he explored youtube and other places on the web in order to understand Dynamic Programming.
Google Phone Screen
Moving on, Daniel reminds Tobias of his Google phone screen interview and the feedback that he received from it. Tobias recalls how they said that his communication and algorithm skills were excellent, but that he was not coding fast enough. Daniel notes how Tobias received this feedback on March 24th, and how there was a precipitous uptick in the amount of leetcode problems Tobias solved following receiving this feedback. Tobias acknowledges this and explains that once he knew that he was on the right track and only had one area that he needed to fix to get his dream job with Google, he became more motivated than ever.
Daniel highlights how strongly Tobias acted on the feedback he received from his Google phone screening, and ultimately asks if his final sprint had made him any better at coding. Tobias replies that his final sprint certainly did help with his coding speed, and while his phone screen interview feedback was mixed, his following Google onsite interviews went very well, so his final sprint in between that time certainly proved to help him.
How Did You Benefit From Completing Mock Interviews?
Focusing back on Tobias’s final crunch of preparation before his Google onsite interviews, Daniel asks how Tobias benefited from completing so many mock interviews and leetcode problems. Tobias shares that while leetcode problems will strengthen your knowledge on data structures and algorithms, mock interviews are especially helpful because it puts you in the interview situation, which is very different from ‘coding at peace, in your little chamber’. He further adds that the mock interviews teach you how to talk someone through your code and present it without feeling pressure or getting nervous.
Daniel asks Tobias to expand on how mock interviews helped him, as well as how others preparing for interviews should use mock interviews and how often they should do them. Tobias affirms that everyone preparing for a big tech interview should definitely sign up for mock interviews. One key piece of advice that Tobias gives pertaining to mock interviews is how when you get stumped by an interview question, instead of wasting lots of time trying to research how to answer it, you can try asking the question with one of your peers and see if and how they answer the question. He also adds that having them explain their answer will help deepen your understanding even more and ensure that you don’t run into issues with this type of question again.
How Many Mock Interviews Did You Complete?
Looking back on the entirety of Tobias’s preparation, Daniel asks him about how many mock interviews he completed during his time preparing for his Google onsite, and how long it took him to pass his first mock interview. Tobias reveals that he had completed at least 100 mock interviews in total during his preparation, and that it took many mock interviews before he passed his first one, adding that everyone fails at the beginning.
Daniel agrees and recognizes the difficulty of mock interviews at first, alleging that he has never seen someone perfectly pass a mock before they failed at least 5. On a final note, Daniel preaches how important it is to get used to the feeling of coding for an interview, as solving interview questions feels a lot different when someone is watching you and you have to explain your code.
Did Any Particular Struggles Stand Out to You?
Again Daniel reflects on Tobias’s interview preparation journey, but this time asks if there were any particular struggles that stood out to him. Tobias recalls how the obstacles in his studying weren’t necessarily difficult, but they just took a lot more time and effort for him to fully understand. Tobias reveals that the interview preparation process is actually easy in the end, but you must be prepared to work for it. He mentions how he had to tell his friends and family that his time would be very limited until he secured his job, and how they were all understanding and supportive of him chasing his dream.
Tobias also specifically recalls his struggles with Dynamic Programming, but reiterates how once he put enough time into learning about it and understanding it, the topic, just like other difficult ones, eventually became easy to him, jovially noting ‘if you stare at them long enough, you will understand them’. Daniel agrees with Tobias and adds how it is almost strange how easy Dynamic Programming becomes once you have spent enough time with it.
How Did You Obtain an Interview with Google?
Moving onto Tobias’s interviews, Daniel asks him to walk us through his experience with obtaining a Google interview and how he made it through their hiring process. Tobias starts by stating that he got his interview with a referral, adding that referrals always help, but that it is still possible to obtain a Google interview without one.
Google Introductory Meeting
He then recalls how he first had an introductory talk with a member of the Google hiring team, and describes his introductory meeting as being laid back; however, Tobias does recall that rarely some people are asked a technical question.
Google Phone Screen Interview: Revisited
After passing this introductory talk, Tobias next scheduled his phone screen. He recalls that the phone screen went ‘semi-well’, but it brought to light the fact that he needed to get better at analyzing coding problems before he went into answering them. He adds that he found it difficult in the phone screen to decipher what the questions were looking for.
Google Onsite Interview Questions
A bit over a month following his phone screen, Tobias went on to begin his Google onsite interviews. Initially Tobias had scheduled his onsite round to immediately follow his phone screen within the same week, but since his phone screen round didn’t go as well as he had hoped, he asked his recruiter if he may postpone his onsite. Tobias had also requested a split onsite with Google, which is a bit different from Google’s traditional onsite interview: normally the onsite is all in one day, but with the split onsite interview, the onsite is split into half on one day and half on the next day.
Tobias recalls his favorite interviewer from his first onsite with Google. He mentions how the interviewer was super helpful and how it genuinely seemed like this interviewer wanted him to succeed, helping him pass the first half of his split onsite with flying colors.
Then Tobias moves onto his second onsite interview, in which he received the exact same problem that he had received in his first onsite. Tobias makes a key point here and says that if you ever receive a repeated interview question from a company, make sure to tell the interviewer so that he can find a different question to ask you. Google has a reputation for valuing trustworthiness and integrity. So if you do not tell your interviewer about a repeat question, and make it to the late stage of the hiring process, when the hiring committee sees that you answered the exact same question twice it will look very bad for you.
Tobias also adds that if you get a question that you’ve seen before outside of the company that you’re interviewing with like on leetcode or hackerrank, then you do not need to tell the interviewer that you’ve seen this question, but only if someone in the company has already asked you this question in your interview process.
Google Behavioral Interview Questions
Finally, following Tobias’s onsite interviews he only had his behavioral round left. He notes that he’s heard of some people getting tricky questions, but remarks that his was pretty straightforward. Tobias notes that almost always the answer to these behavioral interview questions is to just never have extremes.
Tobias specifically recalls his most difficult behavioral interview question was that you are on a team that has a product, and then a different team comes with a pull request and they want a feature for them in your product, but adding this feature would completely destabilize your product, what do you do? He states that what interviewers want to hear is that you communicate with your team and the other team to determine if this is possible, and work to come to a solution that doesn’t over-burden your team or the other team. Specifically, Tobias says that you do not answer this question with an extreme such as, sure we will just add the feature and work through the problem, or no we will just not add the feature.
Tobias recalls his most difficult of his Google interview questions was on hashmaps, but that it was doable and he had just needed a refresher. All in all though, Tobias recalled that he had quite a pleasant experience with Google.
Google Onsite Interview: Revisited
Probing back to Tobias’s onsite interviews, Daniel asks if he would recommend that others also request split Google onsite interviews, or if they should rather just get it done in one day. Tobias says that he personally would much rather prefer the split onsite, but it depends on each person and their strengths and weaknesses. He makes the point that if nerves are an issue, getting it done in one day may be the better alternative so that there is less to stress about. However if concentration is an issue, then Tobias suggests that the split onsite may help you stay fresh for the second part of the onsite because you will have more time to separate yourself from the first half.
Delving deeper into Tobias’s split onsite interview, specifically the second half, Daniel asks Tobias if he lost a significant amount of time when the second interviewer had to find a new question, or if the interviewer had a backup question readily available. Tobias answers that the interviewer did not have a backup question ready and did in fact lose a substantial amount of time to solve the questions, so much that he was cut off before he could finish solving the second problem that the recruiter had to fetch. He also noted that his second onsite interviewer seemed much less experienced than his first, who came prepared to talk and offer guidance during the first half of his onsite.
Tobias further adds that he later talked to friends who worked for Google and had interviewed with Google, and they said that interviewers should always bring two questions to an onsite for scenarios just like this. Tobias reveals that this was the only time that he complained to the recruiter, saying that he was trying to be fair by telling the interviewer that he had just had this question in his previous onsite, and felt that he was unfairly penalized by losing time while the interviewer had to find a new question for him to solve. However Tobias ultimately received an offer from Google so he let the blunder go and rejoiced having finally obtained his dream job.
How Would You Explain Your Overall Interview Experience with Google?
Reflecting on his overall interview experience with Google, Daniel asks Tobias if he felt any large difference in difficulty between his phone screen questions and his onsite questions. Tobias explains that his Google interview questions in both the phone screen and onsite interviews were both challenging, but that the onsite questions were a bit more difficult. He also describes the trouble that he faced in his phone screen round, in that the questions weren’t necessarily very hard, but that they were wrapped in a way that it was difficult to determine the actual tasks that you needed to do.
How Did You Feel after Having Made It Through All Google Interview Rounds?
Having finished his last behavioral interview awaiting a final decision from Google’s hiring team, Daniel asks Tobias how he felt after making it through the whole Google interview process. Tobias immediately shares that he was super relieved at first to have finished, but grew anxious while awaiting the results as he remembered possible trivial mistakes here and there. However, he acknowledges that there is no going back and fixing it now, and all that you can do now is await the hiring team’s decision, and maybe try to enjoy yourself a little with a well deserved break!
Fortunately, Tobias heard back not too long after his final round that he passed, and relayed that he felt on top of the world. He did have some worry about the team matching stage, but soon learned that it was very difficult to fail the team matching stage. Daniel agrees and states that nobody ever really fails in the team matching stage. The only case in which someone would fail in the team matching stage would be if someone was impossible to work with, as when you are brought to each team in the team matching stage they are all doing their best to match with you! Daniel also notes how they kind of have the same thing at Facebook. At Facebook, they had a 6-8 week bootcamp, and they said that if you didn’t find a team by the end, your offer would be canceled.
How Did You Know that You Were Ready?
Looking back to when Tobias first interviewed with Google, Daniel asks Tobias how he knew that he was ready to take his Google interview. Tobias explains that you will never feel 100% ready, as you could study for 10 years and still find questions that trip you up. He said that he felt he was ready to give it a try after he began acing most of his mock interviews, even though some problems would still give him a bit of trouble, he knew that he was still prepared enough to give it a shot, and if he were to fail, at least he would fail with a good conscience having studied very hard. Tobias reiterates how mock interviews are one of the best indicators of when you’re ready, and you don’t necessarily need to ace all of them, but as long as you are nailing most of them. He adds how at Google, as long as you ace 3 out of the 4 interviews, and you could completely fail at one, you are probably still going to get hired! Daniel touches on how even when you leave your interview feeling very confident, things can still go wrong that are out of your control.
What Advice Would You Give to Someone Beginning Their Journey into Big Tech?
To shift things around a bit, Daniel goes back to focusing on Tobias’s preparation. Daniel asks Tobias what advice he would give today to someone who had just decided they want to become a Google software engineer 2 years from now. Tobias immediately preaches that it is definitely possible. He advises that you are going to have to be prepared to put in the effort, saying that Hackpack is like a gym membership, Daniel is like the trainer, he will give you good tips, but in the end you have to lift the weight yourself.
Stay Focused!
Tobias also preaches that it’s very important to stay hyper-focused on leetcode problems and algorithm questions, as these big tech companies don’t really care about Spring, Django, or other frameworks. Tobias adds that it is different for higher up positions, where you have a lot more systems design questions, but for the entry level and levels above, its all about these algorithm and leetcode problems.
Daniel notes how these types of problems are very intimidating out of the gate, and asks Tobias what his advice is to someone who is struggling with getting momentum with a tool like leetcode. Tobias advises to definitely start with the easiest problems that leetcode has to offer, which will still be difficult at first.
Do Mock Interviews!
Tobias also advises to do mock interviews, and to bring questions that you like and have other people solve them in their mocks. Tobias preaches that once you break 100 leetcode problems, they start getting so much easier, and they continue getting even easier as you complete more! Tobias relays how it is such a great feeling when you knock down a medium difficulty question in 10 minutes.
Tobias recalls his growth through his triumphs and failures during his preparation, and specifically remembers the complexity of one leetcode problem that Daniel has everyone in Hackpack master, the bursting balloon problem. Daniel admits that the bursting balloons problem on leetcode is one of his favorite problems to have Hackpack members solve, because if you can fully understand this problem from start to final optimized solution, then you will not have any issues with Dynamic Programming or any other questions.
Daniel looks back on Tobias’s application process, and asks whether he just had referrals and submitted a resume, or if a recruiter also reached out to him. Tobias explains that at Google you can apply to three positions per month, and the way it works when you get referred is you get a link that takes you to an application portal where you select the positions that you’re interested in and attach your resume. He recalls that for the first two positions he applied for he was rejected immediately, but for the third position he selected he was invited to an introductory meeting, and from there the ball got rolling!
What Advice Do You Have for Someone that is Burning Out?
Refocusing a bit, Daniel asks what Tobias would say to somebody that’s burning out. Tobias says that if you’re really burning out then the best thing to do is just take a day off, it’s not the end of the world. He notes how he’s been there and recalls feeling as if he was going backwards, when in reality he was making great strides forward! Daniel acknowledges these low points and preaches the importance of being kind to yourself. Daniel also notes that one thing people don’t realize is if you don’t have your motivation, then you don’t have anything! He says that it is sometimes okay to experience a lack of motivation when you are resetting and relaxing, and especially normal after getting a rejection. Specifically, Daniel advises that when you get rejected from a job you should take a day to reset and reflect and acknowledge how it impacts you.
Did Teaching Help You Learn?
Looking back on Tobias’s studying, Daniel recalls how Tobias at one point taught a class, and asks if that was helpful for him in his studying. Tobias immediately affirms that teaching the class was super helpful. He explains how not only is teaching fulfilling in itself, but by having to explain a solution in depth helps you, as the teacher, to further deepen your understanding of the solution. Tobias recalls how Dynamic Programming was a struggle for him, and Daniel suggested that he should teach a certain problem to a class in the Hackpack community, and when Tobias did teach it he relays that that was when he really understood Dynamic Programming and ‘it finally clicked’. Daniel remembered this and recalled that the problem he urged Tobias to teach was Wildcard Magic, which Daniel explained is a great problem to practice working on the bottom-up approach, which is the optimized approach to the problem.
Furthering the reflection on Tobias’s preparation, Daniel asks Tobias if there were any Youtube channels that he may want to recommend to people studying for Big Tech interviews. Tobias explains that he did watch some videos on the neetcode channel, but usually found random videos on Google to help him on topics that he was stuck on.
What Did You Find that Did Not Work for You When Studying?
Diving even further into Tobias’s studying, Daniel asks what Tobias found that did not work for him when studying. Tobias recalls the initial mistake that he made was trying to solve problems for too long, specifically remembering one problem that he was stuck on, when he was trying to solve it for a whole day! In hindsight, Tobias acknowledges that he should have given up after an hour and just checked the solution, because spending all day on one problem is super inefficient. Tobias preaches that it is okay if you don’t get it, and that it is much more efficient to be sure that you’ve given the problem a good hour’s worth of thought and work, and if at that point you still cannot solve it, then you check the solution, mark the problem, and come back to it in a week or two and try to solve it again.
What's Your Final Piece of Advice for People Preparing for Their Big Tech Interview?
Before beginning the live audience Q&A portion of the discussion, Daniel asked Tobias what his advice is for people preparing to land a job in big tech. Tobias preaches to just keep at it. He also says that he will hear a lot of people asking him and coworkers what the ‘secret’ was to get into Google, and Tobias reveals that there is no secret that makes it easy. He says that, like for any success, the only secret is to work hard, keep at it, stay dedicated, and sacrifice.
Live Audience Q&A
Did You Put the Same Amount of Time into Studying During Weekend Days as You Did During Weekdays?
Advancing to the Q&A portion of this discussion, Daniel fields the first question which asks whether Tobias put the same amount of time into studying during weekend days or during weekdays. Tobias affirms that he definitely spent more hours on the weekends studying than during the week. He explains that during the week he would try every day to do something for his preparation, but that he was much more productive on the weekends when he could fully focus on his prep. Daniel agrees and notes how weekends are opportunities for you to push a little bit harder. Daniel also notes that if you’re burning out, it may be best to take a weekend off for yourself. Tobias further preaches the importance of keeping a balance, which entails getting exercise, getting sleep, and eating healthy.
Did You Have a System Design Round with Google?
Moving on, Daniel reads the next question which asks Tobias if he had a system design round during his Google interview process. Tobias shares that he did not have a system design round, and explains that Google no longer has a system design round for L4, but they still have the systems design round for L5 and upwards.
Did You Work on Any Coding Side Projects to Add to Your Resume?
Daniel advanced to the next question which asked Tobias whether he had worked on any coding projects to put on his resume before applying to Google, and if he only had electrical engineering experience on his resume. Tobias shares that he did not have any private projects to attach to his resume, and also adds that you shouldn’t go out of your way to make a side project just to impress Google. Tobias says that if you have a side project that you are really passionate about, then it’s worth your time and putting on your resume, but that you shouldn’t go out of your way to create a side project just to impress Google because it requires a lot of time that would be better spent solving leetcode problems.
Daniel challenges Tobias on this point and says that other people struggle with just getting the interview opportunity, and for those people they may have to spice up their profile and bolster their resume with side projects that showcase their abilities. Daniel notes that a good indicator for whether you need to enhance your resume and profile is whether or not recruiters are reaching out to you. If recruiters are reaching out to you, that makes things a lot easier on you, beautiful they are not, there are a slew of things that you need to do. He preaches that you need your profile to look pretty good, so good that if a recruiter glances at it that they deem you worthy of a chance to work at their company. Daniel notes that in order to do this correctly, you must take your time and have other perspectives give you insight, which is what the Hackpack community has to offer. Daniel further explains that part of the value that Hackpack has to offer is that they help people wait and improve until they’re ready to ace their interview. Tobias also revealed that he did not only have electrical engineering experience, and he had in fact been working in software engineering for four years prior to applying at Google.
How Did Your Balance Your Work Obligations with Studying Google Interview Questions?
The next question from the live audience asked Tobias how he balanced his work obligations with studying and preparing. Daniel recalled how Tobias already mentioned how he would study before work, but dove deeper and asked if Tobias had ever actually studied while at work. Tobias replied that he would always put his 8.5 hours of work in every day as he was supposed to, but during covid when everything was online he did remember times when he would maybe do a leetcode problem or two during work hours. Tobias explains that sometimes he would shift his schedule around and study in the evening, but usually he would try to do his Google prep before work, because he was able to concentrate best in the morning.
Would You Revise All of Your Study Topics the Week Before Your Interview?
Subsequently, the next question from the live audience asked Tobias how he would revise all of his topics a week before the interview, and whether note taking was helpful for this. Tobias shares that he didn’t really review all of the topics and try to cram the week before. He explains that he would rather try to clear his mind and relax so that he is very fresh and sharp for his interview and not scrambled. Tobias notes how at that point he had been studying for half a year, and two more days of studying was not really going to make a difference.
Furthering this question, Daniel asked Tobias if he would recommend this approach to others that are preparing. Tobias explained that it depends on what type of person that you are, and that for him, even since university, he had always taken the day before a big exam to relax and clear his mind after having studied hard for days or weeks. Tobias also notes how he knows people who study until the last minute and still ace it, so it really depends on the person and what works best for them.
Daniel agreed with Tobias and noted how there is a lot of variability in people preparation and what works best for each person, and notes how you may hear of people doing leetcode problems for 2 months then getting the job, but that the percentage of people who get the job with such little studying is very low. Daniel reveals that most people are like him and Tobias, where it takes quite a while of preparation for them to get the job. Daniel shares that similar to how Tobias’s friend got the job when they first applied, Daniel had a friend at Refinery29 who randomly applied at Google and got the job, and that motivated Daniel to give it a try because he thought that if his friend could do it, there was no reason that he himself could not also do it. He also jovially adds how it took him another year to get his job, and further notes how sometimes friendly competition can be a great motivator.
Coming from an Electrical Engineering Background, How Did You Deal with Filling in the Gaps in Your Knowledge While Studying?
Fielding the next question from the live audience, Daniel asks Tobias how he found a balance between filling in the gaps in his knowledge, given that he was not from a computer science background, and simultaneously practicing and writing code faster. Tobias says that you can do both at the same time, by reading up on theory and then actually applying it at the same time, and this is easy because the two go hand in hand. Tobias also notes that if you ever are reading up on a topic that you’re trying to learn, always try to work some practice problems or applications into the study session.
What Did You Do to Improve Your Coding Speed?
Daniel looks back on the feedback that Tobias received initially which was that he needed to be coding faster, and asks what he did to fix this issue. Tobias shares that he just started doing a lot of leetcode problems, and what especially helped improve his coding speed was redoing problems that he has done before.
Looking deeper into how Tobias improved his coding speed, Daniel asks Tobias if he would time himself when solving problems. Tobias explains that yes he would sometimes time himself, and sometimes challenge himself to solve easy problems in under a few minutes. He also notes how he would time himself on important problems like coin change, because you must be very solid in answering these fundamental questions.
How Did You Prepare for Your Behavioral Interview with Google?
Changing topics, the next question that Daniel reads from the live audience asks Tobias how he would prepare for his behavioral rounds. Tobias explains that he put the least work into preparing for his behavioral interviews, but noted that it is important to have stories ready that showcase your ability to work through conflict and problems in the workplace. Tobias adds how he knows some of his friends made up their stories, but that he is a bad liar and had to recall authentic memories of working through conflict in the workplace. Daniel notes that he definitely wouldn't condone lying in an interview about your experience. While it is important to stand up for yourself and be confident about what you’re talking about, outright lying about experience is probably something that you want to avoid. Especially because interviewers will push you on these questions, and if you are lying you will have nowhere to go and the interviewer will see that you were being dishonest.
How Do You Know When You are Ready to Move on to the Next Study Topic?
Moving on, Daniel reads another question from the live audience which asks how do you know when you are ready to move on to the next study topic. Tobias says that for him it was when he got bored with it, and that it’s really up to you. He further adds that when he started trees were a weakness of his, so he solved a lot of tree problems, and now he would say that trees are one of his strongest topics. Furthermore, Tobias notes that if you have a problem with a certain topic, you should attack it earlier rather than later, until it becomes a strength not a weakness.
Are There Still Dynamic Programming Questions in Google Interviews?
Seeing a burning question pop up in the chat, Tobias answers that yes there are still dynamic programming questions in Google interviews. Tobias reveals that while he himself didn’t have a DP question in his interviews, many of his friends at Google did.
Did You Find any Benefit from Solving Dynamic Programming Problems Besides Just Furthering Your Understanding of DP?
Furthering the discussion on Dynamic Programming, Daniel asks Tobias if he found any benefit from studying DP problems outside of understanding DP concepts. Tobias affirms that he definitely did, just from practicing the language and writing code fast. Daniel preaches how studying DP problems will help you in a lot of different ways. For starters, it will help you identify brute force much better because you need to understand backtracking. It will also help you get better at speaking about run times and space complexities because these are some of the more difficult run time problems. Daniel also notes how it even helps people get better with recursion.
How Do You Know When You're Ready?
Daniel advances to the next question from the live audience, which asks how do you know when you are ready for your big tech interview. Tobias explains that the best way to tell whether or not you are ready is by doing mock interviews. Tobias explains that there are a lot of educated people at Hackpack, and that you should do mocks with them, see how they go, and once you start nailing 3 out of 4 mock interviews you are absolutely ready. Daniel agrees and notes how it is important to make sure that you also get your grades submitted for your mock interviews so that you can see your progress and areas that need improvement. Daniel notes how when you are grinding leetcode you may be learning how to solve these big tech interview questions, but you are not actually preparing for the environment that you will be taking these interviews in. Daniel notes how in interviews the problems that you get are often ambiguous, and there are hidden details that you need to push for. You are also being read the problem by someone else, which may take getting used to. Daniel preaches that it’s important to get comfortable with these things, and most importantly, getting comfortable with getting stuck. He notes that you must be ready to not know what to do and not freeze up, you need to start getting creative in that moment, and mock interviews are a fantastic tool to inspire creativity in this situation.
Have You Ever Had to Battle Two Lines of Thought in an Interview?
Moving on to the final question from the live audience, Daniel asks Tobias if he ever had to battle two lines of thought during an interview: one being that a solution starts to appear from your memory, and another being a fresh approach that you believe could work. Tobias reiterates the importance of mock interviews, because this is where you should tell your mock interviewer exactly what you're thinking, the pros and cons of each solution, and ask for their advice. Tobias adds that the interviewer will immediately give you points for finding two solutions, and sometimes just by saying the ideas out loud you will be able to reason out which solution is more appropriate. Daniel agrees, and preaches that you have to assume that you are going to be given a problem that you never have seen before, because nowadays a lot of hiring teams will make their own unique interview questions. Ultimately Daniel says you should prepare for the worst and hope for the best. Daniel notes that if you are not ready to build up intuition in these really confusing situations, it’s going to be very difficult for you, especially if you can’t pattern match very obviously to something that was supposed to be there.
He adds that other times, pattern matching can actually be a trap, sometimes a problem will look very familiar to a problem you have solved in the past, but there is a small tweak that turns it into a completely different problem. Daniel preaches that you must have a system or framework for building up your intuition. He acknowledges that this takes practice, and quite a bit of time, and when you start building your intuition and following your framework, you are actually going to go slower at first, but eventually you will be going much faster than you were before you began building up your intuition.
Learn System Design
I’m actively tweeting about building LeetDesign, if you are interested in seeing all of the wacky bugs and fun challenges I face building the product, give me a follow: https://twitter.com/DannyHabibs