Skip to content

Latest commit

 

History

History
134 lines (121 loc) · 7.85 KB

File metadata and controls

134 lines (121 loc) · 7.85 KB

Chapter 2: Landing Jobs

The Recruitment Process

  • Resume Review and Recruiter Phone Screen
  • Technical Phone Screen(s)
  • On-site Interviews
  • Take-Home Coding Exercise
  • Decision
    • => whether to extend an offer.
  • Offer and Negotiation
    • offer: level/title, base compensation, equity compensation, signing bonus and relocation, start date.
    • competing offers => they may try to match or beat.
  • Referrals
    • A referral with a strong personal endorsement is a big deal.

Resumes

  • Section Order
    • experience => skills => education.
  • Formatting
    • single-page
  • Tell a Story
    • Emphasize what you delivered, where you led, and the results your projects yielded => signs of autonomy and leadership.
  • Example

497844_1_En_2_Figa_HTML

Passing Engineering Interviews

  • What They're Looking For
    • Ability (in decreasing order)
      • Coding/debugging measured by coding on the fly in interviews and sometimes by a take-home coding problem.
      • Design/architecture measured by a design exercise in an interview.
      • Communication measured by how clearly you express your ideas in interviews.
      • Domain knowledge measured by factual questions and design exercises.
    • Culture fit
      • Enthusiasm for the role
      • Positive attitude and friendliness
      • Whatever interviewers happen to like
  • Acing Coding Interviews
    • programming interviews, stylized coding, 30-60 minutes, tricky algorithmic problem.
  • Preparation
    • Solve a bunch of time-pressured coding problems, with real code.
    • Study CS fundamentals.
      • e.g., linked lists, hash tables, trees, sorting, and the (Big-O) analysis of the memory and runtime of all of the above.
      • Brush up on dynamic programming if you're feeling energetic.
    • Brush up on the specific domain of the job, and prepare to discuss the standard technologies architectures in that space.
    • Practice talking through what you're doing to get used to the performance aspect of interviewing; having a friend grill you in a mock interview if you can.
  • On the Day
    • Explain what you're doing.
      • what line of solution you're considering.
      • what problems it might have.
      • what the problem resembles from your past experience.
      • what the tradeoffs are in your solution.
    • Start with a simple solution.
      • Explain what you're starting with and why.
    • Restate the problem and ask clarifying questions.
      • Refine the problem's requirements.
    • Stay calm and never give up.
      • => try a variety of approaches.
      • => talk through a sensible thought process.
      • => record whatever you manage to come up with can easily make up for an imperfect solution.
    • Code in a language you know well, and make that language Python if possible.
  • Passing the Rest of the Interview
    • Prepare a compelling and specific answer to the question, "Why do you want to work here?"
    • Try to balance humility with confidence.
    • Show your enthusiasm for technology when you get the chance; mention a tool you love to use, a book that influenced you.
    • Don't badmouth your previous employer or colleagues.
    • Prepare one or two questions about the company and team.
  • Further Reading
    • LeetCode
    • Cracking the Coding Interview

Recruiters

  • Roles
    • Coordinators: Organize on-site interviews.
    • Sources: Identify potential candidates.
    • Recruiters: Owners of the hiring process after initial sourcing.
  • What You Need to Know As a Colleague
    • Engineers and managers evaluate candidates in detail and decide when to make offers; candidates decide for themselves what jobs they'll take; recruiters are the conductors of the whole messy process, accountable for ensuring hires actually happen.
    • Challenges in recruiter's job => requires social skills, energy, and adaptability => astonishingly positive, energetic, and well-organized.
  • What You Need to Know As a Candidate
    • the recruiter is usually your ally in the hiring process.
  • Getting Properly Routed
    • Vocal in expressing your preferences.
  • Asking Questions
    • Recruiters are usually happy to help out with any questions.
    • You can ask recruiters to connect you with an engineering manager.

Levels, Titles, and Compensation at Tech Companies

  • Level and Title
    • Each level => allowable range of compensation.
    • Title matters
      • => determines your maximum compensation.
      • => help you market yourself as you look for new roles.
Title Level Experience (years) Scope Base Salary
Software Engineer 3 0-3 Do what people tell you. $110,000-$130,000
Software Engineer II 4 2-6 Take on a project, do own project management, and work with others. $120,000-$​165,000
Senior Software Engineer 5 4-? Manage projects with numerous moving pieces, lead others, and set some direction. $160,000-$195,000
Staff Software Engineer 6 8-? Lead very large projects and set direction for a large org, almost completely self-directed. $190,000-$230,000
Principle Software Engineer 7 12-? Set direction for significant part of the entire company. $220,000-$250,000
  • Compensation
    • Base Salary
      • 2-5% raise annually or 10%+ if you're promoted.
    • Bonus
      • calculated based on performance, normally 10-20% of base salary.
    • Equity Compensation Basics
      • stock (restricted stock units, or "RSUs") or stock options (incentive stock options, or "ISOs")
      • often structured as grants that "vest" over four years with a one-year "cliff".
      • stock options => if you leave the company, you often have only 30 or 60 days to decide whether to exercise your vested options or let them evaporate into nothing.
    • Equity Compensation Taxation in the United States
      • You would be extremely well-advised to consult a tax professional.
      • RSUs at a public company => taxed as regular income => your company will withhold income tax in kind when your grants vest.
      • Capital Gains Taxes
        • You pay capital gains taxes when you sell the shares of a long-holding stock, instead of higher income taxes.
      • Alternative Minimum Tax (AMT)
        • Stock options have a kind of estimated fair market (FMV) and a strike price.
        • The AMT says that if you exercise a stock option, you may owe taxes on FMV minus strike price.
  • Share Salary Information As Much As Possible
    • You may find the company's standards on sites like levels.fyi.
    • Sharing as much as compensation information with your friends and colleagues as you possibly can.
  • Negotiating
    • bands for a given level, interview performance, current compensation, competing offers => an offer package.
    • Level is set by experience and interview performance.
    • The best ammunition you can give is another package to point to, either current compensation or a competing offer.
    • Negotiating with a respectful and positive attitude usually won't harm your eventual relationship with your manager.
      • “The team really impressed me, and I’m excited about the product. My offer at SmartSoft has a base salary of $150k and a similar equity package; can you match them on the base salary?”
      • “Thanks for your quick reply. I really enjoyed my interviews, and the team was really friendly. The base salary looks good to me, but my current package has a 20% bonus target, and Acme Startup doesn’t have a bonus program. Can you balance that out with a bump in the equity or base salary?”