Performance review
Это процесс, который компании выставляют как справедливый способ для карьерного роста и распределения благ между сотрудниками. На деле, этот процесс далёк от справедливости и невыгоден сотрудникам по следующим причинам:
1. Система закрыта для сотрудников. Вы не можете посмотреть результаты ревью ваших коллег, вы не можете влиять на итоговую оценку. Нередки ситуации, когда вы получаете большинство положительных отзывов от коллег, но достаточно одного негативного отзыва и руководитель принимает «объективное решение» снизить вам оценку. Иногда достаточно и просто мнения вашего руководителя, чтобы он снизил вам итоговую оценку независимо от положительных отзывов. PR только создаёт видимость коллективной оценки вашего труда, но по факту её результат формируется вашим руководителем, который вынужден преследовать собственный KPI, и у вас нет никаких способов влияния на это.
2. Не существует объективных способов оценки. Процесс, в котором вы рассказываете руководству, что вы сделали за отчётный период, парадоксален. Весь период руководство занималось какими-то своими делами, а теперь вам надо рассказать, что вы сделали ценного для компании. И основная проблема тут — показать видимый для руководства результат работы. Это значит, что ваш коллега, что написал новый сервис с нуля, находится в гораздо более выигрышной ситуации, чем ваши правки легаси сервисов, код которых поддерживается ещё с 1990-х годов. Даже в том случае, если они помогут сохранить бизнесу кучу денег на длинной дистанции. Можно, конечно, предположить, что ваше руководство объективно и достаточно в теме, чтобы понять сложность и необходимость вашей работы с легаси кодом и по достоинству вас оценить. Но тогда зачем такому руководству PR, если оно и так в курсе вашего вклада в общее дело?
3. PR занижает вашу рыночную стоимость. Вот вы хотите увеличить себе зарплату. Компания предлагает решение — для этого надо показать оценку выше средней на следующем PR. Если ваши рабочие задачи к этому располагают, то это может быть неплохим вариантом. Но получить оценку выше средней, как правило, тяжелее, чем оффер в другой компании на ту сумму, что вы хотите. Существуют и политики компании, что вам не могут повысить зарплату выше определённого порога, как, например, в «Озоне». В итоге, если вы выбираете путь PR, вы выполняете больше работы за меньшую оплату. Если вы верите в справедливость PR, то для компаний это очень эффективный инструмент снижения вашей стоимости, а значит, собственных издержек.
4. PR часто используют для обоснования сокращений. Поскольку процесс закрытый, вы вполне можете получать из года в год хорошие оценки, но внезапно получить плохую, потому что компании нужно провести сокращения. Нам известно о таких случаях в «Додо» и «Авито», например. Самое мерзкое в этом то, что компания может не признавать факт сокращений, а все увольнения будет оправдывать неэффективностью увольняемых.
👉 @seniorFront
Это процесс, который компании выставляют как справедливый способ для карьерного роста и распределения благ между сотрудниками. На деле, этот процесс далёк от справедливости и невыгоден сотрудникам по следующим причинам:
1. Система закрыта для сотрудников. Вы не можете посмотреть результаты ревью ваших коллег, вы не можете влиять на итоговую оценку. Нередки ситуации, когда вы получаете большинство положительных отзывов от коллег, но достаточно одного негативного отзыва и руководитель принимает «объективное решение» снизить вам оценку. Иногда достаточно и просто мнения вашего руководителя, чтобы он снизил вам итоговую оценку независимо от положительных отзывов. PR только создаёт видимость коллективной оценки вашего труда, но по факту её результат формируется вашим руководителем, который вынужден преследовать собственный KPI, и у вас нет никаких способов влияния на это.
2. Не существует объективных способов оценки. Процесс, в котором вы рассказываете руководству, что вы сделали за отчётный период, парадоксален. Весь период руководство занималось какими-то своими делами, а теперь вам надо рассказать, что вы сделали ценного для компании. И основная проблема тут — показать видимый для руководства результат работы. Это значит, что ваш коллега, что написал новый сервис с нуля, находится в гораздо более выигрышной ситуации, чем ваши правки легаси сервисов, код которых поддерживается ещё с 1990-х годов. Даже в том случае, если они помогут сохранить бизнесу кучу денег на длинной дистанции. Можно, конечно, предположить, что ваше руководство объективно и достаточно в теме, чтобы понять сложность и необходимость вашей работы с легаси кодом и по достоинству вас оценить. Но тогда зачем такому руководству PR, если оно и так в курсе вашего вклада в общее дело?
3. PR занижает вашу рыночную стоимость. Вот вы хотите увеличить себе зарплату. Компания предлагает решение — для этого надо показать оценку выше средней на следующем PR. Если ваши рабочие задачи к этому располагают, то это может быть неплохим вариантом. Но получить оценку выше средней, как правило, тяжелее, чем оффер в другой компании на ту сумму, что вы хотите. Существуют и политики компании, что вам не могут повысить зарплату выше определённого порога, как, например, в «Озоне». В итоге, если вы выбираете путь PR, вы выполняете больше работы за меньшую оплату. Если вы верите в справедливость PR, то для компаний это очень эффективный инструмент снижения вашей стоимости, а значит, собственных издержек.
4. PR часто используют для обоснования сокращений. Поскольку процесс закрытый, вы вполне можете получать из года в год хорошие оценки, но внезапно получить плохую, потому что компании нужно провести сокращения. Нам известно о таких случаях в «Додо» и «Авито», например. Самое мерзкое в этом то, что компания может не признавать факт сокращений, а все увольнения будет оправдывать неэффективностью увольняемых.
👉 @seniorFront
Как сделать React Server Components в Electron с помощью Next.js и без открытых портов
С появлением React Server Components и Server Actions разработка веб-приложений стала проще, чем когда-либо. Удобно когда у разработчика есть все серверные API прямо внутри веб-приложения, нативно, с типами и полной поддержкой от фреймворка, например Next.js (и других фреймворков, поддерживающих RSC, конечно).
В то же время, Electron является де-факто стандартом для современных настольных приложений, написанных с использованием веб-технологий, особенно когда приложению нужен доступ к файловой системе и другим системным API, и девелопер знает только JS (Tauri заслуживает почётного упоминания, если вы знаете Rust или если вам нужен только простой WebView2 shell).
Я задался вопросом: почему бы не объединить лучшее из обоих миров и не запустить обычное приложение Next.js прямо внутри Electron, чтобы насладиться всеми преимуществами React Server Components?
👉 @seniorFront
С появлением React Server Components и Server Actions разработка веб-приложений стала проще, чем когда-либо. Удобно когда у разработчика есть все серверные API прямо внутри веб-приложения, нативно, с типами и полной поддержкой от фреймворка, например Next.js (и других фреймворков, поддерживающих RSC, конечно).
В то же время, Electron является де-факто стандартом для современных настольных приложений, написанных с использованием веб-технологий, особенно когда приложению нужен доступ к файловой системе и другим системным API, и девелопер знает только JS (Tauri заслуживает почётного упоминания, если вы знаете Rust или если вам нужен только простой WebView2 shell).
Я задался вопросом: почему бы не объединить лучшее из обоих миров и не запустить обычное приложение Next.js прямо внутри Electron, чтобы насладиться всеми преимуществами React Server Components?
👉 @seniorFront
👍3
This media is not supported in your browser
VIEW IN TELEGRAM
Реакция разраба на дизайнера, который презентует концепт сайта с анимациями и эффектами
👉 @seniorFront
👉 @seniorFront
❤37🔥7
This media is not supported in your browser
VIEW IN TELEGRAM
Lightweight Water Distortion Effect
Реализовано на canvas и чистом JS. Можно изменять параметры анимации, а также подгружать свою картинку.
👉 @seniorFront
Реализовано на canvas и чистом JS. Можно изменять параметры анимации, а также подгружать свою картинку.
👉 @seniorFront
👍3🔥2❤1
Какое из следующих утверждений о inline-block элементах неверно?
Anonymous Quiz
16%
Они ведут себя как часть текста, как inline элементы
19%
Они могут содержать другие блочные или инлайн элементы
22%
Они всегда располагаются в одной строке
42%
Они занимают всю доступную ширину, как блочные элементы
👎18🤔7
Media is too big
VIEW IN TELEGRAM
Image Trails Effects
В этом видео создается эффект проявления картинок при движении мыши на чистом CSS.
👉 @seniorFront
В этом видео создается эффект проявления картинок при движении мыши на чистом CSS.
👉 @seniorFront
👍5
Пивомида
Давайте представим, что ваша компания только что наняла вашего друга из колледжа и выплатила вам реферальный бонус. Чтобы отпраздновать это событие, вы ведете свою команду в бар по соседству и используете реферальный бонус, чтобы купить и построить самую большую трехмерную пирамиду из пивных банок, какую только сможете
Пирамида пивных банок возводит в квадрат количество банок на каждом уровне: 1 банка на верхнем уровне, 4 на втором, 9 на следующем, 16, 25...
Завершите функцию beeramid, чтобы получить количество полных уровней пирамиды из пивных банок, которую вы можете построить, учитывая параметры:
ваш реферальный бонус и цена банки пива
Пример:
👉 @seniorFront
Давайте представим, что ваша компания только что наняла вашего друга из колледжа и выплатила вам реферальный бонус. Чтобы отпраздновать это событие, вы ведете свою команду в бар по соседству и используете реферальный бонус, чтобы купить и построить самую большую трехмерную пирамиду из пивных банок, какую только сможете
Пирамида пивных банок возводит в квадрат количество банок на каждом уровне: 1 банка на верхнем уровне, 4 на втором, 9 на следующем, 16, 25...
Завершите функцию beeramid, чтобы получить количество полных уровней пирамиды из пивных банок, которую вы можете построить, учитывая параметры:
ваш реферальный бонус и цена банки пива
Пример:
beeramid(1500, 2); // should === 12
beeramid(5000, 3); // should === 16
👉 @seniorFront
👍3
SOLID на котиках
Каждый программист хоть раз слышал о принципах SOLID. На собеседованиях и экзаменах в вузах многие из нас пытались вспомнить, о чем же был тот самый принцип Лисков. Однако вряд ли цель преподавателей и интервьюеров — заставить нас заучивать строчки из учебников. SOLID действительно помогает писать качественный код, когда во всем разберешься! Если вы этого еще не сделали, добро пожаловать под кат. Еще раз взглянем на то, как устроены всем известные принципы. Обещаю — без духоты, все рассмотрим на примерах с котиками.
👉 @seniorFront
Каждый программист хоть раз слышал о принципах SOLID. На собеседованиях и экзаменах в вузах многие из нас пытались вспомнить, о чем же был тот самый принцип Лисков. Однако вряд ли цель преподавателей и интервьюеров — заставить нас заучивать строчки из учебников. SOLID действительно помогает писать качественный код, когда во всем разберешься! Если вы этого еще не сделали, добро пожаловать под кат. Еще раз взглянем на то, как устроены всем известные принципы. Обещаю — без духоты, все рассмотрим на примерах с котиками.
👉 @seniorFront
👎6❤2👍1
В чём разница между event.preventDefault и event.stopPropagation?
event.preventDefault() и event.stopPropagation() — это два метода, которые используются для управления поведением событий в JavaScript. Они выполняют разные задачи и полезны в различных сценариях.
event.preventDefault()
Предотвращает поведение браузера по умолчанию для события. Это может быть полезно, когда вы хотите отменить действие, которое обычно происходит при определенном событии.
Примеры:
Отмена отправки формы:
Отмена перехода по ссылке:
event.stopPropagation()
Предотвращает дальнейшее распространение события по дереву DOM. Это полезно, когда вы хотите остановить событие от всплытия (bubbling) или захвата (capturing) к родительским элементам.
Примеры:
Остановка всплытия события:
В этом примере клик на
👉 @seniorFront
event.preventDefault() и event.stopPropagation() — это два метода, которые используются для управления поведением событий в JavaScript. Они выполняют разные задачи и полезны в различных сценариях.
event.preventDefault()
Предотвращает поведение браузера по умолчанию для события. Это может быть полезно, когда вы хотите отменить действие, которое обычно происходит при определенном событии.
Примеры:
Отмена отправки формы:
document.querySelector('form').addEventListener('submit', function(event) {
event.preventDefault();
console.log('Форма не отправлена!');
});
Отмена перехода по ссылке:
document.querySelector('a').addEventListener('click', function(event) {
event.preventDefault();
console.log('Переход по ссылке отменен!');
});
event.stopPropagation()
Предотвращает дальнейшее распространение события по дереву DOM. Это полезно, когда вы хотите остановить событие от всплытия (bubbling) или захвата (capturing) к родительским элементам.
Примеры:
Остановка всплытия события:
document.querySelector('.child').addEventListener('click', function(event) {
event.stopPropagation();
console.log('Клик на child');
});
document.querySelector('.parent').addEventListener('click', function() {
console.log('Клик на parent');
});
В этом примере клик на
.child элемент не вызовет обработчик клика на .parent элементе.👉 @seniorFront
👍9
Почему программисты никогда не вымрут
Буквально 20 минут назад прочел статью - Сгенерированный ИИ код сделает вас плохим программистом. И у меня созрела мысль, которую я до этого нигде не читал.
Итак, о чем статья то. Я ни в коем случае не обесцениваю труд автора, но я прочел ее краткое содержание примерно так:
Почему нельзя писать код с помощью нейросетей:
- Вы станете тупым
- Вас никто не будет уважать
- Это вообще не дело
Лично я вообще не переживаю насчет того, что скоро скайнет захватит мир, потому что:
- Зачем зря переживать
- У меня есть работа
- Я уверен, что ближайшие десять лет моих знаний хватит, чтобы не оказаться в нищете.
В комментариях большая часть аудитории разделились на два лагеря:
- Первые: да с этим чатом гпт у вас сгниют мозги!
- Вторые: пусть гниют, мы то хотя бы не умрем в нищете!
Для меня утверждение - "люди с чатом гпт - лучшие работники, чем без него" - просто бред.
Во первых - какие люди-то? Если ты джун с copilot, то ты физически не можешь себя сравнить с Джоном Скитом. Если ты лид, и строишь огромные, высоконагруженные системы, руководишь большой командой, о чем здесь может идти речь?
Любые нейронки, это просто инструмент. И меня уже начинают раздражать тезисы, которые утверждают, что благодаря какому-либо инструменту, вы станете востребованным профессионалом.
Тоже самое, что сказать - "код на C++ говно, на python гораздо лучше. Кто пишет на python, за тем будущее". Ах, да... Такой тезис периодически звучал последние несколько лет.
Хороший программист - это профессионал, финальный продукт деятельности которого удовлетворяет заказчика. Если тебе надо выбивать дырки на перфокарте и написание "hello, world!" отнимает у тебя неделю, то это не удовлетворит ни одного заказчика. Если вносить правки в систему умеет 2 человека в мире, такой продукт ни одного вменяемого человека также не устроит.
Если же ты профессионал, и можешь сделать отличную систему из поломанного стула и рожка мороженного - то ты будешь востребован до тех пор, пока твой продукт будет удовлетворять заказчика. А поверьте, отлично сделанные системы никогда не перестанут удовлетворять заказчиков.
👉 @seniorFront
Буквально 20 минут назад прочел статью - Сгенерированный ИИ код сделает вас плохим программистом. И у меня созрела мысль, которую я до этого нигде не читал.
Итак, о чем статья то. Я ни в коем случае не обесцениваю труд автора, но я прочел ее краткое содержание примерно так:
Почему нельзя писать код с помощью нейросетей:
- Вы станете тупым
- Вас никто не будет уважать
- Это вообще не дело
Лично я вообще не переживаю насчет того, что скоро скайнет захватит мир, потому что:
- Зачем зря переживать
- У меня есть работа
- Я уверен, что ближайшие десять лет моих знаний хватит, чтобы не оказаться в нищете.
В комментариях большая часть аудитории разделились на два лагеря:
- Первые: да с этим чатом гпт у вас сгниют мозги!
- Вторые: пусть гниют, мы то хотя бы не умрем в нищете!
Для меня утверждение - "люди с чатом гпт - лучшие работники, чем без него" - просто бред.
Во первых - какие люди-то? Если ты джун с copilot, то ты физически не можешь себя сравнить с Джоном Скитом. Если ты лид, и строишь огромные, высоконагруженные системы, руководишь большой командой, о чем здесь может идти речь?
Любые нейронки, это просто инструмент. И меня уже начинают раздражать тезисы, которые утверждают, что благодаря какому-либо инструменту, вы станете востребованным профессионалом.
Тоже самое, что сказать - "код на C++ говно, на python гораздо лучше. Кто пишет на python, за тем будущее". Ах, да... Такой тезис периодически звучал последние несколько лет.
Хороший программист - это профессионал, финальный продукт деятельности которого удовлетворяет заказчика. Если тебе надо выбивать дырки на перфокарте и написание "hello, world!" отнимает у тебя неделю, то это не удовлетворит ни одного заказчика. Если вносить правки в систему умеет 2 человека в мире, такой продукт ни одного вменяемого человека также не устроит.
Если же ты профессионал, и можешь сделать отличную систему из поломанного стула и рожка мороженного - то ты будешь востребован до тех пор, пока твой продукт будет удовлетворять заказчика. А поверьте, отлично сделанные системы никогда не перестанут удовлетворять заказчиков.
👉 @seniorFront
👍15👎7
Как убить самоорганизацию в команде: вредные советы для лидера
Сегодня многие компании переходят на гибридный формат работы, где команды нуждаются в особом подходе для поддержания самоорганизации — процесса, при котором люди выполняют задачи без постоянного контроля руководителя. Я поделюсь своими наблюдениями, почему в современных условиях самоорганизация не происходит «магически» и что должен делать тимлид, чтобы помочь команде достичь этой цели.
👉 @seniorFront
Сегодня многие компании переходят на гибридный формат работы, где команды нуждаются в особом подходе для поддержания самоорганизации — процесса, при котором люди выполняют задачи без постоянного контроля руководителя. Я поделюсь своими наблюдениями, почему в современных условиях самоорганизация не происходит «магически» и что должен делать тимлид, чтобы помочь команде достичь этой цели.
👉 @seniorFront
This media is not supported in your browser
VIEW IN TELEGRAM
Responsive app switcher or carousel
Реализовано на чистом CSS при помощи CSS animation-timeline.
👉 @seniorFront
Реализовано на чистом CSS при помощи CSS animation-timeline.
👉 @seniorFront
👍8🔥2
Media is too big
VIEW IN TELEGRAM
Cursor in & Out Ripple Effects
В этом видео создается анимация при наведении на карточку, зависящая от положения курсора пользователя. Параметры анимации задаются в JS при срабатывании события mousemove.
👉 @seniorFront
В этом видео создается анимация при наведении на карточку, зависящая от положения курсора пользователя. Параметры анимации задаются в JS при срабатывании события mousemove.
👉 @seniorFront
👍2❤1🔥1🤔1
В жизни каждого разработчика однажды наступает момент, когда перед ним возникает оно… ЛЕГАСИ 👻
Что такое легаси код и откуда он берется? Как обнаружить легаси в проекте? Какую ошибку постоянно совершают лиды? Как предупредить проблему в будущем? Когда стоит отказаться от рефакторинга?
Обо всем этом расскажет лид frontend-разработки Мерка, Никита Шальнев, на онлайн-митапе «Как лиду работать с легаси?»
Встречаемся с вами в 19:00 МСК в канале @merkteam ⬅️
👉 Подписывайтесь, чтобы не пропустить митап, а заодно быть в курсе других мероприятий, открытых вакансий в Мерке и полезных айти-новостей от меркурианских разработчиков.
Что такое легаси код и откуда он берется? Как обнаружить легаси в проекте? Какую ошибку постоянно совершают лиды? Как предупредить проблему в будущем? Когда стоит отказаться от рефакторинга?
Обо всем этом расскажет лид frontend-разработки Мерка, Никита Шальнев, на онлайн-митапе «Как лиду работать с легаси?»
Встречаемся с вами в 19:00 МСК в канале @merkteam ⬅️
👉 Подписывайтесь, чтобы не пропустить митап, а заодно быть в курсе других мероприятий, открытых вакансий в Мерке и полезных айти-новостей от меркурианских разработчиков.
❤1👍1👎1🔥1