A production bug
Reported by a user, reproduced from a vague description, fixed without breaking three other things.
You inherit a codebase somebody else built, with the decisions they made and the debt they left. That is the point.

Not tutorial projects
No blank folders. No finished specifications. No projects that exist only to be finished.
Reported by a user, reproduced from a vague description, fixed without breaking three other things.
Code that works and nobody wants to touch. Change it without changing behaviour.
Written by someone who is not an engineer, and missing the three details that matter.
Something got slow. Measure before you optimise, and prove it got faster.
A module with no tests and a history of regressions. Decide what is worth covering.
Two reasonable options. Pick one, write down why, and defend it in review.
Something is broken now. Diagnose under time pressure and communicate while you do.
A shortcut somebody took, and the argument about whether now is the time to pay it back.
Reading code you did not write and finding the useful thing to say about it.
The gap
Every rejection email says the same thing in different words: we were looking for someone with more experience. The gap is not knowledge. It is everything that surrounds writing the code.
Tutorial world
Real engineering
Applications are read by a person, and places are limited by how many pull requests we can review properly each week.
Apply to Barmaj