How to search for a new job

TL;DR: Come work at Flexport. Interviewing is a skill. Interview practice is a high ROI activity. Cast a wide net. Negotiate always.

Chris Chiu
10 min readMay 5, 2018

Throughout the interview process, I made a lot of mistakes. I was lucky to have a strong network who helped guide me through. Here’s the blog I wish I read before starting.

Searching for a new job is one of those things that have a disproportionate amount of impact on your life, and you’re probably doing it too casually. For a season, this choice cements: what you will be spending most of your time doing, who you will be doing it with, and in all likelihood, what your biggest source of stress is. Can you afford to work for the wrong cause, wrong team, or wrong boss?

Now that I have you sufficiently anxious let me reassure you that a small time investment is all you need. The hours you put into conscious thought and preparation will pay career and financial dividends for years to come.

Figure out what you want

If you’re a senior developer looking for a job, remember: it’s a seller’s market. Pretty much every tech company is hiring for senior developers. Don’t settle for only companies whose recruiter reached out to you. A recruiter’s dream is to successfully engage a cold candidate and hire them before they have the chance to check out other opportunities and find out what their skills are worth. Don’t be a sucker. The world is your oyster, what are the chances that the best pearl was in the first oyster to send you a LinkedIn message?

Find an opportunity that is the next iteration towards whatever your goal is. Balance the long-term plan with items that are important for you today.

Here are some questions to get you started:

  • What company size: small (0–250), medium (250–1000), or large (1000+)?
  • Backend, front end, full stack, mobile?
  • Remote work? Remote coworkers?
  • Flexible vacation policy?
  • What language, frameworks, and other technologies do you want exposure to?
  • What vertical do you want to be in?
  • How important is compensation?
  • B2B or B2C?
  • ML or AI opportunity?
  • How important is rapid company growth?
  • Do you want to specialize or remain a generalist?
  • How important is a brand name?
  • Organizational chaos or stability?
  • 9–5 or 80 hour work week?
  • How much do you want to be mentored vs mentor others?
  • More technical or more leadership?
  • What kind of boss do you want?

Once you have a mind map of what you want, boil it down to ten things you will be using to judge each opportunity.

Practice! Practice! Practice!

If you don’t take time to practice interviewing, then expect your first couple of interviews to be your practice. Hopefully you weren’t interested in those jobs anyway.

“But Chris, I’m a strong developer, I’ll just breeze through an interview.”

Wrong!

Here’s the thing about interviews:

Interviews measure a proxy of your skills, not the skills themselves.

It’s done by necessity because companies can’t interview you for the three months it would take to figure out if you’re any good. Instead, they resort to making you write code on a whiteboard, architect twitter in 20 minutes, and talk about how you resolved a conflict in your team. It’s done in hopes that those activities are good indicators of your actual ability to perform your job. Practice the proxy skill! Not because you want to give an inflated view of your abilities, but because you want to give an accurate one.

Here are a few ways you can practice:

  • Go through Cracking the Coding Interview. Work the solutions on a notebook and pen.
  • Brush up on your system design. Here and here.
  • Pick an interesting technical project and practice drawing boxes and arrows and talking about individual pieces.
  • Brush up on your vocabulary. Find the right technical words to describe the attributes of an architecture. “This service is stateless” sounds a lot better than “this service doesn’t have a database.”
  • Write out answers to culture fit-ty questions like: a time you had disagreed with a technical decision, or a time you had to mentor someone.
  • If you’re interviewing for a leadership position, get very crisp at talking about what you did, how you did it, and why you did it that way.

Setup a searching funnel

You’ve probably heard about the hiring funnel before? If not, then a conversion funnel. And if still no, then you’ve probably seen a funnel? Anyway, you need a searching funnel. A great funnel is one that gives you the most amount of information for the least amount of time invested. Let’s talk about the attributes of this metaphorical funnel. The top is wide with all the companies you should initially engage. The bottom is a single point that represents the job that you will take. At every step, you will either disqualify a company, have that company disqualify you, or mutually deem it worth further exploration. Finding the right filtering function at every step is critical, too loose and you will waste your time, too narrow and you will miss out on opportunities. The deeper down the funnel you go the exponentially more the time investment. An Asana board work surprisingly well to project manage the searching funnel.

Sample Asana searching funnel board based on my own

Here are the top three mistakes people make with their funnels.

The first mistake is to have a too narrow top of the funnel. Any company that checks three or more boxes is probably worth reaching out. Set your status on LinkedIn and AngelList to “open to opportunity.” You want a wide top of the funnel because most of the drop off happens on the first two steps. If you don’t do this well, several weeks into interviewing you will find yourself with too few choices. You will be forced to supplement the top of the funnel again. And guess what, those companies are now way behind the cohort. Do you want a scheduling nightmare? No? Then cast a wide net early!

Here are a few tips to fill the top of your funnel:

  • Companies that reached out to you
  • Companies you’ve heard good things about
  • Companies you network suggested you apply to
  • Companies you found on job boards (Glassdoor, LinkedIn, the muse, angel list, etc..)
  • Companies you found in respected VC’s portfolios

The second mistake people make is to not polarize companies along the process. Don’t let the narrowing of the funnel be purely a function of which companies let you through the next step. Remember, it’s a seller’s market! At every step, look to find out more information and rate the company against your criteria. This applies to recruiter calls, phone screens, and on-sites. If fast growth is important for you, then figure out what the company’s hiring plan is for the next 6 months. If working on customer features is essential, make sure that the role is for a product team. If you fail to do this, two things will happen: First, you will waste a lot more time interviewing at places that are not a fit, and second, you will blindly perform to get an offer only to find out you don’t know enough about the company to be confident about a decision.

The third mistake is not to get three good offers to choose from. It’s common knowledge that humans make bad decisions when presented with only two options. “Well, I don’t like how rude Travis is, I guess I’ll go out with heroin-Noah instead.” It’s a false dichotomy. Three options encourages you to choose what you want, instead of the lesser of two evils. Three offers also give you much stronger negotiating power. “You’re telling me I’m worth this much, but you’re in the minority, these two other companies have my market price at that much.” Don’t overdo it. Having four or more offers will not give you anything more and it wastes everyone’s time.

Negotiation

If I have to convince you to negotiate hard, it means you’ve never done it before. Because anyone who decided to bite the bullet came out of it understanding just how much money those fifteen awkward minutes can generate. It’s one of the most significant financial decisions you can make. If you live in the bay area, you shed a tear every month when you write that rent check.

How great would it be if your company covered your year’s rent? That’s the amount of money negotiating can get you.

Here’s a much better entry on negotiation by Patrick McKenzie

“But Chris, money doesn’t motivate me. It’s not my thing. In fact, I take pride in living a simple, minimal life. Do I still have to negotiate?”

YES!

Because negotiation is not just about money, it’s about expectation. In education, a teacher’s expectation of their students often turns into a self-fulfilling prophecy of that student’s performance. It’s a fact of life that high performance comes from high expectations. If you settle for a low offer you are telling your boss to expect you to generate low value. If taking in the extra cash goes against your philosophy, set a max-salary for yourself and donate everything else to IJM. That frees you to negotiate without feeling selfish and greedy. Think of the children!

Here are a few tips for negotiation:

  • Don’t ever be the one to share your number first. They will always ask, and you should never say. Tell them “I’m interviewing with companies of all sizes and my comp expectation is different for each one.” Small and medium companies will drop it at that because they don’t ever want you comparing their comp packages with Netflix’s.
  • Don’t push negotiation on the offers you’re not interested in. Doing so will make recruiters and managers there have to jump through hoops to try to get you in only to have you reject them. It burns bridges.
  • Do share information whenever it’s beneficial for you. Tell your top choice that they are your number one choice so that they’re more likely to advocate internally for you. If your top choice came in with a weak offer, share the numbers of the other two, so they know what your market rate is.
  • If you feel awkward negotiating money, make it not about money. What do you want to do with the money? Travel? Maybe buy a house? Help your parents? Sharing some of those reasons helps humanize the conversation.

Companies Notes

Lastly, I spent a lot of time getting to know 20+ companies and I don’t want throw away that information. Here are some quick notes on companies I came across. Not all this information is first hand.

  • Flexport — Rocket ship that is disrupting the exciting space of global trade. An enterprise business that has the growth to parallel a consumer one. They are hiring like crazy. Competing against large institutions that have been there for a long time. Interesting enterprise problems in modeling trade routes and schedules.
  • Asana — One of the strongest teams I talked to, smart folks who are passionate about what they’re working on. Very strong engineering culture. Everyone I spoke with had been there for 4+ years. Matrixed organization.
  • Stitch Fix — Have accomplished a lot (IPO) for having a small engineering team. Solving interesting problems on data engineering and machine learning. The leadership team is top notch and they are thinking big. A large percentage of the workforce is remote and they encourage a good work-life balance.
  • Netflix — Smart and the most senior folks. The people working in SRE and data (Netflix’s bread and butter) seem to be strong. Their philosophy of freedom and responsibility means a lot of autonomy for ICs. Their comp package is very generous.
  • Facebook — Best interview process. Every interviewer was well prepared and communicated their agenda upfront. I was impressed by the cast, and everyone I talked with had been there for 4+ years. They invest in people’s growths, and the impact is obviously significant. Requires organizational-know-how to be successful as an EM. Their comp package is also very generous.
  • Discord — Small team (~30 eng) for how much they’ve accomplished. A young team who is passionate about gaming. They are doing some cool stuff with Elixir to handle their request volume.
  • Grand Rounds — Health startup who just got a great new VP of Eng, Wade Chambers. The guy is legit and super down to earth. Interesting problems on data pipelines and machine learning for health.
  • Komodo Health — Small health startup with an impressive cast that is a mixture of tech and pharma consulting. Founders and leadership are the real deal with a ton of industry experience. Business is doing well. Like other health startups, there’s a big emphasis on data and machine learning.
  • Remind(er) — Ed-tech startup tackling teacher to student/parent communication. Simple product but one of the strongest market penetrations in ed tech.
  • Patreon — Founder built the company to solve his own problem and his knowledge and passion are well respected. They’ve been able to have a huge impact on creator’s livelihood. They care a lot about diversity, and the team is chill. They’ve captured millennial givers which is something non-profits are having a hard time doing. Matrixed organization.
  • Stripe — Stripe’s engineering reputation is good for a reason. They have a great culture. Managers tend to be first-timers and younger since they frequently promote from within.
  • Robinhood — Young and smart team working on a rocket ship. They’ve been able to get millennial investors which is not easy. Flat organization so far, building out management structure.
  • Github — We all know what they do. Mostly remote workforce who can draw a lot of talent. They are starting to invest in cool product features like semantic code and analysis.
  • Affirm — Fintech founded by Max Levchin (PayPal mafia). They are trying to set up ethical lending that isn’t predatory. Solving cool machine learning problems and growing like crazy.
  • Segment — Analytics company handling incredible scaling problems. Very strong technical team with a high bar for entry. Growing.

--

--