Coaching Engineers

Kent Beck
3 min readSep 10, 2018

--

Reposted from LinkedIn.

tl;dr I coach engineers for money. Contact me for details and wait time.

The Payoff

Just before I left Facebook in February of 2018 I attended an off-site for the top 1% of engineers (those at level E7 and above for those of you keeping score at home). As I got off the bus at the seaside resort, I noticed several of my coaching students among the group. I knew about some of them being promoted, but others were a surprise.

It was a button-popping moment of pride for me. I build a relationship with each student and I’m emotionally invested in their success. To see so many students so successful surprised and delighted me. Turns out the story was even better.

Most high level engineers at Facebook are hired at that level. Only 40 of the attendees had been promoted from within. 6 were my students, and each student who made it had been promoted 4 or 5 times in 5 years.

Now, I can only claim a tiny slice of credit for their success. They were incredibly talented, hard working, and lucky. Still, I’m okay with feeling proud.

My Story

When I was a fresh-faced 23-year-old engineer I had the good fortune to work with Ward Cunningham (of Wiki fame among other achievements). Ward was writing a course to teach Smalltalk. He had a plumbing simulation for the students to extend and wanted to practice explaining it to someone. The year-and-a-half that followed changed the course of my career.

At first Ward programmed and I watched. After a few days I was catching typographical errors before he saw them. After a few weeks I was catching naming and design inconsistencies. Then chances for simplification.

As our process evolved we noticed that we were swapping the keyboard and mouse. When we were really in the zone one of us would operate the keyboard and the other the mouse. The resulting code was so consistent we couldn’t tell who had written what. Every time we disagreed about how to write something we would stop and discuss the problem.

The combination of an ongoing relationship, concrete work, and abstract discussion accelerated my learning. I got an accurate sense of how much I knew and how much I had to learn. I saw in detail how an expert approached problems. I also gained confidence in my own abilities and potential.

Ward told stories of how he had been mentored when he was a young engineer. Older engineers were gruff and impatient at first, but were willing to invest in a youngster with potential if the student demonstrated hard work.

My Turn

During my goat farming years I made most of my living coaching remotely. I would have a two-hour video/screen-sharing session with students once a week. When I landed at Facebook and was looking for a way to contribute, my friend Peter Dimov suggested that I try coaching. I launched a coaching program, g2G, that reached hundreds of Facebook engineers.

I naïvely expected that I would coach students on technical skills. I so looked forward to detailed talks about refactoring, patterns, and testing. Instead, I learned that engineers are good at acquiring technical skills on their own. What’s hard for them to learn on their own are personal and inter-personal skills: communication, empathy, confidence, caution. With a newfound sense of self, their technical skills bear fruit.

The program didn’t fit into the regular Facebook structure, so we struggled to demonstrate impact. With a couple of years experience behind us, though, we showed that students who received coaching were twice as likely to receive a promotion in the year following coaching than their equivalent uncoached peers. By the time I left I had coached 150+ engineers and the program had reached several hundred more.

The Offer

As part of my portfolio of post-employment activities, I have decided to offer coaching. The ideal student has tons of unrealized potential, is frustrated by their lack of progress, has busy managers without the time to dig in to the bottlenecks, and is willing to work to improve. I have successfully coached students matching this description with 1 year of professional experience and with 20 years.

An engagement consists of 10 one-hour sessions in about a month, followed by 5 monthly followups. Before and after the 10 sessions I discuss the student with their manager.

Sessions combine pair programming and conversation. The student talks about their experience of work, listens to my stories, and receives homework for the next session. The first session is always in person, although subsequent sessions can be face-to-face or remote (I am based in San Francisco).

--

--

Kent Beck

Kent is a long-time programmer who also sings, plays guitar, plays poker, and makes cheese. He works at Gusto, the small business people platform.