You've successfully subscribed to World Class Remote
Great! Next, complete checkout for full access to World Class Remote
Welcome back! You've successfully signed in.
Success! Your account is fully activated, you now have access to all content.
What does it mean to be a senior developer?

What does it mean to be a senior developer?

A professional in a business that has a net positive ROI beyond their lifetime at a given company.

Matt Smithies
Matt Smithies

Short Answer: A professional in a business that has a net positive ROI beyond their lifetime at a given company.

Such a contributor will leave the company in a better state then when they began.

This goes beyond code, you will have changed the team and the business.

But that isn’t the whole story.

A  truly senior (perfect) developer doesn’t exist. There will always be  gaps in knowledge, not one person can know everything. When moving  outside of an area of expertise there are always going to be new things  to grasp, learn and understand.

We ¬†are all growing, we are all beginning our journey. If we stop changing, ¬†if we are the same person tomorrow as we are today ‚ÄĒ we are doing ¬†something wrong.

I prefer this approach instead:

An experienced and skilled technical craftsman ‚ÄĒ that cares.

A  strong technical foundation is required coupled with the ability to see  the bigger picture, question and understand the effects of personal  short term actions.

  • What is the likelihood that I have increased the stress on other staff members around me?
  • Will I personally contribute to resource lost due to potential additional support requests?
  • Will I cause a mismatch between customer expectation and reality?
  • Can I recommend and implement tooling to ensure that my colleagues around me are more effective?
  • Can I be more effective with my resource by pursuing other tasks?
  • How can I step up to alleviate the stresses of the people around me?
  • What can I do to help bridge the knowledge gap that the business requires?

Notice ¬†the above language ‚ÄĒ this is about taking responsibility of the ¬†situation in front of you, manipulating the world and giving purpose to ¬†onesself.

There  are countless articles and studies on the link between perceived lack  of control and anxiety. If an individual truly believes that their  contributions will not matter in the grand vision of a project this can  cause them to give up. Stopping them from growing internally and  professionally.

Balanced ¬†autonomy, the ability to quickly drive decisions by onesself, coupled with a fast feedback loop is extremely important ‚ÄĒ it provides ¬†direction.

Photo by Jordan Madrid on Unsplash

Although  it is unlikely they will have access to bringing in direct sales or contributing significantly to the month to month cash flow their power  is within product creation and people.

Change will always have an impact ‚ÄĒ we need the majority of our efforts to help drive the team forward.

This could come in various different forms.

  • Building, ¬†adding new features and taking action. Knowing what corners can be cut ¬†to deliver. One of the greatest assets for a start-up is to be able to ¬†have a fast feedback cycle with real consumers.
  • Adding ¬†automation testing and reducing the cost of manual testing and provide ¬†more confidence to the code where change is possible in the future.
  • Mentoring ¬†junior member by communicating in an accessible manner that answers the ¬†questions on why an approach is taken rather then just simply how.
  • Gratitude. ¬†The fact everyone has converged to a single cause is incredible, ¬†especially as we have gotten here from completely different paths.
  • Sacrifice. ¬†Understand that some weeks or months are harder than others there is a ¬†flow to a career which isn‚Äôt linear if you aren‚Äôt moving or learning you ¬†are dying.

A ¬†reckless individual will cost more then their compensation, even in a ¬†company with consistent cash flow the cost on the lives of those around ¬†them will be impacted ‚ÄĒ this could be invisible and unnoticed.

It  isn’t about pay, it isn’t about being the most productive in a given  team, it is about being responsible, learning from your mistakes and  being consistent.

On Mentoring

A senior developer is a professional, they get the work done every single day and they commit to guide and mentor junior staff.

On  an opposite end of the spectrum a junior developer such a person is  considered an investment, they are malleable, passionate and want to  prove themselves to those around them.

The ¬†overriding price of a junior will be increased by the decreased ¬†productivity of the contributors around them mentoring them ‚ÄĒ an ¬†invisible but real cost.

This is why more developers with real work experience or even code bootcamps are more attractive to employers.

The days are dead of a commercial-less graduate having doors opened for them.

Such roles have become a ridiculous lottery.

Photo by Joshua Ness on Unsplash

New Talent

On average the software development workforce doubles every 5 years, this means that at any one time at least half of the professional developer population have less than 5 years experience.

Therefore ¬†there is an inbuilt knowledge gap in the system ‚ÄĒ by an exponential ¬†decrease in contributors with double the amount of experience.

  • How long can this be sustainable?
  • How long can this scale?
  • When will the moment of critical mass occurs when the knowledge gap is too large?

Especially  when the demand of technical jobs is scaling on an unprecedented level,  there are more jobs then seemingly qualified individuals to fit.

The  need for senior developers will continue to rise to teach the new  generations. More specifically I predict there is going to be an  increased need for individuals that have that focus on training up  talent to be effective but in a compressed period of time.

One of my old clients told me something that has always stuck in my brain.

‚ÄúDon‚Äôt assume that as a CTO or as a Senior member that I will always make the correct choice.‚ÄĚ

Photo by FuYong Hua on Unsplash

In  one of my roles I was given the opportunity to review code for a number  of prospective candidates. This was one of the most professionally  enlightening experiences I have ever had, we have all been in that  position at one time or another.

Code  reviews for new candidates are not about code quality it is about  structure coupled with an underlying approach. Ensuring that a given  candidate is capable to follow a pattern, curious enough to explore  different methods and has sound logic for the application is key.

Condescending elitism has no place for attracting and retaining talent.

At an early stage of a career cognitive pattern recognition for development approaches, implementation and repetition is key.

Spoon Theory, which is a metaphor tied to disabilities such as Chronic Fatigue Syndrome (CFS) describes an individual has a set number of actions they can take action upon before they are exhausted.

I  firmly believe that for software development the same theory holds true especially for cognitive choices, we only have a set number of choices  in a day to decide how and why our code should act. Hence why pattern  recognition and experience is key, trying to embed the experience into  almost a kind of automated muscle memory.

Experience

Everyone’s  journey is undoubtedly different but months and potentially years can be saved in learning by being correctly taught structure, duplicatable  patterns and a mental framework for learning and digesting these topics.

Especially when delivered by a person that has seen projects succeed and fail, who has experienced good and bad times.

We gain the most knowledge from the bad times.

I’ve been fortunate enough to gain metaphorical battle scars from startup life.

  • I‚Äôve been made redundant multiple times.
  • I‚Äôve had to experience cutting my salary in half in order to keep my job.
  • I‚Äôve had to let go individual contributors which didn‚Äôt hit the mark.
  • In the first year of my career I worked 80‚Äď100 weeks in order to become competent.

Dare ¬†I say it ‚ÄĒ such an individual in the position may only be the only real ¬†way for a developer to enter in to the domain of 10x. Scaling primarily ¬†through the growing of effective talent over the course of a career by ¬†sending ripples of value throughout their wake.

Moving forward

This kind of seniority within software development isn’t about title ego it is about reducing the technical pressure that is placed upon the rest of the team. It is about giving junior members permission to ask for help when they have questions, giving them a path and structure to follow when they make their first steps.

Photo by Dan Meyers on Unsplash

Maybe ¬†I‚Äôm describing what a developer should be, maybe the word Senior is too much of an ego trip ‚ÄĒ maybe a flat-ish team architecture is preferred.

But  playing devil’s advocate if there aren’t targets or a hypothetical path  to follow we will stop growing, moving forward, we will die  professionally.

Is it better to spread all of these responsibilities to all developers and use that to reinforce a strong work culture?

Maybe  as a result of using this approach natural leaders will come out of the woodwork and this force of will ensure that team members will gravitate  toward them.

Perhaps  a hierarchy where junior developers know the right person to speak with  is a good thing or maybe would this would be too much pressure on a  single individual.

Regardless  there is hope, when an organisation is cash flow positive and a given developer’s value is worth more than the the cost then the only business  choice is to retain that asset for as long as humanly possible.

‚ÄĒ -

This ¬†post is probably more for myself then anyone else ‚ÄĒ to be an abstract ¬†vision of the professional I am personally trying to embody. When a bout ¬†of anxiety hits me at five in the morning or I‚Äôm occasionally tormented ¬†by imposter syndrome I can look back, read and remember.

Perhaps there are others out there that are striving to better yourself, I hope this article helps you.

‚ÄĒ -

Matt.