I've been programming full time for the past 5 years. Am I a senior engineer yet?

When I started my career in software, I’ve always wondered when I would finally be a “senior” engineer.

Is it a matter of years of experience? Does it just happen suddenly? After a few years on the job, I can tell that the answer is not so straightforward.

/google_engineer.gif
a senior engineer from google

A little background about me

I’m a self-taught programmer, and never had formal education in Computer Science or anything like that.

After getting my high school diploma, I jumped straight into more of a Linux/Windows systems administrator role, which I’ve stuck with for a really long time.

I didn’t begin my software career until I was 35 years old, and all of my knowledge came from experience building and breaking things, reading books, taking courses, and working with some really amazing mentors.

In 2019, I wrote an article about the things I learned in my first year as a software engineer.

Since then, I’ve worked in various roles as a consultant and full-time employee. Some titles I’ve been given include “DevOps Engineer”, “Site Reliability Engineer”, and “Backend Developer”.

Along the way, I noticed that the “Junior” part of my job title gradually disappeared, and my salary increased accordingly.

But does that make me a senior engineer after just five years?

The answer for me is both yes and no 😅

Yes

I currently hold a “Senior Software Engineer” position at a marketing company in Europe.

This title is clearly stated in my work contract, and my responsibilities include training and mentoring my colleagues, participating in software and infrastructure architecture discussions with stakeholders and managers, and contributing to the codebase and operational management of around 20 in-house applications.

My colleagues seek guidance from me, my managers and mentors are happy with my input, and I am expected to make significant contributions and drive decisions. That means yes, right?

No

On the other hand, being a senior engineer requires more than just a job title or a certain number of years of experience.

It’s more about having a deep understanding of the technology stack, making informed decisions, and being a mentor to others.

Despite my title, salary, and responsibilities, I still don’t quite feel like a senior engineer.

Imposter syndrome is a constant battle for me, and I often second-guess myself when faced with challenging tasks.

Coping with imposter syndrome is challenging, but I am fortunate to have a supportive community of engineers at work and mentors outside of work who I admire and learn from.

I used to really believe that imposter syndrome would eventually fade, but I now accept that it may be a daily struggle. Infact, a senior co-worker and friend of mine, who has been programming for over 25 years, shared with me that they still experience it from time to time.

Despite my occasional self-doubt, I am still trusted to solve complex problems and mentor others.

/imposter_syndrome.png
how I feel all the time

So which one is it?

In short, while I feel like a senior engineer on some days, there are many times when I feel like a junior, still cutting my teeth and struggling with the smallest of issues.

But you know what? That’s ok. 😃

It’s part of the process, and I have learned to more or less accept it.

Some advice I would give to my junior self if I could

Never stop learning

As a junior engineer, it’s important to be curious and always seek out new knowledge. This means staying up-to-date with the latest technologies, frameworks, and best practices in your field. Attend conferences, read blogs, and participate in online forums to keep your knowledge fresh and expand your skillset.

Ask stupid questions

Don’t be afraid to ask questions, even if they seem silly or basic. Asking questions is a great way to learn and clarify your understanding of a topic. Your team members are there to support you, and they will likely be happy to answer your questions.

Get excellent at using your tools

The tools you use as an engineer are critical to your success, so it’s important to become proficient in using them. Whether it’s an IDE, a version control system, a cloud platform, or a cli application, take the time to learn how to use them effectively. This will help you be more productive and efficient in your everyday work.

Fail fast and don’t be afraid to make mistakes

As a junior engineer, you are bound to make mistakes. As a matter of fact, mistakes will be made as a senior engineer too.

Don’t let the fear of failure hold you back from taking risks and trying new things.

Embrace failure as a learning opportunity and use it to improve your skills and knowledge.

Have fun & play

Engineering is a challenging and rewarding field, but it’s also important to have fun and enjoy your work.

Take the time to experiment, play around with new technologies, and work on personal projects that interest you.

This will help in staying motivated and inspired in your work.

TL;DR

I’m hoping this post will help some of the newer engineers out there to have a little peek of what’s to come.

Being a senior engineer is not just about a job title or number of years of experience.

It’s about constantly learning, growing, and helping others along the way.