This job hunting guide covers resumes, job application process, coding interview prep, system design interview prep, mock interview practices, behavioral interview prep, computer science fundamentals, and negotiation tips.
You should have a brag list of your own, basically collecting your achievements in day to day work, the challenges you’ve faced and how you solved it, it does not take much time to keep a record of these achievements, but they are super helpful when you need to revamp your resume, or write promo docs.
Once you finish writing your resume, it is essential to have someone else to vet your resume, you can ask your friends to help with proofreading, run it through
If you have projects you are proud of and can demonstrate your skill sets you can showcase it with one page websites. You can use
If you want to take it further to establish a personal brand online as a developer, you should get a domain via registrars such as
There are some popular job postings aggregator sites:
Don’t forget referrals
The job posting aggregator sites are great, but if you can get someone to refer you to a position, it usually has a better response rate. Trying to reach out to your network for potential referrals is always a good thing to do.
If you are applying for multiple positions, you probably want to manage all these job applications with a tool or system to track progress and keep notes:
If you are new to data structure and algorithm or you want to brush up on it:
There are many other classic books or courses on data structure and algorithms, but to ace coding interviews, we should focus on practicing to solve common coding interview questions, there is no shortcut, practice makes perfect. Having said that, as of right now there are already more than 2500 practice problems on
A common and effective strategy I’ve seen many people used and worked(including myself) is:
After learning about the fundamentals of a data structure or an algorithm, try to solve some corresponding classic problems.
Once you are familiar with these topics, now it’s time to see if you are able to recognize which data structure or algorithm to use when you encounter a new problem
Once you are confident you can solve most new problems, the next step is to practice mock interviews
Note that Leetcode has a
A more challenging yet common way to evaluate candidates is to have an interviewer work with you to solve a problem, it usually requires the candidates to be able to clarify requirements, communicate his or her thought process and solve the problem within a limited time. Other words, you also need to practice this scenario.
Other useful resources
If you are targeting senior and above level, system design is probably where you would want to spend more time on, since this is usually where the employer see if you are qualified for the level you are applying for, if your day-to-day work doesn't include a lot of hands-on system design, you may want to plan time ahead to prepare this type of interview, even if you have the work experience, designing in an interview setting is different than designing in day-to-day work, so you have to prepare for it.
I can’t stress enough about the importance of mock interviews, you learn from the feedback, adjust or learn, then rinse and repeat, it applies to system design interviews as well.
You can also set up random peer mock system design interviews on
I would say try to find people who are more experienced in your network see if they can help with mock interview, but if you think this is your bottleneck, perhaps check
Other Resources
To nail the behavior round, it highly depends on what role or level you are interviewing at, but a few things that are generally helpful is to 1)keep note of your achievements and challenges you solved at work 2)use format such as
There are some resources showing you common mistakes you want to avoid and tips during behavior interview:
Other Resources
Depending on the company and position you are interviewing for, you may need to refresh on computer science. With the time constraints of getting ready for an interview, I recommend finding the knowledge gap you need to close and close it, instead of going through the material sequentially(but if you have the time to go through the books or courses, it’s always good to learn).
To negotiate offers you need to know the market, you may also get this question at the beginning of the interview pipeline as well, whether you want to disclose is up for you, but it’s always good to know the market trend, here are some resources to help:**
**
I’ve compiled and curated a list of job hunting resources for software developers, it covers resources for writing resumes, applying and managing job applications, efficient ways to prepare for coding interviews, resources to learn system design, you can download the full free PDF here.
Note: This article is based on my personal experience. If you have more suggestions please leave them in the comments below.. I’m always open to meet new people so feel free to contact me on Twitter.
Also published here.
Thanks for reading!
If you enjoyed this story, show your support by sharing with your friends!
Additional references
Image credit, HackerNoon AI prompt of “a robot prepares to make software inside a computer.”