Finding a job is stressful for everybody. The standard tech interview doesn't help, does it? I've sent out a few emails over the past few years detailing my approach to the job search as well as some resources I use. I decided to write about it here so I can share it easier.
The first thing I do when I know I'm ready to make a move is build a list of companies I'm interested in. It's hard to know what a company is like from the inside but it's important to me that I believe in the product.
Since I'm interested in smaller companies, I like to look at startups. Working at a startup can be risky. To mitigate the risk, I start by looking at companies on websites of venture capital firms.
I try to build out a spreadsheet of 50-100 companies. This list can be pruned over time too. Applying for jobs has always felt like a numbers game to me so it's nice to have a starting point.
What you look for in a company is likely different than what I'm looking for. The important thing is you build a list of companies that align with your needs and interests.
Given the current landscape of software interviews, it's a good idea to practice solving algorithms. It's extremely common to whiteboard a problem solving question during the process.
If you want to avoid whiteboard interviews at all cost (I don't blame you), you could look at companies that hire without whiteboard interviews.
I'm not particularly gifted with algorithms. Throughout the interview process I'll try to complete one to five algorithms a day. I really like practicing on Binary Search. LeetCode is a popular alternative full of common problems you'll see in interviews. If you're looking for more educational content, YouTube has tons or you could use something like AlgoExpert.
Being consistent will go a long way here. Do as much as you can daily. Even if it's a only single question, it'll help you in the long run.
Once you're ready to start interviewing in person, you can book a mock interview. It'll help you gain some confidence. I've never done this but I think it would've helped me. I once cancelled an algorithm interview 30 minutes before it was supposed to start because I had a panic attack.
Having a Portfolio
This might not be necessary but I love me a good portfolio. I've had interviews where people brought up something I wrote about on my website. It's a nice way to break the ice and connect with the folks on the other side of the process.
Having your own website makes it easier for folks to get another lens into who you are as a developer. Josh Comeau has a great resource on how to make an effective portfolio.
Keep in mind this is optional, but it can be a fun way for you to express yourself and tinker with smaller coding projects.
One of the things I like the most about reading is that I get the perspective of other people. There is a lot of content available online related to job interviews. Here are a few resources that I've found helpful:
- The Tech Resume Inside Out
- Having a great resume is extremely important in the age of job screeners
- The Little Book of Big O
- A great book for grokking time and space complexity
- De-Coding the Technical Interview Process
- This book covers the entire interview process from start to finish
- The Coding Career Handbook
- From the job hunt to becoming a senior engineer, this book covers the entire career path
If you're up for it, you can read Cracking the Coding Interview. That book bored the heck out of me so I found alternative resources. In the end, if you're expecting algorithms, reading won't prepare you better than practice.
Being Patient and Picky
As long as it's financially viable, I try to spread out my job search as much as I can. Finding companies, practicing, and interview is a lot to do at once. In the past, I've ended up doing 10 interviews in a single week. It's exhausting. If you're working on top of all of this, you might need to take up meditation as a habit.
If time is on your side, then you can be picky too. Rank your company list by your desire to work there. Start by applying to your top companies. Get through those then keep plugging along until you get an offer you're happy with!
I know that being patient and picky is a privilege that we won't all have. If you need something fast, don't feel bad if you end up leaving after a short period of time because something better came along. The job hunt is about finding a place to work where you feel fulfilled. You always need to do what's best for you.
Finding Your Process
The job search has always been a stressful experience for me. Building my own process around the search has helped me control my nerves. I even have fun with certain parts of the experience now.
This probably won't be the last time you apply for jobs so developing your own process will make it easier next time you have to do it. Hopefully some of the resources I've shared are helpful for you!
If you have any questions or comments, feel free to reach out to me. Good luck with your search!