I've been stressing out about the whole job hunt thing lately, and admittedly, I've gotten less focused in my approach and my decision-making has become less reliable. Looking for a job is still one of the more uncomfortable situations I think you go through in life: 1) you're constantly faced with the reminder that you're failing (sometimes quite epically) or not good enough, 2) in most cases, there's some degree of urgency due to finances, and 3) if you tend to over-think things like me, it really becomes a challenge to try and optimize your life/career path with only the information available to you in your 20's.
Anyway, when I first set out to find my next job (the one that's going to miraculously set me back on track since I've managed to veer away from a lot of the things that got me into engineering in the first place), I found a handful of about 10 places that I wanted to apply to. Each of these places had their own set of prerequisites to applying/interviewing (a presence in the dev world, good command of algorithms, contributions to open source, etc), so I set out to get as many of these checkboxes ticked as I could before applying. The problems I ran into were: 1) you can't build yourself an online presence in the dev world overnight or even over the course of a few months, 2) it's hard to prioritize reading/reviewing CLRS/CtCI when you still have to pay the bills, and 3) it takes time to write a full-featured application that demonstrates your years of web dev experience that is otherwise hard to show because most contracts are work-for-hire and clients generally don't look too keenly on you distributing their code as open source. As a result, self-imposed deadlines started to slip, and as more companies were added to the list, the problem compounded itself. Enter my proposed (and executed) solution:
I decided to make a list of the top 5 things I wanted in my next job. For me, they are (in no particular order):
- the opportunity & ability to make a difference
- existing problems/dysfunction
- organizational support/empowerment
- work on something meaningful that I would use
- flexibility or variation in responsibilities
- job rotation or internal transfers
- growth within company
- learn new skills
- technical chops (does anyone else worry that they're not technical enough...like all the time?)
- product management/startup
- environment that supports hobbies/projects/travel/interests
- schedule flexibility & culture
- like-minded colleagues
I then also made a quick list of auxiliary things I would want, but aren't the primary concerns when evaluating jobs:
- pay off debt quickly
- form relationships within startup community
- travel & unique experiences
- hacker cred
Taking this list, I generated a spreadsheet with all of the companies I'm interested in, have connections to, or have been contacted by. I created a column for each of the 5 primary things listed above, along with a column for application/interview prerequisites, and a column for outstanding tasks necessary to meet the prerequisites. In the columns under each of the 5 wants, I rated each company (it's not a perfect science, I'll admit) on a scale of 1 to 5 (5 being highest) on how I thought the company would meet these criteria. I then averaged the numbers and came up with a score for each company. After a quick "sort" operation, I had a prioritized list of companies that I was interested in, along with a prioritized list (with some groupings/overlap) of tasks I needed to complete in the near future.
It's probably worth mentioning that some columns were skipped in the initial calculation of scores because I didn't feel I had enough information to put together an accurate assessment of the company on certain criteria. This happened most often with the "environment/culture that supports interests" category, so if you're interviewing/looking to hire me, there are still easy points to be had! ;-)
For those of you over-thinking job hunters out there, what tricks have you used to improve your process?