My first mentoring disaster still haunts me. I paired with a junior dev on a database migration. Within ten minutes I'd grabbed the keyboard, typed the whole thing, and said "See? Easy." She nodded. She learned nothing. I learned nothing. We both wasted an hour.

That was the moment I realized mentoring isn't teaching. It's the opposite of teaching. You have to resist the urge to show how smart you are. Your job is to make them feel smart enough to figure it out themselves.

The hardest lesson took me years to internalize: silence is a tool. When a junior dev hits a bug, every instinct screams at you to point at the problem. Don't. Ask what they think is happening. Ask what they've tried. Ask what the error message says. Let them sit in the discomfort for five minutes. That discomfort is where the learning lives. I used to think good mentoring meant fast answers. It doesn't. It means slow questions.

Another thing nobody tells you: you will get frustrated. Not at their skill level — at their confidence. I once worked with a brilliant junior who could solve complex problems but would freeze during code reviews, convinced everything she wrote was garbage. Turns out a previous lead had torn apart her first pull request in front of the whole team. One bad experience had rewired her entire relationship with feedback. Fixing that took months of small, specific, private encouragement. You can't just mentor the code. You have to mentor the person.

I also learned the hard way that assigning tasks matters more than you think. Early on I'd give juniors the boring stuff — documentation, bug triage, test writing. I told myself it was "foundational." Really I was just protecting the interesting work for myself. A senior engineer I respected called me out on it. He said if you only give juniors the scraps, they'll leave before they ever get good. He was right. Now I give them real features with real stakes, and I sit next to them while they struggle through it. The struggle is the point.

One more thing. You will be wrong about who will succeed. I once wrote off a junior dev because he asked what I thought were basic questions. Six months later he was the best debugger on the team. His "basic" questions were actually deep curiosity in disguise. I almost lost him because I confused confidence with competence.

Mentoring is humbling. It forces you to articulate things you do on instinct. It exposes gaps in your own understanding. And it reminds you that everyone — including you — started somewhere, confused and scared and pretending they weren't.

The best mentors I've had weren't the smartest people in the room. They were the ones who made me feel like I belonged there.