This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Ходил на обед сегодня в офис Google. Меня бывший коллега пригласил. Офис похож на наш, но приколюх побольше. Хотя столовая меньше.
👍24💘2🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Купил себе стул домой за £1372 (около 155 тысяч рублей) и стол за ~£1000. В офисе у нас такие, очень удобные. Буду собирать стол.
👍21🥴6🔥3🤔1🙈1💘1
Задача с собеседования в Microsoft: Наибольшая подстрока без повторяющихся символов.
Задача. Дана строка, нужно найти наибольшую подстроку без повторяющихся символов.
Пример 1:
Input: s = "abcabcbb"
Output: 3
Наибольшая подстрока без повторяющихся символов: "abc"
Пример 2:
Input: s = "bbbbb"
Output: 1
Input: s = "pwwkew"
Output: 3
Наибольшая подстрока без повторяющихся символов: "wke"
Ссылка на leetcode: https://leetcode.com/problems/longest-substring-without-repeating-characters
Решение описал тут: Задача с собеседования в Microsoft: Наибольшая подстрока без повторяющихся символов.
Задача. Дана строка, нужно найти наибольшую подстроку без повторяющихся символов.
Пример 1:
Input: s = "abcabcbb"
Output: 3
Наибольшая подстрока без повторяющихся символов: "abc"
Пример 2:
Input: s = "bbbbb"
Output: 1
Input: s = "pwwkew"
Output: 3
Наибольшая подстрока без повторяющихся символов: "wke"
Ссылка на leetcode: https://leetcode.com/problems/longest-substring-without-repeating-characters
Решение описал тут: Задача с собеседования в Microsoft: Наибольшая подстрока без повторяющихся символов.
LeetCode
Longest Substring Without Repeating Characters - LeetCode
Can you solve this real interview question? Longest Substring Without Repeating Characters - Given a string s, find the length of the longest substring without duplicate characters.
Example 1:
Input: s = "abcabcbb"
Output: 3
Explanation: The answer…
Example 1:
Input: s = "abcabcbb"
Output: 3
Explanation: The answer…
👍8🔥4
Какие бы советы я дал Middle программистам, чтобы быстрее стать Senior разработчиками?
Смотрите также: Чем отличается Senior программист от Middle?, Какие бы советы я дал Junior программистам, чтобы быстрее стать Middle разработчиками?
1) Станьте экспертом в какой-либо важной компоненте/функционале в рамках вашей команды. Под этим я подразумеваю, что вы разбираетесь в том или ином важном функционале, которым занимается ваша команда - лучше всех остальных. Это может быть функционал/компонента, которую разработали вы, в рамках работы в команде, так и компонента, разработанная до вас, но вы теперь person-to-go по всем вопросам, связанным с этой компонентой.
2) Найдите и сделайте проект, который будет соответствовать уровню Senior по мнению людей, принимающих решение о промоушене. Обычно, ключевым человеком в промоушене является ваш менеджер. Поэтому поговорите с ним, какой проект, в случае его выполнения вами, может быть хорошим кейсом для промоушена. Если такой проект найдется, то вложите в него все ваши усилия и сделайте его в режиме вашего максимума.
3) Повысьте качество вашего кода и code review. Для этого читайте много кода от людей, которые пользуются уважением в вашей команде. Следите за их пул-реквестами и изменениями в коде, делайте код-ревью с целью обучения. Если в вашей команде установлены правила написания кода, изучите их и старайтесь им следовать. Также активно участвуйте в код-ревью, чтобы следить за качеством кода в вашей команде. Если таких стандартов нет, это хорошая возможность проявить инициативу: предложите обсудить их создание. Можно начать с прочтения книги «Clean Code» Роберта Мартина. Некоторые принципы из этой книги устарели или спорны, но многие остаются актуальными и полезными. Выберите подходящие принципы, обсудите их с коллегами, формально опишите во внутренних документах или на вики, и применяйте их на практике, в том числе при код-ревью.
4) Установите хорошие рабочие отношения с вашими stakeholders. Это могут быть команды, с которыми ваша компонента/функционал взаимодействует и есть интеграция/зависимость/связь между ними. Это могут быть люди, которые разбираются в бизнес задачах, которые ваша команда решает (PM, TMP, аналитики и т.д.). Это могут быть ваши прямые пользователи (как внешние, так и внутренние). Т.е. со всеми людьми, с которыми вам так или иначе придется взаимодействовать, чтобы эффективно решать задачи на Senior уровне в вашей команде. Не становитесь для них человеком, который их игнорирует или постоянно отбивается или их посылает. Станьте для них человеком, к которому они обращаются в первую очередь по вопросам связанным с функционалом, который делает ваша команда. При этом вам не обязательно говорить да, на все их хотелки. Станьте для них тем, кто предоставляет взвешенное и экспертное мнение по всем вопросам, так или иначе связанным с функционалом вашей команды. Кроме того, успех выполнения многих проектов на Senior уровне, будет зависеть от эффективности вашего взаимодействия с этими людьми.
5) Принимайте активное участие в планировании. Опираясь на ваши знания о текущем состоянии функционала команды, а также на пожелания стейкхолдеров (которые вы можете узнать при хороших отношениях с ними), вы можете придумать множество проектов и идей по улучшению, доработке и созданию новых полезных функций. Используйте это во время планирования вашего roadmap. Предлагайте свои идеи и расставляйте приоритеты. Сосредоточьтесь на самых важных проектах для команды.
6) При работе над проектом из пункта 2), декомпозируйте проект на несколько понятных частей, и часть отдайте более Junior разработчикам. Это позволит вам продемонстрировать скил - delivering through others. Постарайтесь более детально описать эти части и сделать их более понятными для менее опытных коллег. А также помогайте им и отвечайте на их вопросы. Следите, чтобы они делали свои части вовремя периодически узнавая статус и какие есть блокеры, с которыми вы можете помочь. Если такие блокеры есть - устраните их, а также расскажите, что вы сделали, чтобы их устранить. Это поможет расти вашим менее опытным коллегам.
Смотрите также: Чем отличается Senior программист от Middle?, Какие бы советы я дал Junior программистам, чтобы быстрее стать Middle разработчиками?
1) Станьте экспертом в какой-либо важной компоненте/функционале в рамках вашей команды. Под этим я подразумеваю, что вы разбираетесь в том или ином важном функционале, которым занимается ваша команда - лучше всех остальных. Это может быть функционал/компонента, которую разработали вы, в рамках работы в команде, так и компонента, разработанная до вас, но вы теперь person-to-go по всем вопросам, связанным с этой компонентой.
2) Найдите и сделайте проект, который будет соответствовать уровню Senior по мнению людей, принимающих решение о промоушене. Обычно, ключевым человеком в промоушене является ваш менеджер. Поэтому поговорите с ним, какой проект, в случае его выполнения вами, может быть хорошим кейсом для промоушена. Если такой проект найдется, то вложите в него все ваши усилия и сделайте его в режиме вашего максимума.
3) Повысьте качество вашего кода и code review. Для этого читайте много кода от людей, которые пользуются уважением в вашей команде. Следите за их пул-реквестами и изменениями в коде, делайте код-ревью с целью обучения. Если в вашей команде установлены правила написания кода, изучите их и старайтесь им следовать. Также активно участвуйте в код-ревью, чтобы следить за качеством кода в вашей команде. Если таких стандартов нет, это хорошая возможность проявить инициативу: предложите обсудить их создание. Можно начать с прочтения книги «Clean Code» Роберта Мартина. Некоторые принципы из этой книги устарели или спорны, но многие остаются актуальными и полезными. Выберите подходящие принципы, обсудите их с коллегами, формально опишите во внутренних документах или на вики, и применяйте их на практике, в том числе при код-ревью.
4) Установите хорошие рабочие отношения с вашими stakeholders. Это могут быть команды, с которыми ваша компонента/функционал взаимодействует и есть интеграция/зависимость/связь между ними. Это могут быть люди, которые разбираются в бизнес задачах, которые ваша команда решает (PM, TMP, аналитики и т.д.). Это могут быть ваши прямые пользователи (как внешние, так и внутренние). Т.е. со всеми людьми, с которыми вам так или иначе придется взаимодействовать, чтобы эффективно решать задачи на Senior уровне в вашей команде. Не становитесь для них человеком, который их игнорирует или постоянно отбивается или их посылает. Станьте для них человеком, к которому они обращаются в первую очередь по вопросам связанным с функционалом, который делает ваша команда. При этом вам не обязательно говорить да, на все их хотелки. Станьте для них тем, кто предоставляет взвешенное и экспертное мнение по всем вопросам, так или иначе связанным с функционалом вашей команды. Кроме того, успех выполнения многих проектов на Senior уровне, будет зависеть от эффективности вашего взаимодействия с этими людьми.
5) Принимайте активное участие в планировании. Опираясь на ваши знания о текущем состоянии функционала команды, а также на пожелания стейкхолдеров (которые вы можете узнать при хороших отношениях с ними), вы можете придумать множество проектов и идей по улучшению, доработке и созданию новых полезных функций. Используйте это во время планирования вашего roadmap. Предлагайте свои идеи и расставляйте приоритеты. Сосредоточьтесь на самых важных проектах для команды.
6) При работе над проектом из пункта 2), декомпозируйте проект на несколько понятных частей, и часть отдайте более Junior разработчикам. Это позволит вам продемонстрировать скил - delivering through others. Постарайтесь более детально описать эти части и сделать их более понятными для менее опытных коллег. А также помогайте им и отвечайте на их вопросы. Следите, чтобы они делали свои части вовремя периодически узнавая статус и какие есть блокеры, с которыми вы можете помочь. Если такие блокеры есть - устраните их, а также расскажите, что вы сделали, чтобы их устранить. Это поможет расти вашим менее опытным коллегам.
👍15
7) Участвуйте в менторинге ваших менее опытных коллег. Это может быть онбординг новых разработчиков в команду, проведения собеседований, придумывание проектов для интернов и их менеджмент. А также проактивная разблокировка других разработчиков. Вы можете узнавать, где они застряли и помогать им разблокироваться.
8) Презентуйте ваши результаты и результаты вашей команды. Найдите способ повысить вашу visibility в рамках вашего орга. Обсудите это с вашим менеджером. Это могут быть какие-то митинги, где презентуют какие-то результаты, описывают достижения, перед другими командами, более высокоуровневыми менеджерами.
8) Презентуйте ваши результаты и результаты вашей команды. Найдите способ повысить вашу visibility в рамках вашего орга. Обсудите это с вашим менеджером. Это могут быть какие-то митинги, где презентуют какие-то результаты, описывают достижения, перед другими командами, более высокоуровневыми менеджерами.
Telegram
FAANG Master
Чем отличается Senior программист от Middle?
Ранее я публиковал пост про отличие Junior от Middle: Чем отличается Junior от Middle программиста?
1) Самостоятельность. Ваша самостоятельность продолжает расти. Вы можете драйвить и овнить самые большие и…
Ранее я публиковал пост про отличие Junior от Middle: Чем отличается Junior от Middle программиста?
1) Самостоятельность. Ваша самостоятельность продолжает расти. Вы можете драйвить и овнить самые большие и…
👍15
Как проходили массовые сокращения(layoffs) в Facebook? Часть 1.
В Facebook были две волны сокращений. Первая в конце 2022 и вторая весной 2023. Причиной тому послужил чрезмерно высокий найм во время ковида и отсутствие ожидаемого роста revenue в постковид. В 2019-2021 годах компания наняла огромное число людей, в том числе на новые перспективные проекты(например, метаверс), которые пока не приносят никакой прибыли. При этом рост доходов был сильно меньше, чем рост расходов на новых сотрудников. Это привело к сокращению чистой прибыли, недовольству основных держателей акций(в основном, это хэдж фонды вроде blackrock) и резкому падению стоимости акций.
Чтобы сократить расходы, компания пошла на сокращения, в результате которых было уволено 25% всех сотрудников.
Какие были мои личные ощущения от процесса?
В первую волну сотрудники и менеджеры ничего не знали о готовящихся увольнениях. Об этом знало только высшее руководство и маленькая группа людей, кто этим занимался. Были только слухи, в том числе в сми. Но за пару дней до сокращений в Wall Street Journal появилась статья со всеми деталями, когда и сколько будут увольнять. Они даже знали точный час. В этот день никто не мог работать. Все сидели в страхе и ждали назначенного часа. Это сильно напоминало игру в кальмара на выбывание. В голове были разные мысли. Я был на визе и в случае увольнения нужно было срочно что-то придумывать, т.к. без работы виза перестает действовать за 60 дней. Если работу не находишь, нужно покинуть страну. А в Россию в 2022 ехать сильно не хотелось, особенно, учитывая статус компании в России. В итоге, я получил письмо, что меня сокращения не коснулись. В этот день я уже не работал, т.к. был полностью эмоционально истощен. Я пошел купил себе вина и напился.
Продолжение следует.
В Facebook были две волны сокращений. Первая в конце 2022 и вторая весной 2023. Причиной тому послужил чрезмерно высокий найм во время ковида и отсутствие ожидаемого роста revenue в постковид. В 2019-2021 годах компания наняла огромное число людей, в том числе на новые перспективные проекты(например, метаверс), которые пока не приносят никакой прибыли. При этом рост доходов был сильно меньше, чем рост расходов на новых сотрудников. Это привело к сокращению чистой прибыли, недовольству основных держателей акций(в основном, это хэдж фонды вроде blackrock) и резкому падению стоимости акций.
Чтобы сократить расходы, компания пошла на сокращения, в результате которых было уволено 25% всех сотрудников.
Какие были мои личные ощущения от процесса?
В первую волну сотрудники и менеджеры ничего не знали о готовящихся увольнениях. Об этом знало только высшее руководство и маленькая группа людей, кто этим занимался. Были только слухи, в том числе в сми. Но за пару дней до сокращений в Wall Street Journal появилась статья со всеми деталями, когда и сколько будут увольнять. Они даже знали точный час. В этот день никто не мог работать. Все сидели в страхе и ждали назначенного часа. Это сильно напоминало игру в кальмара на выбывание. В голове были разные мысли. Я был на визе и в случае увольнения нужно было срочно что-то придумывать, т.к. без работы виза перестает действовать за 60 дней. Если работу не находишь, нужно покинуть страну. А в Россию в 2022 ехать сильно не хотелось, особенно, учитывая статус компании в России. В итоге, я получил письмо, что меня сокращения не коснулись. В этот день я уже не работал, т.к. был полностью эмоционально истощен. Я пошел купил себе вина и напился.
Продолжение следует.
🤯32👍13🔥3😱2🍾2❤1🌚1🗿1
Как проходили массовые сокращения(layoffs) в Facebook? Часть 2.
Предыдущая часть: Как проходили массовые сокращения(layoffs) в Facebook? Часть 1.
Немного добавлю к настроениям в тот день. В статье в WSJ был указан конкретное время, когда будет объявлено о сокращениях. Все сидели и ждали указанное время. Боялись любой нотификации, любого нового сообщения или письма. При каждом уведомлении вздрагивали. В указанное время выходит пост от Марка Цукерберга про увольнения и начинается рассылка писем счастья. Затронуло ли вас это сокращение или нет. Тех кого затронуло - они лишались мгновенно доступа почти ко всем внутренним системам. Было чувство что тебя поставили у стенки и ты только ждешь выстрела...
Компенсации и что было с теми, кого это затронуло.
После того, как было объявлено о сокращениях, было несколько Q&A, в том числе с Марком, про то, что и почему происходит и что будет дальше. Всем уволенным дали большие компенсационные пакеты: 16 недель зп (4 месяца) + по 2 недели за каждый отработанный год. При этом вестинг акций, который должен быть через несколько дней остается в силе (акции будут выплачены). Также мед. страховка на всю семью продолжит действовать еще 6 месяцев. Также предоставляли консультации по визам и некоторую помощь в поиске работы. Но если честно, то это просто консультации, без практической пользы.
Тех кого уволили в Европейских офисах - официально они еще числились в компании долгое время, но не работали. В Европе нельзя уволить одним днем. Там начался так называемый период консультаций. Это дало еще пару месяцев на поиск работы и с определением с планами. Некоторые даже смогли остаться в компании в результате этих консультаций, но это были единицы.
Кого затронула первая волна сокращений?
Руководство старалось по максимуму оставить инженеров. Они сильно урезали раздутый за время ковида отдел по рекрутингу, найму и онбордингу. Т.к. все наполеоновские планы по найму были уже не актуальны. В результате на рынке труда оказалось гигантское число рекрутеров. Инженеров тоже подрезали. Но не равномерно. Приоритетные направления сокращали меньше, второстепенные сильнее. Перфоманс сотрудника, его опыт и число лет в компании не сильно учитывался. Поэтому я видел как увольняли буквально суперзвезд программирования, а оставляли средних или посредственных, если они были в приоритетных по мнению компании отделах.
Как первая волна сокращений повлияла на меня?
Я пережил сильный стресс. Я осознал, насколько шатко мое положение, особенно, зависимость моей визы от работодателя. Я осознал, что работодатель уволит вас даже не моргнув глазом, если под угрозой прибыль компании или стоимость акций. Нет незаменимых людей. Если в FAANG работает топ 1% программистов, а я видел как увольняли топ 1% из этих топ 1%. Поэтому все эти разговоры про корпоративную культуру и т.д. это просто ниочем. Что вы должны преследовать свои собственные цели, а не цели компании. Компания избавится от вас при минимальных трудностях.
После этого я ускорил получение другого типа визы - Global Talent. Это отвязывает вас от работодателя и вы можете жить в стране даже без работы.
Продолжение следует.
Предыдущая часть: Как проходили массовые сокращения(layoffs) в Facebook? Часть 1.
Немного добавлю к настроениям в тот день. В статье в WSJ был указан конкретное время, когда будет объявлено о сокращениях. Все сидели и ждали указанное время. Боялись любой нотификации, любого нового сообщения или письма. При каждом уведомлении вздрагивали. В указанное время выходит пост от Марка Цукерберга про увольнения и начинается рассылка писем счастья. Затронуло ли вас это сокращение или нет. Тех кого затронуло - они лишались мгновенно доступа почти ко всем внутренним системам. Было чувство что тебя поставили у стенки и ты только ждешь выстрела...
Компенсации и что было с теми, кого это затронуло.
После того, как было объявлено о сокращениях, было несколько Q&A, в том числе с Марком, про то, что и почему происходит и что будет дальше. Всем уволенным дали большие компенсационные пакеты: 16 недель зп (4 месяца) + по 2 недели за каждый отработанный год. При этом вестинг акций, который должен быть через несколько дней остается в силе (акции будут выплачены). Также мед. страховка на всю семью продолжит действовать еще 6 месяцев. Также предоставляли консультации по визам и некоторую помощь в поиске работы. Но если честно, то это просто консультации, без практической пользы.
Тех кого уволили в Европейских офисах - официально они еще числились в компании долгое время, но не работали. В Европе нельзя уволить одним днем. Там начался так называемый период консультаций. Это дало еще пару месяцев на поиск работы и с определением с планами. Некоторые даже смогли остаться в компании в результате этих консультаций, но это были единицы.
Кого затронула первая волна сокращений?
Руководство старалось по максимуму оставить инженеров. Они сильно урезали раздутый за время ковида отдел по рекрутингу, найму и онбордингу. Т.к. все наполеоновские планы по найму были уже не актуальны. В результате на рынке труда оказалось гигантское число рекрутеров. Инженеров тоже подрезали. Но не равномерно. Приоритетные направления сокращали меньше, второстепенные сильнее. Перфоманс сотрудника, его опыт и число лет в компании не сильно учитывался. Поэтому я видел как увольняли буквально суперзвезд программирования, а оставляли средних или посредственных, если они были в приоритетных по мнению компании отделах.
Как первая волна сокращений повлияла на меня?
Я пережил сильный стресс. Я осознал, насколько шатко мое положение, особенно, зависимость моей визы от работодателя. Я осознал, что работодатель уволит вас даже не моргнув глазом, если под угрозой прибыль компании или стоимость акций. Нет незаменимых людей. Если в FAANG работает топ 1% программистов, а я видел как увольняли топ 1% из этих топ 1%. Поэтому все эти разговоры про корпоративную культуру и т.д. это просто ниочем. Что вы должны преследовать свои собственные цели, а не цели компании. Компания избавится от вас при минимальных трудностях.
После этого я ускорил получение другого типа визы - Global Talent. Это отвязывает вас от работодателя и вы можете жить в стране даже без работы.
Продолжение следует.
Telegram
FAANG Master
Как проходили массовые сокращения(layoffs) в Facebook? Часть 1.
В Facebook были две волны сокращений. Первая в конце 2022 и вторая весной 2023. Причиной тому послужил чрезмерно высокий найм во время ковида и отсутствие ожидаемого роста revenue в постковид.…
В Facebook были две волны сокращений. Первая в конце 2022 и вторая весной 2023. Причиной тому послужил чрезмерно высокий найм во время ковида и отсутствие ожидаемого роста revenue в постковид.…
👍28🔥6👎1🤔1😢1🙏1🤨1🗿1
Как устроено System Design Interview в FAANG?
System Design Interview (SDI) встречается на все позиции программистов, кроме интернов. Для интернов есть только собеседования по алгоритмам. Для всех других позиций у вас будет хотя бы одно SDI.
Оно встречается только на full loop. На скрине будет только собеседование по алгоритмам и иногда будет еще поведенческая часть. На full loop у вас будет поведенческая часть, несколько собесов по алгоритмам и хотя бы одно по System Design.
Для примера, так выглядят собесы в Amazon и Facebook:
Amazon:
Screen - online assessment (онлайн тест на две алгоритмические задачи). Если все ок - full loop, если все плохо - reject, если что-то между могут назначить собеседование с человеком на такие же алгосы.
Full Loop: 3 coding + LP собеседования (три собеседования по 45 минут. На каждом одна задача на алгосы и поведенческая часть на Amazon Leadership Principles). И одно на System Design + LP.
Facebook:
Screen - 45-минутное собеседование по алгосам с человеком на 2 задачи.
Full Loop: 2 собеседования по алгосам, такие же как и Screen, 1 поведенческое, 1 по System Design.
Для уровня Staff Software Engineer будет 2 собеседования по System Design.
Для Junior уровня SDI немного отличается. Оно проще. Вас могут попросить сделать ООП дизайн классов для какой-то задачи.
Для уровней начиная с Middle вас попросят задизайнить какую-нибудь широко известную систему вроде месенджера, новостную ленту, систему бронирования билетов и т.д.
На содержательную часть собеседования у вас будет минут 40.
Т.к. вопрос очень общий, то на него нет одного правильного ответа. А в силу ограниченного времени, вам надо четко установить scope задачи.
Поэтому само собеседования я бы разделил на 6 основных этапов:
1) Получение задачи. Если вас попросили задизайнить какую-то систему, а вы вообще не в курсе, что это такое, то это нужно уточнить сразу. Но обычно, вы будете знакомы с тем, что вас попросят сделать. Вроде задизайнить youtube и т.д. Но если вы не уверены, что это такое, то лучше выяснить сразу.
2) Уточняем и формулируем функциональные требования. Обычно, у системы, которую вас просят задизайнить огромное число функций. Но из-за ограниченного времени, вам скорее всего нужно задизайнить 1-3 ключевые функции. Какие именно, нужно уточнить у интервьюера, если это не было понятно на этапе получения задачи. Даже если вы это поняли, то стоит сформулировать эти требования явным образом, что нам надо поддержать ту или иную функциональность.
3) Уточняем, делаем асампшены по поводу нефункциональных требований. Делаем оценку требуемых ресурсов. Сделайте предположение и согласуйте это с интервьюером по числу пользователей, дневной активности и т.д. На основе этих данных сделайте оценку требуемых ресурсов: число серверов, дискового пространства, требования к пропускной способности сети и т.д. Это нужно сделать, чтобы понимать масштаб компонент. Т.к. соц сеть на 100 пользователей и 3 миллиарда - это два разных приложения.
4) Делаем high-level design. Рисуем диаграмму в виде квадратов, соединенных стрелочками с основными компонентами. Поясняем зачем и почему нам нужна та или иная компонента. Проходим по дизайну и проверяем, что он покрывает все требования.
5) Обсуждаем trade-offs. У каждого подхода есть свои плюсы и минусы. Если вам в голову приходят разные варианты дизайна, реализации тех или иных компонент или использования тех или иных технологий (SQL vs. NoSQL, RPC vs REST vs GraphQL vs Websocket, In-Memory Cache vs NoSQL) то обсудите эти варианты и какие плюсы и минусы у этих подходов и почему вы в итоге выбрали то, что выбрали.
6) Делаем детальный дизайн. В рамках обсуждения с интервьюером, вас могут попросить раскрыть более детально ту или иную часть дизайна. Как вы будете партиционировать данные, какие у вас будут таблицы в базе, как у вас будет распределятся нагрузка, как будет работать система при отказе той или иной компоненты. Проверьте, что ваш дизайн удовлетворяет нефункциональным требованиям (обеспечивает масштабирование, fault tolerance, resilience и т.д.).
System Design Interview (SDI) встречается на все позиции программистов, кроме интернов. Для интернов есть только собеседования по алгоритмам. Для всех других позиций у вас будет хотя бы одно SDI.
Оно встречается только на full loop. На скрине будет только собеседование по алгоритмам и иногда будет еще поведенческая часть. На full loop у вас будет поведенческая часть, несколько собесов по алгоритмам и хотя бы одно по System Design.
Для примера, так выглядят собесы в Amazon и Facebook:
Amazon:
Screen - online assessment (онлайн тест на две алгоритмические задачи). Если все ок - full loop, если все плохо - reject, если что-то между могут назначить собеседование с человеком на такие же алгосы.
Full Loop: 3 coding + LP собеседования (три собеседования по 45 минут. На каждом одна задача на алгосы и поведенческая часть на Amazon Leadership Principles). И одно на System Design + LP.
Facebook:
Screen - 45-минутное собеседование по алгосам с человеком на 2 задачи.
Full Loop: 2 собеседования по алгосам, такие же как и Screen, 1 поведенческое, 1 по System Design.
Для уровня Staff Software Engineer будет 2 собеседования по System Design.
Для Junior уровня SDI немного отличается. Оно проще. Вас могут попросить сделать ООП дизайн классов для какой-то задачи.
Для уровней начиная с Middle вас попросят задизайнить какую-нибудь широко известную систему вроде месенджера, новостную ленту, систему бронирования билетов и т.д.
На содержательную часть собеседования у вас будет минут 40.
Т.к. вопрос очень общий, то на него нет одного правильного ответа. А в силу ограниченного времени, вам надо четко установить scope задачи.
Поэтому само собеседования я бы разделил на 6 основных этапов:
1) Получение задачи. Если вас попросили задизайнить какую-то систему, а вы вообще не в курсе, что это такое, то это нужно уточнить сразу. Но обычно, вы будете знакомы с тем, что вас попросят сделать. Вроде задизайнить youtube и т.д. Но если вы не уверены, что это такое, то лучше выяснить сразу.
2) Уточняем и формулируем функциональные требования. Обычно, у системы, которую вас просят задизайнить огромное число функций. Но из-за ограниченного времени, вам скорее всего нужно задизайнить 1-3 ключевые функции. Какие именно, нужно уточнить у интервьюера, если это не было понятно на этапе получения задачи. Даже если вы это поняли, то стоит сформулировать эти требования явным образом, что нам надо поддержать ту или иную функциональность.
3) Уточняем, делаем асампшены по поводу нефункциональных требований. Делаем оценку требуемых ресурсов. Сделайте предположение и согласуйте это с интервьюером по числу пользователей, дневной активности и т.д. На основе этих данных сделайте оценку требуемых ресурсов: число серверов, дискового пространства, требования к пропускной способности сети и т.д. Это нужно сделать, чтобы понимать масштаб компонент. Т.к. соц сеть на 100 пользователей и 3 миллиарда - это два разных приложения.
4) Делаем high-level design. Рисуем диаграмму в виде квадратов, соединенных стрелочками с основными компонентами. Поясняем зачем и почему нам нужна та или иная компонента. Проходим по дизайну и проверяем, что он покрывает все требования.
5) Обсуждаем trade-offs. У каждого подхода есть свои плюсы и минусы. Если вам в голову приходят разные варианты дизайна, реализации тех или иных компонент или использования тех или иных технологий (SQL vs. NoSQL, RPC vs REST vs GraphQL vs Websocket, In-Memory Cache vs NoSQL) то обсудите эти варианты и какие плюсы и минусы у этих подходов и почему вы в итоге выбрали то, что выбрали.
6) Делаем детальный дизайн. В рамках обсуждения с интервьюером, вас могут попросить раскрыть более детально ту или иную часть дизайна. Как вы будете партиционировать данные, какие у вас будут таблицы в базе, как у вас будет распределятся нагрузка, как будет работать система при отказе той или иной компоненты. Проверьте, что ваш дизайн удовлетворяет нефункциональным требованиям (обеспечивает масштабирование, fault tolerance, resilience и т.д.).
👍18🔥5
Также могут быть дополнительные вопросы, как будет эволюционировать ваша система, если потребуется добавить новую функциональность или число пользователей будет расти.
👍4🔥1
Примеры, задач с SDI и решений к ним, которые я уже публиковал в этом канале.
Design Web Crawler
Дизайн Uber/Яндекс Такси
Дизайн мессенджера Telegram
Дизайн Новостной ленты соцсети типа Twitter или Facebook
Дизайн Google Maps
Design Web Crawler
Дизайн Uber/Яндекс Такси
Дизайн мессенджера Telegram
Дизайн Новостной ленты соцсети типа Twitter или Facebook
Дизайн Google Maps
DEV Community
Design Web Crawler
Задача. Сделать дизайн Web Crawler’а. Решение. Web Crawler это бот, который...
👍22🔥2❤1
Примеры внутренних тулов и библиотек Facebook, которые стали общедоступными
Я неоднократно писал, что одной из особенностей работы в FAANG компаниях, является использование внутренних тулов, которые вы больше нигде не встретите. Это библиотеки, фреймворки, базы данных, системы контроля версий, таск тулы, тулы для code review и т.д.
Иногда, некоторые из этих проектов становятся общедоступными. Многие внутренние инфраструктурные технологии Amazon в последствии стали AWS. В Facebook нет своего клауда для внешних клиентов, но есть много внутренних технологий, которые стали общедоступными и open source.
Некоторые примеры, про которые вы возможно слышали или даже использовали:
1) React JS - библиотека JS для создания UI
2) Apache Hive - data warehouse, база данных для работы с Big Data
3) Presto - распределенный SQL движок для работы с Big Data
4) PyTorch - библиотека для ML, используется при создании всех современных моделей AI
5) Llama - open source LLM
6) RocksDB - key-value база
7) GraphQL
И много много других проектов: https://opensource.fb.com/projects.
И еще больше проектов, которые остаются закрытыми.
Я неоднократно писал, что одной из особенностей работы в FAANG компаниях, является использование внутренних тулов, которые вы больше нигде не встретите. Это библиотеки, фреймворки, базы данных, системы контроля версий, таск тулы, тулы для code review и т.д.
Иногда, некоторые из этих проектов становятся общедоступными. Многие внутренние инфраструктурные технологии Amazon в последствии стали AWS. В Facebook нет своего клауда для внешних клиентов, но есть много внутренних технологий, которые стали общедоступными и open source.
Некоторые примеры, про которые вы возможно слышали или даже использовали:
1) React JS - библиотека JS для создания UI
2) Apache Hive - data warehouse, база данных для работы с Big Data
3) Presto - распределенный SQL движок для работы с Big Data
4) PyTorch - библиотека для ML, используется при создании всех современных моделей AI
5) Llama - open source LLM
6) RocksDB - key-value база
7) GraphQL
И много много других проектов: https://opensource.fb.com/projects.
И еще больше проектов, которые остаются закрытыми.
Wikipedia
React (software)
JavaScript library for building user interfaces
👍10
Как проходили массовые сокращения(layoffs) в Facebook? Часть 3.
Предыдущие части:
Как проходили массовые сокращения(layoffs) в Facebook? Часть 1.
Как проходили массовые сокращения(layoffs) в Facebook? Часть 2.
И в завершении темы layoffs. После первой волны сокращений, акции компании пошли вверх. На следующем перфоманс ревью нам дали много акций, для компенсации падения стоимости акций до этого. Эти акции, в последствии, выросли в цене в 3 раза. На этом, казалось, что кризис пройден.
Но весной 2023 последовала новая волна массовых сокращений. В этот раз она шла в три этапа и было сильно больше информации, какие роли и отделы заденет. Но все же не было информации по конкретным людям вплоть до самого дня X. Сокращения разбили на три месяца. В начале сократили еще не инженерные позиции. Потом очень сильно порезали позиции Data Analyst, TPM/PM, Data Scientists. И наконец разработчиков. В Лондоне полностью закрыли команды, которые относятся к Instagram. Теперь они только в США. Из инженеров сильно порезали Junior и Middle разрабов, их осталось очень мало в компании. Кроме того, уволили всех кто был в bootcamp на позициях ниже Senior. По итогу, многие люди просидели в bootcamp, не присоединившись к команде в течении почти года и были уволены. Также порезали менеджеров. Начали делать иерархию компании более плоской. Чтобы было меньше уровней репортинга между разрабом и гендиром. Многие менеджеры перешли на позиции разработчиков. Хотя надо сказать, что это продлилось не долго. Через полгода снова начали образовываться новые уровни менеджеров и репортинг чейн снова вырос. По факту, уплощения компании не случилось. Из-за телодвижений с уплощением и обратно было много перетасовок команд и людей между ними.
Все это повлияло на чувство Job Security и на культуру в компании не в лучшую сторону. Когда заканчивалась очередная волна сокращений и тебя не увольняли, то было только чувство снятия напряжения, но мотивации и воодушевления это не добавляло. В будущем все эти злоключения щедро компенсировались ростом акций и люди заработали много денег. Но моральное состояние компании в эти годы уже сильно другое.
Я ко второй волне получил Global Talent визу, а еще через полгода - ВНЖ. Поэтому потенциальное увольнение было мне уже не так страшно.
Пишите, что вы думаете об этом. Проходили ли вы сокращения, как на вас это повлияло.
Предыдущие части:
Как проходили массовые сокращения(layoffs) в Facebook? Часть 1.
Как проходили массовые сокращения(layoffs) в Facebook? Часть 2.
И в завершении темы layoffs. После первой волны сокращений, акции компании пошли вверх. На следующем перфоманс ревью нам дали много акций, для компенсации падения стоимости акций до этого. Эти акции, в последствии, выросли в цене в 3 раза. На этом, казалось, что кризис пройден.
Но весной 2023 последовала новая волна массовых сокращений. В этот раз она шла в три этапа и было сильно больше информации, какие роли и отделы заденет. Но все же не было информации по конкретным людям вплоть до самого дня X. Сокращения разбили на три месяца. В начале сократили еще не инженерные позиции. Потом очень сильно порезали позиции Data Analyst, TPM/PM, Data Scientists. И наконец разработчиков. В Лондоне полностью закрыли команды, которые относятся к Instagram. Теперь они только в США. Из инженеров сильно порезали Junior и Middle разрабов, их осталось очень мало в компании. Кроме того, уволили всех кто был в bootcamp на позициях ниже Senior. По итогу, многие люди просидели в bootcamp, не присоединившись к команде в течении почти года и были уволены. Также порезали менеджеров. Начали делать иерархию компании более плоской. Чтобы было меньше уровней репортинга между разрабом и гендиром. Многие менеджеры перешли на позиции разработчиков. Хотя надо сказать, что это продлилось не долго. Через полгода снова начали образовываться новые уровни менеджеров и репортинг чейн снова вырос. По факту, уплощения компании не случилось. Из-за телодвижений с уплощением и обратно было много перетасовок команд и людей между ними.
Все это повлияло на чувство Job Security и на культуру в компании не в лучшую сторону. Когда заканчивалась очередная волна сокращений и тебя не увольняли, то было только чувство снятия напряжения, но мотивации и воодушевления это не добавляло. В будущем все эти злоключения щедро компенсировались ростом акций и люди заработали много денег. Но моральное состояние компании в эти годы уже сильно другое.
Я ко второй волне получил Global Talent визу, а еще через полгода - ВНЖ. Поэтому потенциальное увольнение было мне уже не так страшно.
Пишите, что вы думаете об этом. Проходили ли вы сокращения, как на вас это повлияло.
Telegram
FAANG Master
Как проходили массовые сокращения(layoffs) в Facebook? Часть 1.
В Facebook были две волны сокращений. Первая в конце 2022 и вторая весной 2023. Причиной тому послужил чрезмерно высокий найм во время ковида и отсутствие ожидаемого роста revenue в постковид.…
В Facebook были две волны сокращений. Первая в конце 2022 и вторая весной 2023. Причиной тому послужил чрезмерно высокий найм во время ковида и отсутствие ожидаемого роста revenue в постковид.…
❤11👍10
Советы по написанию резюме для FAANG, и не только
Чтобы попасть на собес в FAANG, нужно или, чтобы вас порекомендовали действующие сотрудники, или к вам рекрутер пришел сам, или при подаче ваше резюме было лучше большинства других. Но даже если вас рекомендуют, то ваше резюме сначала в любом случае посмотрят.
При самостоятельной подаче, ваше резюме будет парсить и смотреть автоматическая система, поэтому резюме нужно оптимизировать как под человека, так и под автоматическую систему. На что стоит обратить внимание при написании резюме?
1) Оно должно легко парситься. Желательно делать очень простую и понятную структуру. Не надо всякие сайд бары, фотографии, ворд-арты и т.д. ФИО, контактная информация, саммари, скилы, Job History, Education.
2) Делайте его коротким. 1-2 страницы достаточно. Если у вас меньше 10 лет опыта, не надо писать 2-3 страницы ваших хобби, пет проектов, похвальных листов от бабушки и т.д. Сделайте 1 страничку. Люди не будут долго вчитываться в ваше резюме. Это секунды или пара минут на просмотр. Обратят внимание на ключевые слова: список работодателей и должностей и название универа и специальность.
3) Список работодателей, должностей, название универа, специальность и степень (бакалавр, магистр) должны легко и за несколько секунд считываться при беглом просмотре. Это, вообще, ключевые параметры, которые влияют на выбор вашего резюме. Эта информация должна легко считываться.
4) Делайте упор на последние ~5 лет. Если вы учились в универе 15 лет назад, то просто укажите название, степень, специальность и годы. Не надо расписывать детали. Если вы только закончили универ, то можно уделить этому больше текста, описать темы дипломов, проекты, достижения, если они релевантны вакансии. Если у вас 20 лет опыта, более детально опишите достижения за последние лет 5, остальное очень коротко.
5) Пишите результаты и достижения, а не обязанности. При описании Job History, пишите название компании, должность, команду или отдел и ключевые достижения, релевантные вакансии. Сделал то-то с таким-то импактом. Если вы аплаитесь на Senior, то должны быть проекты, которые вы бы лидили и были ваши контрибьюшены в роудмап, планирование и менторинг. Если на Staff, как вы лидили команду из 8-10 человек, драйвили роудмап, лидили проекты с крос тим или крос орг импактом. Не пишите текст, вроде работал работу, писал код, ходил на митинги. Это очевидно и занимает место в резюме. Нужно писать ваши результаты и чтобы эти результаты соответствовали требованиям вакансии.
6) Не пишите нерелевантные хобби, без существенных достижений. Не надо писать, что вы любите музыку, путешествия и вкусно покушать. Какой у вас любимый цветок и кто вы по знаку зодиака. Но если у вас есть существенные достижения, хоть они и нерелевантные, то указать их стоит. Например, вы участвовали в олимпиаде(побрейкдансу, по бегу), пробежали марафон, поднялись на эверест, стали гроссмейстером по шахматам. Хоть это все не релевантно, это будет говорить про вашу одаренность и способность к наивысшим достижениям. Релевантные хобби я бы писал, только при существенных результатах. Писать, что-то типа, люблю программировать или читать книги по программированию в свободное время, смысла нет. А вот если вы достигли результатов на всемирно известных хакатонах, конкурсах проектов, олимпиадном программировании, написали книгу, выступали на конференциях, контрибьютили в open source и т.д. То это указать имеет смысл.
7) Сделайте ваше основное резюме, и кастомизируйте его под вакансию. Для каждой вакансии, сделайте копию вашего резюме и немного доработайте его под вакансию. Пройдитесь по требованиям вакансии и убедитесь, что у вас на все/большинство пунктов есть что-то в резюме: в достижениях в рамках работы, в скилах, в образовании и т.д.
8) Имейте профиль на linkedin и держите его актуальным. В России это не нужно, но если вы хотите работать в зарубежных компаниях, то это обязательно. Также укажите его в контактных данных в резюме. Есть шанс, что вам сам на linkedin напишет рекрутер из FAANG, если его заинтересует ваш профиль или у вас много контактов из FAANG.
Чтобы попасть на собес в FAANG, нужно или, чтобы вас порекомендовали действующие сотрудники, или к вам рекрутер пришел сам, или при подаче ваше резюме было лучше большинства других. Но даже если вас рекомендуют, то ваше резюме сначала в любом случае посмотрят.
При самостоятельной подаче, ваше резюме будет парсить и смотреть автоматическая система, поэтому резюме нужно оптимизировать как под человека, так и под автоматическую систему. На что стоит обратить внимание при написании резюме?
1) Оно должно легко парситься. Желательно делать очень простую и понятную структуру. Не надо всякие сайд бары, фотографии, ворд-арты и т.д. ФИО, контактная информация, саммари, скилы, Job History, Education.
2) Делайте его коротким. 1-2 страницы достаточно. Если у вас меньше 10 лет опыта, не надо писать 2-3 страницы ваших хобби, пет проектов, похвальных листов от бабушки и т.д. Сделайте 1 страничку. Люди не будут долго вчитываться в ваше резюме. Это секунды или пара минут на просмотр. Обратят внимание на ключевые слова: список работодателей и должностей и название универа и специальность.
3) Список работодателей, должностей, название универа, специальность и степень (бакалавр, магистр) должны легко и за несколько секунд считываться при беглом просмотре. Это, вообще, ключевые параметры, которые влияют на выбор вашего резюме. Эта информация должна легко считываться.
4) Делайте упор на последние ~5 лет. Если вы учились в универе 15 лет назад, то просто укажите название, степень, специальность и годы. Не надо расписывать детали. Если вы только закончили универ, то можно уделить этому больше текста, описать темы дипломов, проекты, достижения, если они релевантны вакансии. Если у вас 20 лет опыта, более детально опишите достижения за последние лет 5, остальное очень коротко.
5) Пишите результаты и достижения, а не обязанности. При описании Job History, пишите название компании, должность, команду или отдел и ключевые достижения, релевантные вакансии. Сделал то-то с таким-то импактом. Если вы аплаитесь на Senior, то должны быть проекты, которые вы бы лидили и были ваши контрибьюшены в роудмап, планирование и менторинг. Если на Staff, как вы лидили команду из 8-10 человек, драйвили роудмап, лидили проекты с крос тим или крос орг импактом. Не пишите текст, вроде работал работу, писал код, ходил на митинги. Это очевидно и занимает место в резюме. Нужно писать ваши результаты и чтобы эти результаты соответствовали требованиям вакансии.
6) Не пишите нерелевантные хобби, без существенных достижений. Не надо писать, что вы любите музыку, путешествия и вкусно покушать. Какой у вас любимый цветок и кто вы по знаку зодиака. Но если у вас есть существенные достижения, хоть они и нерелевантные, то указать их стоит. Например, вы участвовали в олимпиаде(по
7) Сделайте ваше основное резюме, и кастомизируйте его под вакансию. Для каждой вакансии, сделайте копию вашего резюме и немного доработайте его под вакансию. Пройдитесь по требованиям вакансии и убедитесь, что у вас на все/большинство пунктов есть что-то в резюме: в достижениях в рамках работы, в скилах, в образовании и т.д.
8) Имейте профиль на linkedin и держите его актуальным. В России это не нужно, но если вы хотите работать в зарубежных компаниях, то это обязательно. Также укажите его в контактных данных в резюме. Есть шанс, что вам сам на linkedin напишет рекрутер из FAANG, если его заинтересует ваш профиль или у вас много контактов из FAANG.
❤10🔥6😁1
Что сейчас с хайрингом в FAANG?
С момента наибольшего падения в конце 2022 и начале 2023, число вакансий выросло примерно на треть. Но оно не идет вверх, а зафиксировалось в одном положении (https://www.trueup.io/job-trend).
Facebook сейчас хайрит достаточно хорошо. Число сотрудников практически вернулось до состояния перед сокращениями. Только с начала года я провел более 40 собеседований.
Судя по Linkedin вот такое, примерно, число открытых вакансий в основные Big Tech компании (через / указал число вакансий с тайтлом Software Engineer):
Facebook: 2829/761
Google: 4427/1313
Apple: 0/0
Amazon: 31696/5446
Microsoft: 3854/1245
Netflix: 446/112
Uber: 949/290
Всего: 44201/9167
Текущие стартовые оферы в США для junior/middle/senior:
Facebook: $145k/$234k/$353k
Google: $149k/$222k/$306k
Amazon: $140k/$220k/$337k
Microsoft: $133k/$159k/$203k
Uber: $135k/$248k/$408k
Apple: $119k/$176k/$268k
Netflix: $173k/$263k/$442k
В Европе эти числа в 1.5-2 раза ниже, в зависимости от локации. Для Лондона это примерно в 1.5 раза.
Моя зп в этом году в Лондоне по текущим ценам на стоки: £509k/$663k
По итогу, рынок не на пике, но из ямы вылез.
С момента наибольшего падения в конце 2022 и начале 2023, число вакансий выросло примерно на треть. Но оно не идет вверх, а зафиксировалось в одном положении (https://www.trueup.io/job-trend).
Facebook сейчас хайрит достаточно хорошо. Число сотрудников практически вернулось до состояния перед сокращениями. Только с начала года я провел более 40 собеседований.
Судя по Linkedin вот такое, примерно, число открытых вакансий в основные Big Tech компании (через / указал число вакансий с тайтлом Software Engineer):
Facebook: 2829/761
Google: 4427/1313
Apple: 0/0
Amazon: 31696/5446
Microsoft: 3854/1245
Netflix: 446/112
Uber: 949/290
Всего: 44201/9167
Текущие стартовые оферы в США для junior/middle/senior:
Facebook: $145k/$234k/$353k
Google: $149k/$222k/$306k
Amazon: $140k/$220k/$337k
Microsoft: $133k/$159k/$203k
Uber: $135k/$248k/$408k
Apple: $119k/$176k/$268k
Netflix: $173k/$263k/$442k
В Европе эти числа в 1.5-2 раза ниже, в зависимости от локации. Для Лондона это примерно в 1.5 раза.
Моя зп в этом году в Лондоне по текущим ценам на стоки: £509k/$663k
По итогу, рынок не на пике, но из ямы вылез.
👍15❤5
Наткнулся на это резюме на linkedin. Недавно, я писал свои рекомендации по написанию резюме: https://t.me/faangmaster/426
Какие есть минусы этого резюме:
1) Оно плохо парсится. Тут есть сайд бар. Тут есть фото. Фото, никого не интерисует в вашем резюме на инженерные позиции.
2) Нет достижений. Есть должностные обязанности. Работала работу, получала зп, ходила на митинги. Нужны достижения и результаты.
3) Саммари не продает. Прочитав самари человек должен понять, почему мне надо нанять его, а не кого-то другого.
4) Километровый стек технологий. Можно его не писать для каждой работы. А только в разделе скилов. И писать то, в чем вы действительно разбираетесь и что нужно работодателю. У человека скилов за 3 года опыта в резюме больше, чем мое резюме.
Что вы думаете, про такое составление резюме?
Какие есть минусы этого резюме:
1) Оно плохо парсится. Тут есть сайд бар. Тут есть фото. Фото, никого не интерисует в вашем резюме на инженерные позиции.
2) Нет достижений. Есть должностные обязанности. Работала работу, получала зп, ходила на митинги. Нужны достижения и результаты.
3) Саммари не продает. Прочитав самари человек должен понять, почему мне надо нанять его, а не кого-то другого.
4) Километровый стек технологий. Можно его не писать для каждой работы. А только в разделе скилов. И писать то, в чем вы действительно разбираетесь и что нужно работодателю. У человека скилов за 3 года опыта в резюме больше, чем мое резюме.
Что вы думаете, про такое составление резюме?
👍11🤔3
Советы по написанию достижений в резюме
В продолжении темы резюме. Пост о том, как писать резюме: Советы по написанию резюме для FAANG, и не только
Почему нужно писать именно достижения, а не должностные обязанности или список проектов ?
Список должностных обязанностей у программистов в целом одинаков. Поэтому он никак не выделит вас среди других кандидатов. Кроме того, такой список не покажет особенностей вашей работы в конкретной компании. Ваши обязанности на аналогичной должности в разных компаниях вряд ли будут существенно отличаться.
Список проектов — это уже лучше. Описание проектов позволяет подчеркнуть уникальность вашего опыта. Однако простое перечисление проектов не даёт понимания вашей конкретной роли в них, того, что именно вы сделали. Также не ясен результат или влияние вашей работы (impact). Нередко остаётся неясным, был ли проект сложным, какие трудности пришлось преодолеть и т.д.
Как писать достижения?
Прежде чем описывать свои достижения, ознакомьтесь с методикой STAR. Она используется в том числе и на самом собеседовании (в поведенческой его части). Такой же подход можно применять на performance review в рамках вашей компании для оценки производительности сотрудников.
Если кратко, то вам нужно описать контекст проекта и в чем была его сложность. В чем была цель, что сделали именно вы для ее достижения и какой получился результат.
Читая достижение должно быть понятно, что именно сделали вы, как вы это сделали, соответствует ли то что и как вы сделали уровню, на который вы зааплаились.
Например,
Вместо: Занимался баг фиксами
Для Junior/Mid: Используя профилирование памяти, обнаружил утечку памяти, которая оставалась незамеченной в течение двух месяцев в продакшене. Предложил и реализовал способ её устранения с использованием XXX, что привело к увеличению пропускной способности приложения на 30%. Также предложил и реализовал YYY для предотвращения подобных проблем в будущем, а также создал метрики и алармы для их быстрого обнаружения.
Senior/Staff: Работал с инженерами из нескольких команд, чтобы выявить блокеры, которые снижают эффективность при работе над высокоприоритетными задачами саппорта, которые влияют на SLA/SLO ключевых компонент приложения. Предложил и драйвил реализацию XXX, что сократило время обнаружения и устранения проблем на N% в 4 командах.
Вместо: Принимал участие в напиcании кода, code review и дизайне.
Junior/Mid: Реализовал в составе команды из 4 человек функцию сортировки магазинов по удаленности от покупателя, которой пользуются 15 миллионов пользователей в месяц.
Senior/Staff: Предложил, сделал дизайн/архитектуру и драйвил реализацию командой из 4 человек функцию сортировки магазинов по удаленности от покупателя, которой пользуются 15 миллионов пользователей в месяц.
В продолжении темы резюме. Пост о том, как писать резюме: Советы по написанию резюме для FAANG, и не только
Почему нужно писать именно достижения, а не должностные обязанности или список проектов ?
Список должностных обязанностей у программистов в целом одинаков. Поэтому он никак не выделит вас среди других кандидатов. Кроме того, такой список не покажет особенностей вашей работы в конкретной компании. Ваши обязанности на аналогичной должности в разных компаниях вряд ли будут существенно отличаться.
Список проектов — это уже лучше. Описание проектов позволяет подчеркнуть уникальность вашего опыта. Однако простое перечисление проектов не даёт понимания вашей конкретной роли в них, того, что именно вы сделали. Также не ясен результат или влияние вашей работы (impact). Нередко остаётся неясным, был ли проект сложным, какие трудности пришлось преодолеть и т.д.
Как писать достижения?
Прежде чем описывать свои достижения, ознакомьтесь с методикой STAR. Она используется в том числе и на самом собеседовании (в поведенческой его части). Такой же подход можно применять на performance review в рамках вашей компании для оценки производительности сотрудников.
Если кратко, то вам нужно описать контекст проекта и в чем была его сложность. В чем была цель, что сделали именно вы для ее достижения и какой получился результат.
Читая достижение должно быть понятно, что именно сделали вы, как вы это сделали, соответствует ли то что и как вы сделали уровню, на который вы зааплаились.
Например,
Вместо: Занимался баг фиксами
Для Junior/Mid: Используя профилирование памяти, обнаружил утечку памяти, которая оставалась незамеченной в течение двух месяцев в продакшене. Предложил и реализовал способ её устранения с использованием XXX, что привело к увеличению пропускной способности приложения на 30%. Также предложил и реализовал YYY для предотвращения подобных проблем в будущем, а также создал метрики и алармы для их быстрого обнаружения.
Senior/Staff: Работал с инженерами из нескольких команд, чтобы выявить блокеры, которые снижают эффективность при работе над высокоприоритетными задачами саппорта, которые влияют на SLA/SLO ключевых компонент приложения. Предложил и драйвил реализацию XXX, что сократило время обнаружения и устранения проблем на N% в 4 командах.
Вместо: Принимал участие в напиcании кода, code review и дизайне.
Junior/Mid: Реализовал в составе команды из 4 человек функцию сортировки магазинов по удаленности от покупателя, которой пользуются 15 миллионов пользователей в месяц.
Senior/Staff: Предложил, сделал дизайн/архитектуру и драйвил реализацию командой из 4 человек функцию сортировки магазинов по удаленности от покупателя, которой пользуются 15 миллионов пользователей в месяц.
Telegram
FAANG Master
Советы по написанию резюме для FAANG, и не только
Чтобы попасть на собес в FAANG, нужно или, чтобы вас порекомендовали действующие сотрудники, или к вам рекрутер пришел сам, или при подаче ваше резюме было лучше большинства других. Но даже если вас рекомендуют…
Чтобы попасть на собес в FAANG, нужно или, чтобы вас порекомендовали действующие сотрудники, или к вам рекрутер пришел сам, или при подаче ваше резюме было лучше большинства других. Но даже если вас рекомендуют…
🔥16👍6🙏3
Гайд по подготовке к собесу в FAANG
Написал, в рамках одной статьи на dev.to, гайд по подготовке к собесу в FAANG на основе уже опубликованных постов в этом тг канале.
Как подготовиться к собеседованию в FAANG/Big Tech
В основном, гайд сделан на основе, следующих моих постов:
Варианты подготовки к собеседованию в FAANG/около FAANG для разных уровней текущей подготовки Часть 2 , Часть 3, Часть 4
Также, смотрите подборку постов, не связанных с разбором задач, но полезных, тем кто думает про релокацию и работу в FAANG/Big Tech:
Подборка постов в канале, не связанная с задачами. Часть 1
Подборка постов в канале, не связанная с задачами. Часть 2
А также подборки с моими разборами реальных задач с собеседований на позиции Java разработчика, которые я уже публиковал в этом канале (которые встречались в том числе в Яндекс, Mail ru, инвест банки):
Подборка вопросов и ответов для подготовки к собеседованию на Java программиста
А также мои разборы алгоритмических и system design задач в FAANG:
Подборка статей, которые я уже написал и опубликовал в этом канале по system design
Подборка алгоритмических задач с решениями и описание алгоритмов уже опубликованных в этом канале
Все такие подборки можно найти в закрепленных постах в этом канале.
Написал, в рамках одной статьи на dev.to, гайд по подготовке к собесу в FAANG на основе уже опубликованных постов в этом тг канале.
Как подготовиться к собеседованию в FAANG/Big Tech
В основном, гайд сделан на основе, следующих моих постов:
Варианты подготовки к собеседованию в FAANG/около FAANG для разных уровней текущей подготовки Часть 2 , Часть 3, Часть 4
Также, смотрите подборку постов, не связанных с разбором задач, но полезных, тем кто думает про релокацию и работу в FAANG/Big Tech:
Подборка постов в канале, не связанная с задачами. Часть 1
Подборка постов в канале, не связанная с задачами. Часть 2
А также подборки с моими разборами реальных задач с собеседований на позиции Java разработчика, которые я уже публиковал в этом канале (которые встречались в том числе в Яндекс, Mail ru, инвест банки):
Подборка вопросов и ответов для подготовки к собеседованию на Java программиста
А также мои разборы алгоритмических и system design задач в FAANG:
Подборка статей, которые я уже написал и опубликовал в этом канале по system design
Подборка алгоритмических задач с решениями и описание алгоритмов уже опубликованных в этом канале
Все такие подборки можно найти в закрепленных постах в этом канале.
DEV Community
faangmaster — DEV Community Profile
Мой телеграм: https://t.me/faangmaster
Мой youtube: https://www.youtube.com/@faangmaster
Мой youtube: https://www.youtube.com/@faangmaster
🔥19👍5👏2