1

Falsehoods Junior Developers believe about becoming Senior

 6 months ago
source link: https://vadimkravcenko.com/shorts/falsehoods-junior-developers-believe-about-becoming-senior/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

Falsehoods Junior Developers believe about becoming Senior

20 February 2024 · 58,249 views · Updated 22 February 2024

These are mostly my thoughts about what I was expecting as a junior and how I perceived senior developers. To be honest, I was romanticizing them quite a bit — senior developers were the people who could solve all the problems, constantly told me what to do, and knew all the answers. It's easy to fall prey to the fantasy that climbing the ranks will somehow bestow upon us a magical cloak of knowledge, authority, and ease.

I remember this one time before I was proficient in using the terminal. I had some issues with my Linux distribution. Something was not mounted properly or some file permissions errors, and I couldn’t figure it out on my own, so I asked one of the senior devs for help. The grace and elegance of how they navigated Vim and jumped around with shortcuts was inspiring — it stayed in my memory forever. I also aspired to be like them — fast, efficient, know-it-all coding gurus. The reality is much more grounded and, in its way, more rewarding.

image-2-1024x1002.png
Sometimes the senior devs are also just winging it.

The truth is that advancing your career is less about learning the terminal and more about embracing a new set of complex, nuanced responsibilities. Yes, you will get proficient in using the terminal. But you will also, in general, get better at solving simple problems, but those are not the problems you will be dealing with. To put it simply — The complexity of the issues will grow with your skill.

Before we start, this essay is not meant to discourage you but to prepare you for the reality ahead — Senior developers are not all-knowing 10x coders who can make unicorns out of thin air. So, let’s go through some of the Falsehoods that Juniors believe about Senior Developers.

Having all the answers

❌ Expectation: I will be able to solve all the bugs and know what's wrong in a matter of minutes.
✅ Reality: The more I learn, the more I realize how little I know. Let's figure this out together.

The belief that reaching a senior level means having all the answers is not just a misconception; it's a misrepresentation of what it truly means to grow and succeed in the tech industry. So many new algorithms, new technologies, and new frameworks are being released daily — saying that you, as a senior, have all the answers is destructive to your growth.

Your expertise isn't measured by the knowledge you possess but by your ability to:

  1. work with uncertainty
  2. ask the right questions to get to where you need to be in terms of understanding
  3. knowing how to find a solution once you have the understanding

It’s fine to say, “I don’t know,” or “I did not understand that completely; let’s discuss this in more depth.” Technology is a vast, ever-expanding universe. Your job is to solve problems, not to be a know-it-all. As a senior, you're more of an amateur guide who knows how to get from point A to point B rather than an all-knowing guru who has memorized all the world’s capitals.

Working with latest tech

❌ Expectation: As a senior, I'll get to play with the latest tech and build amazing projects!
✅ Reality: This legacy code isn't going anywhere, and neither am I. Let's fix some bug that happens once every full moon.

Many junior developers dream of working exclusively with the latest frameworks and tools. However, a senior developer's role often involves maintaining and improving legacy systems. These systems carry the weight of years of business logic, customer data, and operational insights. As a senior developer, you'll find that a significant part of your role involves understanding these systems, figuring out why they’re breaking, and optimizing them to meet current and future demands. While also making sure not to break anything yourself.

Yes, it’s not as fun as it sounds, but that’s the reality — most of the software nowadays are legacy applications that require refactoring (which won’t be approved any time soon) so you'll have to patch it up and work with what you have.

No more boring tasks

❌ Expectation: Being senior means I can avoid all the boring tasks.
✅ Reality: Endless meetings, documentation, and code reviews… Oh, and did I mention debugging legacy systems on Friday at 6 PM?

If only! If you’re expecting that once you’ve risen the ladder, you’ll be solving exciting problems left and right and not dealing with bureaucracy, I will have to disappoint you. The senior role comes with its share of seemingly mundane yet essential tasks: endless meetings, meticulous documentation, thorough code reviews, and, yes, debugging legacy systems at the most inconvenient times.

You might think ewww, meetings, documentation, code reviews. But once you reach the senior level, you will have a love-hate relationship with them. On the one hand, you will be annoyed that there’s little documentation; on the other hand, you will be sure the project is maintainable even after five years. Meetings will annoy you because they take so much time, but they make you happy because everyone is aligned and doing what’s needed. Code Reviews will annoy you because people will try to merge weird things that you need to improve, but you will be happy that your team is getting better based on your feedback.

In embracing the full spectrum of your role — including the boring parts — you'll find that this can become the most fulfilling part of your work, filled with opportunities for impact and growth.

Making big changes

❌ Expectation: Has a million ideas on how to change this company 180 degrees! Let’s improve everything!
✅ Reality: Knows that nothing will change without management approval and the necessary budget.

It's a common sentiment among junior developers to look at the systems, processes, and technologies around them and see endless opportunities for improvement. I was like that as well. I remember joining a company, taking a look at how they do things, thinking I knew better, and starting shooting suggestions left and right. When you’re young, you’re a hammer, and everything looks like a nail. This zeal is not only admirable but necessary for the evolution and growth of our industry. This way, you get to make tons of mistakes that will make you understand that not everything is a nail, and a hammer is not the only tool you should have.

Learn to communicate the value of your ideas in terms that resonate with relevant stakeholders, figure out how the budget is allocated, and take part in resource planning. The bigger the project, the harder it will be to jump through all the hoops, but well worth it.

As you grow in your expertise, you see that bringing change requires time — building a case for your idea that resonates not just on a technical level but also aligns with organizational goals, budgetary limitations, and risk management considerations.

Building things is just fun; building things that bring benefit to the company is fun and rewarding.

Time to relax

❌ Expectation: Once I become a senior, I will have more time to relax.
✅ Reality:  It’s fine, I’ll finish the work on Saturday.
❌ Expectation:  I'll make sure to have a perfect work-life balance once I'm senior.
✅ Reality: Balancing deadlines, mentoring, and personal life is like juggling knives. Occasionally, one does get dropped.

The workload doesn't necessarily decrease; it evolves. You might find yourself dedicating weekends to wrapping up projects or tackling unexpected issues. Your responsibilities extend beyond coding and technical tasks to include mentoring, strategic planning, and, often, greater involvement in the operational aspects of projects. You become more accountable and receive a higher salary for your commitment — junior developers don’t really care if their task is blocking ten other people and project delivery — but you do. These responsibilities mean that your work can extend into the evenings or weekends, especially when deadlines loom or unforeseen issues arise.

The expectation of having more time to relax as a senior is, in many ways, a misunderstanding of the nature of senior roles. While you do gain more autonomy over your schedule and the types of projects you work on, this autonomy comes with the responsibility to manage and deliver on multiple fronts, often requiring a juggling act between professional obligations and personal life.

I encourage you to develop strategies that support a sustainable balance between work and life. This might involve honing your time management skills or learning to delegate more effectively. It also means making a conscious effort to prioritize your health and personal relationships rather than a higher salary.

Deciding what to do

❌ Expectation: Once I become a senior, I will lead big projects, have a big impact, and tell others what to do!
✅ Reality: I miss the times when people told me what to do.

There's a particular expectation I'd like to address today: the notion that rising to a senior position means you'll no longer be involved in hands-on work, focusing instead solely on giving out tasks to other people, mentoring juniors, or focusing purely on architecting. While it's true that senior roles involve a significant amount of meta-work — planning, thinking, making decisions — there’s still a lot of hands-on stuff that needs to be done — fixing legacy code base that only you know how to fix, performing code reviews for the new project, creating diagrams for the management to understand the security of the platform etc.

The more senior you become, the less people will tell you what to do, and the more they expect you to know what needs to be done. You go from dealing with tasks like “Implement quicksort instead of mergesort in function xyz” to “The management has decided to integrate AI in the HR department. How can we make it happen?” Both of those require hands-on work but on a different level.

With great power comes great responsibility — and anxiety. Leading big projects means facing the pressure of making the right decisions and the fear of failure. It's a rewarding challenge, but it can also be a daunting one. Eventually, you might miss the days of focusing solely on coding tasks without the added responsibilities of figuring out the big-picture transitions.

Becoming irreplaceable

❌ Expectation: Once I become senior, they won’t be able to lay me off.
✅ Reality: I hope I won’t be laid off.

It's a comforting thought to believe that seniority equates to job security. However, the reality of our industry, known for its rapid evolution and fluctuating market demands, tells a different story. You might be thinking, “I’m the only one who knows how to fix this legacy system; they wouldn’t dare to let me go,” and then they close down the whole project entirely, making your role redundant.

While senior roles do come with a degree of stability thanks to the experience and expertise required to attain them, the notion that one cannot be laid off is a myth. Companies face various pressures—economic downturns, shifts in strategy, mergers, and acquisitions—all of which can lead to restructuring and, unfortunately, layoffs that affect employees at all levels. Drastic times call for drastic measures, a.k.a “investors are expecting higher margins”.

I think the tech industry is one of the few industries where keeping up with the latest developments is a must. I don’t mean learning every new framework, but at least keeping up with what’s on the market. Embracing the mindset of a lifelong learner and staying adaptable safeguards your career from almost any unforeseen circumstances.

Being the only one in the company who knows some obscure framework that was used ten years ago does not give you a competitive edge during hiring.

That's it, let me know in the comments if you have any more falsehoods you think deserve a mention.

Other Newsletter Issues:

Reactions

Hot! The last couple of years I've been writing about CTO / Tech lead job. I've compiled all my knowledge into a printable PDF. I called it "196 Pages of No Bullshit Guide for CTOs". So if you're interested, take a look.

New! If you're a software engineer looking for a job, I started a Roast my Resume service, where I record a personalized video of me "roasting" your CV, which basically means taking a hard look at your resume as a CTO and commenting on all the good and the bad parts.


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK