- set up a calendar or cal.com to head off back and forth about availability
- have an updated resume immediately available you can send to anybody who asks
- Learn the format for introduction emails where you are the common connection
- Pass opportunities you find onto your network
- Have an answer for when you're asked "So, tell me about yourself"
- Your answer here will give the recruiter some more info on your past. It's also a simple ice breaker and good segue into the rest of the interview.
- Have an answer for "So what are you looking for in your next role?"
- Your answer to this question will help the company / recruiters tailor their pitch and win you. It will also help them understand what team or section of the business you'd work best in.
- Have an answer for when you're asked "What drew you to apply to our company?"
- Recruiters and interviewers want to know you're excited about the company and the role
- Understand what everyone's role is in the job search and what they need from you
- External recruiter
- These are people who are hired by a company to find qualified candidates and bring them into the hiring pipeline
- Internal recruiter
- These are people who work for the company that is hiring. There are a few different roles in internal recruiting.
- Hiring manager
- This is the person who has a need for a new person at the company. Usually this is the people manager on a particular software team.
- Manager who is interviewing you
- This person may or may not be different from the hiring manager. Typically they do your behavioral interview
- Developer who is interviewing you
- This is just another software developer - like you! They'll be in
- External recruiter
- Understand the different stages of an interview
- Understand the hiring pipeline and the different aspects of being a recruiter
- sourcing
- screening
- scheduling and coordinating
- Organize and track your job search
- I used a kanban board
- Take notes during every meeting you have
- Ask for a pay range
- Try not to give out a number when asked for comp
- before an interview, ask the interviewer if there's anything you need to make sure to prepare: your local environment, stories, experiences. Sometimes they'll straight up tell you the questions they're going to ask you. Let them do this!
- psych yourself up before the interview with a guided meditation
- Always have interviews in the pipeline, even if you're in final stages
- The results of interviews are incredibly unpredictable - I've found that I have basically a 0% success rate in determining whether or not I passed or failed a particular round.
- There are tons of reasons why you might not get an offer that have nothing to do with you. Some of them are (I've been rejected for all of these reasons):
- they no longer have the budget for the position
- the product has gone in a new direction
- the CTO left the company
- somebody else was farther along in the interview process and they were good enough
- there's a new policy from corporate and you don't meet the requirements
- "Tell me about your most recent position"
- They want to know more about your last job. Make sure to mention
- Any achievements you're proud of
- The tech you used (e.g. "I wrote features in Rails and Ruby, as well as React and Javascript")
- Any projects you led
- They want to know more about your last job. Make sure to mention
- "What are you looking for in your next role?"
- They want to know how to tailor their pitch to be most attractive to you - if you're entertaining two job offers, they want to know what levers to pull to get you to say yes to them instead of the other company.
- They also want to make sure the company and role is going to be a good fit for you.
- Some things that might be important to you:
- Working with a specific technology
- Culture
- Domain
- Size of company
- Agility or nimbleness
- Design excellence
- Product excellence
- Working with smart people
- Autonomy
- Some things you should not mention:
- Compensation
- Work life balance
- What you say here doesn't have to match with the company exactly. For example, saying "I'm really looking for my next position to be at a place where they highly value collaboration" - that's literally every company. That's a fine answer.
- Why are you looking for a new job / why did you leave your last role?
- They want to know what's motivating your job search so they can get to know what moves you. Also, they want to make sure you're not going to become a problem at your new role.
- Well-phrased answers:
- "I felt like it was time to expand my horizons and get a broader set of experiences"
- I really love learning and wanted to challenge myself and learn something new
- (honestly, better to not talk about any specific person or thing)
- Pooly-phrased answers:
- "I'd worked on everything that was interesting and there wasn't anything else I wanted to do"
- My company uses outdated technology and I'm worried I'll fall behind in the market if I stay there
- I hated my manager
- If you're in doubt as to what to say here, keep it vague, positive, and about yourself. As long as your response fits those guidelines, you can't go wrong.
- What's your timeline?
- Recruiters are looking to figure out where they fit with other interviews. Hopefully you've got multiple interviews going at one time because having multiple offers helps you significantly at the final stages.
- I like to give one of three responses:
- I'm in initial stages with other companies - this includes chatting with recruiters and doing the first technical interviews
- I'm preparing for onsites with other companies - this means you're in the onsite phase
- I'm in final stages with other companies - this means you've either scheduled or completed onsite interviews and are waiting to receive offers
At the end of each interview, the interviewer will say "Now that we've completed the problem, do you have any questions for me?" This is your time to interview them.
I, personally, have never found these times at the end of interviews very useful for gathering good signal. The time is too short and the answers they give you are too easy to BS for you to trust them.
When I think about the sorts of things that actually impact whether or not I'll accept an offer from a company, I'm a little embarrassed about how shallow they seem to be.
- the vibe of the people that have interviewed me. Are they kind? Aggressive? Smart? Quick? Quiet? Honest? Engaged?
- the quickness and organization of the interview process. Do they get back to me promptly? Are their instructions clear? Do they show up to the interviews on time and prepared?
- judgements based on their technology stack
- ruby? standard older web app.
- python? data focused
- java? enterprise
- typescript? complex
That being said, the expectation is that candidates ask questions of interviewers. If candidates don't ask questions, it's generally a negative signal and gives the impression that they are not invested in the interview or interested in the company.
If you know you're not going to get good signal from questions or feel like you've already added up your mind on the company, you can ask softballs that are easy for the interviewer to answer:
- walk me through your day yesterday from the time you started work to the time you ended work. Give me a picture of the "day in a life".
- tell me about how product decisions are made. How do you decide what to work on?
- who's on your team and what do they do?
- how do you stay connected in today's remote world?
- what's your PR process like?
- do you write tests?
- tell me how you collaborate with your coworkers
- what do you think about the direction of the company?
If you think the person you're talking to can give you good signal, here's how you can come up with good questions for them:
- base your question on their role - engineer, product, design, lower management, upper management
- Think about what they do every day. Think about your past interactions with other people in their role. What did they do that you liked? Didn't like? Ask questions relevant to their role and responsibilities within the organization.
- Ex bad question: (speaking to upper management) - "What's your commit process like?"
- Ex better question: (speaking to upper management) - "How do you know that the company has picked the right thing to work on and that people are executing on it effectively?"
- The good question is relevant to the person's role and what they think about every day. It's broad enough that the interviewer can give a range of answers, but asks for something specific.
- Think about what they do every day. Think about your past interactions with other people in their role. What did they do that you liked? Didn't like? Ask questions relevant to their role and responsibilities within the organization.
- think about what you don't like about your current job. What would you change to make it better? Ask about those things at this new company.
- if this company and another very similar company gave you an offer, but the other company's offer was +5k, what would it take for you to say yes to this company? Ask about those things.
- ask questions relevant to your level - what would it take for you to be set up spectacularly for your level?:
- junior - your job is to learn and be mentored
- mid-senior - your job is to ship code and grow
- senior+ - your job is to ship code and lead
- think of the question you'd like to ask. Imagine a scenario where you are interviewing a candidate at your current job and they asked you that question and it's outside of your wheelhouse. Can you come up with a well meaning, reasonable sounding answer off the cuff? If yes, then that's a bad question - the answer is easy to BS. Find a better question.
- Define different interviews, what the company is looking to get from them, and what your answers should be
- recruiter screen
- this is typically the first conversation you have - you connect with a recruiter at a company and they say "I was really impressed with your resume - I'd love to find time to chat this week!"
- from the company's perspective
- The recruiter screen is the first contact a company or recruiter has with a candidate. They use this to gather information and make a connection.
- After a screen, the recruiter will present a candidate's information to a hiring manager and ask "Do we want to move forward with this person?"
- from your perspective
- what they will tell you
- They'll tell you about the company, position, tech stack, benefits, culture and anything else you'd find in the job description.
- They'll also tell you about the interview process and what next steps will look like.
- what you should tell them
- Pitch yourself in 30-60s
- Things they might ask for:
- your most recent position
- what you're looking for in your next role
- the status of any other interviews you're involved in so that they know whether or not they should speed up or slow down the process
- what they will tell you
- questions you should ask
- what's the company size?
- what's the team size?
- what's the tech stack?
- what's the salary range you're targeting for the role?
- what benefits do you offer? (health, dental, vision, PTO)
- engineering manager screen
- this is sometimes the first interview after a recruiter screen. It's meant so that you and the hiring manager can meet, feel out the vibes, and decide whether or not it's worth assessing you technically. Sometimes companies let recruiters gather this information and move you on immediately to a coding screen, sometimes it's a separate meeting.
- from the company's perspective
- They're looking for signal that's similar to what you'd get in a recruiter screen - do your skills match what they're looking for, are you easy to work with, are you going to be a problem in the future if they hire you
- from your perspective
- Same as the recruiter screen
- questions you should ask
- how many reports does a typical manager have at your company?
- less than 6 is reasonable, 6-8 is high but do-able, any more than 8 and managers will start to have a hard time managing all their responsibilities
- how does the company help engineers grow?
- what does it mean to be "successful" at the company?
- how many reports does a typical manager have at your company?
- coding interview
- this is the big one
- usually 2-3 of these for an entire interview loop
- types
- live coding
- online interactive IDE
- screenshare your local environment
- take home
- live coding
- there's really no substitute for actual practice here. Doing coding interviews is its own skill that you get better at over time
- REACTO
- structure
- 5m intro - let everyone get to know each other and be comfortable, explain coding environment
- 45-50m question - you do the question they give you
- 5-10m you ask them questions
- behavioral interview
- in this interview, they're making sure you're a reasonable, well adjusted person who can handle normal day-to-day challenges of work.
- Any negative signal here is weighted much more heavily than positive signal you give.
- e.g. you're asked about how you've mentored more junior developers in the past and you say "I know that junior devs need to learn but it just takes so much time and effort to help them. I try, but they end up making so many mistakes that I usually just rewrite all their code afterwards."
- Your good answers will give you a score of +1. Your bad answers (like the above) will give you a score of -5 or -10. (Interviews aren't decided based on scores like that, but it illustrates the weighting of your responses.)
- have a few stories ready to share before you enter the interview
- an interesting project you recently worked on
- a time you had a conflict with a coworker
- a time you didn't know what to do about something
- a time when you were asked to do something you knew wouldn't work or wouldn't be good
- architecture or system design interview
- this interview looks to assess your skill at working within large and complex software systems. Only senior and above candidates will be given these sorts of interviews.
- the questions they will ask you tend to be in the domain of "what would it take create google docs?" - they're incredibly open ended and it's up to you to lead the conversation
- framework
- understand the problem and establish design scope
- propose high level design and get buy in
- design deep dive
- wrap up
- there is tons of content out there about how to do well in system design interviews, seek it out!
- recruiter screen
- Why is it taking so long for the company to get back to me?
- (after an onsite) There's another candidate who's in front of you in line and they're waiting for them to finish before they either give you an offer or reject you.
- The company is just slow
- To actually make an offer requires a lot of things lining up: legal approval, financial approval, hiring manager approval, and sometimes more. Have you ever not responded to an email within the same day it was sent? To you, this job offer may be the most important thing you have going on right now, but it's likely there are people involved in hiring at the company where this is just another day, and they've simply got other things going on.
- Take home vs traditional interview?