Кандидат из Microsoft

Собеседовал сегодня кандидата из Microsoft. В очередной раз убедился в разнице требований к перфомансу на собеседовании в MSFT и Facebook.
Такое чувство, что он слабо знаком с процессом и критериями оценки впринципе.
Не задавал уточняющие вопросы, молчал во время написания кода. То, что он говорил, было сложно разобрать.
Код писал кривой, с кучей багов.
Во время тестирования не мог найти ни одной ошибки, мне приходилось указывать на каждую. Не мог придумать фикс.
Было чувство, что он первый раз проходит такого типа собес. Или снова фейковое резюме...
С кандидатами из Google такого ни разу не было. Все спокойно проходили кодинг часть.
🤔18🗿7👍5
Какой процент прохождения собеседований в Facebook?

Число проведенных мной собеседований в Facebook приближается к 200.

Примерная статистика по собеседованиям

1) Процент прохождения tech screen (coding) собеседования - 40%.
2) Процент прохождения одного кодинг раунда на full loop ~60%.
3) Процент прохождения full loop (2 coding, 1-2 system design, 1-2 поведенческих раундов) 20-30%
4) Общий процент прохождения всех собеседований (tech screen + full loop) ~10%.

Общий процент от поданых резюме ниже 10%, но статистику реджектов по резюме не знаю. То есть, лишь несколько процентов от подавших резюме получают оффер.
👍21
Кандидаты из Microsoft пошли кучно

Сегодня собесил еще одного. Тоже Senior. В резюме также указано, что он решил 2000+ задач на литкоде, он в топ 700 на литкоде из 5 миллионов. Также какой-то рейтинг на codeforces.

Он также не задал ни одного уточняющего вопроса. Молчал или бормотал что-то во время кодинга. Не отвечал на уточняющие вопросы, игнорировал подсказки. Неверно оценил space и time complexity. Не смог продебажить шаг за шагом решение. Не смог назвать нормальные тест кейсы.

При этом первую задачу сначала коряво решил, потом что-то бормоча переделал под оптимальное решение. Вторую ничего не спрашивая и не обьясняя начал писать оптимальный код, но не правильно оценил space&time complexity и не смог обьяснить почему это лучше брутфорса.
Думайте, не предвзят ли я к кандидатам из MSFT...
😁23🤯5🤔3
Почему в IT-секторе в последние 3 года столько сокращений?

Всех программистов заменяет AI?😬

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

Основные причины:

1) Зрелось IT-сектора. Число пользователей facebook и instagram уже не растет экспоненциальными темпами, оно достигло предела и даже сокращается. Аналогично с числом пользователей google поиска и youtube. Производительность процессоров не растет в десятки раз за несколько лет, как в 90е. Т.е. большинство крупных игроков достигли предела развития своих ключевых продуктов. И уже не нужно столько программистов по сравнению с тем, чтобы придумать facebook или instagram и масштабировать его с нуля до миллиардов пользователей, не нужно масштабировать под картинки и видео. Все эти задачи были решены в предыдущие 20 лет.
2) Чрезмерный найм в ковид. Во время ковида спрос на online-сервисы быстро начал снова расти. Росло число пользователей, вовлеченность, потребность в online сервисах. Как только ковид закончился, все вернулось в доковидное состояние и очень быстро. При этом нанимали как не в себя. Revenue компаний не особо вырос или остался в прежних значениях, но число сотрудников выросло на десятки процентов. Т.е. доходы остались такими же, а расходы выросли на 10%-40%. Что и побудило многие компании прибегнуть к массовым сокращениям.
3) Постковидный экономический кризис. После ковида, большинство секторов мировой экономики, начали стагнировать или расти хуже, чем обычно. Сильно увеличилась инфляция. Спрос на большинство товаров и услуг снизился. Многие IT-компании от этого также пострадали. Те, кто зарабатывают на рекламе (google, meta и т.д.), стали меньше получать заказов на размещение рекламы от бизнеса.
4) AI-hype. Одновременно, с постковидом, начался хайп вокруг AI. Большинство развитых и больших IT-компаний всегда находятся в поиске новых точек роста (как раньше был блокчейн для всего, потом виртуальная реальность и т.д.). AI это большая потенциальная возможность. Более того, если это станет большим и успешным, а ты не вложишься в это по полной на ранней стадии, то проиграешь как компания. Есть вероятность превратиться в новый Yahoo или Kodak. Поэтому все крупные игроки в это вкладывают коллосальные деньги и ресурсы. При тех же не сильно растущих доходах это требует перераспределения ресурсов компании, что и приводит к массовым сокращениям в одних отделах и раздуванием новых.
5) Чрезмерный рост компенсации программистов. Цены на акции крупных компаний падали и росли в несколько раз. А т.к. компенсация программистов в крупных компаниях, в основном, состоит из акций компаний, то компенсации многих сотрудников превысили миллион или несколько миллионов долларов. Поэтому многие компании сокращают таких сотрудников. Иногда называя это сокращениями по перфомансу (как это было 10 февраля).
👍216🤔6
😁534💯4
😁38💯123
Угадайте с одного раза, кандидата из какой компании я собеседовал сегодня.

Ответ: Кандидат был из майкрософта. Видимо такое число кандидатов связано с недавними массовыми сокращениями.
😁32🤔4👍3💯2
Не прошло и дня, как я снова собеседовал кандидата из Майкрософт...

Код писал на Java.

Выглядел он примерно так:

Class treeNode....
{
....
while(node!null&&node.left==null)
{
.....
if(node==null){
return node.right;
}
}
}

Табуляция, заглавная/не заглавная буквы в нейминге, отсутствие пробелов и конкретные конструкции в коде сохранены.
🙈22🤯16😁11😱8😭3🙉1
И тудаже в догонку. Я спросил какие тест кейсы вы бы использовали, если бы вам нужно было написать реальный unit-тест.

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

И майкрософт это не первое место работы. Там еще был голдман сакс в резюме.
🔥13🥴12😁9👍1
System Design: Ticketmaster

Очень популярная задача с собеседования в FAANG-компании (особенно в Facebook) на System Design.

Задача
Нужно сделать дизайн Ticketmaster. Ticketmaster — это онлайн-платформа, которая позволяет пользователям приобретать билеты на концерты, спортивные мероприятия, театральные постановки и другие live ивенты. Число ежедневных активных пользователей ~100M.
Решение
Описал решение тут: System Design: Ticketmaster
👍28🔥11🥴1
Задача на динамическое программирование: Замощение домино и тримино

У вас есть два вида плиток:

домино — прямоугольник 2 × 1;

тримино — L-образная плитка, состоящая из трёх клеток.

Обе плитки можно свободно поворачивать.

По данному целому n определите, сколькими способами можно замостить доску 2×n этими плитками. Поскольку ответ может быть очень большим, выведите его по модулю 10^9 + 7.

Замощением считается такое покрытие, при котором каждая клетка доски закрыта плиткой. Два замощения считаются разными, если существует пара клеток, соприкасающихся сторонами, которые в одном замощении укрыты одной плиткой, а в другом — двумя разными.

Например, для n = 3 таких замощений 5, как показано на картинке

Ссылка на leetcode: https://leetcode.com/problems/domino-and-tromino-tiling

Решение описал тут: Замощение домино и тримино
🔥12👍7👀2
Подборка постов в канале с рекомендациями по подготовке к собеседованию

Обновление подборки

Гайд по подготовке: Как подготовиться к собеседованию в FAANG/Big Tech

Подготовка к System Design с нуля и для разных уровней

Подборки с моими разборами большого числа задач:
1) Разобрал 24 темы и реальных задач с System Design собеседований в FAANG
2) Разобрал все основные алгоритмы и 44 задачи с собеседований на алгоритмы в FAANG
3) Разобрал 30 вопросов и задача по Java и Многопоточность

Посты с моими рекомендациями:

1) Как я изучал английский язык?
2) Как проходит собеседование в Meta(Facebook)?
3) Варианты подготовки к собеседованию в FAANG/около FAANG для разных уровней текущей подготовки Часть 2 , Часть 3, Часть 4
4) Сколько нужно решить задач на leetcode, чтобы пройти собеседование в FAANG компанию?
5) Какие бывают собеседования программистов и когда они имеют смысл?
7) Основные ошибки на собеседовании в FAANG, Часть 2
8) Почему решив 1500 задач на leetcode вы не сможете получить офер в FAANG
9) Как решать алгоритмические задачи на подготовке, чтобы это было эффективно
10) Как не забыть решения задач и алгоритмы
11) Как выбрать язык программирования для алгоритмического собеседования?
12) Стоит ли использовать https://www.topcoder.com/ или https://codeforces.com/ для подготовки к собеседованию по алгоритмам?
13) На чем проваливаются чаще на собеседовании в FAANG компании?, Часть2
14) Какой подход в самообразовании я использую?
15) Стоит ли учить алгоритмы и структуры данных и готовиться к собеседованиям вообще?
16) Нужно ли вам учить алгоритмы и структуры данных?
17) Когда стоит учить алгоритмы?
18) Сколько времени займет подготовка к собеседованию в FAANG или около FAANG компанию?
19) Как я готовился к собеседованию и попал в FAANG, Часть 2.
20) Как я готовился к собеседованию и попал Facebook?
21) Нужна ли сертификация Java программисту?
22) Нужно ли учить многопоточность в Java?
23) Сколько времени на самообразование вы тратите в неделю?
24) Как устроено System Design Interview в FAANG?
25) Советы по написанию резюме для FAANG, и не только
26) Плохое резюме
27) Советы по написанию достижений в резюме
28) Запись Mock Interview
29) В последнее время вижу много постов в линкедине, что кодинг собеседования по алгоритмам ничего не показывают, кроме того, насколько человек хочет попасть в компанию
30) Темплейт резюме
31) Резюме и реджекты
32) Разбор резюме подписчика
33) Conflict Resolution, Часть 2, Часть 3
34) Ghost hiring
35) Хорошее резюме
36) Сложнее ли собеседование в Facebook по сравнению с собеседованием в Amazon?
37) Структура coding interview в FAANG, оценивание и ошибки, Часть 2.
38) Стоит ли собеседоваться в BigTech/FAANG если вы только начали готовиться/планируете начать или в процессе подготовки?
39) Стоит ли поступать в 2025 году в технические вузы c целью стать программистом? Часть 2.
40) Как leetcode изменил coding собеседования в FAANG?
41) Как решать алгоритмические задачи так, чтобы не забывать решение
42) Начал спрашивать более редкие задачи и отличающиеся по условию от Leetcode
43) The Woodpecker Method, Часть 2.
44) Какой процент прохождения собеседований в Facebook?
👍196🔥6
Подборка постов в канале о работе в FAANG

Обновление подборки

1) Какие version control практики используют топ компании?
2) Используют ли FAANG компании Scrum или Kanban?
3) Как в Amazon происходит Design Review?
4) Используете ли вы сложные алгоритмы на работе?
5) Incident management в Amazon
6) COE Review в Amazon
7) Наступит ли счастье, если вы пройдете собеседование в FAANG?, Часть 2 , Часть 3.
8) Как проходят Code Review в Amazon и Facebook?, Часть 2
9) Хотите узнать сколько зарабатывают в топ IT компаниях мира?
10) Как выглядит релокация в другую страну, если вы получили offer от FAANG компании?
11) Какие языки программирования используются в крупнейших IT компаниях?
12) Используют ли в FAANG\Big Tech Spring и Spring Boot?
13) Мои первые впечатления, когда я начал работать в FAANG
14) Текущие офферы в некоторые Big Tech/FAANG компании
15) Какие тулы используют Amazon и Facebook для внутренней коммуникации?
16) В чем преимущество получения части компенсации в виде акций публичных компаний?
17) Сколько выходцев из СНГ работает в FAANG/Big Tech компаниях?
18) Как проходили массовые сокращения(layoffs) в Facebook? Часть 1.
19) Как проходили массовые сокращения(layoffs) в Facebook? Часть 2.
20) Как проходили массовые сокращения(layoffs) в Facebook? Часть 3.
21) Примеры внутренних тулов и библиотек Facebook, которые стали общедоступными
22) Что сейчас с хайрингом в FAANG?
23) Рейтинг Big Tech компаний по зп
24) Рейтинг BigTech компаний по отзывам сотрудников
25) Как FAANG компании делают бэкграуд чек
26) Почему Amazon имеет такие низкие оценки от сотрудников
27) Какие плюсы в работе в Amazon?
28) Как оценивается производительность сотрудников в FAANG
29) Имеет ли значение какой язык программирования вы знаете для карьеры в FAANG/Big Tech
30) Можно ли расти по карьере зная только один язык программирования?
31) Product/Feature Operational Readiness в Amazon
32) Как был устроен oncall, в нашей команде в Amazon
33) Какой был опыт использования Scrum в Amazon
34) Плюсы от того, что у нас был Scrum:
35) Какую систему контроля версий использует Meta?
36) Процесс изменения и деплоя кода в FAANG
37) В Мета будет очередной раунд сокращений 10 февраля
38) Гайд по выживанию массовых сокращений(layoffs) в Meta, Часть 2.
39) Плюсы работы в Facebook
40) Coffee badging
41) Минусы работы в Facebook
42) Отличие в процессах и методологиях в FAANG по сравнению с другими компаниями
43) Сложно ли работать в FAANG-компаниях с технической точки зрения
44) Сверхпродуктивные джуны
45) Сложности начала работы в FAANG с позиции Senior
46) Почему сотрудники Google и Meta получают на порядок больше, чем в Amazon?
47) Войны этнических кланов в FAANG/BigTech
48) Топ вещей, которые меня удивили, когда я пришел работать в Facebook
👍12🔥122
Подборка постов в канале со случаями на собеседованиях:

Обновление подборки

1) Случай на собеседовании в FAANG
2) Еще один подозрительный случай на собеседовании
3) Классический случай на кодинг собеседовании в FAANG
4) Новая галочка про подозрение в читерстве на собеседовании в FAANG
5) Кандидаты из Google
6) Опытный кандидат с претензиями
7) Собеседовал недавно разработчика из Яндекс
8) Собеседовал сегодня еще одного кандидата из Google
10) Собеседовал сегодня кандидата из Сингапура
11) Собеседовал только что многократного победителя соревнований на Kaggle
12) Еще один подозрительный случай с собеседования
13) Уверенные пользователи ChatGPT кучно пошлиa
14) У подозрительного кандидата и резюме подозрительное
15) Очередной мастер ChatGPT на собеседовании
16) Кандидаты задают странные вопросы
17) Собеседовал противоречивого кандидата
18) Типичный кандидат с литкод подготовкой
19) Собеседовал сегодня очередного кандидата из Google
20) Накрутка опыта и закрытие пробела в опыте
21) Начал спрашивать более редкие задачи и отличающиеся по условию от Leetcode
22) Собеседовал кандидата, который меня пытался впечатлить знанием C++
23) Кандидат решил оптимально все задачи, но я его зареджектил
24) Собеседовал кандидата, не понял, как он на full loop попал
25) Кандидат из Microsoft
26) Кандидаты из Microsoft пошли кучно
27) Угадайте с одного раза, кандидата из какой компании я собеседовал сегодня.
28) Не прошло и дня, как я снова собеседовал кандидата из Майкрософт..., Часть 2.
👍10🔥83
Подборка постов в канале про релокацию, жизнь и работу в Европе

Обновление подборки.

Релокация:
1) Планируете переехать в другую страну для жизни и работы?
2) Плюсы работы и жизни в Лондоне
3) Минусы жизни в Великобритании
4) Через сколько лет можно получить гражданство разных стран Европы?
5) Небольшая подборка компаний в Европе, которые нанимают людей из постсоветского пространства
6) Что лучше: большая зп в абсолютных значениях или лучше меньше зарабатывать и жить в стране с меньшими ценами?
7) Стоимость жизни в Лондоне и сколько нужно зарабатывать, чтобы хорошо тут жить
8) Что сейчас происходит на рынке труда программистов США и Европы?
9) Мои первые впечатления, когда я начал работать в Европе, Часть 2
10) Global Talent Visa UK
11) Число вакансий в tech индустрии медленно, но растет
12) Ситуация с хайрингом в Big Tech (и не только) в Европе и США на январь 2024
13) Мои первые впечатления, когда я начал работать в FAANG
14) Стоимость покупки недвижимости в Лондоне vs Москве
15) Что сейчас с хайрингом в FAANG?
16) Как FAANG компании делают бэкграуд чек
17) О недвижимости в UK
18) The Leasehold and Freehold Reform Act 2024
19) Расходы на жизнь в Лондоне
20) Рейтинг городов по уровню преступности
21) Плюсы жизни в Люксембурге
22) Минусы жизни в Люксембурге
23) Non-lucrative residence visa (NLV)
24) В UK намечаются изменения миграционного законодательства
👍8🔥72
Подборка постов в канале про онбординг, уровни, LLM vs программист и прочее

Онбординг:
1) С какими сложностями я столкнулся на своей первой работе программистом?, Часть 2
2) Как быстро адаптироваться в команде и компании?, Часть 2
3) Что не стоит делать при онбординге в новую компанию?
4) Team Selection и on-boarding в Facebook
5) Как устроен onboarding процесс в Amazon?, Часть 2

Уровни:
1) Чем отличается Junior от Middle программиста?, Часть 2.
2) Чем отличается Senior программист от Middle?
3) Странные тайтлы в инвест банках
4) Распределение по уровням в FAANG
5) Структура FAANG/Big Tech компании
6) Какие бы советы я дал Junior программистам, чтобы быстрее стать Middle разработчиками?
7) Какие бы советы я дал Middle программистам, чтобы быстрее стать Senior разработчиками?, Часть 2.
8) Неоднозначность в тайтлах выше Senior
9) Как проще получить повышение? Сменой работы или промоушен на текущем месте работы?
10) Сложности начала работы в FAANG с позиции Senior

Прочее:
1) История о том, как я провалил собеседование в Google.
2) С чего начать поиск работы в IT?
3) Минусы работы в IT/программистом
4) Стоит ли целенаправленно готовиться к собеседованию в FAANG, если у вас нет технического образования и вы учитесь на курсах и хотите стать программистом?
5) С чего начать изучать программирование в 2023?
6) Что я думаю про курсы по программированию, которые рекламируют на каждом углу?
7) Подборка фильмов, сериалов и документалок о программистах, BigTech, стартапах и их основателях
8) Примеры внутренних тулов и библиотек Facebook, которые стали общедоступными
9) Нобелевскую премию по химии в 2024 году получил сотрудник Google
10) Кофе и продуктивность
11) Стоит ли поступать в 2025 году в технические вузы c целью стать программистом?, Часть 2.
12) Среди сотрудников FAANG/Big Tech сейчас популярен выход на пенсию до 40
13) FIRE movement
14) Минутка ностальгии: первый опыт программирования, книга, среда разработки

LLM vs программисты
1) Заменяют ли программистов в топ компаниях на нейросети?, Часть 2
2) Заменят ли программистов нейросети в ближайшем будущем? Update, Часть 2
3) Реальный импакт LLM на программистов
4) Почему все Big Tech/FAANG компании делают AI
5) Прошло уже 2 года с момента релиза ChatGPT
6) Че там по замене программистов AI?, Часть 2.
7) Andrej Karpathy выпустил новое видео с разбором того, как работает ChatGPT
8) Бокал вина
9) Очередное видео от одного из основателей Open AI, про использование LLM
10) Свежее интервью Yann LeCun
11) Интервью Demis Hassabis
12) On the Biology of a Large Language Model
13) Почему в IT-секторе в последние 3 года столько сокращений?
👍9🔥73
Подборка вопросов и ответов для подготовки к собеседованию на Java программиста
#java #interview #собеседование

Обновление подборки из статей, которые я уже написал и опубликовал в этом канале.

Общие вопросы:
1) Методы класса Object
2) Иерархия и типы исключений
3) GC
4) Сравнение строк в Java

Коллекции:
5) HashMap
6) ArrayList vs LinkedList
7) Иерархия коллекций в Java
8) Иерархия Map
9) Maximum ArraySize
10) Как внутри устроен HashSet?

Многопоточность:
11) Перевод между банковскими аккаунтами (dead-lock).
12) Ping-Pong (wait-notify).
13) Приостанавливаемый поток.
14) Подборка вопросов по многопоточности
15) Напечатать последовательность чисел при помощи нескольких потоков на Java.
16) ConcurrentModificationException
17) Thread Safe Singleton
18) Обедающие философы
19) Реализовать потокобезопасную блокирующую очередь на Java ограниченного размера
20) Реализовать потокобезопасный неблокирующий стек на Java
21) Daemon потоки
22) Является ли immutable class в Java Thread safe?
23) Implicit Lock Reentrancy
24) Java Memory Model и happens-before
25) ConcurrentHashMap vs Collections.synchronizedMap vs Hashtable vs HashMap
26) Реализовать потокобезопасную неблокирующую очередь на Java
27) Вопрос с собеседования на Java программиста: Как выполнить код в отдельном потоке в Java?

SQL:
28) Типы SQL joins
29) Плюсы и минусы индексов

Spring:
30) Что такое @Autowire в Spring? Как его использовать и как он работает?

Бонус:
31) Логическая задача про лошадей. Решение: тут
29👍6🔥6
Подборка алгоритмических задач с решениями и описание алгоритмов уже опубликованных в этом канале
#interview #собеседование #алгоритмы #подборка

Обновление подборки.

Общие статьи:
1) Как выбрать язык программирования для алгоритмического собеседования?
2) Как решать алгоритмические задачи на подготовке, чтобы это было эффективно
3) Как не забыть решения задач и алгоритмы
4) Шпаргалка по основным алгоритмам для алгоритмического собеседования
5) Шпаргалка по Java для алгоритмического собеседования
6) Подборка из easy задач для начала подготовки к алгоритмическому собеседованию.
7) Сбалансированная подборка из 100 задач для подготовки к алгоритмическому собеседованию.
8) Видео: mock собеседование по алгоритмам в FAANG

Two Pointers:
1) Проверка на палиндром.
2) Усложненная версия проверки на палиндром.
3) Merge Two Sorted Arrays
4) Самая длинная палиндромная подстрока
5) Удалить дубликаты в отсортированном массиве
6) Видео: Merge Intervals
7) Merge Strings Alternately
HashTable:
8) Two Sum
9) Видео: Сгруппировать анаграммы
10) Задача с собеседования в Google. 939. Minimum Area Rectangle
11) Задача с собеседования в Microsoft: Самое большое палиндромное число
Stack:
12) Проверить скобочное выражение.
13) Удалить минимальное число скобок, чтобы сделать скобочное выражение правильным
Sorting:
14) Первый пропущенный положительный элемент массива
LinkedList:
15) Удалить n-й элемент с конца в односвязном списке
16) Deep Copy списка со ссылкой на случайный элемент.
BinarySearch:
Описание алгоритма BinarySearch.
17) Пропущенный элемент в отсортированном массиве.
18) Пиковый элемент.
19) Число итераций в бинарном поиске.
20) Первая плохая версия
DFS:
Описание алгоритма DFS.
22) Flood Fill.
22) Видео: Число Островов
BFS:
Описание алгоритма BFS.
23) Проверить полноту дерева.
24) Обход дерева по уровням.
25) Remove Invalid Parentheses
Топологическая сортировка:
Топологическая сортировка
26) Видео: Top k elements
Binary Tree:
Алгоритмы обхода двоичного дерева
27) Invert Binary Tree
28) BranchSums
29) Максимальная высота дерева
30) Максимальная сумма пути в бинарном дереве
31) Сумма элементов бинарного дерева поиска в диапазоне значение
32) Удалить вершины в дереве и вернуть оставшийся лес/forest
33) Вертикальный обход бинарного дерева
Dynamic Programming:
Основные этапы решения задач на динамическое программирование Top-Down методом
34) Top Down подход на примере задачи про ступеньки
35) Задача на динамическое программирование. Разделение на слова.
36) Количество дождевой воды
37) Bottom-up подход: разменять деньги
38) Видео: Longest Increasing Subsequence
39) Лучшее время для покупки и продажи акции
40) Maximal Square
41) Замощение домино и тримино
Sliding Window
42) Contains Duplicate ||
43) Наибольшая подстрока без повторяющихся символов.
Arrays, frequencies, bits manipulation
44) Valid Sudoku
👍10🔥93
👍12🔥98