[Junior Developer Series] A Senior developer's role in growth of a junior

illustrations illustrations illustrations illustrations illustrations illustrations illustrations

[Junior Developer Series] A Senior developer's role in growth of a junior

Published on Dec 24, 2020 by Seungjin Kim

post-thumb

Let’s jump into what a senior’s role is in a team. You got hired because probably of the following skillset:

  • To efficiently judge micro choices surrounding a programming problem
  • Break down business requirements into sizeable, measurable deliverables
  • Have coordinated teamwork mentality to create as a team
  • Have a passion for the work you do
  • … and some other generic job descriptions

So we all know what a senior should be in a software company or a coding shop of a big company. Dare I say the bare minimum of what a senior should be.

However, we all have some sense of uneasiness when we are then tasked with working with a junior hire in the team. And that’s when the other responsibility of a senior level developer comes into play: training and apprenticeship.

Let me level with you. I’ve had situations where junior developers kept asking me so many basic questions that I lost my composure - especially early on in our startup where we were inundated with work.

Fortunately I was able to hold myself from barking at them, screaming how they can’t get something right - after telling them to do so for the umpteenth time. Luckily for me until I wised up, my general sense of introvertedness saved from from public display of rage.

So I know what you feel when a junior comes into the team dynamics. The more competitive you are, it’s likely that you feel this as a hindrance. You might think this as how you’ll be dinged off meeting your KPI, or that you’ll have to put in more hours to keep being competitive. Perhaps you compare yourself with other seniors in terms of leveling up.

However, maybe I can argue and make a case in that to have juniors in your team - is actually a blessing. Luck is working on your side. This is even more amplified if other seniors are shying away from helping out the junior. Now is your turn to learn the REAL lesson of being a micro CTO.

The “micro CTO” of a team becomes essential real fast - in terms of the business, an essential member of the team that builds up others. In addition to the job description qualities, developers with a “micro CTO” mindset becomes a true leader - who can build up others, have them all gaze to the commonly shared goal.

The “micro CTO” who everyone places a trust on, even from other departments like marketing. Those who can be relied on. A people magnet where others love to work with. You don’t actually become a cog in the system, but you become one of the shadow leaders.

This is beneficial for you because now you have a sense of ownership - you carved out something for yourself in this work. You don’t just function based on the next interesting programming challenge or winning the KPI game or promotion, but you now function as an independent thinker, where somehow with you - the team that you are part of, congeals more. Your team functions better. Attacks problems quicker. Has more innovative ideas. For the lack of a better word, your team has heart.

And the best sparring partner to become that role, is having a junior in the team. Let me explain.

Research showed that it takes 10,000 hours to become a master of a field. The corollary to that finding is that you have to put in deliberate practice for those hours.

Deliberate practice is intentionally doing the hard work - no skipping leg days. Codewise, that’s always trying to add unit tests even when no one asks you to. Writing task breakdowns in more detailed form - enough that everyone knows what to do, with even reference text, diagrams, “Commander’s Intent” goals as to why this ticket needs to be worked on. Reviewing best standards, idiomatic ways to write in that particular language, .. list goes on.

Best way of learning leadership is then by doing it in work, and not skipping metaphorical leg days. What better sparring partner for this then having a junior developer?

Junior developers are the white canvas onto which you lay out your best work ethics as a software developer. To instantiate in him/her the most right way to follow SDLC. And if you don’t skip steps, and you are patient in your teachings, pretty soon you will have created in the junior a passion for the right things.

Practicing the teaching aspect will help you, as a senior developer, conquer other parts of the meta-skills of a professional software developer. You will learn how to delegate, motivate by sharing insight, how to be humble, how to explain hard concepts in a simple way (one of the brightest signs that you learned a concept), and form a team. Hence micro CTO.

So next time you are assigned a junior developer - don’t ever doubt that maybe your skills are not being respected. Or that you got sidelined from a promotion, or that you got pushed out of a coding Eden.

Nope, you are now in the next level of your career, life, and maturity - you have become a teacher, where every single coding habit, communication tendency, comments will be absorbed by a passionate, eager apprentice. That feeling of responsibility is not something any external forces can assign, nor take away.

In a way, you weren’t assigned a task - nope, you now can create a greenfield project, in the team that you are forming. It is truly one of the most enjoyable tasks, one of the most honorable.