Руслан Куянец | Reactify
6.56K subscribers
755 photos
53 videos
39 files
322 links
Я IT-специалист, ментор и основатель проекта YeaHub и сообщества Reactify. Здесь рассказываю про Frontend и IT.

Менторство:
https://reactify.ru

YouTube канал:
https://youtube.com/@reactify-it

YeaHub:
https://yeahub.ru/

Связь:
@ruslan_kuyanets
Download Telegram
🤬 Дилемма IT-рынка

Дилемма разработчика: быть хорошим инженером или хорошим кандидатом?

Под комментариями к видео-прожарке люди разделились на два лагеря.

https://youtu.be/a43a-SCCHLg

Одни говорят: «Как можно не знать такие вопросы? Это же база».

Вторые говорят: «А зачем вообще задавать такие вопросы? Они ничего не показывают».

При этом и среди первых, и среди вторых были люди как с опытом, так и без него.

И вот тут начинается интересная дилемма.

Когда еще не было всей этой рыночной истерии, к собеседованиям относились проще. Опытные ребята, работающие в топовых компаниях, на собесах могли просто поговорить за жизнь — и их брали в Альфу, ВК, Сбер, Ростелеком и другие компании.

Не было жесткой проверки знаний. Алгоритмы, задачки и вопросы с собеседований считались отдельным навыком, который хороший разработчик знать не обязан.

Время шло. Записей собеседований на YouTube стало в сотни раз больше. Списки вопросов, подборки задач, сервисы подготовки — все стало доступно. Подготовиться стало намного легче.

Но вместе с этим поменялись и правила игры.

Сейчас уже недостаточно просто хорошо работать. Если ты приходишь на собеседование неподготовленным, то можешь проиграть человеку с меньшим опытом, который просто хорошо натренировал формат собеседования.

Готовиться к собеседованиям нужно. Это буквально часть профессии и реалии текущего рынка.

Улучшать резюме, правильно себя презентовать, иногда чуть подкручивать формулировки — это тоже часть игры.

Потому что какой смысл быть добрым, честным и иметь реальные навыки, если ты просто не проходишь первый фильтр и месяцами сидишь без работы?

Особенно сейчас, когда самый жесткий рынок находится в диапазоне 1-3 лет опыта. Но даже если человек условно добавит себе год и попадет в фильтр 3-6 лет, он все равно будет внизу выдачи.

HH ранжирует кандидатов: сначала идут люди с опытом 5+ лет, потом уже 3-4 года. Когда я делал эксперимент с вакансией, в топ-50 выдачи было около 80% людей с опытом 5 лет и больше.
Хотя на саму вакансию откликались разные люди. Кандидатов с 3-4 годами было тоже много, просто они находились ниже.

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

Многие опытные разработчики не знают нормально про классы и прототипы. Ошибаются в задачах на this и Event Loop. Не умеют решать алгоритмические задачи.

Кто-то не может нормально отрефакторить React-компонент — хотя это один из популярных типов лайвкодинга.

А иногда проблемы вообще с базой: человек не помнит, что делают логические операторы, какая разница между функциями, как работают фундаментальные вещи языка.

И вот тут возникает вопрос: а что тогда вообще считать опытом? Количество лет в компании? Количество написанных строк кода? Умение решать реальные бизнес-задачи? Или способность пройти проверку на рынке?

Правильно говорят, что собеседования — это отдельный навык.

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

Еще часто говорят: «Опытный разработчик не значит хороший разработчик». И я с этим согласен.

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

Мне кажется, что в ближайшие годы с развитием нейросетей разница между просто опытным разработчиком и специалистом, который умеет думать, писать хороший код и правильно использовать AI-инструменты, будет только расти.

Мой пик менторства и помощи с трудоустройством новичкам пришелся на 2025 год.

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

Помню, в начале 2024 года я помогал человеку, который накрутил себе 3 года опыта и попал в Сбер. Он обратился за помесячной помощью на испытательном сроке.
🔥104👍3
Для меня это был шок. Код был слабый, базовой логики и понимания разработки почти не было. Но человек получал 250 тысяч рублей в месяц. И знаете что? Он молодец.

Он смог попасть в систему, пройти фильтры и получить результат. Возможно, ему вообще не интересно, что кто-то считает его путь неправильным.
Типа: «Хэй, я получаю 250к, а вы тут сидите и год ищете работу, зато говорите про честность».

Это было бы не очень красиво с его стороны. Но доля правды в этом есть.

Потому что рынок в итоге вознаграждает не самых правильных. Он вознаграждает тех, кто смог адаптироваться под его правила.

И, наверное, главный вопрос не в том, правильно это или нет.

А в том: Нужно ли быть лучшим разработчиком или нужно уметь доказать рынку, что ты им являешься?
17💯6🔥3
💼 Персонализированная подготовка

Весь июль тестировали Календарь собеседований и внедряли новый подход к подготовке.

Раньше мы в основном готовили ученика до выхода на рынок, а дальше уже подключались точечно, если нужен был мок.

И этого подхода в целом хватало.

Каждый ученик до выхода на рынок проходил 5–13 экзаменов по всем темам (экзамен = мок с ментором), потом ещё 2+ дополнительных мока и прожарки. Плюс были рандомные моки с другими ребятами примерно 2 раза в неделю.

Этого было достаточно, чтобы получать офферы.

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

Поэтому мы поменяли подход.

Есть собеседование в Т-Банк и там лайвкодинг? Сделаем мок лайвкодинга именно под формат Т-Банка.

Финальный этап в Сбере? Сделаем часовой мок по софтам и разбору опыта, чтобы максимально повысить шанс пройти.

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

Это и есть персонализированная подготовка.

И всё это стало возможным благодаря трекингу собеседований через Календарь.

Но моки — это только часть. Календарь даёт ещё несколько сильных возможностей.

🚂 Паровозы собеседований

Например, Ваня прошёл собеседование в Авито. Через неделю Петя идёт туда же — Ваня может передать ему вопросы, рассказать про этапы и помочь подготовиться осмысленно.

Раньше такие связи часто терялись. Теперь мы специально их создаём.

📚 Материалы и реальные вопросы

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

Когда ученик добавляет собеседование в календарь — мы можем искать актуальные материалы именно под эту компанию и этот этап. Давать это ученику.

🤝 Рефералы

Ещё один важный эффект — растёт база контактов.

Например, ученик прошёл собеседование в Сбер, но понял, что ему не подходит офисный формат. Он с большей вероятностью сможет порекомендовать другого ученика, которому такой формат подходит.

Получается система, где ученики помогают друг другу получать больше возможностей.

За июль Календарь уже показал хороший результат:

— 8 рефералок ученик → ученик
— 11 паровозов по собеседованиям
— 20 собеседований, где удалось найти вопросы и записи, которые совпали с реальными этапами примерно на 90%
— дополнительные моки для подготовки к алгоритмам и финальным этапам

Это только первый месяц.

Чем больше данных собираем, тем точнее понимаем, где можно помочь, какие компании сейчас нанимают и как увеличить шанс получить оффер.

Мы не ждем хороший рынок 🚀
Мы побеждаем на любом
💪
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2810👍9
👩‍💻 CI/CD для фронтендера часть 3

В прошлый раз мы остановились на моменте, когда Pull Request прошел ревью, получил аппрув и попал в ветку develop.

Теперь начинается самое интересное — что происходит после merge и как код оказывается в Kubernetes. Разберем путь от merge до деплоя.

Итак, разработчик сделал merge:
feature/YH-1422 → develop


С этого момента обычно запускается новый workflow.

Первый этап — сборка.

CI/CD система берет свежий код из ветки develop и выполняет примерно такие шаги:
— скачивает репозиторий;
— устанавливает зависимости;
— собирает приложение;
— запускает необходимые проверки;
— создает артефакты сборки.

Для фронтенда результатом обычно будет набор статических файлов:
dist/
├── index.html
├── assets/
├── javascript bundles
└── styles


Но часто в современных проектах дальше появляется Docker. Вместо того чтобы просто отправлять файлы на сервер, приложение упаковывается в Docker image.

Например:
код приложения



npm install



npm run build



Docker image



Container Registry


Docker image — это готовая версия приложения вместе с необходимым окружением.

Например:
frontend-app:1.25.0


Эта версия уже сохранена в Registry, откуда ее сможет забрать Kubernetes.

Следующий этап — Kubernetes.

Kubernetes сам по себе не знает, какую версию приложения нужно запускать.

Ему нужно описать желаемое состояние:
— какой image использовать;
— сколько запустить копий приложения;
— какие ресурсы выделить;
— какие настройки применить.

Обычно это описывается через Kubernetes manifests или Helm charts.

Например:
frontend:
image: frontend-app:1.25.0
replicas: 3


То есть мы говорим Kubernetes: "Мне нужно 3 экземпляра фронтенда версии 1.25.0"

И Kubernetes делает все необходимое:
— скачивает Docker image;
— создает контейнеры;
— запускает приложение;
— проверяет, что оно работает;
— заменяет старую версию новой.

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

Например:
application-config

frontend:
image: frontend-app:1.25.0


Изменили версию в Git → система увидела изменение → обновила Kubernetes.

И здесь появляется ArgoCD. ArgoCD постоянно сравнивает: что написано в Git vs что реально запущено в Kubernetes. Если есть различия — он выполняет синхронизацию.

Например:
В Git: frontend-app:1.25.0
В Kubernetes: frontend-app:1.24.0


ArgoCD увидит расхождение и обновит приложение.

В итоге весь путь выглядит примерно так:
Merge в develop



CI/CD workflow



Build приложения



Docker image



Container Registry



Обновление конфигурации в Git



ArgoCD



Kubernetes



Новое приложение работает


И вот этот процесс обычно скрыт от фронтендера. Разработчик сделал merge — через несколько минут новая версия уже доступна на стенде.

Но за этим стоят несколько систем, которые работают вместе:
Git → CI/CD → Docker → Registry → GitOps → ArgoCD → Kubernetes

Первые 4 шага можно изучить в нашем репозитории: https://github.com/YeaHubTeam/yeahub-platform/blob/main/Dockerfile

В следующей части можно разобрать уже сам Kubernetes: что такое Pod, Deployment, Service, Ingress и как вообще фронтенд приложение живет внутри кластера 🙂

🚀 База собесов💪 Frontend Элита📚 Менторство📹 YouTube
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥64
Скоро возвращение на YouTube 💪🏼

1. Разбор самого душного собеса: V8, Hidden classes, JIT, TS, Garbage Collector и другие необычные темы на собесе 🤯

2. Архитектура Frontend: Monorepo, Multirepo, Microfrontends, Monoliths
Схема эволюция на примере больших компаний

Видео в монтаже 💪

Так же много сценариев написал, буду контент машину запускать

🚀 База собесов💪 Frontend Элита📚 Менторство📹 YouTube
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2810👍5😢1
This media is not supported in your browser
VIEW IN TELEGRAM
🔥28👍8😁61
👩‍💻 Эволюция Frontend Архитектуры: от Монолита до Microfrontends (Monorepo, Multirepo)

В этом видео разберём эволюцию больших frontend-систем:
Monolith → Modular Monolith → Monorepo → Multirepo → Microfrontends.

На примере роста большой платформы посмотрим:
— почему один frontend начинает не справляться с ростом команды;
— зачем переходят от монолитного приложения к модульной архитектуре;
— чем отличаются Monorepo и Multirepo;
— когда появляются отдельные приложения и бизнес-контуры;
зачем нужны Microfrontends;
— как независимые команды получают свои релизы, CI/CD и жизненный цикл.

Разберём:
— Frontend Architecture
— Microfrontend Architecture
— Monorepo vs Multirepo
— Modular Monolith
— Frontend Scaling
— Large Scale Frontend Applications

Видео будет полезно frontend-разработчикам, архитекторам и техническим лидерам, которые строят масштабируемые веб-приложения.

Видео уже на канале Reactify!
Я не оставляю ссылку, так как видео лучше продвигается, если заходить на него напрямую с YouTube. Это помогает улучшить его рейтинг и увеличить шансы на органическое продвижение.

🚀 База собесов💪 Frontend Элита📚 Менторство📹 YouTube
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥143👍3🤝1
This media is not supported in your browser
VIEW IN TELEGRAM
🔥187👍5🫡1
This media is not supported in your browser
VIEW IN TELEGRAM
15👍11🔥7😢1