В общем и целом, получил отказ на собеседовании. Ответ довольно частый и типичный «мы сделали выбор в пользу другого кандидата».
Я конечно же задал вопрос, почему выбрали другого кандидата, по каким параметрам оценивали и сравнивали. Компания молодец, дали фидбек, при чем развернутый.
Не сконектились получается, да и много денег попросил))
А вы как часто получаете отказ в формате «мы выбрали другого кандидата»?
Я конечно же задал вопрос, почему выбрали другого кандидата, по каким параметрам оценивали и сравнивали. Компания молодец, дали фидбек, при чем развернутый.
Не сконектились получается, да и много денег попросил))
А вы как часто получаете отказ в формате «мы выбрали другого кандидата»?
❤10😁1
✌️Минусы React
Я уже больше 4 лет пишу на React и поэтому могу выделить несколько его минусов. При этом я немного писал на Vue, поэтому есть с чем сравнить.
1. Это библиотека и поэтому большинство разработчиков пишут на React как хотят. Многие не задумываются по поводу архитектуры, как разделять бизнес логику и UI, поэтому всё пихают внутрь компонент. Если в команде нет правил и ограничений по архитектуре, то каждый будет писать, как хочет.
2. useContext. У данного хука нет мемоизации селекторов и поэтому если делать большой объект с данными, то это будет вести к большому количеству ненужных апдейтов.
Часто на проектах я вижу, как делают один большой объект с данными для одной страницы (а иногда для всего приложения) и передают все это в контекст. При этом значение контекста довольно часто обновляется и используется в разных частях проекта. Конечно же, такой способ не самый оптимальный.
Если хотите больше подробностей и реальных примеров из кода про пункт 3, то наставьте 🔥 под этот пост.
3. Нужно много думать о том, как построить свое дерево компонент, чтобы предотвратить лишние ререндеры и сделать само дерево максимально оптимизированным при апдейтах. Почему разработчик должен об этом думать? Разве не проще делегировать эту задачу самой библиотеке?
4. React заставляет много думать об объектах как о ссылках. Особенно это связано с передачей объектов (или функций) в deps и пропы мемоизированной компоненты.
Допустим моя компонента обернута в memo и она принимает в себя проп-функцию. Тогда мне эту функцию нужно обернуть в useCallback, а чтобы это понять, необходимо лезть в компоненту. А я ведь могу забыть про это, что моя компонента мемоизирована. В общем, это очень большая сложность.
5. Бывают моменты, когда очень много зависимостей в useEffect, useMemo либо useCallback. Разработчику приходится следить, не забыл ли он добавить какую-либо зависимость, не забыл ли он удалить лишнюю зависимость.
А вы согласны со всеми 5-ю минусами React? Может у вас есть что добавить?)
Полезные ссылки
1. Кто не понял пункт 4, то почитайте мой пост “Когда применять React.memo? Оптимизации в React”
2. useContext в React
3. React Fiber для собеседований
4. How the useEffect Hook Works
Я уже больше 4 лет пишу на React и поэтому могу выделить несколько его минусов. При этом я немного писал на Vue, поэтому есть с чем сравнить.
1. Это библиотека и поэтому большинство разработчиков пишут на React как хотят. Многие не задумываются по поводу архитектуры, как разделять бизнес логику и UI, поэтому всё пихают внутрь компонент. Если в команде нет правил и ограничений по архитектуре, то каждый будет писать, как хочет.
2. useContext. У данного хука нет мемоизации селекторов и поэтому если делать большой объект с данными, то это будет вести к большому количеству ненужных апдейтов.
Часто на проектах я вижу, как делают один большой объект с данными для одной страницы (а иногда для всего приложения) и передают все это в контекст. При этом значение контекста довольно часто обновляется и используется в разных частях проекта. Конечно же, такой способ не самый оптимальный.
Если хотите больше подробностей и реальных примеров из кода про пункт 3, то наставьте 🔥 под этот пост.
3. Нужно много думать о том, как построить свое дерево компонент, чтобы предотвратить лишние ререндеры и сделать само дерево максимально оптимизированным при апдейтах. Почему разработчик должен об этом думать? Разве не проще делегировать эту задачу самой библиотеке?
4. React заставляет много думать об объектах как о ссылках. Особенно это связано с передачей объектов (или функций) в deps и пропы мемоизированной компоненты.
Допустим моя компонента обернута в memo и она принимает в себя проп-функцию. Тогда мне эту функцию нужно обернуть в useCallback, а чтобы это понять, необходимо лезть в компоненту. А я ведь могу забыть про это, что моя компонента мемоизирована. В общем, это очень большая сложность.
5. Бывают моменты, когда очень много зависимостей в useEffect, useMemo либо useCallback. Разработчику приходится следить, не забыл ли он добавить какую-либо зависимость, не забыл ли он удалить лишнюю зависимость.
А вы согласны со всеми 5-ю минусами React? Может у вас есть что добавить?)
Полезные ссылки
1. Кто не понял пункт 4, то почитайте мой пост “Когда применять React.memo? Оптимизации в React”
2. useContext в React
3. React Fiber для собеседований
4. How the useEffect Hook Works
🔥21👍1
Еще одно напоминание, почему я не откликаюсь на вакансии на rabota.by либо hh.ru.
Чаще всего сам сайт автоматически присылает отказ. Навряд ли на втором скриншоте мне ответил сам рекрутер, потому что такое шаблонное сообщение получаю уже не в первый раз.
Я лично ищу вакансии на hh.ru, но откликаюсь все равно через LinkedIn. Подробнее о том, как я это делаю через LinkedIn можно почитать здесь.
Чаще всего сам сайт автоматически присылает отказ. Навряд ли на втором скриншоте мне ответил сам рекрутер, потому что такое шаблонное сообщение получаю уже не в первый раз.
Я лично ищу вакансии на hh.ru, но откликаюсь все равно через LinkedIn. Подробнее о том, как я это делаю через LinkedIn можно почитать здесь.
❤4
✌️Главный минус useContext и как с ним справиться
В посте про минусы React я говорил, что одним из минусов является useContext. Главная его проблема в том, что у данного хука нет мемоизации селекторов и поэтому если делать большой объект с данными, то это будет вести к большому количеству ненужных апдейтов.
Я для вас сделал пример кода, по которому можно понять ключевую проблему useContext. Чтобы его посмотреть перейдите в CodeSandbox (с телефона тоже можно потыкать пример). В примере есть контекст CounterContext, который управляет двумя состояниями count1 и count2. Дело в том, что состояния не зависят друг от друга и используются в разных компонентах (count1 в Count1Component, count2 в Count2Component).
В примере нажмите на кнопку "increment count1". Вы сразу же увидите, что состояние обновилось и изменения отобразились на экране. Но дело в том, что изменение состояния в Count1Component ведет к ререндеру компоненты Count2Component (обратите внимание на параметр Renders amount). Хотя казалось бы, зачем обновлять другую компоненту, когда обновление интерфейса происходит в совсем другой части приложения?
В этом и состоит главная проблема контекста. И для ее решения один из разработчиков React Дэн Абрамов предлагает 3 варианта решения:
1. Разделить один контекст на два контекста.
2. Сделать вместо одной компоненты две: одна использует useContext, вторая обернута в memo и предотвращает лишние ререндеры из-за useContext.
3. Оставить одну компоненту, но весь JSX обернуть в useMemo и в качестве deps передать значения из контекста.
Более подробно про эти 3 пункта со всеми примерами кода можно ознакомиться здесь.
Честно говоря, я на практике использовал только 1-й вариант. Все остальные как-то не доводилось, да и большого смысла я в этом не видел. Все-таки я считаю, что контекст нужно использовать в правильном назначении, а 2 и 3 варианты больше исправляют неправильно применение useContext в проекте.
Я рекомендую создавать контекст только тогда, когда данные для этого контекста не часто меняются и их нужно передавать глубоко в дерево компонент. На своей практике я могу вспомнить следующие примеры хорошего применения useContext:
- Изменение темы со светлой на темную для всего приложения;
- Получение с бэка настроек и параметров для конкретной страницы. При чем эти параметры используются глубоко в дереве компонент и не очень удобно их передавать через пропсы. Главное, чтобы ваши полученные с бэка настройки не часто обновлялись;
- Управление тостами;
- и другое...
В посте про минусы React я говорил, что одним из минусов является useContext. Главная его проблема в том, что у данного хука нет мемоизации селекторов и поэтому если делать большой объект с данными, то это будет вести к большому количеству ненужных апдейтов.
Я для вас сделал пример кода, по которому можно понять ключевую проблему useContext. Чтобы его посмотреть перейдите в CodeSandbox (с телефона тоже можно потыкать пример). В примере есть контекст CounterContext, который управляет двумя состояниями count1 и count2. Дело в том, что состояния не зависят друг от друга и используются в разных компонентах (count1 в Count1Component, count2 в Count2Component).
В примере нажмите на кнопку "increment count1". Вы сразу же увидите, что состояние обновилось и изменения отобразились на экране. Но дело в том, что изменение состояния в Count1Component ведет к ререндеру компоненты Count2Component (обратите внимание на параметр Renders amount). Хотя казалось бы, зачем обновлять другую компоненту, когда обновление интерфейса происходит в совсем другой части приложения?
В этом и состоит главная проблема контекста. И для ее решения один из разработчиков React Дэн Абрамов предлагает 3 варианта решения:
1. Разделить один контекст на два контекста.
2. Сделать вместо одной компоненты две: одна использует useContext, вторая обернута в memo и предотвращает лишние ререндеры из-за useContext.
3. Оставить одну компоненту, но весь JSX обернуть в useMemo и в качестве deps передать значения из контекста.
Более подробно про эти 3 пункта со всеми примерами кода можно ознакомиться здесь.
Честно говоря, я на практике использовал только 1-й вариант. Все остальные как-то не доводилось, да и большого смысла я в этом не видел. Все-таки я считаю, что контекст нужно использовать в правильном назначении, а 2 и 3 варианты больше исправляют неправильно применение useContext в проекте.
Я рекомендую создавать контекст только тогда, когда данные для этого контекста не часто меняются и их нужно передавать глубоко в дерево компонент. На своей практике я могу вспомнить следующие примеры хорошего применения useContext:
- Изменение темы со светлой на темную для всего приложения;
- Получение с бэка настроек и параметров для конкретной страницы. При чем эти параметры используются глубоко в дереве компонент и не очень удобно их передавать через пропсы. Главное, чтобы ваши полученные с бэка настройки не часто обновлялись;
- Управление тостами;
- и другое...
❤4👍1🔥1👏1
Хочу поделиться с вами некоторыми задачами, которые давили мне на последних собеседованиях. Позиция Middle+ / Senior 🔥. Они в принципе довольно простые, поэтому можете проверить свои знания. Я предлагаю вам не запускать код, а попробовать самим сначала решить.
Напишите потом в комментариях к этому посту, сколько вы решили задач. Я лично решил 2 из 3 :)) Вот что бывает, если не повторять базу перед собесами.
1. Задача на контекст this. Что будет выведено в консоль? Как исправить данный пример, чтобы он корректно работал?
2. Задача на hoisting. Что будет выведено в консоль?
3. Задача на event loop. Что будет выведено в консоль? Будет ли блокироваться UI в таком случае?
Напишите потом в комментариях к этому посту, сколько вы решили задач. Я лично решил 2 из 3 :)) Вот что бывает, если не повторять базу перед собесами.
1. Задача на контекст this. Что будет выведено в консоль? Как исправить данный пример, чтобы он корректно работал?
const database = {
filterId: 'active',
users: [
{
id: 'active',
label: 'Active',
},
{
id: 'inactive',
label: 'Inactive',
},
],
getUsers: function() {
return this.users.filter(function (user) {
return user.id === this.filterId
})
}
}
console.log(database.getUsers())
2. Задача на hoisting. Что будет выведено в консоль?
(function () {
f()
f = function() {
console.log(1)
}
})()
function f() {
console.log(2)
}
f()
3. Задача на event loop. Что будет выведено в консоль? Будет ли блокироваться UI в таком случае?
sleep(2000).then(() => {
console.log(0)
})
console.log(1)
setTimeout(() => {
console.log(2)
})
function sleep(ms) {
return new Promise((resolve) => {
setTimeout(resolve, ms)
})
}
console.log(5)
function myPromise() {
abc().then((val) => {
console.log(val)
return myPromise()
})
}
function abc() {
return new Promise((resolve) => {
resolve(6)
})
}
myPromise()
❤6👍4🔥2
Купил себе для работы стол с подъемным механизмом.
До этого у меня был обычный стол, довольно маленький, неудобный, на него мало чего помещалось.
Сейчас у нового стола размеры 140x80 см, максимальная высота подъема 130 см.
На нем можно работать и сидя, и стоя. Я чередую каждые 30-60 минут. Сначала сидя работаю, потом когда стало неудобно сидеть, то стоя.
Еще планирую как-то кабель менеджмент настроить и кронштейн для монитора поставить 🙂
До этого у меня был обычный стол, довольно маленький, неудобный, на него мало чего помещалось.
Сейчас у нового стола размеры 140x80 см, максимальная высота подъема 130 см.
На нем можно работать и сидя, и стоя. Я чередую каждые 30-60 минут. Сначала сидя работаю, потом когда стало неудобно сидеть, то стоя.
Еще планирую как-то кабель менеджмент настроить и кронштейн для монитора поставить 🙂
🔥15
Вспомнил недавно одну интересную и смешную историю при переписке с рекрутером. Хочу поделиться ей.
Я договорился на первый звонок "знакомство". На нем мы хорошо пообщались, мне предложили прислать примеры кода, чтобы разработчики компании посмотрели, как я пишу код и понимали, что я нормальный кандидат.
Я тогда работал в аутсорсе и поэтому проектов у меня было достаточно. Я выбрал 3 хороших проекта, взял оттуда некоторые файлы с кодом: примеры redux-редьюсеров, файлы для работы с api бэкенда, ui-kit компоненты с анимацией и логикой и другое. В общем и целом, выбрал те файлы и куски кода, которыми можно "похвастаться".
После эти файлы я отправил ссылкой рекрутеру. Где-то через одну неделю я получаю сообщение в формате "Максим, наши разработчики посмотрели ваш код, вынуждены вам отказать". Я уточнил "Почему?".
Мне ответили что-то вроде:
Как же я сгорел с этого! Вы понимаете, они хотели, чтобы я им скинул исходники всех 3-х проектов! Полностью ВЕСЬ КОД, который я писал для других заказчиков!
Я понимаю, если они бы попросили скинуть пет проекты. Но мы на звонке с рекрутером договорились на примеры кода с реальных коммерческих проектов. Короче полный угар))
Я договорился на первый звонок "знакомство". На нем мы хорошо пообщались, мне предложили прислать примеры кода, чтобы разработчики компании посмотрели, как я пишу код и понимали, что я нормальный кандидат.
Я тогда работал в аутсорсе и поэтому проектов у меня было достаточно. Я выбрал 3 хороших проекта, взял оттуда некоторые файлы с кодом: примеры redux-редьюсеров, файлы для работы с api бэкенда, ui-kit компоненты с анимацией и логикой и другое. В общем и целом, выбрал те файлы и куски кода, которыми можно "похвастаться".
После эти файлы я отправил ссылкой рекрутеру. Где-то через одну неделю я получаю сообщение в формате "Максим, наши разработчики посмотрели ваш код, вынуждены вам отказать". Я уточнил "Почему?".
Мне ответили что-то вроде:
Наши разработчики не смогли запустить ни один из ваших 3-х проектов. В вашем коде есть импорты файлов, которых не существуют. Там даже не было package.json!
Как же я сгорел с этого! Вы понимаете, они хотели, чтобы я им скинул исходники всех 3-х проектов! Полностью ВЕСЬ КОД, который я писал для других заказчиков!
Я понимаю, если они бы попросили скинуть пет проекты. Но мы на звонке с рекрутером договорились на примеры кода с реальных коммерческих проектов. Короче полный угар))
🙉9🤡3😁2🤣2
Мне очень нравится рассказывать про интересные задачи, которые были у меня на собесах. А еще больше нравится рассказывать про странные задачи, которые дают интервьюеры. В этом посте покажу одну из них.
Если кратко, есть функция getUsers, которая вызывается подряд много раз. Не важно сколько раз вызывается, главное что много. Вопрос: что в этом коде не так? Необходимо исправить недочет.
Если честно, я долго ломал голову, что не так. Единственное, до чего я додумался, что можно цилк for заменить на filter, будет меньше кода. Но это был неверный ответ.
Что ж, не буду томить, скажу правильный ответ. Только перед этим попробуйте сами подумать, что в этом коде не так, а после открывайте спойлер.
ОТВЕТ:
А вы как думаете, задача по условию нормальная либо странно ее давать на собеседовании? 🧐
Если кратко, есть функция getUsers, которая вызывается подряд много раз. Не важно сколько раз вызывается, главное что много. Вопрос: что в этом коде не так? Необходимо исправить недочет.
function getUsers() {
const users = [
{
filter: 'active',
name: 'A',
},
{
filter: 'Inactive',
name: 'A',
},
]
const appliedFilters = ['active']
const result = []
for (let i = 0; i < users.length; i += 1) {
if (appliedFilters.includes(users[i].filter)) {
result.push(users[i])
}
}
return result
}
getUsers()
getUsers()
getUsers()
// вызывается еще N раз (то есть очень много вызвовов подряд)
Если честно, я долго ломал голову, что не так. Единственное, до чего я додумался, что можно цилк for заменить на filter, будет меньше кода. Но это был неверный ответ.
Что ж, не буду томить, скажу правильный ответ. Только перед этим попробуйте сами подумать, что в этом коде не так, а после открывайте спойлер.
ОТВЕТ:
Нужно
вынести массивы users и appliedFilters за функцию getUsers. При многократном вызове функции getUsers создается много массивов, что влияет на размер выделяемой памяти для создания объектов в JS.
Если честно, интервьюер как бы прав. Но это очень странная задача. Прям очень странная. Зачем ее давать, не очень понятно. Мне сказали, что у них в проекте таких кейсов много и многочисленное создание JS-объектов влияет на производительность их приложения.
Но этот аргумент был бы логичным, если мы бы создавали прям большие массивы при каждом вызове функции. А в примере дан массив на 2 и 1 элемента. Поэтому как по мне, задача не очень доработана.
А вы как думаете, задача по условию нормальная либо странно ее давать на собеседовании? 🧐
❤3
Как работодатели обманывают кандидатов про зарплату с премией?
Я последние 3.5 месяца активно проходил собеседования в АйТи компании на СНГ рынке как Senior Front-End разработчик.
В ноябре 2023 увидел классную вакансию, созвонился с рекрутером, мы обсудили детали вакансии и у меня уточнили зарплатные ожидания. Я ответил от 300 000 RUB.
(если что все суммы в данном посте выдуманные, не хочу говорить реальные цифры)
После я прошел собеседование. Через неделю мне написали, мол все круто, Максим, ты нам подходишь, ребята хотят, чтобы ты присоединился к команде. Затем выслали оффер, где написано примерно следующее.
Мы созвонились с рекрутером, чтобы обсудить оффер. Я задал вопрос, почему оклад не 300k RUB, как мы заранее обговаривали. Мне же ответили, что вот смотри, премия 250 000 RUB раз в 3 месяца. 250k / 3 ~ 83300 RUB за 1 месяц. Значит средняя ЗП за месяц будет 220000 + 83300 = 303 300 RUB.
Также я уточнил, за что именно дается премия? Оказывается, каждые 3 месяца выводится список метрик, которые необходимо выполнить для получения премии. Какие точно метрики, не сказали, так как они согласовываются лично с лидом.
Тут я думаю понятно, что меня хотят надурить с этой премией. Нет четких определений, за что она дается. А значит вообще не факт, что премия будет каждые 3 месяца. А если у компании будет плохой рабочий квартал и недостаточно средств для премий? То велика вероятность, что меня пошлют с моими словами «ну вы же обещали, что мой оклад + премия будет примерно 300k».
Какой вывод? 🤔 Всегда при первом общении с рекрутом стоит проговаривать
Я последние 3.5 месяца активно проходил собеседования в АйТи компании на СНГ рынке как Senior Front-End разработчик.
В ноябре 2023 увидел классную вакансию, созвонился с рекрутером, мы обсудили детали вакансии и у меня уточнили зарплатные ожидания. Я ответил от 300 000 RUB.
(если что все суммы в данном посте выдуманные, не хочу говорить реальные цифры)
После я прошел собеседование. Через неделю мне написали, мол все круто, Максим, ты нам подходишь, ребята хотят, чтобы ты присоединился к команде. Затем выслали оффер, где написано примерно следующее.
Оклад: 220 000 RUB
Премия: раз в 3 месяца 250 000 RUB (по результатам выполнения поставленных задач, согласованных с непосредственным руководителем, а также по результатам выполнения ключевых показателей эффективности).
Мы созвонились с рекрутером, чтобы обсудить оффер. Я задал вопрос, почему оклад не 300k RUB, как мы заранее обговаривали. Мне же ответили, что вот смотри, премия 250 000 RUB раз в 3 месяца. 250k / 3 ~ 83300 RUB за 1 месяц. Значит средняя ЗП за месяц будет 220000 + 83300 = 303 300 RUB.
Также я уточнил, за что именно дается премия? Оказывается, каждые 3 месяца выводится список метрик, которые необходимо выполнить для получения премии. Какие точно метрики, не сказали, так как они согласовываются лично с лидом.
Тут я думаю понятно, что меня хотят надурить с этой премией. Нет четких определений, за что она дается. А значит вообще не факт, что премия будет каждые 3 месяца. А если у компании будет плохой рабочий квартал и недостаточно средств для премий? То велика вероятность, что меня пошлют с моими словами «ну вы же обещали, что мой оклад + премия будет примерно 300k».
Какой вывод? 🤔 Всегда при первом общении с рекрутом стоит проговаривать
Мои ожидания по окладу: от N RUB в месяц после вычета налогов. Данная сумма не должна включать в себя премии и другие бонусы, т.е. это чистый оклад.
❤10
Как я получил оффер в Яндекс с 3-й попытки…
Я ни разу не работал в бигтехе СНГ. Еще в мае 2022 года я пошел на первое собеседование в Яндекс. Кто не знает, в бигтехах обычно 3 стадии собеседований: решение задач на специфику конкретного языка программирования (в моем случае JavaScript), решение задач на алгоритмы и финальная секция по софт-скилам.
Так вот, в мае 2022 года я провалил секцию на алгоритмы в Яндекс. Тогда я решил не ходить на собеседования в другие бигтехи, так как получил хороший оффер от одной компании из Минска.
Осенью 2023 я начал искать новую работу. На этот раз я пошел на собеседование в Тинькофф. Там примерно такие же секции, как и в Яндекс. По итогу, я опять завалил 2-ю стадию на алгоритмические задачи :(
Меня раздражали эти задачи на алгоритмы, а еще больше меня бесило то, что я не знал, как к ним готовиться. Но в декабре 2023 я все же смог пройти все 3 стадии собеседований в Яндекс и получить оффер! Хочу вам рассказать, что мне в этом помогло.
1️⃣ Марафон подготовки к собеседованию в бигтехи от Андрея Кобеца. Я на инстаграм Андрея подписан уже давно. Он опытный разработчик, создает образовательный контент для Middle и Senior Front-End.
Марафон длился 17 дней. Каждый день Андрей отправлял в приватную ТГ-группу по 4 задачи. После 18:00 каждого дня автор марафона присылал видео с подробным разрабором решения каждой задачи. Участники марафона также присылали свои решения в текстовом формате и Андрей давал комментарии по их качеству.
За эти 17 дней я жетско прокачался в алгоритмических задачах! На собеседовании в Яндекс я их шелкал как орешки. В итоге, на 1-й секции я решил 6 задач из 6, на 2-й - 3 из 4.
2️⃣ ТГ-канал "JS-прожарка". В нем собраны задачи с реальных собеседований в бигтехи. В каждом посте содержится условие задачи, указывается компания, на собеседовании в которую давали данную задачу, а также в комментариях подписчики присылают свои решения.
Я в этом ТГ-канале сделал поиск по задачам из Яндекса и все их прорешал. Это очень помогло в подготовке к алгоритмической секции.
P.S. Если что, это ни в коем случае не реклама. Я просто делюсь своим опытом. У меня не получалось 2 раза подряд пройти секцию на алгоритмы в бигтехи. А эти два инструмента очень помогли мне хорошо подготовиться. И по итогу с 3-й попытки я все же получил оффер в бигтех (Яндекс) на позицию Middle+! 🔥
И да, от оффера в Яндекс я отказался 😱, но зато зыкрыл гештальт в собеседованиях в бигтехи. На самом деле, Яндекс слегка разочаровал, а точнее не оправдал моих ожиданий. Подробнее, почему я отказался от оффера, расскажу в следующих постах :)
Я ни разу не работал в бигтехе СНГ. Еще в мае 2022 года я пошел на первое собеседование в Яндекс. Кто не знает, в бигтехах обычно 3 стадии собеседований: решение задач на специфику конкретного языка программирования (в моем случае JavaScript), решение задач на алгоритмы и финальная секция по софт-скилам.
Так вот, в мае 2022 года я провалил секцию на алгоритмы в Яндекс. Тогда я решил не ходить на собеседования в другие бигтехи, так как получил хороший оффер от одной компании из Минска.
Осенью 2023 я начал искать новую работу. На этот раз я пошел на собеседование в Тинькофф. Там примерно такие же секции, как и в Яндекс. По итогу, я опять завалил 2-ю стадию на алгоритмические задачи :(
Меня раздражали эти задачи на алгоритмы, а еще больше меня бесило то, что я не знал, как к ним готовиться. Но в декабре 2023 я все же смог пройти все 3 стадии собеседований в Яндекс и получить оффер! Хочу вам рассказать, что мне в этом помогло.
1️⃣ Марафон подготовки к собеседованию в бигтехи от Андрея Кобеца. Я на инстаграм Андрея подписан уже давно. Он опытный разработчик, создает образовательный контент для Middle и Senior Front-End.
Марафон длился 17 дней. Каждый день Андрей отправлял в приватную ТГ-группу по 4 задачи. После 18:00 каждого дня автор марафона присылал видео с подробным разрабором решения каждой задачи. Участники марафона также присылали свои решения в текстовом формате и Андрей давал комментарии по их качеству.
За эти 17 дней я жетско прокачался в алгоритмических задачах! На собеседовании в Яндекс я их шелкал как орешки. В итоге, на 1-й секции я решил 6 задач из 6, на 2-й - 3 из 4.
2️⃣ ТГ-канал "JS-прожарка". В нем собраны задачи с реальных собеседований в бигтехи. В каждом посте содержится условие задачи, указывается компания, на собеседовании в которую давали данную задачу, а также в комментариях подписчики присылают свои решения.
Я в этом ТГ-канале сделал поиск по задачам из Яндекса и все их прорешал. Это очень помогло в подготовке к алгоритмической секции.
P.S. Если что, это ни в коем случае не реклама. Я просто делюсь своим опытом. У меня не получалось 2 раза подряд пройти секцию на алгоритмы в бигтехи. А эти два инструмента очень помогли мне хорошо подготовиться. И по итогу с 3-й попытки я все же получил оффер в бигтех (Яндекс) на позицию Middle+! 🔥
И да, от оффера в Яндекс я отказался 😱, но зато зыкрыл гештальт в собеседованиях в бигтехи. На самом деле, Яндекс слегка разочаровал, а точнее не оправдал моих ожиданий. Подробнее, почему я отказался от оффера, расскажу в следующих постах :)
🔥16👍2
Почему я отказался от оффера в Яндекс?
В предыдущем посте я рассказал, как все же смог получить оффер в Яндекс с 3-й попытки. Но от оффера я отказался. Объясняю почему.
1️⃣ Зарплатные ожидания. Яндекс оценил меня как Middle+, а собешусь я на Senior. И по ЗП в других компаниях мне предлагают на 50% больше, чем в Яндекс.
Поторговаться получается разве что на +10к RUB к окладу. На все другие предложения по повышению оклада говорят «ты же понимаешь, Яндекс крутой бренд, это тебе в будущем очень сильно поможет. Строчка в резюме с надписью Яндекс играет большую роль».
2️⃣ Не совсем очевидный формат работы. Яндекс сейчас в основном топит за гибрид (3 дня в офисе, 2 дома). Я в идеале хотел удаленку, но готов был согласиться на гибрид, если команде проекта очень важно ходить в офис. «Очень важно» - это когда большинство членов команды ходит в офис, вы проводите общие собрания оффлайн и у вас действительно повышается от этого продуктивность.
Мне рекрутер говорила «точно будет гибрид, в Минске в приоритете гибрид». При этом во время собеседований я пообщался с интервьюерами из Яндекса. И некоторые из них говорили, что в их команде удаленка, ходить на офис не обязательно, так как большинство членов команды живет в разных городах.
Для меня формат работы очень важен. И так как не было понятно, что будет, гибрид, удаленка, либо вообще каждый день нужно ходить в офис, то я решил, что не хочу рисковать. Хочется заранее точно знать такие детали, а не узнавать о них в процессе работы.
3️⃣ Привязка к курсу RUB.
Я живу в Минске и мне в идеале получать ЗП либо в BYN, либо в USD. Яндекс же платит в RUB, но конвертирует каждый месяц RUB в BYN.
Я перевожу большую часть денег в USD. И поэтому конвертация RUB - BYN - USD мне точно на руку не сыграет, когда будет проблема с высокими курсами. В идеале конечно конвертировать просто из BYN в USD либо вообще иметь ЗП в USD.
---------
А для вас эти 3 пункта являются важными? Пошли ли бы вы работать в компанию при таких условиях?
P.S. Если что, я все же получил оффер, который хотел, от другой компании на СНГ рынке. Уже с конца января 2024 я работаю на новом месте. Расскажу про это подробнее в следующих постах.
В предыдущем посте я рассказал, как все же смог получить оффер в Яндекс с 3-й попытки. Но от оффера я отказался. Объясняю почему.
1️⃣ Зарплатные ожидания. Яндекс оценил меня как Middle+, а собешусь я на Senior. И по ЗП в других компаниях мне предлагают на 50% больше, чем в Яндекс.
Поторговаться получается разве что на +10к RUB к окладу. На все другие предложения по повышению оклада говорят «ты же понимаешь, Яндекс крутой бренд, это тебе в будущем очень сильно поможет. Строчка в резюме с надписью Яндекс играет большую роль».
2️⃣ Не совсем очевидный формат работы. Яндекс сейчас в основном топит за гибрид (3 дня в офисе, 2 дома). Я в идеале хотел удаленку, но готов был согласиться на гибрид, если команде проекта очень важно ходить в офис. «Очень важно» - это когда большинство членов команды ходит в офис, вы проводите общие собрания оффлайн и у вас действительно повышается от этого продуктивность.
Мне рекрутер говорила «точно будет гибрид, в Минске в приоритете гибрид». При этом во время собеседований я пообщался с интервьюерами из Яндекса. И некоторые из них говорили, что в их команде удаленка, ходить на офис не обязательно, так как большинство членов команды живет в разных городах.
Для меня формат работы очень важен. И так как не было понятно, что будет, гибрид, удаленка, либо вообще каждый день нужно ходить в офис, то я решил, что не хочу рисковать. Хочется заранее точно знать такие детали, а не узнавать о них в процессе работы.
3️⃣ Привязка к курсу RUB.
Я живу в Минске и мне в идеале получать ЗП либо в BYN, либо в USD. Яндекс же платит в RUB, но конвертирует каждый месяц RUB в BYN.
Я перевожу большую часть денег в USD. И поэтому конвертация RUB - BYN - USD мне точно на руку не сыграет, когда будет проблема с высокими курсами. В идеале конечно конвертировать просто из BYN в USD либо вообще иметь ЗП в USD.
---------
А для вас эти 3 пункта являются важными? Пошли ли бы вы работать в компанию при таких условиях?
P.S. Если что, я все же получил оффер, который хотел, от другой компании на СНГ рынке. Уже с конца января 2024 я работаю на новом месте. Расскажу про это подробнее в следующих постах.
💯2👍1
Почему собесы с решением задач это НЕ круто? 🫢
Многие собеседования в бигтех компании на СНГ рынке состоят исключительно из задач. И разве что только последней секции отдается время для обсуждения опыта кандидата. И то больше со стороны софт-скилов.
Я очень не люблю задачи на собесах! Ну прям ооочень. Потому что как минимум к ним нужно готовиться. И на подготовку уходит не 2-3 часа, а несколько дней!
Создадим образ обычного Васи Front-End разработчика, у которого реального опыта работы 2 года. На своем текущем месте он ответственно подходит к делу, все задачи закрывает в срок, с коллегами в хороших рабочих отношениях. Вася чувствует, что уперся в потолок (зарплатный, технический, не важно) на своей работе. И соответственно, он хочет ее сменить.
Вася слышал, что в бигтехах работать круто. Он прекрасно знает, что на собеседованиях в такие компании нужно решать задачи. А что решать? Не очень понятно конечно. Но ладно, он открывает leetcode, спрашивает своих знакомых, какие задачи попадаются в бигтехах. Берет себе недельку, чтобы подготовиться.
Решает-решает задачи. Приходит на собес и ему дают написать полифил Promise.allSettled, решить задачу на пересечение диапазонов в массиве, что-то сделать со связным списком, произвести обход дерева (объекта) без использования рекурсии, реализовать бинарный поиск... Аааааааа 🤯
Я хочу у вас спросить. Вы когда нибудь писали самостоятельно на коммерческом проекте бинарный поиск? Ну прям реально, брали и писали собственноручно helper под названием binarySearch, который реализует данный алгоритм? Вы когда-нибудь писали полифил allSettled на реальном проекте? Я лично за 4+ лет опыта ни разу не реализовывал чего-то подобного в коммерческой разработке, что обычно дают в задачах на собесах в бигтехи. Я делал что-то похожее в пет-проектах. Но пет-проект не коммерческий, это совсем другое.
Так вот вопрос: зачем все это? Разве не проще сделать одну теоретическую секцию интервью? Задать вопросы про реальный опыт кандидата? Спросить, как кандидат решил бы какие-то типовые проблемы, которые встречаются на проекте у компании-работодателя? Примеры:
1️⃣ Тебе нужно сделать tooltip. Как ты его будешь делать и какие ключевые проблемы сразу же заметишь при разработке данной компоненты?
2️⃣ У нас в проекте используется большая форма из 30+ филдов. Как бы ты ее релизовал? Какие инструменты использовал бы для решения поставленной задачи? Что думаешь по производительности этих инструментов?
3️⃣ Нам в проект необходимо интегрировать аналитику. Пока что она только одна, допустим google analytics. Но в ближайшем будущем мы возможно заменим ее на другую аналитику либо будем использовать две аналитики одновременно. Как ты реализуешь такой сервис аналитики в проекте?
Это примеры вопросов с моих реальных интервью. Такие вопросы и другие подобные хорошо раскрывают опыт кандидата. Во-первых, они показывают, решал ли человек похожие проблемы проекта работодателя в других компаниях. Во-вторых, такие вопросы отображают глубину знаний кандидата. На 2-й вопрос про 30 филдов формы нельзя просто ответить
Если у кандидата есть достаточно опыта в различных проектах, то он расскажет, какие в современном front-end есть библиотеки для работы с формами, спросит у интервьюера про то, нужна ли какая-то сложная валидация и логика для каждого филда, пояснит за производительность разных подходов при выборе конкретной библиотеки.
А что покажет решение задач на собесе? То как Вася задротил 1-2 недели leetcode? Да Вася забудет через те же 2 недели, как решать такие задачи... 😵
---------
В общем и целом, что вы думаете про решение задач на собеседованиях? Вам больше какой формат интервью нравится: только задачи, теоретический формат либо теория + 1-2 задачки?
Многие собеседования в бигтех компании на СНГ рынке состоят исключительно из задач. И разве что только последней секции отдается время для обсуждения опыта кандидата. И то больше со стороны софт-скилов.
Я очень не люблю задачи на собесах! Ну прям ооочень. Потому что как минимум к ним нужно готовиться. И на подготовку уходит не 2-3 часа, а несколько дней!
Создадим образ обычного Васи Front-End разработчика, у которого реального опыта работы 2 года. На своем текущем месте он ответственно подходит к делу, все задачи закрывает в срок, с коллегами в хороших рабочих отношениях. Вася чувствует, что уперся в потолок (зарплатный, технический, не важно) на своей работе. И соответственно, он хочет ее сменить.
Вася слышал, что в бигтехах работать круто. Он прекрасно знает, что на собеседованиях в такие компании нужно решать задачи. А что решать? Не очень понятно конечно. Но ладно, он открывает leetcode, спрашивает своих знакомых, какие задачи попадаются в бигтехах. Берет себе недельку, чтобы подготовиться.
Решает-решает задачи. Приходит на собес и ему дают написать полифил Promise.allSettled, решить задачу на пересечение диапазонов в массиве, что-то сделать со связным списком, произвести обход дерева (объекта) без использования рекурсии, реализовать бинарный поиск... Аааааааа 🤯
Я хочу у вас спросить. Вы когда нибудь писали самостоятельно на коммерческом проекте бинарный поиск? Ну прям реально, брали и писали собственноручно helper под названием binarySearch, который реализует данный алгоритм? Вы когда-нибудь писали полифил allSettled на реальном проекте? Я лично за 4+ лет опыта ни разу не реализовывал чего-то подобного в коммерческой разработке, что обычно дают в задачах на собесах в бигтехи. Я делал что-то похожее в пет-проектах. Но пет-проект не коммерческий, это совсем другое.
Так вот вопрос: зачем все это? Разве не проще сделать одну теоретическую секцию интервью? Задать вопросы про реальный опыт кандидата? Спросить, как кандидат решил бы какие-то типовые проблемы, которые встречаются на проекте у компании-работодателя? Примеры:
1️⃣ Тебе нужно сделать tooltip. Как ты его будешь делать и какие ключевые проблемы сразу же заметишь при разработке данной компоненты?
2️⃣ У нас в проекте используется большая форма из 30+ филдов. Как бы ты ее релизовал? Какие инструменты использовал бы для решения поставленной задачи? Что думаешь по производительности этих инструментов?
3️⃣ Нам в проект необходимо интегрировать аналитику. Пока что она только одна, допустим google analytics. Но в ближайшем будущем мы возможно заменим ее на другую аналитику либо будем использовать две аналитики одновременно. Как ты реализуешь такой сервис аналитики в проекте?
Это примеры вопросов с моих реальных интервью. Такие вопросы и другие подобные хорошо раскрывают опыт кандидата. Во-первых, они показывают, решал ли человек похожие проблемы проекта работодателя в других компаниях. Во-вторых, такие вопросы отображают глубину знаний кандидата. На 2-й вопрос про 30 филдов формы нельзя просто ответить
ну я возьму Formik и бим-бим, бам-бам
Если у кандидата есть достаточно опыта в различных проектах, то он расскажет, какие в современном front-end есть библиотеки для работы с формами, спросит у интервьюера про то, нужна ли какая-то сложная валидация и логика для каждого филда, пояснит за производительность разных подходов при выборе конкретной библиотеки.
А что покажет решение задач на собесе? То как Вася задротил 1-2 недели leetcode? Да Вася забудет через те же 2 недели, как решать такие задачи... 😵
---------
В общем и целом, что вы думаете про решение задач на собеседованиях? Вам больше какой формат интервью нравится: только задачи, теоретический формат либо теория + 1-2 задачки?
🔥16💯4🤔1
Я удалил Instagram, YouTube и TikTok...
Да-да. В последнее время я заметил, что частенько захожу в эти соцсети и листаю короткие видео. С утра просыпаюсь - листаю сторис, иду в туалет - открываю YouTube Shorts, и что самое ужасное - иногда захожу в TikTok :))
Мне кажется, я не один такой, ведь так? Ставьте реакцию ♥️, если тоже узнали себя.
И вы, думаю, знаете на личном опыте, сколько времени это забирает! Я часто ловил себя на том, что уже просидел больше 1 часа, листая короткие видео. Также не раз замечал, что машинально открываю инсту либо YouTube, когда нечем занять время: еду в лифте, стою в очереди, отвлекся от работы и тп.
И каждое такое отвлечение на короткие видео может забрать много времени и сил! Самое ужасное, что я мог проснуться и сразу начать листать сторисы либо шортсы. Это забирало всю утреннюю энергию и до 4-5 вечера я ходил разбитый. И это всего лишь из-за 1 часа листания коротких видео с утра!
В результате, я решил удалить все эти приложения. 😵 Сначала удалил TikTok, потом Instagram. YouTube было удалять сложнее. Я мыслил так "на ютубе с телефона я ведь слушаю подкасты, смотрю полезный контент. Зачем мне его удалять?". Но все это бред. YouTube shorts все равно забирают очень много человеческого внимания. Вы замечали, как часто YouTube вам предлагает шортсы? Да они почти везде: и на главной странице, и в предложенных видео под описанием и тд.
ИТОГО: у меня на телефоне нет Instagram, YouTube и TikTok. Я перестал тратить время на всякие сторис, короткие тупые видео. Начал потреблять меньше новостей. Все новости я узнаю, не поверите, от людей! Серьезно, если вы думаете, что что-то упустите, удалив эти приложения, то это не так. Ваши друзья, знакомые, коллеги точно расскажут, что там в мире происходит.
И по поводу YouTube. Подкасты я слушаю через YouTube Music (там нет шортсов). Там можно найти большинство видео с YouTube и слушать их в аудио и смотреть в видео формате. Те видео, которых нет в YouTube Music, я открываю через браузер на телефоне. Там можно включать видео и слушать его с заблокированным телефоном (с youtube в мобильном браузере есть свои нюансы, но главное, что это работает).
---------
А вы как, много времени тратите на сторисы, шортсы, тиктоки? Или уже отказались от них?
P.S. Сторисы, шортсы - это про дешевый дофамин (краткосрочные удовольствия). И удалив все эти приложения, мой мозг придумал ему замену. Теперь я покупаю всякую хрень на WB :)) Но это хоть не так пагубно влияет, как короткие видео.
Да-да. В последнее время я заметил, что частенько захожу в эти соцсети и листаю короткие видео. С утра просыпаюсь - листаю сторис, иду в туалет - открываю YouTube Shorts, и что самое ужасное - иногда захожу в TikTok :))
Мне кажется, я не один такой, ведь так? Ставьте реакцию ♥️, если тоже узнали себя.
И вы, думаю, знаете на личном опыте, сколько времени это забирает! Я часто ловил себя на том, что уже просидел больше 1 часа, листая короткие видео. Также не раз замечал, что машинально открываю инсту либо YouTube, когда нечем занять время: еду в лифте, стою в очереди, отвлекся от работы и тп.
И каждое такое отвлечение на короткие видео может забрать много времени и сил! Самое ужасное, что я мог проснуться и сразу начать листать сторисы либо шортсы. Это забирало всю утреннюю энергию и до 4-5 вечера я ходил разбитый. И это всего лишь из-за 1 часа листания коротких видео с утра!
В результате, я решил удалить все эти приложения. 😵 Сначала удалил TikTok, потом Instagram. YouTube было удалять сложнее. Я мыслил так "на ютубе с телефона я ведь слушаю подкасты, смотрю полезный контент. Зачем мне его удалять?". Но все это бред. YouTube shorts все равно забирают очень много человеческого внимания. Вы замечали, как часто YouTube вам предлагает шортсы? Да они почти везде: и на главной странице, и в предложенных видео под описанием и тд.
ИТОГО: у меня на телефоне нет Instagram, YouTube и TikTok. Я перестал тратить время на всякие сторис, короткие тупые видео. Начал потреблять меньше новостей. Все новости я узнаю, не поверите, от людей! Серьезно, если вы думаете, что что-то упустите, удалив эти приложения, то это не так. Ваши друзья, знакомые, коллеги точно расскажут, что там в мире происходит.
И по поводу YouTube. Подкасты я слушаю через YouTube Music (там нет шортсов). Там можно найти большинство видео с YouTube и слушать их в аудио и смотреть в видео формате. Те видео, которых нет в YouTube Music, я открываю через браузер на телефоне. Там можно включать видео и слушать его с заблокированным телефоном (с youtube в мобильном браузере есть свои нюансы, но главное, что это работает).
---------
А вы как, много времени тратите на сторисы, шортсы, тиктоки? Или уже отказались от них?
P.S. Сторисы, шортсы - это про дешевый дофамин (краткосрочные удовольствия). И удалив все эти приложения, мой мозг придумал ему замену. Теперь я покупаю всякую хрень на WB :)) Но это хоть не так пагубно влияет, как короткие видео.
❤10👍4🔥2
Какие самые сложные задачи ты решал на прошлых работах?
Этот вопрос я часто слышу на собесах. И конечно же, у меня всегда под рукой есть на него ответ.
Рекомендую вам тоже один раз подумать и составить список из 3-5 сложных задач за всю вашу карьеру. Тогда на собесах вы даже сможете предупредить интервьюера, что у вас есть список и хотите из него посмотреть несколько пунктов. Какой итог? Просто спокойно отвечаете на вопрос про сложные задачи, подглядывая в заметку. Я лично всегда так и делаю.
Что ж, делюсь своим списком сложных задач за всю мою карьеру.
1️⃣ Создание конфига и настройка деплоя приватной UI kit библиотеки, которая используется в 2-х проектах с разной кодовой базой.
2️⃣ Разработка с нуля архитектуры аналитики. Итоговая архитектура позволила не задевая каждый вызов аналитики перейти с сервиса ga3 (google analytics) к gtm (google tag manager). Также есть возможность использования ga3 и gtm одновременно.
То есть итоговый код аналитики можно легко подстраивать под изменения бизнеса. Без проблем можно заменить один сервис аналитики на другой либо использовать несколько сервисов одновременно.
При разработке использовался паттерн Фабрика (для создания разных инстансов аналитик) и Фасад (чтобы вынести в общий интерфейс работу с разными инстансами аналитик, т.е. к примеру под одним методом sendOrderButtonClickEvent скрывается вызов и инстанса ga3, и gtm).
3️⃣ Разработка чат-виджета для e-commerce сайта. Одна из самых интересных задач, которую я делал еще в начале моей карьеры.
Обычно все e-commerce сайты используют сторонние сервисы чат-виджетов, которые предоставляют полностью UI и логику (думаю вы видели такие на многих сайтах).
Заказчик же хотел свой кастомный виджет. Поэтому моя задача состояла в том, чтобы написать независимый от проекта компонент, связать его со сторонним API обработки сообщений, и создать адаптируемый под разные устройства UI.
————————————
А какие у вас были самые сложные задачи за всю карьеру? Поделитесь этим в комментариях 😉👇
P.S. Если у вас есть знакомые снобы Сеньоры, то киньте им этот пост. Пусть они напишут, что это детские и не сложные задачи и что я страдал херней более 4 лет своей карьеры))
Этот вопрос я часто слышу на собесах. И конечно же, у меня всегда под рукой есть на него ответ.
Рекомендую вам тоже один раз подумать и составить список из 3-5 сложных задач за всю вашу карьеру. Тогда на собесах вы даже сможете предупредить интервьюера, что у вас есть список и хотите из него посмотреть несколько пунктов. Какой итог? Просто спокойно отвечаете на вопрос про сложные задачи, подглядывая в заметку. Я лично всегда так и делаю.
Что ж, делюсь своим списком сложных задач за всю мою карьеру.
1️⃣ Создание конфига и настройка деплоя приватной UI kit библиотеки, которая используется в 2-х проектах с разной кодовой базой.
2️⃣ Разработка с нуля архитектуры аналитики. Итоговая архитектура позволила не задевая каждый вызов аналитики перейти с сервиса ga3 (google analytics) к gtm (google tag manager). Также есть возможность использования ga3 и gtm одновременно.
То есть итоговый код аналитики можно легко подстраивать под изменения бизнеса. Без проблем можно заменить один сервис аналитики на другой либо использовать несколько сервисов одновременно.
При разработке использовался паттерн Фабрика (для создания разных инстансов аналитик) и Фасад (чтобы вынести в общий интерфейс работу с разными инстансами аналитик, т.е. к примеру под одним методом sendOrderButtonClickEvent скрывается вызов и инстанса ga3, и gtm).
3️⃣ Разработка чат-виджета для e-commerce сайта. Одна из самых интересных задач, которую я делал еще в начале моей карьеры.
Обычно все e-commerce сайты используют сторонние сервисы чат-виджетов, которые предоставляют полностью UI и логику (думаю вы видели такие на многих сайтах).
Заказчик же хотел свой кастомный виджет. Поэтому моя задача состояла в том, чтобы написать независимый от проекта компонент, связать его со сторонним API обработки сообщений, и создать адаптируемый под разные устройства UI.
————————————
А какие у вас были самые сложные задачи за всю карьеру? Поделитесь этим в комментариях 😉👇
P.S. Если у вас есть знакомые снобы Сеньоры, то киньте им этот пост. Пусть они напишут, что это детские и не сложные задачи и что я страдал херней более 4 лет своей карьеры))
❤2
Что важно для тебя при поиске нового места работы?
Еще один вопрос с собесов. Его задают настолько часто, что я моментами тяжело вздыхаю и который раз говорю один и тот же текст :))
Но в любом случае, важно заранее подготовить ответ на этот вопрос. Это покажет рекрутеру вашу уверенность и что у вас есть четкие приоритеты и критерии в поиске новой компании.
Я обычно говорю, что у меня есть 4 основных критерия.
1️⃣ Сильная команда фронтов. Важно, чтобы в команде (желательно на одном проекте) были разработчики, которые опытнее меня либо находятся на таком же техническом уровне со мной. Это позволит и мне узнавать что-то новое из опыта коллег, и также я смогу поделиться своими знаниями с другими разработчиками.
2️⃣ Полная удаленка, это обязательно. Никакого гибрида и офиса.
3️⃣ Понятная и заранее рассказанная мне бизнес-культура.
Поясню. Это больше относится к продуктовым компаниям. У них часто есть какие-то правила общения в чате. В основном это и есть бизнес-культура.
У меня был один негативный момент в этом плане. Я отлично прошел собеседование, устроился в большой продукт. И потом только узнал, что команда хочет, чтобы я был онлайн все 8 часов рабочего времени. И если я куда-то ухожу, то нужно сообщить в общем чате, что меня не будет такое-то время на рабочем месте по такой-то причине.
Доходило до абсурда, что у меня спрашивали «Максим, почему ты не онлайн? У тебя кружочек в Slack-е уже целый час серый, а не зеленый».
В общем и целом, привык спрашивать, нет ли у компании подобных приколов в бизнес-культуре.
4️⃣ Деньги! Конечно это 4 пункт, мы же здесь все за идею, деньги не главное. Ведь так? (шучу 🙃)
А для вас что главное при поиске новой работы? Какие критерии учитываете?
Еще один вопрос с собесов. Его задают настолько часто, что я моментами тяжело вздыхаю и который раз говорю один и тот же текст :))
Но в любом случае, важно заранее подготовить ответ на этот вопрос. Это покажет рекрутеру вашу уверенность и что у вас есть четкие приоритеты и критерии в поиске новой компании.
Я обычно говорю, что у меня есть 4 основных критерия.
1️⃣ Сильная команда фронтов. Важно, чтобы в команде (желательно на одном проекте) были разработчики, которые опытнее меня либо находятся на таком же техническом уровне со мной. Это позволит и мне узнавать что-то новое из опыта коллег, и также я смогу поделиться своими знаниями с другими разработчиками.
2️⃣ Полная удаленка, это обязательно. Никакого гибрида и офиса.
3️⃣ Понятная и заранее рассказанная мне бизнес-культура.
Поясню. Это больше относится к продуктовым компаниям. У них часто есть какие-то правила общения в чате. В основном это и есть бизнес-культура.
У меня был один негативный момент в этом плане. Я отлично прошел собеседование, устроился в большой продукт. И потом только узнал, что команда хочет, чтобы я был онлайн все 8 часов рабочего времени. И если я куда-то ухожу, то нужно сообщить в общем чате, что меня не будет такое-то время на рабочем месте по такой-то причине.
Доходило до абсурда, что у меня спрашивали «Максим, почему ты не онлайн? У тебя кружочек в Slack-е уже целый час серый, а не зеленый».
В общем и целом, привык спрашивать, нет ли у компании подобных приколов в бизнес-культуре.
4️⃣ Деньги! Конечно это 4 пункт, мы же здесь все за идею, деньги не главное. Ведь так? (шучу 🙃)
А для вас что главное при поиске новой работы? Какие критерии учитываете?
🔥9⚡3❤2