I've been writing software for some 30 years now, since I got my first computer at age 10 and copied BASIC programs out of 3-2-1 Contact magazine so I could play games on my Apple II compatible. I graduated with an IT degree at the peak of the tech boom, worked for a Fortune 500 bank, a couple of growth companies, my own side projects, and most recently, I even co-founded a software startup. However, nothing quite prepared me for the stressful journey of finding my next endeavor on the job market of Boulder, Colorado. Here's my story and my advice for anyone else about to be put through the wringer...
First Step: Broadcast Yourself
After speaking with a local consultant in the industry, he suggested "It won't be easy, but you should be able to find something if you make it a job. I suggest you send out ten resumes a day!" Boy he wasn't kidding. With that approach, I uploaded my resume and started actively applying on indeed.com, monster.com, and builtincolorado.com, averaging anywhere from 5-10 submissions a day for several weeks. Soon, the calls and emails started coming in.
The Filtering Begins
Recruiters can be pretty tenacious, especially if you have a strong resume. Unfortunately, many don't pay attention to the fact that you are only applying for jobs within 20 miles of your home. Be prepared to get your inbox flooded with requests from endless recruiters with long Indian names asking you to apply for URGENT openings in places like Pennington, New Jersey. You might consider a separate email for the job search. Also, DO NOT post your contact info or phone number on the resume sites because YOU WILL get tons of spam calls and email. Be sure to edit that part out of your uploaded resume. Even so, they will find you, so be prepared to get the spam filter trained.
Finding a Fulltime Job Can Be A Fulltime Job
Back in the old days (the mid 2000's), it used to be enough to do a phone screen and a half-day onsite interview to land your dream job in the tech sector. My, how things have changed! These days, it seems like the standard for a software development job is around 4 interviews!
We Don't Need No Stinking Database!
My first interview was at a downtown Boulder outfit. It was odd, because when I walked in, the place was dark and there didn't seem to be a single employee anywhere. I was puzzled by this, but it seemed like everyone worked from home. I had just come off 3 years of working form home on a distributed team, and I was looking for something where I could work and bond with a local team, but I was gung ho about every opportunity, so I applied. The guy came right out and said, "The purpose of this interview is to get you stoked to work here so you do all the work to try to get the position. We put our developers through a lot to get the job, but at least you'll have that camaraderie if you get it." Then, he went into the fact that the company didn't even use a database because they needed their transactions to be so fast. He told me the next step was a take-home code exercise. I know now that the point of this excursion wasn't to work there, but to be introduced to the coding interview.
Cracking the Coding Interview
The take home exam was to create an in-memory, arbitrarily type-safe, "N-way, Set-Associative cache" with LRU and MRU replacement algorithms. Ahh, computer science. I duckduckgo'd the question and someone suggested the book, Cracking the Coding Interview. I immediately went out and bought it to start to understand this concept of "the coding interview" and "code tests." I was really glad I bought it, not only because it prepared me for some of the interviews I was about to take, but also for its general review of computer science concepts, some of which I hadn't actively dealt with in years. I'd highly recommend this book to anyone in this field on the job market or even just wanting to brush up on basic concepts. In fact, another Boulder-area outfit brought me in for a day of interviews, and they asked two questions directly out of the book! How creative! Of course, I didn't memorize the questions, so it still took me a while to put something together, but I would have probably been clueless if not for this book. That said, I still question how being able to "write an algorithm that takes a license plate number and a dictionary of all English words and outputs the shortest word which contains at least all the letters in the license plate and do it with me looking over your shoulder in under 30 minutes" is applicable to a regular software job, but hey, who am I to say? At the very least, this helped me reaffirm that I'm more of an information scientist than a computer scientist, and while I use computer science to accomplish information science tasks, this career is less interesting to me without the underlying goal of bringing people and technology together by transforming data into information and information into knowledge. Heck, in my ideal job, we are turning knowledge into wisdom, but that's a pipe dream, right? ...or is it?
Three weeks into the job search, I started to stress about my prospects. Some of the bigger places like Amazon and Google didn't even respond. Of course, I never saw myself in one of those places anyway. It sounds prestigious, but many of these jobs would have me working on some tiny cog in the machine or require me to proselytize and evangelize behemoth companies. I swore off working for "the man" and morally ambiguous places (like when I worked at the bank during the mortgage bubble) years ago, but it made me sad when these places didn't want me anyway. Beyond that, when less appalling companies said they were "going another direction." I began to worry. On the other hand, I had to pull the rip cord on a few options myself. When someone says, "We're 75% complete on this system and we need you to finish the last 25% as a contractor; then, if we like you, we might hire you as an employee," or, "we're hoping that we get some funding in about a month so we can hire you," or "we're an exciting startup that can offer you 75% salary at 125% hours and some equity that will someday be worth more than any salary," it's time to meditate.
Technology Stack Overflow
Nobody Weird Like Me
With the flood of developers and new technology on the market these days, it seems like finding the right job is less about technical skills than it is about finding a cultural fit. This was the most eye-opening realization. In some ways, it was a bummer, because I'm quite a unique individual, so I don't think I "fit in" for a lot of places looking for dudes who get more kicks out of writing code than what that code accomplishes or ambitious individuals more concerned with making a ton of money than how they make their money. I have nothing against these people (and want some of them on my team), but it's probably best that they passed me over. That said, it is interesting to interview for places that claim to be looking for people who are "different" but really only people who are "different like them." In the end, each time a place told me "we're going with someone else who is a better fit," it was a blessing, even if it did hurt my ego to not be adored, sought after, and accepted. I might have been questioning our choice after 6 months.
Manifesting My Destiny
In the end, I found the perfect job for me. In fact, after I left the final interview, I felt that, if I didn't get that job, I was wondering how I might muster the motivation to work anywhere else. Nothing seemed to compare because it was a perfect match for me as far as the culture and the product (and even tech). My experience was actually a little crazy, because going into it, I thought I was going to get an offer from another place that was advertising a bunch more money. I thought I'd have to choose between money or a perfect fit, but I didn't get to make the choice; the other place "found a better fit" literally as I was interviewing for my next employer. After hearing that phrase more than once, I knew it would be impossible for the place I ended up landing to "find a better fit" than me, but it didn't keep me from stressing with unending anxiety until the moment I signed my offer letter. During the time between my last interview and my offer, the universe provided me the opportunity to realize what I really wanted and put all of my psychic energy towards it instead of splitting it by getting people to bid over me. I even did one more interview with another place in that timeframe. Even though it seemed like a solid career move, my heart just wasn't in it. I knew where I wanted to work already. I think this realization actually helped me land the job instead of playing "hard to get." The industry has changed and places are unhappy and unimpressed by the "old school" of software developers who think (actually, we think we know) that they're the god's gift to business. There's too many hungry kids fresh out of React.js weekend bootcamp willing to code how you tell them to code and work for way less money who will deliver a functioning system with the slew of great technologies we have these days. As such, it's harder for senior developers to land than it used to be based on skills alone. One thing about software development, it's always getting easier, and this is a good thing. Finding my next job was a humbling experience, but these are the life experiences that make life worth living, and in the end, when I finally found my place, I knew that, like many things in life, the journey was a big part of the destination.
Copyright (c) 2015 Russell Eric Dobda