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.
📝 Resume Tips
Step 1: Write down your career stories in a resume
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.
Step 2: Vet your resume
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
Step 3: Take it further to build your personal brand online
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
🎯 Apply For Jobs and Manage Your Applications
Where to apply for jobs
There are some popular job postings aggregator sites:
LinkedIn : I would say LinkedIn has most of the job postings for tech, and they often give you one month free premium trial, you can use that to see more analytics about an opportunityIndeed andGlassdoor : Still being used by many companiesAngelList : more towards startup jobsHired : more towards startup jobs
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.
How to manage multiple applications
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:
Huntr : a great tool to manage your job search, the free tier should be sufficient for individual usageNotion : a powerful tool to write and collaborate, for example, you can use it to summarize knowledge for coding interview, write down behavior stories and ask your friends to provide feedback. You can also find beautifulnotion templates to get started faster.Todoist : What’s powerful about Todoist as todo app is its natural language todo creation and advanced filter views to track todo tasks
👩💻 Prepare For Coding Interview
If you are new to data structure and algorithm or you want to brush up on it:
- Udacity Course:
Intro to Data Structures and Algorithms - Coursera Course:
Algorithm Part I ,Algorithm Part 2 Cracking the Coding Interview (it’s a big book, but to ramp up on data structure and algorithm, you probably want to read below sections/chapters first)- VI: Big O
- VII: Technical Questions
- IX: Interview Questions(Chapter 1-5, 7-10 since they cover common coding interview questions)
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:
Step 1: Learn the fundamentals
After learning about the fundamentals of a data structure or an algorithm, try to solve some corresponding classic problems.
- You can check this book
Elements of Programming Interviews in Python (or inJava) Grind 75 questions is a great tool if you want to spend less time but get the best coverage of frequently asked coding interview questions- Leetcode has a couple of study plans such as
Binary Search Study Plan ,Graph Theory Study Plan (some problems may require premium to unlock) - Neetcode has
roadmap for studying data structure and algorithm
Step 2: Recognize patterns
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
- During this phase, you can try to follow
this approach to solve a problem - Some community resources like
this leetcode patterns is also helpful to learn about patterns
Step 3: Mock Interviews
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.
-
Pramp is a free platform where you can pair with random peers to mock this type of interview -
interviewing.io also provides mock interview with FAANG engineers, although it’s pricey, personally I think if you practice enough on Pramp and Leetcode it should be sufficient, but up to you if you want to invest a bit more in getting a FAANG engineer to mock coding interview with you
Coding interview Popular Youtube Channels
Other useful resources
🧑🎨 Prepare For System Design Interview
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.
Step 1: Learn Basics
The System Design Primer Designing Data-Intensive Applications : highly recommended by many people, it is very helpful especially if you are not familiar with distributed or data intensive systems, note that this book is not intended for interview per se, but it will help you close some knowledge gaps.System Design Interview – An insider's guide : The book is geared toward system design interview, it includes a recommended flow of solving a system design interview question, and uses several common questions to explain this flow.System Design Interview – An Insider's Guide: Volume 2 : The second volume contains much more details than the first book and covers more domains. You can even just use it to learn what aspects to consider when designing for a particular domain.PEDALS method Google Site Reliability Engineering book
System Design Popular Youtube channels
InfoQ : It has many great recordings from those who worked on large scale systemsSystem @Scale : It has recordings from tech conferences maintained by engineering community at Metainterviewing.io : It will share some mock interview recordings where you can observe and hear the feedback from the mock interviewer.System Design Interview : It goes over some common system design problem in depth.SDE Skills : This community also has regular mock interview sessionsExponent : It is the owner of the Pramp mock interview platform, sometime they share mock interview recordingsHussein Nasser : He shared videos on common backend system problems, it is not geared toward interviews, but is helpful in terms of learning backend in general
Courses
- If you prefer to spend your time efficiently on high quality and well instructed videos,
System Design for Interviews and Beyond is created by the same person who owns thisSystem Design Interview Youtube channel(if you ever searched system design videos on YouTube, mostly likely you’ve seen into this channel before) Educative also has some system design courses(note its courses is mainly in text)
Step 2: Mock Interview
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
Cloud Design Patterns (From Microsoft Azure)Latency Numbers - Fundamentals of Software Architecture Book(although it is slightly more abstract, not just for interview)
Curated list of engineering blogs
🙇Prepare For Behavior Rounds
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:
Courses
Youtube Channels
Other Resources
Cracking the soft skills The Reverse Interview (usually towards the end of the interview you will have a few minutes to ask questions, it is also a great opportunity to learn about your potential employers, remember the interview is a two way street)
💻 Computer Science Fundamentals
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).
Open source courses
Udacity: Networking for developers Udacity: Intro to OS Coursera: Networking by Google Udacity: Computer Networking MIT: Computer System Engineering MIT: Distributed Systems CMU: Database Systems
Books
Computer Systems: A Programmer’s Perspective Code: The Hidden Language of Computer Hardware and Software Operating Systems: Three Easy Pieces
🤝Negotiate Offers
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:**
**
Candidate Planet : Youtube channel talks about negotiationlevels.fyi : It has the most comprehensive data points for tech jobsmeterwork : mostly 🇨🇦 tech job data pointspayscale : not just for tech jobsglassdoor : not just for tech jobs, not too many data points there but you can check the review and ratingsTeamblind : it has ratings and reviews for a company, and some time you can see people sharing compensation anonymously
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
Practical guide to writing FAANG-ready software engineer resume The Tech Resume Inside Out to learn about what a good tech resume looks like and whyCracking the Coding Interview ’s section Introduction-Before the Interview
Image credit, HackerNoon AI prompt of “a robot prepares to make software inside a computer.”