The system
0 → 100 SWE Roadmap
8 stages. Each one has a clear list of tasks, an honest explanation of why it matters, the mistakes that kill most candidates, and the criteria that tell you when you're ready to move on.
Stabilize
Get your foundation in order before you do anything else.
- ›Set a daily study schedule and block it on your calendar
- ›Define your target role: frontend, backend, full-stack, or general SWE
- ›Choose your interview language (Python or JavaScript recommended)
- ›Create or update your base resume
- ›Clean up your LinkedIn headline and about section
- ›Make sure your GitHub has at least one pinned project
- ›Set up one place to track all job applications
Most people fail because they have no structure. They study randomly, apply randomly, and can't measure progress. Stage 0 fixes that in a day.
- ✗Skipping this and jumping straight into LeetCode
- ✗Picking a language you barely know
- ✗Leaving a half-empty GitHub or a 3-year-old LinkedIn
- ✗Using a spreadsheet you'll abandon in a week
- ✓You have a daily study block that's actually on your calendar
- ✓You know exactly what role you're targeting
- ✓Your resume exists and is not embarrassing
- ✓You have one app tracker you'll actually use
Resume + Profile Cleanup
A weak resume is a silent rejection. Fix it before you apply.
- ›Rewrite every bullet using the 'Did X using Y to achieve Z' formula
- ›Add metrics to at least 3–5 bullets (%, time saved, users, requests/sec)
- ›Remove filler words: 'responsible for', 'helped with', 'worked on'
- ›Convert resume to Jake's Resume LaTeX format or a clean single-page PDF
- ›Group your skills clearly: Languages / Frameworks / Tools / Cloud
- ›Optimize your LinkedIn headline with role + keywords
- ›Write a LinkedIn About section that matches your target role
- ›Create a recruiter outreach template you can send in 2 minutes
Recruiters spend 6–10 seconds on a resume. If your bullets are vague and your formatting is messy, you're rejected before anyone reads a word.
- ✗Using a two-page resume as a new grad or junior
- ✗Writing bullets that describe duties instead of impact
- ✗Listing every technology you've ever touched
- ✗Submitting the same resume to every job
- ✓Every bullet answers: what did you do, how, and what happened
- ✓Resume is one clean page, ATS-friendly
- ✓LinkedIn matches your resume and target role
- ✓You have a recruiter message ready to send
Coding Interview Foundations
Learn patterns, not solutions. 7 patterns cover most of what you'll see.
- ›Two Pointers — sorted arrays, palindromes, pair sums
- ›Sliding Window — longest/shortest substring or subarray
- ›Fast and Slow Pointers — linked list cycles, middle of list
- ›Binary Search — sorted arrays, rotated arrays, search on answer
- ›DFS + BFS — trees, graphs, islands, shortest paths
- ›Dynamic Programming — overlapping subproblems, optimal substructure
- ›Backtracking — permutations, subsets, combinations
- ›Do 3–5 problems per pattern before moving on
- ›Review wrong answers the next day, not just the same day
Grinding 300 random problems without understanding patterns is one of the most common and expensive mistakes. Pattern recognition is the actual skill interviewers test.
- ✗Doing problems in random order
- ✗Moving on after one correct solution without understanding why it works
- ✗Not practicing under time pressure
- ✗Skipping DP because it's hard — it shows up
- ✓You can identify the pattern within 2–3 minutes of seeing a problem
- ✓You can code a working solution to easy/medium problems in under 20 minutes
- ✓You can explain your approach out loud while coding
- ✓You've done at least 3–5 problems per pattern
System Design Foundations
You don't need a perfect design. You need a clear framework and confident tradeoffs.
- ›Learn the 8-step design framework: clarify → estimate → components → data flow → storage → scaling → bottlenecks → monitoring
- ›Understand load balancers, caching layers, and when to use each
- ›Learn SQL vs NoSQL tradeoffs — not just definitions
- ›Understand message queues and why async processing matters
- ›Study replication, sharding, and consistency tradeoffs
- ›Practice designing: URL shortener, Twitter feed, chat app, file storage
- ›Learn to estimate: DAU, QPS, storage requirements
Mid-level and senior roles almost always include a system design round. Even junior roles at larger companies have started adding it. One confident design answer can separate you from a field of candidates.
- ✗Memorizing architectures without understanding the tradeoffs
- ✗Starting to draw components before clarifying requirements
- ✗Saying 'I'd use a database' without specifying what kind and why
- ✗Ignoring failure cases and bottlenecks
- ✓You can walk through any common system in 30–45 minutes with structure
- ✓You can explain why you chose SQL vs NoSQL for a given problem
- ✓You can identify at least 2 bottlenecks in any design you draw
- ✓You're not silent — you're talking through your thinking the whole time
Projects + Proof of Skill
Your resume claims skills. Your projects prove them.
- ›Identify 1–2 projects most relevant to your target role
- ›Make sure each project has a clear README: what it does, why you built it, how to run it
- ›Add at least one project that demonstrates backend or system-level thinking
- ›Ensure your GitHub profile looks clean: bio, pinned repos, consistent commits
- ›Write a 2–3 sentence project pitch you can say out loud in an interview
- ›Be ready to do a live walkthrough of your code
- ›If you have nothing relevant: build a simple but complete project now
Many candidates can pass LeetCode screens but fall apart when asked to talk about something they've built. Projects give interviewers something real to dig into.
- ✗Listing projects on your resume you can't actually explain
- ✗GitHub with a single commit per repo
- ✗Tutorial projects with no personal decisions or modifications
- ✗Projects that don't run or have broken demos
- ✓You can explain each project's architecture, decisions, and tradeoffs in 3 minutes
- ✓Your GitHub looks like someone who actually codes
- ✓At least one project demonstrates backend, API, or data skills
- ✓You have a deployed or runnable demo for at least one project
Job Search Execution
Applying randomly is not a strategy. Treat this like a sales funnel.
- ›Set a weekly application target: minimum 10–15 quality applications
- ›Identify 3–5 companies you actually want to work at and treat them differently
- ›Tailor your resume for every application above a certain priority threshold
- ›Message 2–3 people at target companies per week: alumni, recruiters, engineers
- ›Use referrals when possible — they dramatically improve callback rates
- ›Track every application: company, role, date, resume version, stage, notes
- ›Review your conversion funnel weekly: apps → callbacks → screens → onsites
Most people apply to 100 jobs and get 1 callback because they send the same generic resume everywhere. Focused, tailored outreach with referrals outperforms volume-spraying every time.
- ✗Applying to hundreds of jobs with zero personalization
- ✗Not tracking what's working and what isn't
- ✗Ignoring your network entirely
- ✗Only applying through the company website — try LinkedIn, referrals, and direct messages
- ✓You have an active tracker with every application and its stage
- ✓You know your callback rate and are actively trying to improve it
- ✓You've sent at least 5 personalized outreach messages this week
- ✓You have a tailored resume ready for your top 5 target companies
Interview Execution
Interviews are a skill. Practice the skill, not just the knowledge.
- ›Prepare your 'tell me about yourself' — 90 seconds, crisp, relevant
- ›Write STAR-format answers for: biggest failure, hardest problem, conflict, tight deadline
- ›Do at least 3 mock technical interviews with another person or on camera
- ›Practice thinking out loud — narrate your approach before you code
- ›Know your resume cold — every bullet, every project
- ›Prepare 3 strong questions to ask the interviewer
- ›Review negotiation basics before you get an offer
Technical knowledge gets you to the interview. How you communicate under pressure determines whether you get the offer. Most candidates under-practice the actual interview experience.
- ✗Only practicing solo — you need an audience
- ✗Going silent when stuck instead of narrating your thinking
- ✗Not having stories ready for behavioral questions
- ✗Accepting the first number without asking
- ✓You can introduce yourself in 90 seconds without rambling
- ✓You have 4–5 STAR stories ready and practiced out loud
- ✓You've done at least 3 mock interviews with real-time feedback
- ✓You stay calm and communicative when you don't know the answer
Offer Optimization
Most people leave money and better roles on the table. Don't.
- ›Never accept on the spot — always ask for time to review
- ›Research market comp: levels.fyi, Glassdoor, Blind, LinkedIn Salary
- ›Counter every offer — the worst they can say is no
- ›Evaluate total comp: base + equity + bonus + benefits
- ›Ask about team, manager, and growth path — not just salary
- ›If you have multiple offers, use them as leverage
- ›Consider role fit, growth potential, and team quality — not just the number
Negotiation is expected. Companies build in room for it. Candidates who don't negotiate leave $5,000–$20,000+ on the table at the first offer alone.
- ✗Accepting or declining too fast
- ✗Negotiating only on base salary and ignoring equity
- ✗Not knowing your market rate before the conversation
- ✗Giving the first number when asked for salary expectations
- ✓You evaluated at least 3 dimensions of the offer before accepting
- ✓You countered and either got more or confirmed it was truly final
- ✓You chose the role that fits your 2-year growth plan, not just the highest number
- ✓You have a start date and written offer confirmation