Menu Close

Що таке Senior Developer

The Developer’s Edge: How To Become A Senior Developer in 2024

It’s crazy to think that I wrote the first version of this guide back in 2017 but 7+ years later it has stood the test of time quite well.

Like I do every year, I’ve made a few updates here and there to make sure it’s still my best advice on how to become a Senior Developer in 2024.

This article is for those with a simple desire: You want to be considered a Senior Developer and you want to strive to be one of the best in your field.

The two groups of people who will benefit the most are:

  1. All the developers, software engineers, coders and programmers out there who are looking to upgrade their skills and make a jump in their career after having had a few years in the industry
  2. People still learning to code or junior developers who want to see a clear path of what’s ahead of you if you want have a great career in programming

By the end of reading this, you will have a set path with a list of the skills you need to have and best resources to get them so that you can level up and become a Senior Developer.

Woaa! bold statement. Hope I got you hooked.

Actually. just a quick disclaimer before we dive in:

As with all things in life, you can always set your own path.

Of course, this path I provide you is not meant to be the only way. But it is the method that I have discovered in my own career and through the many conversations and interviews I’ve had with many respected Senior Software Engineers and Developers over the years.

I have assembled all of the commonalities and best practices for you into the steps below.

However. this post isn’t really just an article on how to become a senior developer. It’s a how to guide on optimizing your time with efficient and useful tools so that you get the most out of your life.

That way you can take this sort of learning with you anywhere in the future.

Also, if you’re someone who calls yourself a junior developer, please stop doing that and read this post as well.

Ok, for real this time. Let’s do this!

What Do You Actually Want?

The specific answer you come up with to that question will likely be different from mine or anyone else’s.

However, I’m sure we can agree on a few common things:

  • We don’t want to go through life being seen as ‘incompetent’
  • We want to be respected by our coworkers
  • We want to feel smart and accomplished
  • We want to feel appreciated
  • We want to earn a good living

In order to achieve these, we can’t just rest on our laurels and expect things to come to us. Especially in the world of programming, where the technology is always changing and the amount of information available to us is overwhelming.

We need to focus our attention on growing and learning, without burning out.

With more and more people becoming developers every year and now with the rise of ChatGPT and AI tools, we need to keep our skills sharp to stand out.

The #1 way to set yourself apart is to be smart and efficient with your learning.

So let’s dive into the best approach to make that happen.

What Is A Senior Developer?

No, being a polyglot who can code in 10 different programming languages and have built your own version of Jarvis does not make you a senior developer (although you are very talented).

This is because a senior developer is someone who brings an incremental benefit to the table. A senior developer is someone that:

  1. Makes people around him or her better
  2. Thinks higher-level and is able to have a long-term vision
  3. Is able to communicate clearly and effectively with their teams
  4. Comes to the table with solutions to problems rather than just identifying them
  5. Consistently delivers and produce business value

You can know all the cool functional programming techniques in the world but if you are unable to communicate well with your team or you don’t focus on delivering actual value to a customer, you are not a senior developer.

This is the important point: What value do you bring to your company/startup/business?

If you are one of the few people who can bring an order of magnitude value (some people love the idea of 10x) to your company or business, you are a senior developer.

Senior Developer is not just a job title, but rather, the ability to use your experiences to provide real benefit to the stakeholders.

Got It. So How Do I Become A Senior Developer? What Are The Skills I Need?

This is the section you have been waiting for (or so I am imagining… maybe nobody reads this… in which case I’ll just keep talking to myself).

Follow the resources below and spend some time learning about each topic. If you are able to actively work on the skills below, you will be miles ahead of everybody else and be able to get hired as a Senior Developer.

I call this set of skills, The Developer’s Edge.

There will always be people with more experience than you in a field but you can work smarter and in a more efficient manner to accumulate different combinations of skills to set yourself apart.

This not only makes you a better developer, it also increases your overall happiness because you are providing real value to people.

An often suggested life strategy is that you need to specialize and focus solely on one thing. But that’s not how life works.

It’s very rare in life that you require just one skill.

Especially in a field like technology where things are constantly changing (who knows what Machine Learning Engineers will be doing in 5 years?), you need to have a diverse set of transferable skills that will make you adaptable.

The recent rise in AI tools is a perfect example of this.

These are the 6 core skills you will need to be considered a Senior Developer:

1. Technical Skills

This is usually the first skill that comes to mind for most people and it’s obviously an important piece of the puzzle.

But hopefully by this point though you are convinced that it’s only a small slice of a much larger pie.

Don’t get me wrong, you do need technical skills and you can’t fake it.

However, you can be smart about what you focus on. Senior developers spend time understanding the WHY of a technology.

  • Why does this problem exist?
  • Why does this framework exist?
  • What problem is this library solving?

As a developer, you need to have a good sense of all of the tools and ideas that can benefit the development lifecycle and pick the tools that will have the biggest positive gain on a project.

Instead of focusing on every single new release feature of this super fancy testing framework, they focus on the pros and cons of each testing framework when trying to solve a real problem for their company/client.

They ask questions like ‘What can be improved in our Continuous Delivery process to provide a better product?”

They also understand HOW things are connected.

To get started on thinking like this, mind mapping is a great tool to get familiar with. It’s a tool that can really push your learning to the next level.

This mind map helps your brain make connections between different ideas and technologies.

An example: If I was a JavaScript Developer (which I am, so let’s not play pretend here) this course is a great example of the things you would need to know to connect the dots in the JavaScript environment.

Once you have a good grasp on the tooling and technology in your industry, you need to create a mind map of what problems products face as they scale and when premature optimization is a bad thing.

By having this connection in your head of all of the above, you’re able to focus the resources of your company on the things that matter most by having a broad view instead of a narrow focus.

If you have come out of a coding bootcamp or you don’t have a computer science degree, you need to start learning about data structures, algorithms and other computer science topics.

Because although frameworks and technologies change, the main principles in computer science (mostly) stay the same.

By understanding these higher level topics and fundamentals, you are able to see that most software problems and good practices are generally constant throughout different languages and time.

This book by Rob Conery and this course are probably the best resources I have found to level up your skills in this.

Yihua Zhang also wrote this Computer Science For Beginners guide that you can check out.

Although they only scratch the surface, it will set the foundation for more learning in the future.

Start following newsletters like the Web Developer Monthly, Python Monthly, Machine Learning Monthly so you can stay current on the present issues and future outlook of the whole industry.

Finally, read this great article which goes through some subset skills from a purely technical standpoint.

What specific technical skills should I learn?

If you really just want a shortcut to my suggested list of skills you should learn, then you can [read this post](](/blog/dont-be-a-junior-developer-the-roadmap/) where I’ve provided a detailed list.

2. Team Skills

This is an often overlooked skill.

  • How do you work with team members?
  • Are you brash and opinionated with PR (pull request) reviews and contribute to a toxic culture?
  • Or are you considerate, cooperative and encouraging of your team members?

Senior developers don’t have large egos.

They know they are good and don’t need to prove themselves to others. They write clean, simple code rather than code to try and show off their skills which is unreadable and ultimately detrimental to the other team members and their company.

They are willing to help others and they are willing to ask questions when they don’t know something.

This is where emotional intelligence comes in. Social psychology is an important tool to improve this skill and there is nothing better than the famous book: How to Win Friends and Influence People.

Remember: how can you make those around you better?

If you have 5 people on your team, 1 + 1 + 1 + 1 + 1 should equal greater than 5 because you make those around you better (I’m getting evil eyes from math purists now… I shall move on).

If you are the type of person that any project you get put on, or any team that you are a part of, you are able to get along with your teammates and make others work well together, you’re already miles ahead of most people.

You also make managers, directors, scrum masters, and CTO’s lives easier.

If you do this, you are providing a lot of value to a company and this a sure fire way to get promoted and earn a higher salary.

3. Client/User Skills

Are you able to talk to a client or user and clearly see what their needs are? When they suggest something to you, do you understand what problems they are facing?

A senior developer is somebody that can be left alone with a client and can be a great listener, and then offer advice on what the best steps are to move forward.

They are great at forming relations. They are not a pushover, but they don’t push their opinions on the client.

They understand that the goal is a non zero sum game where both client and developers gain from the interaction.

Have a read through this book to work on this skill.

Finally, you need to be able to explain complex programming concepts to a non-technical person. Start developing this skill by watching great instructors break down complex topics.

Here is my favourite instructor, and my second favourite. Although they are teaching difficult topics, you can observe some commonalities between them that make them both great instructors.

4. Growth Skills

Senior developers are always learning something new each day. That doesn’t mean they spend 14 hours a day sitting in front of a computer reading articles. They are more efficient than that.

They are always looking to speak to other developers, ask questions, or explore new topics.

They don’t focus on just one skill set. You can be the best in the world at making one thing, but if you don’t know the whole spectrum or have a general understanding of what problem you are solving, you are no longer the best.

They have a growth mindset (believe that intelligence is malleable) and they believe in deliberate practice (just click on the link. It’s pure gold).

They understand that learning everything is impossible and they choose to spend their time on things they enjoy and things that matter most.

They don’t just say “Oh I hate this library!”.

Most of the time, people who say these sort of things hate something because they don’t fully understand it.

For example, don’t just say “I hate jQuery. Only bad developers still use jQuery” and sound pompous.

A Senior Developer might say something like “jQuery was instrumental in the development of the web and the popularity of JavaScript but isn’t as useful to my current project”.

They have opinions that can be changed because they enjoy learning from others and they try new concepts before they decide they “hate” something.

5. Sales/Interview Skills

Senior Developers are able to get themselves in senior roles because they are able to communicate and sell themselves to people making those decisions.

You are able to see the needs of your employer or business and you can instil confidence in them that you are the person to solve their problems.

You’re confident but humble.

Senior developers are also confident enough to take on those roles and be able to perform under pressure.

They also know that if you never ask, the answer is always no. So they ask for promotions or roles that challenge them because they believe they are the right person for the job.

Although sales and negotiation may be seen as sleezy to some, it is a valuable skill that you need to acquire.

Ramit Sethi has a great article to get you started.

Although it talks about salary negotiation, some of the principles can be applied to other scenarios.

6. Community Skills

Senior developers contribute to the developer community. Whether it be by doing tech talks, speaking at meet-ups, contributing to open source, or even writing articles.

They are the type of people that share information with the industry. Instead of being in a closed off box of just their working space, they go out and communicate with people in other communities which allows them to broaden their horizons.

I actually just recently released a free mini workshop on How NOT to get replaced by AI.

It answers questions like:

  • Should I learn how to use A.I. tools?
  • Can these AI tools actually help us learn more efficiently?
  • Are we going to be taken over by robots soon?
  • How can we best adapt to this changing environment?
  • How can we stand out and not get replaced?

You’ll notice similar principles in that video as you’re reading about here.

It’s kind of like travelling. The more cultures you explore, the more you understand the similarities and differences between people, and the more you start to appreciate these similarities and differences.

One Final Thing

If you are able to actively work on these six skills, you will set yourself apart immediately.

However, I have left the most important topic out of this list:

You have to enjoy what you are doing.

If you don’t enjoy learning everyday about computer science and software development, it will make it very hard to become a senior developer because you won’t have the drive to continue to improve over the long term.

If you have ever read So Good They Can’t Ignore You then you understand that passion has been over-hyped.

Real passion comes after you have mastered a skill. You have worked hard to become proficient and a leader in a field. You have developed those skills and now the respect and the benefit you provide to others pushes you to become better and better to get more of these good feelings.

That’s how you develop passion for work that you do.

Bonus: Some FAQs

These are some of the common questions I’ve seen other the years so I figured I would put them in their own section.

How long does it take to become a Senior Software Engineer / Developer?

If you’re asking how long does it take to get hired in a role with that title then typically it’ll take 2-5 years depending on a range of factors like:

  • The company you work at
  • How much time outside of work you’re developing these additional skills
  • How much value you’re delivering
  • How strategic and aggressive you are about working towards this goal
  • The market cycle we’re in

If you’re super dedicated and make it very clear to your manager and company you want to become a Senior Developer and ask them what you need to show to get there, they’ll very likely tell you exactly what you need to do. Then you need to go do it.

That said, of course there is no rule about how long it takes to become a Senior Developer.

As I’ve said, you can develop the skills and mindset to become a Senior Developer this year. And some people will never become a senior.

How much does a Senior Developer make?

Typically over $100,000 / year.

But this is another question that’s almost impossible to answer in such a broad way. The main factors that determine the exact amount are typically:

  • Years of experience (or how much value you can show that you’re delivering)
  • Company
  • Geographic location
  • Market cycle

Some Senior Developers make way more money than that, especially at very big companies.

Conclusion

If you’ve learned to code and are looking for the next step in your career, you need to think differently.

  • How are you going to stand out?
  • How are you going to grow?
  • How are you showing that you’re helping solve real problems and providing value?

You become a senior developer not by doing the easy things. It’s by doing the things that push and challenge your mind and comfort level. You learn and you adapt day by day just like you did when you your wrote that first line of code.

Each step will be small, but over days, weeks, and years, small steps turn into miles.

Never stop reading and never stop learning, but also know what’s a valuable use of your time and what isn’t.

Ok, I lied, one last thing…

I’ve created a number of online courses, all of which you can find here.

In my Complete Junior to Senior Web Developer Roadmap Course, I walk you through the entire steps I mentioned above if you want everything in one place, extra help or you just want to support my work.

My courses take me an insane # of hours to make but I’m really proud of them and how many lives they’ve already changed.

If you want to get inspired and fired up, read some of the amazing success stories.

The Complete Web Developer in 2024: Zero to Mastery

Learn to code from scratch and get hired as a Web Developer in 2024. This full-stack coding bootcamp will teach you HTML, CSS, JavaScript, React, Node.js, Machine Learning & more.

The Complete Junior to Senior Web Developer Roadmap (2024)

Go from Junior Developer to Senior Developer. Learn all the technical and non-technical skills you need to become a Senior Web Developer in 2024!

JavaScript: The Advanced Concepts

Learn modern, advanced JavaScript practices to become a top 10% JavaScript Developer. Fun fact: this course is even used as a reference for some FAANG company interview processes.

Що має знати Senior Front-end Developer. Результати аналізу вакансій в Україні та Каліфорнії

Неможливо однаково добре знати всі профільні технології. Ще складніше розібратись, які з непрофільних навичок можуть знадобитись. Чи дійсно ви вкладаєте сили в знання, на які є попит на ринку праці?

Щоб дізнатися, чого очікують роботодавці від Senior Front-end Developer, ми проаналізували 274 вакансії: 152 українські вакансії на DOU станом на 26 червня та 122 каліфорнійські на LinkedIn станом на 25 серпня. У Каліфорнії до дослідження серед інших потрапили вакансії Amazon, Apple, Atlassian, Cisco, Coursera, Hewlett Packard Enterprise, JPMorgan Chase, LG Electronics, Netflix, Siemens, Tesla, Visa, Walmart.

Ми брали всі вакансії, актуальні в конкретний день та опубліковані протягом останнього місяця. Ігнорувалися лише рекрутингові агенції. Щоб не бути Капітаном Очевидність, ми не враховували JavaScript, HTML та CSS. Детальніше про методику можна прочитати в попередніх випусках серії.

Битва фреймворків: React попереду

Більшість вакансій як в Україні, так і в Каліфорнії передбачають знання React. У Каліфорнії це навичка номер один з показником 73% згадок. Усі версії Angular та AngularJS разом узяті в обох локаціях мають приблизно 45%.

Але для прихильників Vue.js є хороша новина: фреймворк має стабільну нішу в вакансій, що співставно з сукупною кількістю вакансій iOS-розробників. З Vue.js ви не пропадете.

Ember.js згадується майже виключно в Каліфорнії.

Сюрпризом стала вкрай низька частка React Native. Але пояснення є: на сьогоднішній день React Native Developer є окремою спеціалізацією.

Англійська дає плюс $9K на рік

В Україні навичкою номер один є англійська мова з показником 61% згадок. Порівняймо компенсацію JavaScript-розробників залежно від рівня англійської згідно з альтернативним зарплатним віджетом.

  • Elementary & Pre-Intermediate — $3797 на місяць після податків (23 анкети);
  • Intermediate — $3635 (112 анкет);
  • Upper-Intermediate — $3915 (147 анкет);
  • Advanced — $4381 (28 анкет).

Найнижчі доходи мають спеціалісти з рівнем англійської Intermediate. Досягнувши рівня Advanced, можна розраховувати на суттєве підвищення доходу: (4381 — 3635) x 12 = $8952 на рік.

Високі доходи людей з англійською нижче Intermediate можна пояснити тим, що лише дуже крутий програміст може вижити в сучасному IT, погано володіючи мовою комунікації з замовником. Скоріше за все, підтягнувши мову до Advanced, ці люди могли б претендувати навіть не на 4381, а відмовлялися б від оферів на 5K 🙂

«Буде плюсом»: найперспективніші навички

Якщо якась навичка часто трапляється у розділі «Would be a plus», це говорить про те, що знайти спеціаліста з такими знаннями складно, але саме такий спеціаліст потрібен на проекті. Настільки потрібен, що компанії готові брати на роботу без цих навичок та вкладати гроші в навчання. Вивчення технологій, які найчастіше трапляються в додаткових побажаннях, є ще одним шляхом до підвищення вашої цінності на ринку праці.

Для Senior Front-end Developer найчастіше в додаткових побажаннях в Україні вказують Node.js (16%), AWS (10%), GraphQL (7%), CI/CD (7%), Webpack (6%), React Native (6%), Docker (6%). У Каліфорнії до них додається Java (9%).

Україна vs Каліфорнія: відмінності

Здебільшого статистика вимог є схожою в Україні та Каліфорнії. І там, і там Redux має близько 30%, Webpack — близько 25% тощо. Але є помітні відмінності.

У Каліфорнії кожна друга вакансія вимагає профільного диплому бакалавра. Для Java-розробника цей показник був ще вищим: майже дві третини. На цьому фоні той факт, що 84% вакансій України не згадують освіту навіть як «буде плюсом», демонструє рівень розчарування в наших університетах.

Ще в Каліфорнії чомусь вдвічі більше цінуються комунікативні навички: ~40% проти ~20% в Україні. Agile та Scrum теж згадуються в Каліфорнії вдвічі частіше, ніж в Україні.

Серед технологій в Каліфорнії помітно більше згадок Babel, jQuery, AJAX, Jasmine, Mocha, Chai, Gulp, Grunt. Частіше потрібно знати back-end: Node.js, NPM, Python та Java.

Цікавинки, знайдені у вакансіях

Каліфорнія

Hewlett-Packard Enterprise шукала Senior UI Developer з 15 роками досвіду.

Компанія Netskope готова взяти на роботу Sr Full Stack UI Developer з дипломом бакалавра психології. А чому б ні?

Компанія Sköna в Сан-Франциско пише: «Weʼre dog friendly — bring along your four legged friend!»

Для компанії TravisMathew Apparel важливо, щоб співробітник по мірі необхідності був на зв’язку вечорами та на вихідних.

Україна

В компанії MOJAM (Харків) для співробітника є можливість отримати фінансування та запустити власний проект всередині компанії. А в компанії BCD TripTech (Київ) на власний проект співробітника виділяється один робочий день на місяць.

В Delphi Software (Київ) відкрита вакансія, що передбачає опціони на акції клієнта: австралійського стартапу Vervoe, що працює зі штучним інтелектом.

Працівники компанії SMARTCRAFT (Одеса) можуть взяти week off for parent’s needs в додаток до 4 тижнів відпустки. Робота без овертаймів. А ось в офісах Intellias у Києві та Львові є дитячі кімнати з професійним baby-sitter.

Компанія Shopmonkey Inc (Київ) пропонує компенсацію до 5000. Можливе віддалене співробітництво. Компанія Edgica (Київ) теж пропонує до 5000, відрядження до європейських країн та роботу в демократичній команді без бюрократії.

Для тих, хто любить подорожувати. Компанія X1 Group відправлятиме у регулярні відрядження з Харкова до Берліну. Вакансія компанії Youwe (Київ) передбачає відрядження до Нідерландів. А в компанії Corva . AI (Київ) є можливість відвідати США.

В компанії Xenoss (Харків) не обмежується робота з дому. Натомість компанія Pharos Production Inc (Київ) пропонує крісло, комфортне для спини, та кальян на кухні.

Для продуктової компанії Poster (Дніпро) буде плюсом участь в олімпіадному програмуванні.

Компанія Soft2bet (Київ) пропонує офіційне працевлаштування згідно з Трудовим кодексом України. Буде плюсом досвід з TDD.

Думки технічних експертів

Андрій Кобилін, Senior Front-end Developer в Beetroot

В первую очередь важно уметь писать качественный, легко читаемый и предсказуемый код. Нужно уметь разбивать функциональность на компоненты и комбинировать их в другие, более сложные компоненты. Очень полезно будет освоить функциональное программирование на JavaScript. Оно сейчас в тренде, так как такой код более прогнозируемый и простой в понимании. Рекомендую почитать книгу Composing Software Эрика Эллиотта (Eric Elliott) по этой теме. Также полезно будет почитать про паттерны программирования Learning JavaScript Design Patterns Эдди Османи (Addy Osmani).

Senior Front-end разработчики должны оценивать свой продукт с точки зрения UX/UI. Поэтому также стоить почитать хотя бы базовые книги по UI/UX, чтобы понимать, как сочетать цвета, группировать элементы и т.д. Советую почитать Don’t Make Me Think Стива Крюга (Steve Krug).

Конечно же, как и любые другие Senior разработчики, Senior Front-end девелоперы обязаны вникать в проект, понимать, кто является конечным потребителем, для чего внедряется та или иная фича/возможность и какова ее бизнес-ценность. Для этого нужно ориентироваться в предметной области. Если занимаешься приложением для физиотерапевта, то нужно понимать процесс диагностирования и лечения, а если делаешь программу для продажи ж/д билетов — разбираться в классификации поездов, составлении расписания и маршрутов.

Клиент всегда будет ожидать от опытного разработчика инициативности и регулярного общения. Поэтому задавайте вопросы, комментируйте, проактивно предлагайте решения сложных проблем, о которых заказчик может и не подозревать, потому что они не лежат на поверхности. Например таких, как улучшение безопасности, производительности, обновления до последних версий библиотек и т.д.

В первую очередь важно уметь писать качественный, легко читаемый и предсказуемый код. Нужно уметь разбивать функциональность на компоненты и комбинировать их в другие, более сложные компоненты. Очень полезно будет освоить функциональное программирование на JavaScript. Оно сейчас в тренде, так как такой код более прогнозируемый и простой в понимании. Рекомендую почитать книгу Composing Software Эрика Эллиотта (Eric Elliott) по этой теме. Также полезно будет почитать про паттерны программирования Learning JavaScript Design Patterns Эдди Османи (Addy Osmani).

Senior Front-end разработчики должны оценивать свой продукт с точки зрения UX/UI. Поэтому также стоить почитать хотя бы базовые книги по UI/UX, чтобы понимать, как сочетать цвета, группировать элементы и т.д. Советую почитать Don’t Make Me Think Стива Крюга (Steve Krug).

Конечно же, как и любые другие Senior разработчики, Senior Front-end девелоперы обязаны вникать в проект, понимать, кто является конечным потребителем, для чего внедряется та или иная фича/возможность и какова ее бизнес-ценность. Для этого нужно ориентироваться в предметной области. Если занимаешься приложением для физиотерапевта, то нужно понимать процесс диагностирования и лечения, а если делаешь программу для продажи ж/д билетов — разбираться в классификации поездов, составлении расписания и маршрутов.

Клиент всегда будет ожидать от опытного разработчика инициативности и регулярного общения. Поэтому задавайте вопросы, комментируйте, проактивно предлагайте решения сложных проблем, о которых заказчик может и не подозревать, потому что они не лежат на поверхности. Например таких, как улучшение безопасности, производительности, обновления до последних версий библиотек и т.д.

Alejandro Del Rio, Lead Software Engineer в Symphony Solutions

  • розуміти, як JavaScript виконується, що таке frame stack & call stack;
  • розуміти різницю values types і reference types;
  • знати, що таке functional scope, block scope, lexical scope;
  • розуміння, як працює setTimeout, setInterval, requestAnimationFrame;
  • вміння застосовувати OOP та Design patterns;
  • розуміння і застосування lambda function (map, reduce, etc), Closure, Hoisting, Curring.