Searching for a job as a software engineer is really painful. There’s a new tech company popping up every minute of the day, and it’s tough to know which one to choose from.
Obviously, I should be grateful for all the opportunities I’m afforded as a software engineer, and I do, but man is this an annoying problem.
The software industry is getting a continuous flow of money from VC’s that are just crossing their fingers, hoping that 1/10 of their investments goes IPO or gets acquired.
So that means there’s a lot of cash being invested into all sorts of ideas. Some of these ideas are good, and most of them are crap. Ideally, you want to land at a company where there’s less crap.
Since a lot of these companies are popping up, there are tons of job opportunities. What I’ve found though is that a lot of these companies have hiring managers that simply aren’t prepared to interview software engineers.
These companies don’t know any better, so they use hiring practices that are popular amongst the top tier tech companies like Google and Facebook as a crutch. This makes the job interview process feel really unforgiving for new and existing software engineers alike.
I recently put myself back out there to find a new job. It’s through this long and grueling process that I figured out a few tactics that helped me circumvent many of the common software job search headaches.
Job Search Begins
I kicked off my job search for Senior Android Engineer positions back in June 2018 and started preparing for interviews. You can imagine that I’d have to be quite unhappy at my existing job to have to deal with the aforementioned job search process. Here comes all those fun whiteboard algorithms, yay.
I needed to leave my employer at the time because my goals were no longer lining up with what I was doing. This feeling is something that I’ve learned to pay a lot of attention to. It’s hard to stay excited about anything if you no longer see much value doing it.
My short-term goal at the time was relatively simple: be part of a product-oriented team at a company that focuses on software. Additionally, my long-term goal has been to become a better leader, so I can one day confidently lead teams of my own.
With these goals in mind, it really helped me filter out the job opportunities that were presented to me.
Having been so disappointed with previous job search processes, I desperately looked for a better way to interview with companies. That’s when I came across this very eye-catching ad while I was perusing Quora. It said something like “skip the whiteboard interview”. I was sold.
I am thoroughly convinced that the whiteboard interview has caused more people great pain during their careers as software engineers than helped hiring managers narrow down candidates. It’s one of the most anxiety-inducing and demoralizing interview “strategies” I’ve ever experienced.
Whiteboarding is a topic I could rant about for hours. It was my main motivator for finding a new way to job hunt, and this anti-whiteboard ad I found for a company called Triplebyte, was my holy grail.
I applied for their developer exam immediately. Since I’m an Android developer, I chose their mobile specialty exam and raced through the timed questions. I soon got confirmation that I was good enough to get a follow-up interview, and went from there to schedule it.
The whole process, from initial exam through to their video call screening, and eventually to the onsite interviews was fantastic. I really felt I was getting taken care of. This is how interviewing should be!
That wasn’t the end of my interviewing journey though; it was really just the beginning. Even though Triplebyte set me up with five great companies to interview within San Francisco, they didn’t have the clientele at the time to help me search more local. Since I live in Orange County, I had to find job opportunities out here the more traditional way.
I reached out to everyone in my network that could help me out with this. Previous co-workers, friends, family, and anyone else who could point me to a company with the values I was looking for. I set my LinkedIn profile to “searching for a job”, and tidied up my resume.
I got into contact with a few different interesting companies this way. Some in LA, some in OC, and more — many more — in the Bay Area. I really didn’t want to have to go to the Bay Area.
Besides the obvious factors of the Bay Area — like it’s way too expensive — I knew that moving there would be tough for my wife. It would be much easier to be able to pack everything up and move up there with all the industry elites if I was just a single dude. I had to think about my wife’s family, my family, and the future we’re trying to build together.
That said, I knew that I wanted to get as much interview experience as possible. From previous interview experiences, I anticipated a certain ramp-up time needed to get my mind warmed up for the oncoming onslaught of interviews. The more interviews I got through, the better I felt about the next one.
I ended up narrowing down my search to seven companies: one in LA, one in OC, and the five Triplebyte had arranged for me in the Bay Area. It was time to buckle down, so I took a week off from work and got ready to dive deep into my interviews.
Triplebyte’s process promises that once you are through their initial screening period, you’ll skip ahead to every company’s final interview.
Every company evaluates their software engineers differently. Some throw many hypothetical and theoretical technical problems at their candidates, whilst other companies stick to more practical job-related interview questions.
One thing that really stuck out to me in my round of interviews is just how inconsistently the idea of a “Senior Developer” is defined. Some companies have a list of skills they expect from their “Senior” people, and others just want to see how many hoops you can jump through before getting to the real work.
This made me realize just how fluid job titles are from one business to another. A “Senior” developer at one company could very well be a “Junior” developer at the next one over. Title definitions all come down to the business’ needs, their existing pool of talent, and how desperate they are to hire developers.
Having caught on to this very strange phenomenon, I knew I had to problem-solve my way out of it. So I started explaining to companies what I thought was “Senior” to me. I made sure to highlight my experience leading teams, my abilities outside of programming, and of course proving this all via different code challenges and Q&A.
It actually worked. Of course, the caveat here being that my strategy only worked on companies that I could truly add value to. Meaning that I had to have already been a solid candidate; I just used my “Senior” story to help tip things in my favor.
Out of the seven companies I interviewed with, I received offer letters from five of them. It’s not a bad batting average at all, and I felt rather proud of myself for getting this far.
It wasn’t long after my interviews were over, however, that the final challenge would prove to be most difficult. I had to make a choice as to which company to go to.
Making a Decision
I was staring at a list of five incredibly impressive businesses, with similarly incredible offers. I took a tip I got from one of the recruiters and started on a spreadsheet with all the companies I was considering.
I ended up with a whopping seventeen different categories that I used to compare all of these companies. Let me say that this helped immensely. It gave me a high-level look into all the things that I cared about. Here, I’ll list them out so you can laugh at how thorough this ended up being.
The categories in no particular order: pay, equity, 401(k), relocation bonuses, benefits (like medical), extra perks (like lunch catering, cell phone allowance, etc), vacation policy, company culture, engineering culture, product pros and cons, social impact, audience size, industry, gut feeling, location, commute, and work hours.
All things considered, I ended up at my current employer, Weedmaps! I honestly surprised myself at this one too. I’m not a cannabis user, but I was so impressed with everything they were offering that I felt like it was a no-brainer to me.
What really tipped it in Weedmaps’ favor too is that I didn’t have to move. I could stay in beautiful OC, and be close to all my family. I think that’s something that people don’t value enough when considering their next job.
So far though, I’ve been thoroughly pleased with my choice to work at Weedmaps as a Senior Android Engineer. Having been here for just a few months now, I’ve really grown to enjoy working here. I’m so impressed with just how welcoming, and collaborative of an environment Weedmaps is.
It’s the collaboration, the willingness to compromise, and the desire to be better that makes a place like Weedmaps feel like home to me. I think those three traits are what foster growth, and build great teams.
For now, I’m focused on really maxing out the value I can bring to my team at Weedmaps. It’s a place that I feel will grow with me as I continue to push towards my career goals.
Maybe next time I can talk more about those dreaded whiteboard problems. Sigh.
Check these 50 Hottest LA Startups to Work For Right Now