Maxim WebDev
564 subscribers
36 photos
8 videos
39 links
Здесь узнаешь, как проходить собеседования Front-End разрабу на СНГ рынке

- Я Senior Front-End, делюсь с тобой личным опытом в IT
- Рассказываю про лайфхаки в прохождении собесов
- Показываю примеры задач с моих job-интервью

My Contact: t.me/max_webdev
Download Telegram
Channel created
Channel photo updated
ПОЧЕМУ Я ШЛЮ НА *** IT-КОМПАНИИ, КОТОРЫЕ ПРОСЯТ СДЕЛАТЬ ТЕСТОВОЕ?

Многие компании на рынке IT в СНГ просят делать тестовые задания. Расскажу про свой печальный опыт с одной белорусской конторой.

————————————

Я пообщался с HR, достаточно неплохо прошел собеседование, вакансия мне понравилась. После этого всего, меня попросили сделать тестовое.

Заданием было простым, нужно разработать приложение на React Native, где будет 2 скрина (1-й со списком элементов, 2-й с информацией о конкретном элементе из списка). Мне сказали, что мол, Макс, вообще не парься по поводу дизайна, главное разработай хорошую архитектуру и выбери правильные инструменты для данной задачи.

В итоге приложение я сделал за дня 2, в сумме потратив на него примерно 7 часов. Код был офигенный, я все сделал грамотно. И это не только мое мнение, мне так сказали технари из компании, в которую я подавался.

Я отправил свой код на проверку, через 5 дней я получаю ответ (отрывок из сообщения): "Максим, добрый день. По итогу ТЗ, мы не готовы продолжить общение по данной вакансии."

Я попросил более подробный фидбек. Мне же на мой запрос прислали следующее (цитирую): "Максим, получила более детальный ответ от Ивгения. Само ТЗ в целом было хорошо выполнено. Но клиент хочет видеть более опытного специалиста на эту роль."

Fuck, все сделано круто, но нужен более опытный специалист. То же самое, что "Максим, ты пишешь код отлично, все хорошо, но нужен более опытный чел."

Я очень сильно сгорел с этой ситуации, так как я потратил впустую 7 часов на тестовое и 1.5 часа на собес с ними. В итоге 8.5 часов пересчитайте на зарплату Middle React разработчика в СНГ и вы офигеете, сколько это денег.

В общем и целом, идите на *** компании, которые просят сделать тестовое.

P.S. немного грубовато, но я уже остыл. Просто пока писал этот пост, снова бомбануло 🙂

————————————

А как вы относитесь к тестовым заданиям от компаний при поиске работы? Поделитесь своим мнением и историями в комментариях 👇
🔥5👍42
Всем привет! Недавно на работе была таска, которая была связана с фиксом реализации компонента Accordion (вот визуальный пример, кто не знает, что это)

Кажется, что этот Accordion максимально простая вещь. Это то да, но его правильная реализация (с анимацией) делается не через CSS, а через JavaScript и функцию requestAnimationFrame, которую предоставляет браузерное API.

Достаточно неплохое решение я нашел здесь. Настоятельно рекомендую разобрать пункт “Technique 3: JavaScript”. Это уровень J+, Middle, но и вам, дорогие джунники, будет очень полезно 🙂

—————————

Проблема в таске на работе была как раз в реализации этого Accordion. Он был реализован по пункту “Technique 1: max-height” из статьи по ссылке выше и это вызвало багу в нашем проекте. Поэтому пришлось капаться и разбираться в более правильной реализации Accordion.

Как вам кстати решение из статьи? Разобрались, как оно работает? Если нет, то давайте вместе разбираться 😉
👍8
Почему меня бесят Пайплайны и что это такое?

Я работаю в продукте, который разрабатывает онлайн-казино. Сюда я пришел из одной белорусской галеры и сразу же офигел, как же здесь все по-другому.

Одно из них, это Пайплайны. Если говорить кратко о том, что такое Пайплайны, то это инструменты, которые автоматически запускают все тесты, делают билд проекта и др. В результате, они проверяют, не поломал ли ты огромный проект после своих правок в коде.

Так вот, эти Пайплайны очень долгие, завершаются они примерно через 3 часа. Часто бывает так, что у тебя валятся тесты и тогда Пайплайн красный. Тесты могут падать, даже если все хорошо. Просто некоторые из них завязаны на время. Единственный способ пофиксить эти заваленные тесты - это, что, правильно, перезапустить эти тесты. И перезапускать их нужно 2-3 раза, пока Пайпланы не станут зелеными.

В общем и целом, это больно, но это надо :). Оно так работает во многих продуктах, и с этим ничего не поделаешь.
👍8🔥2
Нужно ли подтверждать навыки в LinkedIn?

Недавно мы с друзьями IT-шниками в общем чате на 20 человек решили друг другу подтвердить навыки в LinkedIn. Для меня как фронтендера это React, React Native, JavaScript, CSS и тд. Все мои навыки в LinkedIn можете посмотреть здесь. И да, можете меня конектить в Линке, приму заявку :)

Так вот, походу функция подтверждения навыков все-таки работает и повышает твой профиль в поиске для рекрутеров. Я сужу это пока что только по одному сообщению от рекрутера (фото сообщения в посте), но мне оно пришло после того, как добавилось +10 подтверждений на каждый навык от моих друзей.

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

И да, кто хочет одобрить мои превосходные навыки в JavaScript и React, вы знаете, на какую кнопку нажимать 😁
👍1
В последнее время ложусь спать только ближе к 1-2 ночи и просыпаюсь ровно к дейлику, который проходит в 10:30 утра. Утром беру ноут в кровать, захожу на дейлик и только потом просыпаюсь.

И примерно в таком формате я живу уже более 6 месяцев.

Вопрос вот в чем, у меня одного сбит режим? Во сколько вы ложитесь спать и во сколько встаете? 😴🛌
5 талонов на пиво + 20 талонов на еду

Ни разу не видел талонной системы на айтишных мероприятиях. Обычно было так, кто успел взять, того и еда :)
4😁2
Недавно общался с одной международной IT-компанией. Вкратце про их этапы собесов:

1. Ты разрабатываешь за 1.5 часа реальное приложение по техзаданию в лайв-режиме.
2. Ты заполняешь анкету по cultural fit на 9 страниц.
3. Ты проходишь тех собеседование за 1.5 - 2 часа.
4. Они обзванивают последних двух твоих работодателей и опрашивают их по поводу тебя, твоих успехов, работы и др.

Если все ОК, добро пожаловать на работу в офисе. Никакой удаленки 🤣

Просто пиздец, кого они ищут?)
🥴9💩2👍1😱1
Может кто-то помнит мой первый пост про то, почему я ненавижу делать тестовые задания при поиске работы в IT?

Так вот, сейчас ищу работу и наткнулся на идеальную компанию в плане тестового задания. Описываю их условия для тестового.

1. Мне скидывают ТЗ и я оцениваю его в часах.
2. Я выполняю задание и мне платят за него по следующей формуле:

Мои ожидания по ЗП (за 1 час работы) * моя оценка ТЗ в часах = заработанная сумма за тестовое.

————————————

В общем и целом, это пример для многих компаний, как нужно делать 😉.

Сейчас жду условие тестового и фидбек по моему CV, чтобы начать выполнять задание. По результатам буду отписывать в следующих постах 👍
👍8🔥2
Пишу этот пост с горящей жопой 🔥🔥🔥 через 5 минут после конца собеседования в аутсорс-компанию в РБ.

Собес на Senior, а меня гоняют по таким темам, как различие class и id в HTML, различия padding и margin, различия let и const, что такое state и props в React, что вообще такое React и тд и тп.

Если что, эти все вопросы для стажера либо джуна на React. Было настолько не интересно, потому что я знал ответы на все вопросы, я эти темы раз 100 рассказывал будучи джуном.

Я понимаю, если бы они задали хотя бы 5 таких вопросов и поняли, что я действительно не идиот и не очередняра с рынка IT, и начали задавать что-то более хардкорное либо приближенное к позиции Senior. Но нет, каждый следующий вопрос это тупо проверка базы JS и React.

Как будто есть чек-лист из 50 вопросов и обязательно нужно спросить все 50. Они же не поймут на 5-м вопросе, что кандидат вроде как шарит. Нужно же задать все вопросы до конца, вдруг он посыпется...

У меня очень сильно горит, если честно. Я не высокомерный и могу ответить на джуновские вопросы. Но не в такой ситуации, еле вытерпел этот 1 час собеса 😅
😁11💩2🤯1🌚1
Мои 2 самых нелюбимых продукта у Microsoft: Teams и Visio. Первое у меня сжирало всю оперативу на Macbook с icore 9, а второе - просто стандартное приложение для построения блок-схем.

При том для этих блок-схем нет вообще нормальных альтернатив в плане приложений. Кто-то кодга-то придумал ГОСТы, стандарты и блок-схемы и теперь еб*cь с этим в техническом универе 🥲
Ох уж эти собесы на Senior. Задротил лайв-кодинг, а в итоге говорили только про мой опыт, построение архитектуры, практические кейсы в решении задач на проекте и другое.

Всего было 4 собеса, и в 4-х из них ни одной задачи на лайв-кодинг. Хотя это и хорошо, меньше как-то напрягался и большинство тех интервью были в удовольствие. Ощущалось, что собес - это разговор двух опытных тех специалистов, а не жесткий прогон хардкорных вопросов по JS + React.

В итоге получил несколько офферов, но об этом попозже 😏
👍111
Короче, отвечаю на вопрос, как же я готовлюсь к лайв-кодингу перед собесами?

На самом деле, в лайв-кодинге мне очень помог собес в Yandex, который я проходил в начале лета 2022. В Yandex очень большие требования, очень много этапов на решение задач, и очень много полезных материалов, как готовиться именно к их собесам и в каком формате решать задачи.

Поэтому после такой сильной подговотки я щелкал как орешки собесы в белорусские аутсорсы и продукты.

————————————

В общем и целом, вот частые задачи, которые я прогоняю перед собесами.

Hash table:
https://leetcode.com/problems/single-number/ - решить за O(1) по памяти
https://leetcode.com/problems/two-sum/
https://leetcode.com/problems/group-anagrams/
https://leetcode.com/problems/valid-anagram/

Promise
1) fetchWithRetry. Нужно написать функцию, которая принимает в себя promise и объект с функцией retry. fetchWithRetry должна запускать promise заново в случае неудачи. Функция retry во втором параметре возвращает либо число, на которое необходимо отложить перезапуск promise (в ms) либо false (false означает, что перезапускать не нужно, просто необходимо вернуть результат в состоянии reject).

fetchWithRetry(promise, {
retry: (attempts) => {
if (attempts < 3) {
return 500
}

return false
}
})
2) Promise.sleep(2000). Я думаю тут все понятно, необходимо написать функцию, которая выполняет promise через заданное количество милисекунд.

Остальное:
1) https://leetcode.com/problems/valid-palindrome/ - решить за O(1) по памяти
2) https://leetcode.com/problems/coin-change/ - жадные алгоритмы
3) Написать самому функцию, которая реализует бинарный поиск
4) Написать реализацию debounce и throttle
5) Написать реализацию некоторых сортировок: bubble sort, quick sort и др. Кстати, про реализацию quick sort у меня есть статья на Habr: https://habr.com/ru/post/490304/
6) https://leetcode.com/problems/merge-intervals/

————————————

Такую годноту вам подогнал! Поэтому поставьте огонек 🔥 к этому посту и поделитесь им c вашими друзьями/знакомыми 😏
🔥573👍2
Maxim WebDev pinned «Короче, отвечаю на вопрос, как же я готовлюсь к лайв-кодингу перед собесами? На самом деле, в лайв-кодинге мне очень помог собес в Yandex, который я проходил в начале лета 2022. В Yandex очень большие требования, очень много этапов на решение задач, и очень…»
Впервые встретил "стереотипного" таксиста в Минске. Я ехал домой где-то в 5 утра, сел в машину, и мне водила на серьезных щах начинает говорить: "Знаешь, такси это так, чисто для души, я же 20 лет видеомонтажем занимаюсь, на Америку работаю."

Мне нужно было ехать 30 минут, а таксист все продолжал запрягать эту фигню про его жизнь, такси для души и другое. Ну и ему же не скажешь "мужик заткнись".

Короче, таксисты, которые просто молчат, самые лучшие 🤣
💯4😁3👍1
Эххх, как же я давно не получал от рекрутеров шаблонных сообщений, которые отправляются либо копипастом, либо роботом.

А давно не получал, потому что я пишу рекрутерам напрямую в личку в LinkedIn. Как по мне, это самый эффективный способ дойти до собеса.

А вы часто получаете такие шаблонные ответы? 😏

————————————

Буквально недели 2 назад я нашел новую работу за 10 дней. И этот способ через LinkedIN мне очень сильно помог. В следующем посте думую рассказать, как проходили мои поиски 😉
👍16