Mentoring and Teaching#

The engineers who create the most lasting value aren’t always the ones who write the most code — they’re the ones who make everyone around them better. Mentoring, pair programming, knowledge sharing, and effective onboarding are force multipliers that compound over time.

Why Engineers Should Teach#

ReasonMechanism
Teaching deepens your understandingYou can’t explain what you don’t truly know. Gaps become obvious when you try to teach.
It scales your impactOne great engineer produces X. One engineer who mentors five produces 5X (and growing).
It builds trust and influencePeople follow those who invest in their growth.
It’s a leadership prerequisiteYou cannot lead effectively without being able to transfer knowledge.
It creates bus-factor resilienceKnowledge hoarding is a single point of failure.

Being a Good Mentor#

Mentoring is not telling someone what to do. It’s helping them develop the ability to figure things out themselves.

Mentoring vs Managing vs Teaching#

RoleRelationshipApproachTimeline
MentorGuide, advisorAsk questions that provoke thinkingOngoing, relationship-based
ManagerSupervisor, evaluatorSet goals, provide resources, assess performanceRole-based, organisational
TeacherExpert, instructorTransfer specific knowledge or skillsSession-based, topic-focused
CoachFacilitatorHelp them find their own answers through inquiryGoal-oriented, time-bounded
SponsorAdvocate, door-openerCreate opportunities, put their name forwardRelationship-based, political

The Mentor’s Toolkit#

ToolWhen to useExample
Ask, don’t tellWhen they can figure it out themselves“What would happen if this function is called concurrently?”
Think aloudWhen sharing your reasoning process“I’d start by checking the logs because timeout errors usually indicate…”
Share failuresWhen they need permission to fail“I once took down production by forgetting to add a WHERE clause. Here’s what I learned.”
Set challengesWhen they need stretch opportunities“Would you be up for leading the next design review?”
Connect to resourcesWhen they need knowledge you don’t have“Talk to [person] — they solved exactly this last quarter.”
Provide safetyWhen they’re taking risks“Try the new approach. I’ll review it, and if it doesn’t work, we’ll learn something.”

Questions Mentors Ask#

The quality of your questions determines the quality of their thinking:

Instead ofAsk
“Here’s how to do it”“What approaches have you considered?”
“That’s wrong”“What would happen in the case where X?”
“You should use pattern Y”“What trade-offs are you weighing?”
“Let me fix that for you”“What’s your next step for debugging this?”
“I would have done it differently”“Walk me through your reasoning”

Common Mentoring Anti-Patterns#

Anti-patternProblemBetter approach
Solving their problems for themThey don’t develop problem-solving skillsGuide them to the answer through questions
Only mentoring mini-youBias toward people who think like youSeek out mentees with different backgrounds
Ghost mentoringAgreeing to mentor then never being availableSet a recurring cadence (biweekly 30 min minimum)
Only technical guidanceIgnoring career, communication, growthAsk about their goals, not just their code
Waiting to be askedMany people don’t know they can askProactively offer: “I noticed X — want to talk through it?”
One-size-fits-allDifferent people need different stylesAsk how they learn best. Adapt.

Pair Programming#

Pair programming is the highest-bandwidth knowledge transfer mechanism in engineering. Done well, it transfers not just what to do, but how to think.

Pairing Modes#

ModeStructureBest for
Driver-NavigatorOne types, one directs strategyTeaching, complex problems
Ping-PongAlternate writing test / making it pass (TDD)Equal-skill pairs, maintaining focus
UnstructuredFluid switching between who codesExploration, quick debugging
Mob/Ensemble3+ people, one driver, group navigatesOnboarding, complex decisions, knowledge spreading

Making Pairing Effective#

PrincipleImplementation
Equal voiceNavigator’s ideas matter as much as driver’s. Switch roles every 25 minutes.
Think aloudBoth people verbalise their reasoning. Silence means someone is lost.
Small stepsDon’t jump ahead. Make one thing work, then the next.
Take breaksPairing is mentally intense. 25 on, 5 off (pomodoro).
No grabbingNever take the keyboard without asking. “Mind if I try something?”
Patient teachingIf you’re senior, let them struggle productively before jumping in

When Pairing Works (and When It Doesn’t)#

PairWorks greatDoesn’t work
Senior + JuniorKnowledge transfer, real-time teachingRoutine work the senior finds boring
Equal skillHard problems, design decisionsMundane tasks that don’t benefit from two brains
Cross-teamSystem understanding, reducing silosWhen there’s no shared context to build on

Remote Pairing Tips#

ChallengeSolution
Screen lagUse VS Code Live Share or similar (shared editor, not screen share)
Hard to point at codeUse line numbers verbally, or draw on shared whiteboard
FatigueShorter sessions (60 min max). More breaks.
Awkward silenceEstablish that silence is OK — someone is thinking
Timezone differencesFind overlapping hours. Agree on a shared schedule.

Knowledge Sharing#

Individual mentoring helps one person. Knowledge sharing scales to the entire team or organisation.

Knowledge Sharing Formats#

FormatEffortReachShelf life
Slack message / threadLowTeamDays
Code commentsLowAnyone reading the codeLong
PR descriptionLow-MediumTeam + future archaeologistsLong
README / wiki pageMediumOrganisationLong (if maintained)
Brown bag / tech talkMedium-HighTeam / org (live)Short (unless recorded)
Blog post (internal)HighOrganisationLong
Workshop / hands-on sessionHighAttendeesMedium (skill retention varies)
Recorded video walkthroughHighOrganisationMedium-Long

Running Effective Tech Talks#

ElementRecommendation
Duration20–30 minutes (attention drops after 30)
StructureProblem → What I tried → What worked → Demo → Q&A
LevelAim for the “interested non-expert” — explain enough context
EngagementLive demos, code examples, ask the audience questions
RecordingAlways record. The async viewers outnumber live attendees.
Follow-upPost slides/recording + a short written summary

Creating a Learning Culture#

BehaviourImpact
Schedule regular “show and tell” sessionsLearning becomes routine, not exceptional
Celebrate teaching, not just buildingIncentivises knowledge sharing
Maintain a team wiki with decision recordsInstitutional memory persists
Rotate “on-call” or “investigator” rolesEveryone learns different parts of the system
Make documentation part of “done”Knowledge sharing is built into delivery

Onboarding Others#

Onboarding is the highest-leverage teaching you’ll ever do. A developer who gets productive in 2 weeks instead of 6 weeks saves 4 weeks of salary and months of frustration.

The 30-60-90 Day Framework#

TimeframeGoalThey should be able to
Week 1OrientNavigate the codebase, run the app locally, find documentation
Days 8–30ContributeShip small changes independently, review PRs, participate in ceremonies
Days 31–60OwnTake ownership of a feature or component, drive small decisions
Days 61–90InfluencePropose improvements, mentor newer joiners, contribute to architecture discussions

Onboarding Checklist (Week 1)#

CategoryItems
AccessGit repos, CI/CD, cloud accounts, monitoring dashboards, Slack channels
ContextArchitecture overview, team norms doc, key stakeholders map
SetupDevelopment environment running, tests passing, can deploy to test
HumanAssigned buddy, intro meetings with key people, 1:1 with manager
First taskA real (but small) ticket — not busywork. Something that ships.

Being an Onboarding Buddy#

DoDon’t
Proactively check in daily (first 2 weeks)Wait for them to ask (they won’t — they don’t want to seem incompetent)
Share “unwritten rules”Assume they’ll figure out the culture by osmosis
Pair on their first few tasksJust assign work and hope for the best
Introduce them to key people personallySend a list of names with no context
Celebrate their first mergeLet it pass unremarked
Tell them it’s OK to be confusedLet them assume everyone else “got it” instantly

Onboarding Anti-Patterns#

Anti-patternImpactFix
“Sink or swim”High attrition, slow ramp-up, anxietyStructured first 30 days with buddy
Busywork ticketsNew hire feels useless and undervaluedGive real work with appropriate support
Information firehose (day 1 brain dump)Retention is near zeroSpread context over weeks, just-in-time
No feedback for 3 monthsBad habits form uncorrectedWeekly feedback in first month
Outdated onboarding docsFrustration, lost time, bad first impressionReview and update quarterly

Scaling Yourself Through Teaching#

As you grow senior, your individual contribution hits a ceiling. Teaching is how you break through it:

Career levelPrimary impact mechanismTeaching role
JuniorPersonal output (code written)Learn from others
MidPersonal output + quality (code reviewed, bugs prevented)Explain in PRs and docs
SeniorTeam output (unblocking others, design leverage)Mentor, pair, teach
StaffOrganisation output (standards, patterns, enablement)Create frameworks others use
PrincipalIndustry impact (publications, open source, conference talks)Teach beyond your org

The Teaching Ladder#

  1. Write it down — Document what you know (lowest barrier to entry)
  2. Review thoroughly — Transfer knowledge through PR feedback
  3. Pair regularly — Real-time teaching, highest bandwidth
  4. Present to your team — Brown bags, tech talks, demos
  5. Mentor individuals — Long-term investment in specific people
  6. Create learning paths — Curated sequences for common growth needs
  7. Teach externally — Blog, conference talk, open source contribution

Key Takeaways#

  • Mentoring is asking questions, not providing answers — develop their thinking, not their dependency
  • Pair programming is the highest-bandwidth knowledge transfer; use Driver-Navigator for teaching
  • Knowledge sharing should be built into daily work (PR descriptions, code comments, docs), not just special events
  • Onboarding is your highest-leverage teaching opportunity — a structured 30-60-90 plan beats “sink or swim”
  • Your proactive check-ins matter more than their willingness to ask — new hires won’t ask for fear of seeming incompetent
  • As you grow senior, teaching is how you break through the ceiling of individual contribution
  • The strongest teams have learning cultures where everyone teaches and everyone learns