I have 25 years of experience as a professional developer, and 40 years of experience in total. I have been Head of Development, Project Lead, CTO, Project Manager, Senior Architect, and held every possible role you can imagine over the years. Today I am the CEO of a service provider delivering cloud services to hundreds of software development companies all over the world. I've coached entire departments, held courses, and taught more times than I can count - And I can to teach you the most important thing I know in 5 minutes.
Being a senior software developer is not about what you do or what you know, it's about what you do not do and what you do not care about. You've got it all wrong if you think you need to learn everything. Going from Junior to Senior developer is about what you do not care about.
20 years ago Joel Spolsky wrote an article called Fire and Motion. It's probably still one of the best articles ever written for software developers. Joel is the founder of StackOverflow in case you didn't know. The article gives away the dirty secret of our industry, which is that 98% of everything you've ever learned is basically garbage knowledge. It's garbage because those wanting you to learn it has financial incentives to having you spend time learning it.
If the chief evangelist of some massive GraphQL service provider tries to explains to you how I'm wrong and he is right, ask yourself what his incentives are. If the marketing manager from some NoSQL database vendor tries to tell you I'm crazy, ask yourself who pays his salary.
A senior software developer will use the least amount of force required to solve the problem at hand, period. He doesn't care about NoSQL, Kafka, or GraphQL - He cares only about solving the problem at hand. In fact, most senior software developers I know wouldn't be able to even configure Kafka or GraphQL at gunpoint. This is why most senior developers aren't interested in talking about message brokers, Sagas, OOP, or DDD in their lunch breaks; They simply don't care. Such exercises are for the inexperienced developer. And the more DDD, OOP, OOD and SOLID you can recite by heart, the more likely it is that you'll never become a true senior software developer.
I have created a shortlist of technologies you need to stay away from. You can start reading my list here. Simply reading through these articles will shorten your path to becoming a senior developer by 50%.
Being a senior software developer is not about what you do or know, it's about what you do NOT do and what you do NOT care about
The senior developer prefers not even coding at all in the first place. If he or she can use some tool that results in him or her not needing to create code at all, he or she will use it without even thinking about it. In a way you could argue that being a senior is about being lazy. The senior knows that the more code is being produced, the more future work will be required to keep the project running. The more constructs and ideas is added to the project, the more difficult it will be to hand over the project later. The more design patterns scatters the project, the more energy will be required to maintain it.
A senior software developer is lazy, and that's a GOOD thing!
At Aista we've created a tool for software developers. In a way it's the equivalent of FoxPro or VB6 for the web. It doesn't have Kafka support, and the only NoSQL database it technically supports we ripped out of it months ago. It doesn't allows you to implement long lasting cross micro services transactions using Sagas, and it doesn't even contain OOP constructs or mechanisms. This is its purpose in fact too. Dead simple software making your life easier and more pleasant, resulting in a happier life, more productive work, and better profits for your employer. Because in the end ...
Your employer pays you for solving problems, not because you've got a CV covering everything known to man. If you solve his problem faster and less expensive, he'll promote you to a senior, period!
However, if you spend 3 weeks configuring Kafka or GraphQL, he'll probably fire you. I would know; Been there done that!