No moment
You don't receive a letter saying "congratulations, you're no longer a junior." There's no such thing. Growth looks different; you think for a long time that you've grown, and then you don't pass an interview. And they tell you, "you only know how to do what you're told." That's exactly how it was for me. I wrote code, completed tasks, thought everything was fine until I started getting feedback: "you're not thinking for yourself," "you're just executing." That was the first signal.
Signs of Shift
Transitioning from a junior developer is not about technology. It's about mindset. The first sign: you start seeing boundaries. It's not just about writing a function, but where the logic should reside, how to divide responsibilities, what changes frequently, and what should remain stable. The second: you start asking questions. A junior takes a task and does it. A developer clarifies, checks, doubts, because they understand that not all tasks are formulated correctly. The third sign, you start making decisions. You no longer need to be told how to do it. You propose options, assess risks, choose a solution, and can explain why.

Main transition
Transitioning from a junior involves a series of shifts: from "doing" to "understanding," to "solving," to "being responsible for the consequences." The next level is to start thinking about the business. Code is not the goal. Code is a means. And you begin to ask different questions: is this really necessary? Does it impact the money? Is this a priority right now? If you're still waiting for someone to tell you the right way, you haven't grown yet. If you're already thinking ahead, asking questions, and understanding the context, you're on the right path.