Senior developers should be navigators
Tags: webdev, programming, management, community
Published: 2022-09-04 11:19:07

Uncontroversial opinion I know but let me elaborate slightly on why I think seniors offer so much to the driver role in the driver/navigator pairing model (Pilot/navigator if you're fancy).

### Remember being freshly hatched

We all know you can implement that loop much quicker than the junior or spring that CDK code from muscle memory without all the flickering between VS code and the docs but that isn't the point.

We all remember the feeling of being on the keyboard and truly out of our depth, praying the senior watching you would just take over but when they did, what did you learn?

Watching over someone's shoulder certainly puts you at ease in those anxiety-inducing moments but I'd argue that's one of its core drawbacks.

Many studies connect stress (not distress) in educational settings to a positive effect on memory and retention (see an example [here](https://onlinelibrary.wiley.com/doi/full/10.1111/medu.13830))

Personally, I find it an extremely useful tool when trying to code in a framework/language I'm not comfortable with to dive in and have someone more practiced pick me up in situ and then explain my mistakes as I go along.

### The navigator who moulded me into a pilot

![Kyle's banner](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4dthz3cv54jtnx4ptrsk.png)

I would honestly attribute my teaching style as a senior, my passion for a web-native first approach, and my confidence today as a developer to one experience with [Kyle Welsby](https://www.linkedin.com/in/mekyle/) when we worked together at MAG-O (Now [CAVU](https://www.linkedin.com/company/togethercavu/)). 

Fresh out of a job where I had NOT done well, I was a nervous fairly junior developer with a list of things that I knew I needed to learn, I'd just started at MAG-O and soon my job would be to take handover of an isometric, tenanted, custom SSR react app.

No lie I was terrified but I had a little time while Infinity Works finished up the project, they were searching for something in the UI domain when Kyle pitched a configurable native web component to integrate with Braintree and render in any framework.

![Payment app](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/34vl1lijpwioohp3ybhv.png)

Still to this day one of the coolest projects I've been heavily involved in and it is marvelous. It's live and public still [here](https://uicomponent.live.payments.maginfrastructure.com/) and I'm proud to see other developers have expanded on it since.

From the get-go Kyle insisted I was always on the keyboard, when I reached for an external library he prompted me to view the library on GitHub and try to reverse engineer a leaner version of the code for our specific case, gave me a load of reading about the shadow dom and even stepped me through my first experience building a CI and deploying to s3.

![Shared payment component](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nug5ghj0f9grdiaue9tg.png)

Months later Kyle had moved on from his contract and I was asked to build a follow-up web component to store saved card details for customers in a similar fashion, thrilled I developed this solo (Still live [here](https://card-vault-uicomponent.test.payments.maginfrastructure.com/)) and earned a promotion to senior engineer after demoing it back to the company.

Check out Kyle's blog on his website [here](https://mekyle.com/).

### Conclusions

Without the mentorship I received early in my career, from these pairing sessions where I spent most of my time in the pilot position I would not be the engineer I am today nor I'd like to think would some of the engineers I've mentored since.

Don't take this to mean never code again once you reach senior, I'm saying take a moment to step back and think about the value gained for the whole team and engineering community from stepping back once in a while for the less experienced around you.

So if you're a CSS wizard, a cloud guru, or a back-end master and you pick up a particularly complex ticket in your domain, maybe consider reaching out to the junior on your team or an engineer without much domain experience and sit back from the controls for a little while.

You might just learn something yourself.