This series started with my experience job hunting in the US as a software engineer, where I wrote about the talent shortage in Silicon Valley and my own job search. The previous post, “Going on the Offensive,” covered the websites and platforms people in the US use to find jobs, and how the platforms compare, for anyone ready to search in earnest. This post is about what your days actually look like once the search begins. How do you split your time between applying and practicing, and how do you keep the balance?

A Daily Routine for the Job Hunt

If you are job hunting full time, in the early stage you should apply to five to ten positions a day on whichever platform you like. If the roles you apply to are similar, your resume usually does not need to change. The cover letter, though, should be customized for each company, and that takes some time. Apply to at least five new companies a day, and after a week you may start hearing back from them. From the second week on, you still keep applying to new openings, but you should gradually set aside a few hours a day for first and second round phone screens. I once tried scheduling four to five phone interviews in a single day, but by the fourth or fifth one, my performance was noticeably worse. After talking it over with friends more senior than me, I settled on at most three phone interviews a day. And if you have an on-site interview, congratulations. It will take your whole day. At Silicon Valley tech companies, a short on-site might run two and a half hours, and a long one seven or eight hours, plus travel time. To make sure you perform at your best, on on-site days, skip the new applications and phone screens.

Resources for Technical Prep

Alongside daily applications and phone interviews, set aside time to prepare for technical questions. Like it or not, tech companies still ask a lot of questions about algorithms and data structures. If that is not yet your strength, here are a few resources I recommend.

Cracking the Coding Interview

This book comes strongly recommended by many senior friends in the industry, and it is a bestseller on Amazon for software engineering interview prep. The author covers the whole interview process and every major topic, and the book includes 189 common questions with solutions. It is the bible of interview preparation.

LeetCode (updated in 2020)

An online platform for practicing algorithms and data structures, with a huge range of problems at every difficulty level and support for all the common programming languages. The tests after you submit are strict, which helps you spot the edge cases your code did not consider. As of 2020, LeetCode is the first thing almost everyone mentions when it comes to interview practice. It has become an indispensable part of preparing for interviews.

Courses on Coursera: Algorithms, Part I, from Princeton University Algorithms: Design and Analysis, Part 1, from Stanford University Both are excellent courses. They help you understand algorithms and the thinking behind each one.

There are plenty of useful resources online. My principle is to find the ones that work for me and stick with them. Set aside about one to two hours a day for studying. More than that starts to crowd out your applications and phone interviews. And keep in mind that every interview is practice too. If a question stumps you in an interview, work out the solution afterward. Counted that way, you may actually be practicing four to five hours a day.

Job Hunting Is a Numbers Game

The highest principle of job hunting is this: it’s a numbers game. In any given interview, you might perform better or worse than your usual level. The questions you get, the interviewer’s mood, and all kinds of other factors affect whether you move to the next round or get the job. Luck plays a real part in landing a job, so after each interview, do not stay happy or discouraged for too long. Put your attention back on your regular routine.

Do Not Forget to Rest

Finally, job hunting is stressful work. Every interview asks you to show your best self, hard problems push you to your limit, and rejections are part of it. Remember to keep some time every day and every week for things you enjoy, things that help you relax. Your brain needs proper rest to keep performing at its best. I hope everyone finds their own rhythm, and a good job.

Next in the series: I Got the Offer: What Should I Watch For, and Can I Negotiate More Salary, Stock, or Vacation?


This post was originally published on my former blog, 「半路出家軟體工程師在矽谷」, on August 31, 2015. The blog is now offline, and the text is preserved via the Wayback Machine. It has been lightly edited for this site.