just finished a Lyft new grad SWE loop and wanted to write up what actually mattered vs. what I stressed about for no reason. class of 2025, applied through their university recruiting pipeline in April, heard back pretty fast.
The rounds:
OA first. two coding problems, 90 minutes, on their own platform not leetcode but similar. one was medium array/string manipulation, one was a graph traversal problem. nothing surprising. the graph one had a small twist but if you've done 50+ mediums you're fine.
After OA: recruiter call, then two technical phone screens back to back (same day for me, scheduled it that way to get it done). each screen was one coding problem, 45-50 minutes. both mediums. one trees/DFS problem, one DP that I fumbled a bit but still passed. I think they care more about how you communicate your thinking than whether you nail the optimal solution cold.
Onsite (virtual): three rounds. two coding, one behavioral.
The behavioral round at entry level surprised me a little. I expected it to be lightweight but they asked real questions: tell me about a project where requirements changed mid-way, tell me about a time you disagreed with a technical decision. as a new grad I didn't have much "work" experience so I used capstone and internship stories. that seemed totally fine.
What to prep: arrays, strings, trees, graphs, dynamic programming. in roughly that priority order. don't over-index on hard problems unless you're specifically targeting L5+ eventually. practice talking while coding. I mean literally out loud. this is the thing nobody does and everybody struggles with. have 3-4 solid project stories for behavioral. they don't need to be impressive, they need to be specific. lyft is a transportation/mapping company so graph problems are not a coincidence. trees and graphs are worth extra time.
I did NOT need to prep system design at all for new grad. don't let that distract you.
timeline: OA to offer was about 6 weeks total.
offer: L3, SF, base around $155k from what I recall. RSUs on top but vesting is 4-year cliff or something like that, recruiter explained it but I was too anxious to absorb it.