Finding your Next Job

Elijah Ben Izzy
10 min readApr 1, 2019

--

Charlie just took a coding bootcamp and is now working at an IOT startup that enables remote cooking of milksteak with a sous-vide. Frank is a VP of engineering at EvilCorp.

There is no easy way to find an entry level job out of college, or even figure out what you want to work on. Everyone eventually stumbles onto something though, like I did with Two Sigma Investments, and learns what they do and don’t like about the workforce. After that experience, the vast majority of new graduates will find themselves looking for a new job, armed with years of experience and clearer future goals.

My fiancée and I recently decided to move back home from New York to California. While I have loved working at Two Sigma, the impending move pushed me to explore new opportunities. The thought of this was daunting — I had not looked for jobs in four years, and the world around me had changed.

This time around, the range of possibilities felt endless. I was now qualified for senior-level software engineering positions, and had discovered a field about which I was passionate: building platforms for quantitative inference.

I recently wrapped up a multi-month job search, and am sharing what I learned so the next person in my position does not have to navigate this process blindly. My approach involved a resume blast and a series of consecutive interviews — other approaches are perfectly valid, but the basics remain the same:

1. Write Your Resume

Writers describe the feeling known as “blank-page syndrome.” While my career had been a smorgasbord of building distributed systems, leading a small team, and algorithm development, I needed a cohesive narrative — a document that hiring managers and recruiters alike could digest in a 10-second skim. A good resume is a spectacular confidence-builder, and can be wielded in a job search to great effect.

  • DO tell a story. Your resume represents your growth, from the first time you played with a computer to the inevitable next step in your career. Your accomplishments should be crisp, clear, and measurable — and lead directly to the role for which you are applying.
  • DO make it look nice. While it doesn’t have to be an aesthetic masterpiece it should be simple, clean, and easy to read.
  • DO send it to a range of friends and mentors for critical feedback, including senior engineers and hiring managers. If you know anyone in recruiting, have them look through it as well. While not all advice you get will be actionable, most will be useful.
  • DON’T do something too weird. Crazy formatting, eccentric colors, headshots, and long personal statements all belong on social media.
  • DON’T lie. You are liable for everything you put on your resume — a falsehood, however small, will come back to haunt you. Don’t be Jeff Winger.

2. Narrow the Field

The next step is to know what you want. A narrow search space works to your advantage — the set of companies to consider is smaller and you will be competing with fewer candidates. I made sure to look for companies that value data science and machine learning enough to invest heavily in productivity multipliers for research. I wanted be able to work on my intellectual interests, and function as a strategic, long-term component of the core business.

There are *a lot* of companies out there, and you can only get so much value from Googling. This is why you network. College friends, family friends, fellow alumni, and randos on LinkedIn (#referralbonus) will often gladly chat with you and refer you to their team, helping you bypass the initial resume screen and narrow down on a role that matches your interests.

I set up a series of informational interviews with 10–15 connections I had made outside of work. These were open-ended, with the goal of learning how my interests aligned with the industry. Every college friend, retired senior manager, and in-the-know person had something interesting to say. I even learned about myself through these chats — before talking to friends at Uber and Twitter, I had no idea that working at scale was an actual interest of mine and not just a nuisance of the job.

Networking was not the only approach I took — I also read blogs, watched conference talks, and stalked potential managers on LinkedIn (#dothecreep).

3. Apply

I sent resumes to the following organizations:

  • Through connections: Dropbox, Lyft, Uber, Twitter
  • Through recruiters: Google, Theorem
  • Online: Stitch Fix, Pinterest, Medium, Airbnb, Slack

I consciously diversified my application sources. While sending a resume online feels like a shot in the dark, it can (and did!) yield real opportunities.

I spent very little time writing cover letters (my fiancée, in recruiting, informs me that almost nobody reads them). Rather, I had a short template I modified for each application. I immediately began getting responses back — most referrals quickly set up interviews, while a few online responses trickled in.

As the cacophony of emails and redirects grew, I put a good deal of time into personally organizing my communication with these firms and associated individuals. I constructed a Trello board grouping companies into concrete application stages (todo, syn, ack, phone screen, on-site, offer received, and rejected), and a spreadsheet in which I recorded the history of my communications, tracking how long it had been since the last email was sent. Every day I looked at my spreadsheet, updated the communications, followed through with the stragglers, and moved companies from one application stage to another, as appropriate. Thus, I was able to let my neuroses shine, while ensuring that I made progress and did not get lost in the communications gap.

4. Interview Over the Phone

Interviews are stressful. Finding time outside of work and life for a phone call can be difficult, and technical interviews are well-known for being punishing and esoteric.

Most phone interviews for engineers fit into one of the following boxes:

  • A talk with the recruiter is a chance for you to get a better understanding of the company, and for the recruiter to sell the role and evaluate your fit. It is essential that you make your expectations clear, particularly around the level of the job and the nature of work that would excite you. You have the opportunity to wield the resume you just created to sell yourself. Important note: I initially believed that keeping level and compensation expectations close to my chest would play to my advantage, yet was later bit by offers for roles that were too junior. It will serve you well to make your expectations known.
  • A chat with the hiring manager is a great opportunity to get to understand the work you will be doing. This is more of an initial fit interview than a bar you have to pass. For you, as well as the hiring manager, this is a chance to see if it is worth further exploring possibilities. Again, use your resume to your advantage. Have questions prepared.
  • A technical phone screen is what you are probably dreading. This often takes the form of an hour-long conversation with an engineer. You will usually spend 10 minutes talking about your experience, 45 minutes coding together on a platform such as hackerrank, and 5 minutes asking your interviewer questions about the company. This is where practice comes in handy. Rather than rehearsing for specific questions, you should be perfecting your ability to respond under pressure, utilize standard libraries, and implement general algorithmic patterns on the fly. There are a lot of great resources on interviewing, and I won’t go too deeply into this in this post. Practice, practice, practice. LeetCode is your friend.

Most companies conduct at most two technical phone screens. These should be fun, and give you a strong sense of your future colleagues. If you get a bad feeling or do not have the energy to pursue a role, it is perfectly acceptable to (respectfully) withdraw from the process. Doing this will not burn bridges, leaving you a goodcontact should you regain interest in the future. I did this with at least one company through my process as I found roles that were more promising.

5. Interview On-Site

If you have the right combination of grit and luck, your phone screens should lead to a few on-site interviews. These will be exhausting and fun at the same time. Expect to spend a five to eight hour day talking about your experiences and solving interesting technical problems with slew of potential teammates, senior engineers, and hiring managers.

If you travel, it’s OK to interview at multiple companies in a single trip. I had six interviews (Lyft, Google, Twitter, Stitch Fix, Uber, and Theorem) in a nine day period. Yes, this was insane, but I am very glad I did it. Take photos of all your receipts and don’t spend like an idiot. You are basically a guest in their home, so be friendly and grateful to everyone you meet (including people that you don’t think are part of your interview process. Candidate experience coordinators, executives in the elevator, and janitors will all be your friends when you join — if you play your cards right). After your interview, make sure to follow up with the recruiters to reiterate your excitement about working there. Write down the name of every interviewer, so you can send the recruiter a thank-you email with specific, relevant details, addressed to everyone you talked with. If you have their business cards, even better.

Most on-site interviews fit into the following buckets:

  • Algorithm interviews are about solving problems. They want to see how you think, meet changing requirements and juggle complex ideas. I would happily work on algorithm problems all day, but not everyone feels the same. Make sure to practice with friends and look up sample problems online.
  • Coding interviews test your ability to write programs and debug them. Every company does this differently, but they often allow you to program in your favorite language. While algorithm interviews test your thought process, coding interviews test your ability to express these thoughts on the screen and make the trade-offs an engineer does on a daily basis. It is perfectly acceptable to take shortcuts — just make sure to let the interviewer know why you are doing so.
  • System design interviews test your ability to reason about large systems and gather requirements. Engineers who have architecture experience will thrive. While companies love talking about scalable distributed systems that handle thousands of queries per second, good interviews will cater towards your experience. Study and practice for these — familiarize yourself with modern technologies and the problems they solve. Use these as a chance to showcase your engineering depth and knowledge about specific, relevant frameworks.
  • Hiring manager / team fit interviews test your softer skills and assess your fit with the company. Your ability to clearly discuss previous technical decisions, projects you worked on, and team dynamics will show your future team that you belong. This is your best chance to learn about the team and get a sense of the corporate culture. Make sure to ask good questions that fill the gaps and show that you were listening. Take notes to compare for later.
  • Recruiter meetings are your chance to ask logistical questions (comp, benefits, corporate culture, etc…). Recruiters are your friends — they want you to get this role as much as you do. The better a relationship you have with a recruiter, the more seamless the process will be.

While a company’s main goal is to decide whether to extend an offer, you should consider it a two-way street. You are evaluating them as much as they are assessing you. The amount you enjoyed your day is a strong signal of your fit at a company. While you will likely be mentally and emotionally exhausted, an interview that leaves you walking out excited for the future has the potential to translate to the same feeling once you work there.

6. Wait

Congratulations on finishing your on-sites! Some companies will get back to you the same day, while others can take weeks to respond. Follow up nicely with your recruiters / contacts, and ping them every few days if they become unresponsive. A lack of immediate response is not a negative signal, but you do not want applications to drag out over several weeks. As always, be polite and friendly — recruiters are often overworked and always have their own lives. Although you are likely anxious, positive feelings go a long way.

7. Decide

If you’ve received more than zero offers you are in a great position. If not, recuperate, self-evaluate, and start back at an earlier stage. Rejection is OK. Don’t stress it, be polite, and move forward. Good things are in your future.

Choosing between multiple offers can be difficult. Dobromir Montauk advocates for “back-interviewing” your potential employers to gather information and evaluate your opportunities. Reach out again to the same network that helped you earlier for their honest opinion.

To compare offers, you’ll want to examine their quality over a variety of dimensions: intellectual interest, culture / mission fit, team fit (manager+colleagues), compensation, and growth potential. Compensation is the only negotiable aspect — the rest are inherent to the job. While you can potentially switch your offer between different teams in the company, you’re not going to change the culture of the company or its mission any time soon, so trust your gut feeling.

My approach involved stack-ranking offers grouped by the career direction they represented. My goal of working on inference platforms led me to two distinct potential growth areas:

  • Building expressive platforms to enable research: Offers from Stitch Fix (on their algorithm development team) and Google (on tensorflow)
  • Building scalable, distributed ML infrastructure: Lyft (on pricing) and Uber (on AI infrastructure)

This narrowed the ranking problem to a decision tree — I had to decide which opportunity won in each category, and which category I was more interested in.

While I am grateful for each of these opportunities (and would recommend any of the companies at which I interviewed in a heartbeat), I found Stitch Fix to be the most compelling choice. The company was smaller and the role encompassed more responsibility than the others. My gut feeling after the interview had pushed me heavily in that direction. After much deliberation, I accepted their offer. I will be joining June 3rd, after a cross-country road trip!

Rejecting recruiters can be difficult, but it is essential that you perform this with grace. Give good feedback, preferably over the phone. Make sure to include everyone who helped you along the way. Do not ghost people. These will be the next generation of valuable connections — reach out when you’re searching for your next job and you might get fast-tracked into the application process. Sign the paperwork (after reading thoroughly), and take yourself out somewhere nice!

Thank you for reading, and best of luck on your next job search! Long may you run :)

I glossed over certain aspects of compensation and interviewing. While I do not feel comfortable discussing compensation on a public forum, I am a strong advocate of #talkpay, and will gladly discuss the general market or trends should readers be interested. Furthermore, I am bound by NDAs to not reveal interview questions and intend to fully respect those. That said, I will happily provide advice for practicing and studying.

--

--

Elijah Ben Izzy

Quantitative Software Engineer at Two Sigma. Writes about anything from Math to Social Justice.