I was very lucky in my early days, and I want to be precise about what the luck consisted of, because it was not the whole story. In my first years of writing software, when I was still forming the instincts I now rely on without noticing them, I had a mentor who was a well-respected senior developer at IBM, with a depth of knowledge about application architecture that seemed to have no bottom to it, the kind of understanding that only comes from having built large systems for a long time and having watched some of them fail. He was a family friend of my parents, which is where the luck lives, because I did nothing to earn that connection. What happened next was not luck at all: he recognized a potential in me, and I recognized an opportunity in him, and both of those recognitions had to occur before anything could be transferred.
I hope everyone has a mentor like that at least once, and since hope by itself changes nothing, this post is my plea for the part that is actually in our hands, which is that both sides have to keep looking.
What He Actually Gave Me
It would be easy to describe what I received as knowledge, but that word is too flat for it, because knowledge was available in manuals even then and I was already reading them. What he gave me was judgment, which is a different substance entirely: the ability to look at a decision and sense how it will age, to hold the whole shape of a system in your head while changing one small part of it, to know which corners of an application carry weight and which can be improvised, and to feel in your stomach the difference between code that is finished and code that merely works today.
None of that arrived as lessons. It arrived through work, through questions I brought him, through watching him think about a problem out loud, and through the particular discomfort of having someone whose opinion you respect look at your code and pause in the wrong place. A textbook can tell you what an architecture is. Only a person can show you what it feels like to be responsible for one, and that showing is a transfer of something that took him twenty years to grow and that he could lend to me in an afternoon of conversation.
Information has been cheap for a long time, but judgment still travels mostly from person to person.
Consistency Needs a Frame
Judgment was the invisible half of what he transferred, but there was a second lesson that looked almost boring next to it, and it took me years to understand that the boring one is what carries the rest. He was consistent, relentlessly so, in how he named things, in how he structured a module, in how he reviewed my work and his own, and when I was young I read that consistency as personality, something between a gift and a quirk. Only much later did I see what it actually was: he had built himself frames and he worked inside them, which meant his consistency never depended on his mood, his memory, or how the week had treated him, because it was carried by procedures he had decided on once and then simply followed.
A frame is a decision made on a calm day, after careful thought and with a plan, so it never has to be remade under pressure.
That is the part I had to grow into, because consistency is not a character trait that you either have or lack but an output of structure, and the structure can be built by anyone willing to write down how they work and then work that way. The frame can be a naming convention, a checklist that runs before every release, a template for how a new module comes into the world, or a generator that produces the same shape of code no matter who asked for it, and most of these are not code at all, since an internal framework is any agreed way of doing a recurring thing, from how columns get named to how a project changes hands.
This is also why we build Reepolee the way we do, with generators instead of one-off files, with conventions enforced by checks instead of memory, and with a standing rule that you fix the generator and never the generated code. A frame is what turns consistency into quality, because quality is mostly the absence of surprises, and it is what makes shipping responsible, because a release produced inside a frame behaves on the last evening before a deadline the same way it behaved on the quiet morning when the frame was written, and the people who receive your work can rely on it without ever having met you.
It Was Mutual, and That Is the Point
The part of the story that gets told least often is that the relationship had two directions from the beginning, and I do not think it would have survived a year without that. He gave me judgment and context, and I gave him things that are easy to underestimate: energy, questions that forced him to put words around things he knew so deeply he had stopped noticing them, a fresh pair of eyes that had not yet learned which compromises were customary, and the particular satisfaction that comes from watching understanding continue in somebody younger.
This is why the version of mentorship that treats it as a one-way service, where one person pours and the other receives, tends to dissolve quietly and without drama, because the person pouring eventually notices that nothing flows back. What works is mutual recognition, which in our case was plain: he saw in me someone who would take the teaching seriously and do something with it, and I saw in him a door I intended to walk through with my eyes open. Formal programs that assign a mentor to you can work, and I am not against them, but the relationships that change a career usually begin the way ours did, with both sides noticing something worth their time.
Potential has to be brought out into the open before anyone can recognize it.
Any Shape or Form
A mentor almost never arrives wearing the title, and expecting the official version is one of the ways people miss the real thing. Mine was a family friend. Yours might be the colleague whose code review stings a little and who you should therefore seek out rather than avoid, or the person in another department who answered one question of yours at exactly the right moment, or someone twenty years younger who knows a corner of the craft you never visited, because teaching flows toward curiosity and does not respect hierarchy at all.
The shape does not matter, and the duration does not matter either, since some mentors stay for a decade and some teach you everything they have for you in a single afternoon. What matters is the openness, which is a discipline and not a personality trait: noticing when someone knows something you do not, and instead of defending the gap, moving toward the person who can close it. Every gap you hide costs you twice, once in the knowledge you never get and once in the mentor you never meet.
A Plea for Both Sides
So here is the plea, and it runs in both directions because the door does.
If you are earlier on the road, keep looking for the people who can teach you, and do it actively, because nobody is assigned to you and the ones worth learning from are usually busy. Ask the question, show your work, make yourself easy to teach, and let your potential be visible, since the mentor you are hoping for can only recognize what you bring into the open.
If you are further along, keep looking for the people you can teach, because everything you know that is not written down or passed on retires the day you do, and this industry loses an enormous inheritance of judgment every year to people who never found their person. We have written before about how the engine of a strong team is usually its mid-level engineers, and mentorship is how more of them get built, which means being approachable and findable is not charity but part of the job.
The Debt
I still use what he taught me, in arguments he is not part of, about systems he never saw, and some of my instincts are simply his instincts that changed address. A debt like that cannot be repaid to the person it belongs to, and I do not think he would want it to be. It is repaid in both directions instead: by staying someone worth teaching, and by being someone worth finding.
Keep looking for each other. The potential is out there, and so is the opportunity, and neither one knocks.