Obtaining Your Ideal Software Job
Published: 2021-12-24 21:27:55

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.

## Finding Companies

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](https://lowercarboncapital.com/companies) [capital](https://a16z.com/portfolio/) [firms](https://www.sequoiacap.com/our-companies).

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.

## Practicing Daily

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](https://github.com/poteto/hiring-without-whiteboards).**

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](https://binarysearch.com/). [LeetCode](https://leetcode.com/) 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](https://www.algoexpert.io).

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 wrong.

Once you're ready to start interviewing in person, you can [book a mock interview](https://interviewing.io/). 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](https://www.joshwcomeau.com/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.

## Fresh Perspectives

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](https://thetechresume.com/)
  - Having a great resume is extremely important in the age of job screeners
- [The Little Book of Big O](https://jarednielsen.gumroad.com/l/big-o)
  - A great book for grokking time and space complexity
- [De-Coding the Technical Interview Process](https://technicalinterviews.dev/)
  - This book covers the entire interview process from start to finish
- [The Coding Career Handbook](https://www.learninpublic.org/)
  - 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](https://www.crackingthecodinginterview.com/). 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](mailto:amorriscode@gmail.com). Good luck with your search!