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 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. brag list 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 to correct grammar errors, or if your resume has never been vetted before you can find dedicated service on to review and edit your resume. Grammarly Fiverr 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 to create simple, free, fully responsive one-page sites for your projects/products. Carrd 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 , they usually have very affordable domains. Namecheap 🎯 Apply For Jobs and Manage Your Applications Where to apply for jobs There are some popular job postings aggregator sites: : 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 opportunity LinkedIn and : Still being used by many companies Indeed Glassdoor : more towards startup jobs AngelList : more towards startup jobs Hired 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: : a great tool to manage your job search, the free tier should be sufficient for individual usage Huntr : 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 beautiful to get started faster. Notion notion templates : What’s powerful about Todoist as todo app is its natural language todo creation and advanced filter views to track todo tasks Todoist 👩💻 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 (it’s a big book, but to ramp up on data structure and algorithm, you probably want to read below sections/chapters first) Cracking the Coding Interview 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 , we also need to be smart about preparing for coding interviews. Leetcode 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 (or in Elements of Programming Interviews in Python ) Java is a great tool if you want to spend less time but get the best coverage of frequently asked coding interview questions Grind 75 questions Leetcode has a couple of study plans such as , (some problems may require premium to unlock) Binary Search Study Plan Graph Theory Study Plan Neetcode has for studying data structure and algorithm roadmap 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 to solve a problem this approach Some community resources like is also helpful to learn about patterns this leetcode 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 feature, you can try this feature to see if you can solve a problem within limited time, it mimics the online assessment in interview pipelines Mock Assessment 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. is a free platform where you can pair with random peers to mock this type of interview Pramp 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 interviewing.io Coding interview Popular Youtube Channels Tushar Roy - Coding Made Simple Back To Back SWE Abdul Bari Byte by Byte WilliamFiset Other useful resources Big O cheatsheet Design Patterns Refactoring A Philosophy of Software Design 🧑🎨 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 : 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. Designing Data-Intensive Applications : 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 : 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. System Design Interview – An Insider's Guide: Volume 2 PEDALS method Google Site Reliability Engineering book System Design Popular Youtube channels : It has many great recordings from those who worked on large scale systems InfoQ : It has recordings from tech conferences maintained by engineering community at Meta System @Scale : It will share some mock interview recordings where you can observe and hear the feedback from the mock interviewer. interviewing.io : It goes over some common system design problem in depth. System Design Interview : This community also has regular mock interview sessions SDE Skills : It is the owner of the Pramp mock interview platform, sometime they share mock interview recordings Exponent : He shared videos on common backend system problems, it is not geared toward interviews, but is helpful in terms of learning backend in general Hussein Nasser Courses If you prefer to spend your time efficiently on high quality and well instructed videos, is created by the same person who owns this Youtube channel(if you ever searched system design videos on YouTube, mostly likely you’ve seen into this channel before) System Design for Interviews and Beyond System Design Interview also has some system design courses(note its courses is mainly in text) Educative Scalability & System Design for Developers Grokking Modern System Design Interview for Engineers & Managers 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 . However for system design interviews, the feedback is often valuable when your peer is already an experienced engineer, this is not always guaranteed since the platform pairs peers randomly. Pramp 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 to find some experienced engineers to mock and provide detailed feedback with you could be a good investment(they also release some video recording on ) interviewing.io YouTube Other Resources (From Microsoft Azure) Cloud Design Patterns Latency Numbers Book(although it is slightly more abstract, not just for interview) Fundamentals of Software Architecture 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 to tell your story. STAR There are some resources showing you common mistakes you want to avoid and tips during behavior interview: Courses Grokking the Behavioral Interview Rock the Behavioral Interview Youtube Channels DanCroitor Candidate Planet Self Made Millennial Jeff H Sipe Other Resources Cracking the soft skills (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) The Reverse Interview 💻 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:** ** : Youtube channel talks about negotiation Candidate Planet : It has the most comprehensive data points for tech jobs levels.fyi : mostly 🇨🇦 tech job data points meterwork : not just for tech jobs payscale : not just for tech jobs, not too many data points there but you can check the review and ratings glassdoor : it has ratings and reviews for a company, and some time you can see people sharing compensation anonymously Teamblind 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 to learn about what a good tech resume looks like and why The Tech Resume Inside Out ’s section Cracking the Coding Interview Introduction-Before the Interview Image credit, prompt of “a robot prepares to make software inside a computer.” HackerNoon AI