Що має знати Senior .NET Developer. Аналіз вакансій на DOU
Дивимося на вимоги до Senior .NET Developer. Загалом можна сказати, що є стандартний стек .NET-розробника, і я хотів зрозуміти, які навички потрібно опанувати поза ним. Для цього я проаналізував 50 вакансій Senior .NET Developer, опублікованих на DOU в серпні цього року, та звернувся до експертів провідних компаній.
Це восьма стаття серії «Що має знати Senior». Вона має на меті допомогти Middle-розробникам перейти на наступний щабель кар’єри.
У тексті будуть згадуватися найбільш незвичні або, навпаки, типові вакансії. Хочу зауважити, що проєкт «Що має знати Senior» є суто журналістським, ми не рекламуємо жодні позиції, але розповідаємо читачеві про те, що здалося цікавим.
Для зручності сприйняття всі дані показано у відсотках.
Вакансії яких компаній потрапили в дослідження?
AgileEngine, AllSTARIT, Altium, Artelogic, BETER, Ciklum, Codeminders, Daxx, Devox Software, DraftKings, Edvantis, ELEKS, ELITEX, EPAM, EVOLVE, Faria, GlobalLogic, Grammarly, iLogos, Infopulse, Intellias, ISRAEL IT, Jabil, KitRUM, Leobit, Levi9, Lobby X, LogiqApps, Lohika, Luxoft, Materialise, Maxitech, NIX, N-iX, Onseo, Renta, Serious Software, Sigma, SimCorp, SoftServe, Softwarium, Svitla Systems, TageSpot, TATEEDA, Tech Fabric, TELLURION MOBILE, Trinetix, Videal, Wirex, ZONE3000.
Інфляція тайтлів. Три роки досвіду — перепустка в сеньйори
Стати Senior-розробником можна вже з трьома роками досвіду. 28% вакансій запрошують людей з досвідом менше ніж 4 роки. А Tech Fabric готова взяти на посаду Senior спеціаліста, який у сфері два роки.
У
Діліться в коментарях, скільки років досвіду мали ви, коли стали Senior.
Профільна освіта сеньйору не потрібна
84% вакансій не згадують вищу освіту навіть як побажання.
Посередньої англійської буде достатньо
Рівня Intermediate вже може бути достатньо, щоб стати Senior, але краще мати Upper-Intermediate. Про Advanced не йшлося у жодній вакансії. Фактично якщо у вас Advanced, то ви overqualified для Senior-ролі в Україні.
За доброю традицією цієї серії статей я заглянув в альтернативний зарплатний віджет для того, щоб з’ясувати зарплати Senior .NET Developer залежно від рівня англійської. Дані за червень
- Pre-Intermediate. 13 анкет. 3604 долари на місяць після податків.
- Intermediate. 92 анкети. 3893 долари.
- Upper-Intermediate. 201 анкета. 4029 доларів.
- Advanced. 38 анкет. 4449 доларів.
Отже, закономірність незмінна: інвестиції в англійську окуповуються. Якщо прокачатися з Intermediate до Advanced, можна сподіватися на зростання доходів на (4449 — 3893) x 12 = 6672 долари на рік. А якщо врахувати, що Advanced відкриває дорогу до посад вище Senior, стрибок у зарплатах може бути ще більшим.
Computer Science. Алгоритми не потрібні
Попри те, що вимог до рівня освіти не висувають, роботодавці цінують знання Computer Science. У 34% вакансій згадано об’єктноорієнтоване програмування, у 28% вакансій — патерни проєктування.
А от алгоритми виявилися недооціненими. У 90% вакансій Senior .NET Developer не вказують знання алгоритмів навіть як побажання.
Можна зробити висновок, що якщо ви маєте профільну вищу освіту, володієте англійською на рівні Advanced, ще й знаєте алгоритми, то ви overqualified й можете претендувати на вищу посаду в українському ІТ.
.NET-стек
Знання технологій .NET-стеку є обов’язковими для Senior .NET Developer, що очевидно, але про всяк випадок багато роботодавців уточнюють, що саме їм потрібно. Деякі навіть зауважують, що треба розуміти C#, але підрахунком згадок C# я не займався. Упевнений, що не може бути Senior .NET Developer без блискучого знання основної профільної мови програмування.
Реляційні бази даних
Microsoft SQL Server є частиною базового стеку .NET-розробника. Серед інших баз даних найпопулярнішою є MySQL.
NoSQL
Вивчення Redis і MongoDB має потенціал. По 6% вакансій згадують їхнє знання як необов’язкове, але бажане.
Front-end
Навички фронтенд-розробки виявилися надзвичайно важливими для Senior .NET Developer. У топі запитів — Angular.
Контейнеризація та хмарна інфраструктура
Знання хмарної інфраструктури може стати вашою великою перевагою, адже саме ці навички найчастіше вказані як необов’язкові, але бажані: 10% для Azure та аж 16% для AWS.
Також необов’язкові, але бажані технології контейнеризації: Docker (14%) і Kubernetes (8%).
Unit testing
30% вакансій вимагають від Senior .NET Developer вміння писати юніт-тести. А ви тестуєте свій код? Діліться в коментарях, чи це доцільно і чи завжди це вам вдається.
Інфраструктура
Цікаво, що деякі роботодавці очікують від Senior .NET Developer знання Linux. Але таких дуже мало. А ви використовуєте Linux у роботі?
Проджект-менеджмент
Мало хто потребує, щоб Senior .NET Developer вмів керувати командою, але досвід роботи за гнучкими методологіями розробки має бути.
Інше
Серед інших технологій я б виділив знання C++ як конкурентну перевагу на ринку праці для окремих нішевих вакансій.
Soft skills
Різноманітні soft skills є вимогою у 42% вакансій. Це більше, ніж, наприклад, вимоги знання ASP.NET Web API. Однак кожна компанія по-своєму описує ідеального кандидата. Погляньмо на деякі з формулювань.
«Team player» (Edvantis, Maxitech, ZONE3000).
«Team player that enjoys collaborating with developers and stakeholders» (KitRUM).
«Patience and tolerance, calmness and sense of humor» (Videal).
«Positive and open-minded style of communication» (AgileEngine).
«Well-developed communication skills», «analytical thinking, responsibility, sociability, ability to work in team, attention to details» (Intellias).
«Good communication and collaboration skills» (Lohika).
«Strong written and verbal communication skills» (SoftServe).
«You should be able to collaborate, but also work independently on your own piece of code» (Daxx).
«Great energy and enthusiasm with a positive, collaborative working style, clear communication, and writing skills» (Lobby X).
Буде плюсом
Окремо хотілося б звернути увагу читача на список технологій та знань, які часто є плюсом для кандидата. Це означає, що компанії не завжди можуть знайти спеціаліста з такими навичками, а отже, їхнє опанування може стати козирною картою для отримання заповітного оферу чи підвищення.
Цікавинки, знайдені у вакансіях
Деякі вакансії вже закрилися за час підготовки статті, але я все одно хотів би про них розповісти, щоб показати реалії індустрії.
Softwarium пропонує компенсацію до $6500. Можна працювати як віддалено з будь-якого куточка України, так і з офісу з чудовим краєвидом на Михайлівську площу та Пейзажну алею.
TageSpot пропонує до $6000. У разі досягнення KPI 120%, компенсація буде на 20% більшою. Проєкт з індустрії подорожей.
Lobby X запрошує працювати над американським аудіостримінговим сервісом, що має 75 мільйонів активних користувачів на місяць. Початок робочого дня може бути о
LogiqApps обіцяє роботу тільки із сучасними технологіями: нічого нижче .NET 4.
Luxoft пропонує проєкт з нуля для нафтогазової індустрії.
Lohika запрошує працювати над проєктом у медичній сфері.
Edvantis та Faria дають медичне страхування, яке покриває лікування COVID-19.
Окрім курсів англійської мови, деякі компанії пропонують курси німецької (Artelogic, Edvantis, Intellias).
AllSTARSIT має власного шеф-кухаря та забезпечує безплатні сніданки та обіди.
Videal шукає не просто розробника, а Senior .NET Hero. Потрібно мати три роки досвіду, Intermediate English, досвід рефакторингу та круті м’які навички.
І не обійшлося без хороших жартів. KitRUM шукає розробника, який бачив усі сезони Rick and Morty. Такому спеціалісту обіцяють демократичний стиль менеджменту та дружнє середовище.
Думки технічних експертів
Андрій Литвинов, Sr. Software Engineer/Tech Lead в Synergy Sports, у 2014–2019 роках — автор .NET дайджесту на DOU
Вот несколько пунктов, на которые мы смотрим при поиске Back-end Engineer к себе в команду:
- четкая и лаконичная формулировка мыслей;
- глубокий опыт в нескольких областях, что говорит о том, что кандидат способен докапываться до сути проблемы (будь то техническая проблема или проблема предметной области);
- опыт анализа и решения проблем с производительностью, памятью, анализ crash-а приложения, запущенного удаленно, по причине критической ошибки на Windows серверах или в Docker/Kubernetes;
- хорошее понимание .NET-платформы в целом. Например, мы спросим про ValueTask, для чего ее ввели, какие проблемы решает и какие проблемы может создавать, в каких случаях ее стоит использовать, а в каких нет;
- хорошее понимание принципов разработки распределенных систем, вариантов реализации распределенных транзакций, CAP-теоремы;
- для нас важно, чтобы у кандидата были глубокие знания баз данных, желательно не ограниченное реляционными, опыт оптимизации запросов, анализа Query Plan;
- опыт горизонтального масштабирования систем как на уровне сервисов, так и на уровне хранилища данных;
- понимание и использование Trunk Based Development, Continuous Integration, опыт построения CI/CD pipeline;
- опыт написания быстрых и надежных интеграционных или end-to-end тестов.
Іван Барчук, Senior .NET Developer в Intellias
Бути Senior-розробником — це працювати на повну і вивчати, що робить твій колега поруч.
Junior-розробники витрачають половину свого часу на вивчення функціоналу тої мови та фреймворку, з якими вони працюють. На написання самого коду в них йде лише 50% зусиль.
Якщо ви Middle-розробник, то вчитеся писати код, який зрозуміють інші розробники. На написання коду йде 100% вашої ефективності.
Щоб бути Senior-розробником на будь-якому проєкті та досягати максимальної ефективності, потрібно викладатися на максимум. Найбільше зусиль піде саме на написання коду з усіма тонкощами використання різноманітних функцій чи бібліотек.
10% ви витрачатимете на розуміння:
- роботи команди QA, яка далі тестуватиме цей функціонал;
- команди DevOps, яка розгортатиме код і триматиме його в робочому процесі;
- роботи бізнес-аналітиків, які перекладають побажання клієнта на мову функцій;
- project management команди, яка тримає вас у курсі всіх процесів;
- всіх інших учасників проєкту.
Найкритичніший 1% вашої роботи — це розуміння того, для кого і навіщо ви пишете код.
Senior-розробника визначає глибина занурення в проєкт й розуміння своїх задач і задач людей, які працюють поруч.
Як відбувається промоушен до Senior конкретно в Intellias?
Просування відбувається з ініціативи розробника. Відповідність знань розробника вищій позиції оцінює фахівець на проєкті або експерт Center of Excellence. Процес виглядає як інтерв’ю та охоплює комунікацію з колегами спеціаліста по команді. Створюється PDP (Personal Development Plan), який зазвичай містить практичне завдання. Якщо людина Middle і хоче зрости до Senior — пропонують прикладні завдання, які часто трапляються у житті: створити інтернет-магазин, опитувальник тощо. Бізнес-моделі бувають різними та підбираються за бажанням. Основне, аби спеціаліст розібрався, як створити повноцінний продукт з нуля, реалізував його так, аби він працював. При цьому розробник самостійно ухвалює рішення, які технології застосовувати та обґрунтовує, чому обрав саме їх.
Значну допомогу у професійному розвитку може надати .NET-спільнота, яка є в Intellias. Простір об’єднує однодумців .NET-інженерів компанії для розвитку та прокачування своїх скілів. Це безпечна платформа для обміну ідеями. Тут розробники вільно говорять про помилки, обмінюються досвідом, шукають відповіді на проблемні запитання, з якими стикають у проєктах. Учасники спільноти обговорюють технології, які застосовують на проєктах, тренди тощо.
У наступних випусках ми плануємо аналогічним чином розповісти про процеси промоушену в різних компаніях. Якщо ви хочете взяти участь, напишіть мені приватне повідомлення на DOU.