Who is a senior software developer? A developer who has over seven years of experience. I think this is not quite encompassing. I think it is a developer who possesses a certain state of mind. So a developer with six months' experience can be senior (theoretically) if they have that state. But this state is usually acquired through knowledge and experience, over time. This state comes with some responsibilities (or burdens).
Any enterprise that is worth something is then worth doing well. And how do we do things right? By ensuring that what we do does not 'collapse' or is not done messily. In the field of software engineering, the fear of not incurring technical debt, and the ability to prevent such debt, is the state of being a senior engineer.
With the burden of a technical sort also comes an emotional one. In fact, the latter drives the acquisition of the former. And it is this emotional burden that I want to talk about.
I started out programming as an independent contractor in my home country of Nigeria. I specialized in Java applications. I was self-taught and happened (fortunately) to start out on high-level projects. Having been brought in on a referral, I quickly acquired a senior developer image before my clients (they were mostly international nonprofits), although I was new. I was stretched by these projects to research software engineering best practices (not because I was required to do so by my clients, but for fear of mediocrity). So I had an accelerated path.
Will I apply for a senior position? By the way, I have seven years under my belt. And yes, I might land the job. But I will have holes in my skills. Now I would be working with people. Perhaps I would need some training.
I will be applying for a technical leadership program offered by the company, as a developer. I have the need (fear) to be competent if I would bear the title senior. When I have completed my training I would apply for a promotion.
Being a true senior developer comes with a huge emotional burden. You have the need for technical competence. You will not rest until you have the right (optimal?) architecture. You must learn and acquire knowledge. It is language-agnostic. You know when a solution or code doesn't look right. You know (or are able to know) how to fix it. And you have the nightmare of living with bad code. If this does not happen to you, perhaps you are not yet senior.
Kindly 'like' this article if you like it.