Сколько времени работать на одном проекте?

Как часто стоит менять проекты? Какой период времени смены работы можно считать некой нормой? На эти рассуждения меня натолкнуло обуждение в одном из чатов разработчиков. Вопрос действительно интересный. Disclaimer Все данные в статье являются моими личными оценками и не являются истиной в последней инстанции. Смена проетка - не всегда смена работодателя. А иногда даже и новая роль на том же проекте. TL;DR: Адекватные сроки: Грейд/роль Срок Джун 0.5 - 1 год Миддл 1 - 2 года Сеньор / лид 2 - 3 года Тимлид 2+ лет ПМ 2+ лет Но это не точно. ...

October 11, 2022 · 7 min · Maxim Gorbatyuk

Почему открытые зарплатные вилки – это хорошо

Открытые зарплатные вилки – это когда каждый миддл знает, сколько зарабатывают миддлы и другие грейды в той компании, где он работает. Условно говоря, получает специалист 1500$, но он знает, что вилка его уровня составляет от 1200$ до 2000$. Но просто взять и рассказать всем про деньги, которые они могут получать, нельзя. Мало знать возможности, нужно еще и понимать, как достигнуть ее. Для того, чтобы работники знали путь достижения нового грейда, компании нужно привести в порядок бизнес-процессы. ...

June 6, 2022 · 5 min · Maxim Gorbatyuk

Что такое хорошо и что такое плохо. Как не превратить собеседование в кошмар

Каждый из нас так или иначе сталкивается с техническими собеседованиями: кто-то их проходит, а кто-то - проводит. И каждый вспомнит удачные и неудачные примеры из своего опыта. Чтобы интервью прошло с пользой для всех его участников, стоит придерживаться набора шаблонов и паттернов. Тогда разговор не пойдет на самотек и собеседование будет успешным. В статье я расскажу о том, что стоит делать интервьюеру и чего делать не стоит ни в коем случае. ...

May 27, 2022 · 8 min · Maxim Gorbatyuk

Conflicts lead to high-quality products

Russian version of this post Only conflicts of interest lead projects to make progress. The project may be any: it-product, building houses, or society and state regime. In systems where its elements keep being static, life stops. Everyone is satisfied with everything he has at the moment. First of all, I should declare what is “conflict of interests”. A conflict of interest is a dispute where the interests of two or more stand against each other to reach one common cause. Meanwhile, people do not get personal about those conflicts. They know that the dispute is needed to find the right ways and approaches. ...

May 9, 2022 · 5 min · Maxim Gorbatyuk

Конфликт в проекте – качественный продукт

English version of this post Только здоровый конфликт ведет к развитию системы, будь то айти-проект, строительство дома или устройство государства и общества. В системе, где элементы находятся в состоянии спокойствия, движение останавливается. Все довольны всем, что имеют на данный момент. Для начала стоит прояснить, что такое “здоровый конфликт”. Здоровый конфликт (далее “конфликт”) - это противостояние двух противоположных интересов для достижения результата между ними где-то посередине, и при этом участники конфликта не переходят в прямую конфротацию. Люди понимают, что конфликт нужен для достижения результата и не переходят на личности. ...

May 8, 2022 · 4 min · Maxim Gorbatyuk

Не спрашивай на собеседовании “Ну как, я подхожу?”

Я проводил технические собеседования во всех компаниях, где работал. Чаще всего это были собеседования, где я должен был сделать срез знаний специалиста, чтобы решение о найме принимал менеджер. Также проводил собеседования, где сам решал, продолжать ли процесс найма сотрудника. И я заметил, что иногда начинающие разработчики задают в конце интервью вопрос “Ну, как вам?” или “как я прошел собес?” На мой взгляд, этот вопрос бессмысленный. Во-первых, навряд ли интервьюер ответит честно. Я сам отвечаю на этот вопрос обтекаемыми общими фразами и стараюсь избегать однозначного ответа. Например, я чаще всего отвечаю так: “Есть хороший опыт в N и X и при этом есть пробелы в M и Y. Я оформлю финальный фидбек в ближайшие пару дней”. Очень корпоративные фразы, которые ничего конкретно не говорят, однако иначе можно сказать лишнего. Если я отвечу однозначно “да, мне собес понравился, ты подходишь”, а менеджер откажется от найма в пользу другого разработчика, то у моего кандидата останется неприятный осадок. В случае, если я скажу: “есть пробелы тут и тут и тут, а по требованиям вакансии они обязательны”, то у кандидата будет осадок уже сразу после собеседования. ...

February 20, 2022 · 2 min · Maxim Gorbatyuk

О двух интервью, которые стали для меня примером

Мне нравится проводить и проходить собеседования. Это прекрасная возможность познакомиться не только с новыми людьми, но и с другими подходами к работе. Какие-то подслушанные практики я применял у себя в проектах, каким-то находил очередное подтверждение, почему они не работают. Как интервьюер, я стараюсь сделать собеседование максимально полезным для кандидата. Во-первых, у него не останется чувство, что он отдал энергию впустую. Во вторых, даже если сейчас мы не договоримся, то впечатление о компании и людях у кандидата останется положительным. Такому подходу я следую всю свою карьеру, и я четко помню, почему я стал делать именно так. ...

January 29, 2022 · 3 min · Maxim Gorbatyuk

Как создавать эффективные баг-репорты

Хороший баг-репорт – понятный, прозрачный, содержит в себе все, что потребуется для решения проблемы в проекте. Написать такой нетрудно. При составлении важно выложить всю необходимую информацию из своей головы в тикет в Jira, и тогда вопросы разработчики не будут спрашивать “очевидные вещи”. Баг-репорты составлять — тоже навык, который нужно развивать. Уметь донести свою мысль до другого человека - полезный навык не только для тестировщиков, но и разработчиков тоже. Проектные менеджеры — разработчикам, фронтендеры — бэкендерам, тестировщики — всем. Если junior-разработчик хочет перейти на следующую ступень карьеры, то он ему пригодится этот навык. Для сеньоров он must-have. ...

December 28, 2021 · 3 min · Maxim Gorbatyuk

How to integrate Identity Server into your web application

Let’s imagine you have a web application built as a monolith and you want to introduce microservices. Or you may have several clients connected to your backend solution: mobile app, SPA, devices, etc. One of the first tasks that you have to solve is integrating authentication and authorization. In my opinion, one of the simplest ways is integrating SSO (Single-Sign-On system) into your application. There is an open-source ready-to-use product IdentityServer4 which implements OpenID Connect and OAuth2.0 frameworks. The solution is built using .NET core 3.1 and is easy to modify according to your business rules. Also, it is an out-of-box solution ready to deploy. Therefore, you don’t have to develop and set up a custom authentication system. ...

December 26, 2021 · 3 min · Maxim Gorbatyuk

Do not forget about Async postfix

There is a recommendation: to write a postfix “…Async” at the end of async methods in .NET. I always follow this rule, and also I recommend everyone to do this as well as I do. In this article, I want to share my thoughts on why this is an important rule when you deal with asynchronous programming. You can call the async method without await and it will not throw any error In my opinion, it is a problem that .NET allows us to call an asynchronous method without the await keyword and without awaiting a result as well. and no compile error will be thrown. Also, a runtime error will not be thrown as well. Therefore, you should mark async methods with “…Async” postfix to help yourself and your teammates not miss possible errors in the production. ...

December 12, 2021 · 2 min · Maxim Gorbatyuk