Job search

Stage 1 of 7 · 7 lessons · ~2 weeks

Know your target

Decide which roles, level and companies you are going after, and what the market pays for them. Every later step, from resume keywords to salary talks, depends on this.

Start: Role titles and your honest level

Lessons· one lesson for each topic, in this order

  1. 1Role titles and your honest level
  2. 2Your constraints, written down first
  3. 3Reading real job descriptions
  4. 4Marking your skill gaps honestly
  5. 5A tiered company list
  6. 6How each top company hires
  7. 7Market pay for your level and city

Do this

  • Pick 1 or 2 role titles (for example backend engineer or frontend engineer) and write down your honest level: intern, junior, mid or senior.
  • Read 20 real job descriptions for those roles and list the skills that appear in most of them.
  • Mark each skill as have, weak or missing, and plan to fix the weak ones that show up most often.
  • Build a list of 30 to 50 companies in three tiers: stretch, realistic and safe.
  • Look up pay for your role, level and city on levels.fyi and Glassdoor, and write down a realistic range.
  • Write down your constraints up front: city or remote, visa, notice period and the lowest pay you would accept.
  • Note how each top-tier company hires: rounds, timeline and whether they take referrals.

Keep handy

  • Pay by company, level and city, plus level mappings to compare titles across employers

  • Salary ranges and interview reports for local companies that levels.fyi does not cover

Also worth your time

Before moving on: A one-page target sheet: 1 or 2 role titles, your level, 30 or more companies in three tiers, the 10 skills that appear most in real job descriptions, and a pay range with its sources.

Tauseef's advice
Applying to everything with "software engineer" in the title is how people send 200 applications and hear nothing. Pick one or two roles, read what those companies actually ask for, and fix the gaps that show up in most postings before you worry about rare ones.

Mark this stage as not done?