Недавно мы запустили новый образовательный проект: прямые эфиры c ребятами из IT, которые отвечают на ваши вопросы в формате живого общения.
Этот проект — попытка создать полноценный набор гайдов и рекомендаций для успешной жизни разработчика: как построить карьеру, получить оффер мечты, привлечь инвестиции в стартап, не тухнуть на скучных проектах, вырасти в своем деле и по пути купить домик у моря.
Выкладываем расшифровку прямого эфира с Илоной Папавой, Senior Software Engineer в Лондонском офисе Facebook: она рассказала как попасть на стажировку, что на них ждет стажеров, как показать себя и получить оффер и почему лондонский офис во многом превосходит офис в Долине.
Меня зовут Илона, я из России, город Ставрополь. Там я окончила школу, потом поступила учиться в НИУ ВШЭ в Москве, на факультет компьютерных наук. После второго курса я подала заявку на стажировку в компании Facebook, меня порекомендовал муж моей подруги, который там работает – он предложил мое резюме рекрутерам.
В резюме у меня, к тому времени, было несколько проектов – университетские и мои собственные, которыми я занималась ради интереса. Я работала учебным ассистентом, но реального опыта работы у меня не было – только участие в соревнованиях по программированию, в процессе преподавания в школах и в университете (как ассистент), ничего особенного.
Это было уже давно – в 2015 году, я училась с 2013 по 2017, и попасть на стажировку тогда было, с одной стороны, легче – меньше проблем с получением визы в США или в Великобританию, а, с другой стороны, сложнее – сейчас гораздо больше компаний приглашают людей на стажировку.
Все меняется каждый год, я не уверена, какая сейчас ситуация.
Мне назначили несколько интервью, формат был такой: задают несколько задач, как на олимпиадах по информатике, и их нужно решить за 45 минут. Если решаете, проходите на следующий этап интервью — всего 2-3 этапа. Если все хорошо, вас приглашают на стажировку.
После первой стажировки меня пригласили на вторую, потому что я еще не окончила университет, а после этого – позвали на работу, так я оказалась в Facebook в Лондоне. Я поехала в начале 2018 года, и живу здесь уже 2.5 года.
Во-первых, мне надо получить гражданство Великобритании. Это занимает 6 лет, а я здесь уже 2.5 года. После этого станет гораздо легче менять компании, и, если надо, можно будет не работать. Я сейчас здесь нахожусь по рабочей визе, и тех компаний, которые их спонсируют, немного: Facebook, Google, например. Стартапы этого делать не могут. В принципе, мне нравится здесь, в Facebook. Я довольно быстро продвинулась от junior до senior и, мне кажется, могу пойти дальше (junior – middle – senior – staff).
У нас используются уровни:
Мне кажется, возможно перейти на 6, а потом попробовать перейти в people management. Это довольно интересно – мне нравится менторить новых людей в команде, объяснять, поддерживать, решать проблемы. В общем, я планирую пробыть в Facebook по крайней мере пару лет, а дальше – какие будут возможности.
Facebook хорош стабильностью, здесь можно делать разные вещи. Когда я присоединилась, мне дали возможность выбрать команду, в которую я бы хотела устроиться. Есть разные пайплайны, по которым происходит устройство, но в моем случае первые 6-8 недель занимал bootcamp. Там можно было выбрать любую команду, которую хочешь.
Я выбрала команду workplace, в ней я занималась web-разработкой, разными новыми фичами workplace на PHP и React. Через полтора года мне надоело в той команде, и я перешла в команду Portal, тут идет разработка для Android. То есть, разные команды занимаются совершенно разными вещами. Я никогда раньше не занималась Android, в этой команде все было совершенно новое для меня. И, даже если мне надоест здесь, всегда можно перейти в следующую команду.
До Facebook у меня не было опыта, кроме стажировок, и путь от junior до senior занял два года.
Это зависит скорее даже не от того, сколько вы знаете, а о того, сколько вы готовы взять на себя ответственности за большие проекты, как вы можете общаться с людьми, работать с другими командами, строить взаимоотношения, договариваться, идти на компромиссы. В большей степени это soft skills.
Есть разные архетипы. Некоторые люди самостоятельно создают сложные фичи, но у меня такого не было. Мне больше нравится общение с людьми, совместная работа, задавание пути развития продукта.
Мой архетип — гибрид между product manager и инженером, хотя в большей степени я инженер. Все зависит от самого человека: кто-то проходит этот путь быстрее, чем я. Мой приятель перешел с junior на senior за полтора года, так что быстрое продвижение возможно, как и медленное.
Я ничего особенного не учила перед стажировками, моя первая стажировка была на PHP.
Английский точно стоит подучить – у меня с разговорной частью было не слишком хорошо, и мне пришлось сложно. Пришлось ежедневные апдейты писать на листочке и читать с него. С остальным можно разобраться на месте. Я бы сказала, что самый важный скилл в Facebook – умение быстро и эффективно разбираться с незнакомыми вещами и начинать пользоваться ими. Это было полезно и в университете, и на стажировке, и на работе.
На стажировке обычно дают проект на 12 недель, первую пару недель идет онбординг – нужно разобраться с технологиями, с тем, как посылать pull request, как их аппрувят, как в принципе все работает в Facebook.
Потом начинается работа в команде. Проекты, которые дают на стажировке, обычно связаны с тем, что команда делает в этот момент; я знаю, что в других компаниях могут за полгода до стажировки назвать, что ты будешь делать, но в Facebook не так.
Команды находят для стажеров проекты, релевантные для самой команды, и узнать свою тему можно только за месяц, может быть – за три недели. Мой проект 2016 года до сих пор используется – конечно, его уже много раз улучшали, но основа осталась. Так что никаких особенных технологий не стоит заучивать – нужно только быстро разбираться на месте и задавать вопросы. Не должно получаться так, что вы две недели сидите и пытаетесь в чем-то разобраться, но и спрашивать обо всем постоянно не стоит. Нужно выработать баланс: у вас должна быть некоторая самостоятельность, но в случае, если у вас что-то не получается, вы должны задавать вопросы и двигаться дальше.
Я не знаю, как это происходит сейчас, потому что живу не в США. Я думаю, Facebook практически перестали брать студентов из СНГ на стажировку в США. J1 делается довольно легко, но конвертация в H1B – нет, там проходит лотерея. Все меняется каждый год, конечно. Но, когда мы ездили в Россию, мы приглашали людей на стажировку конкретно в Лондон. Лондон сейчас – большой европейский хаб, куда съезжаются люди – кто-то временно, если хочет потом переехать в США, кто-то навсегда, если Лондон больше нравится. Мне кажется, сейчас из СНГ почти все едут в Лондон.
Можно податься через сайт; все резюме, отправленные через сайт, стараются проверять. Если у вас нет контактов в Facebook, это лучший вариант. Если есть прямой контакт на рекрутера, тоже можно попробовать. Насчет Linkedin не знаю, не пользовалась. Самый лучший вариант – если у вас есть кто-то знакомый в Facebook, и вы можете попросить их закинуть ваше резюме. То есть, зареферить, написать отзыв, что вы молодец и вы что-то умеете. Человек, который вас реферит, сможет наблюдать за прогрессом заявки. Всегда можно написать рекрутеру в личку через рабочий чат и узнать детали.
Я собеседовалась в основном только в больших компаниях. Но в них, и в стартапах тоже, все примерно одинаково: надо решать олимпиадные задачи по кодингу, также есть поведенческие собеседования, где смотрят, насколько вы адекватны, и спрашивают, какую работу вы обычно делаете. Еще есть собеседования по системному дизайну – там бывают вопросы, на которые нет однозначно правильного ответа, и можно проговаривать разнообразные варианты; их цель – смотреть, насколько глубоко вы знаете разные темы. В России я собеседовалась только в «Яндексе», на стажировку; там тоже были олимпиадные задачи.
Вроде как можно, но вроде как нет. Из России точно не получится – с территории России, Украины, Казахстана и некоторых других стран запрещен доступ к внутренним системам. Из других стран – не знаю. Наверно, должны быть какие-то рабочие позиции, которые позволяют работать удаленно, но я в это не вникала, и не знаю людей, которые работали бы удаленно.
Да, конечно. Подавайте заявки, проходите собеседования, устраивайтесь. Нет никаких препятствий для роста.
Bootcamp — это процесс в первые 6-7 недель после прихода в Facebook. В это время вы не работаете в конкретной команде, а изучаете, что такое Facebook, какая тут культура, как общаться, что делать. 4-5 недель вы проводите время с различными командами. Вы выбираете, какие темы вам нравятся, и по одной неделе проводите с командами, которые работают по каждой из них. Вы с ними сидите, пишете код, смотрите на их кодбазу, оцениваете для себя их проекты, ходите на встречи. В общем, буткамп – это выбор первоначальной команды, в которой вы будете работать. Если вы сделаете неправильный выбор, то можно будет сменить команду; я это сделала после полутора лет работы. Если у вас хороший рейтинг и отзывы на перфоманс-ревью, которое проходит раз в полгода, никаких проблем со сменой команды не должно быть. Если есть какие-то проблемы, то менять команду, конечно, сложнее.
Рекомендовать рекомендуется только людей, с которыми знакомы лично. Так что нам придется сначала познакомиться.
Все как обычно. Подавать заявки, высылать резюме в разные компании.
Когда я устраивалась на стажировки, я просто проходила по списку компаний, которые проводят стажировки летом, и посылала во все. Неважно было даже, делают ли они визу — мне был нужен опыт интервью, и я их прошла десятки. Шансы есть, в Facebook устраивается очень много выходцев из СНГ.
Стажировка оплачивается, включая переезд, жилье, и качество жилья хорошее. Я жила в Калифорнии, квартира была гораздо больше той, в которой я сейчас живу в Лондоне. У нас был бассейн и тренажерный зал, локация нормальная, уборка раз в неделю. На первой стажировке у меня была соседка, на второй я жила одна.
Тогда мне еще не было 21 года, и деньги тратить было некуда — машину в аренду мне не давали, в бары не пускали. После первой стажировки я подарила родителям машину, а после второй просто жила год в Москве и не работала.
Не обязателен, хотя и помогает. Я занималась олимпиадами с 8 класса, три раза участвовала во всероссийской олимпиале, хотя ни разу не выигрывала. У меня были дипломы других олимпиад, это помогло поступить в ВШЭ. И, конечно, интервью было легче проходить. На первом курсе у нас был хороший курс английского, замечательный преподаватель, это тоже помогло. После первой поездки все поменялось, у меня появились друзья, знакомые, надо было постоянно говорить на английском, я начала серьезно заниматься языком сама.
Нет. Если у вас уже есть опыт, то образование не требуется. Если нет ни того, ни другого, то будет сложно.
Не знаю, используется ли это у нас. Может быть. Когда вы подаете заявку на стажировку, если вы прошли интервью, то вам дают опросник, где вы указываете, что вам интересно, что — неинтересно, чем бы вы хотели заниматься. Сейчас очень многие пишут, что хотят заниматься machine learning, но команд, которые им занимаются, не так много. Мы стараемся обеспечивать соответствие интересов и той темы, которой занимается команда, по максимуму, но это не всегда возможно.
Всегда оплачивает, неважно, откуда переезжаете. У меня был пакет: мне дали денег, сделали визу, сняли квартиру на два месяца, организовали перевозку вещей из Москвы. Было очень удобно, компания все делает за вас. Даже организовали выбор квартиры из доступных вариантов с различными локациями и ценами, с агентом.
Я не знаю точно, нужно изучить этот вопрос. Мне кажется, да. Я встречала на работе людей с инвалидностями, хотя и не слуховыми. Наверно, нужно будет специально проговорить этот вопрос с рекрутерами и организовать специальный вид интервью.
Это не так важно. Я провожу собеседования несколько раз в неделю, мне все равно, на каком языке будут писаться задачи. Главное – чтобы люди понимали, могли придумать решения. Если я не знаю, как что делается, например, в Haskell, я сама задам вопрос. В Facebook все равно много внутренних тулов, с которыми каждому придется разбираться, поэтому бэкграунд не особенно важен.
Обычно на стажировку берут именно студентов, потому что визы США J1 именно для студентов. Нужно доказывать в посольстве, что ты после возвращения со стажировки все еще будешь студентом. Поэтому, вряд ли. Насколько я знаю, в Facebook мы на стажировку берем только студентов.
Если нет образования, то нужен опыт работы. Насчет возраста не могу сказать. Мне кажется, могут быть трудности.
Здесь ничего не поделаешь. Можно написать еще пару мейлов, можно попробовать найти знакомых в компании и связаться через них. В остальном — вариантов нет. Меня в разных компаниях так же игнорили, когда я искала стажировки.
Мне не очень понравилось в Долине. Я думаю, фильм Дудя многие смотрели… Там многое не освещено. У меня были причины не хотеть в США, мне там не понравилось здравоохранение — у меня во время стажировки были проблемы с ногой.
Все стоит бешеных денег, ужасные очереди. Допустим, вы платите 150 долларов за emergency room/urgent care, попадаете к врачу, вам выдают четыре таблетки; если вы теряете таблетку, то нужно заново идти к врачу.
Кроме того, там небезопасно. Мне очень не понравился Сан-Франциско. Один раз нам пришлось пройти 15 минут пешком до другого ресторана, потому что тот, у которого мы припарковались, был занят, и даже это было крайне неуютно. Много бездомных, много людей, которые явно не в себе, ведут себя непредсказуемо. В той же Москве можно гулять без проблем, даже ночью, а в Сан-Франциско – страшно.
В Лондоне в основном можно ходить по улицам, хотя в том районе, где стоит офис Facebook, в котором я работаю – тоже неуютно, часто встречаются неадекватные люди. Такой филиал Сан-Франциско.
Кроме того, в Долине всюду надо ездить на машине. Хотя там есть природа, все равно во все места нужно ездить, даже в магазин, если не живешь рядом с ним. Хотя в Долине вообще мало мест. То есть, либо вы живете в Сан-Франциско, и тогда вам приходится каждый день добираться до работы полтора часа, либо жить в Долине, где ничего не происходит, кроме митапов. Если ваш муж или жена – не из IT, то им будет сложно найти работу.
Наличие мест это закрытая информация. Уровень был не очень, на первой стажировке это мешало, но до второй я весь год занималась языком. Конечно, языком надо заниматься.
На моем собеседовании я знала, как решать задачи, и у меня получилось донести свои мысли до интервьюера через код и довольно кривые объяснения. Мы относимся к уровню английского с пониманием. Если я могу вас понять на интервью — вне зависимости от того, насколько ломан язык, то все хорошо. Конечно, если я не могу вас понять, и вы не можете ничего объяснить, то все плохо. Нужен хоть какой-то уровень языка.
Если есть какая-то проблема, ты пытаешься ее решить самостоятельно. Это и есть ответственность. Ты не ждешь, когда кто-то придет и починит за тебя.
Нужно иметь смелость в себе. Нужно не просто молча расстраиваться, заметив проблему, а придумать конструктивное решение. Ты должен пообщаться с людьми, определить, кого касается проблема, делает ли она работу команды менее эффективной. Если это так, то ты должен ее решить. Это ожидается от senior.
Конечно, некоторые проблемы сложно решить самостоятельно — в таких случаях я эскалирую, пишу посты, описываю, почему это важно, привлекаю внимание к проблеме. Если ты видишь проблему и молчишь, никто не узнает о том, что она важна для тебя, но если ты напишешь пост о проблеме — будет реакция.
Я приведу пример. У меня в команде есть один junior, и у него проблемы с коммуникацией. Бывает так, что мы договариваемся о спринте в рамках команды: определяем задачи на две недели, и он не может завершить свою часть. У него на то есть объективные причины, но о том, что работа не завершена, мы узнаем только в конце спринта. Так не надо. Нужно заранее коммуницировать подобные вещи: я это не успею, я это успею, я могу успеть еще что-то. Ни для кого не должно быть сюрпризов, вся команда должна иметь возможность адаптировать свои ожидания. Поэтому самый главный скилл – умение нормально общаться.
Да, я это все делала. Больше всего мне помогла подготовка с моим лучшим другом: мы одновременно проходили интервью в разных компаниях, а потом задавали друг другу задачи с этих интервью, также и задачи с leetcode и других ресурсов.
Мы постоянно тренировались разговаривать на английском и писать код вдвоем. На Pramp есть “mock interviews” – их тоже можно проходить. Опыт в олимпиадном программировании, конечно, тоже помогал: во многих задачах используются стандартные приемы, которые довольно легко узнать и использовать.
С точки зрения кодинга — ничем, хотя собеседования на university grad включают поведенческие интервью. Я сама их провожу: два интервью на кодинг и одно поведенческое. Как я говорила, эти интервью для того, чтобы определить адекватность и ответственность человека. Иногда бывают курьезы: один человек почему-то рассказал мне о том, как он наврал профессору о домашнем задании. Это странно.
Зависит от того, в каких проектах участвует команда. Я в обе стажировки работала в инфраструктурных, а не продуктовых командах, а потом, когда пришла на фуллтайм, присоединилась к продуктовой команде и работала над User Facing. Во время стажировок вы обычно занимаетесь разработкой в рамках проекта, который можно завершить за 6-8 недель. Бывают разные проекты – например, один стажер сделал чат-бота, который был нужен для проекта.
Были социальные трудности — весь круг общения остался в России, нужно было искать новых друзей. В целом, мне все нравилось.
Думаю, если переезжать с партнером, а не одному, то первое время на зарплате junior будет довольно трудно. В Лондоне квартиры дорогие — 1500 фунтов в месяц за 25 квадратных метров. Конечно, бывают трудности в проектах — не получается что-то сделать, с кем-то договориться, твоя проблема никому не кажется важной.
Я не знаю, сколько именно на нем проектов, но у меня есть приятель, который с ним работает. Я думаю, стажировки в их команде есть. Один из основных проектов – Community Integrity, эти команды обеспечивают чистоту платформы от суицидальных вещей и тому подобного контента; они использует Haskell, и у них должны быть стажировки. Надо только указать, что вам интересен Haskell в опроснике, который вам дают после прохождения интервью, тогда вас могут заметчить в нужную команду.
Важно понимать, что в разных командах все по-разному — это и есть главный рефрен моего рассказа. Разные команды используют разные технологии. В моей команде идет разработка под Android – то есть, Java, Scala, собственный инструмент для сборки. Ничего сложного. Что касается других технологий – у нас, конечно, можно найти другие языки и инструменты разработки. Наверно, в какой-нибудь команде используется то, что названо в вопросе. Кто-то пишет на Haskell, кто-то на Erlang — инфраструктуру для WhatsApp.
Да, примерно одинаково.
В моей команде все из разных стран. Менеджер из Китая, он сейчас в Калифорнии, есть коллеги из Италии, Колумбии, Македонии и Румынии. Есть команды, в которых много русскоговорящих людей, есть те, где только люди из Индии, в общем, все разные. Во время bootcamp можно выбрать команду, которая вам нравится и с которой вы хотели бы общаться.
Делать побольше проектов, чтобы набраться опыта. Делать проекты серьезнее, чем университетские задания. Попробовать для второй стажировки компанию поменьше вместо Facebook — получилось, что в маленьких компаниях я почти не работала. Попробовать работу в разных стартапах, работу над разными темами, для кругозора. Например, мне повезло один раз поработать с машинным обучением (в Яндексе), и я поняла, что не хочу заниматься этой темой – и поняла это рано, а не поздно.
Ценится все. Надо уметь быстро решать задачи, объяснять решения, решать правильно, тестировать, самостоятельно находить ошибки, общаться. Также ценится предыдущий опыт, если вы руководили командой или тренировали начинающих разработчиков — это здорово. В общем, ценно и то, и то.
Да, это индивидуальный проект. Мы хотим оценивать ваши возможности, ваш труд. Это сложнее сделать, когда работает целая команда. Обычно это независимая задача, не слишком важная для команды, потому что стажер может не закончить ее, но такая, которую команда все равно собиралась выполнить. Я думала брать стажеров на это лето (передумала из-за эпидемии) под задачи, на которые у меня не хватает рук и времени.
Обычно 12 недель, иногда 16. 16 для тех, кто получает PhD, 12 для бакалавров и магистратуры.
Нет, потому что у нас основные инженерные офисы находятся в Лондоне, несколько — в США и Сингапуре. В Цюрихе — инженерные офисы Oculus. Хотя офисы компании есть в большинстве стран, обычно в них сидит маркетинг/sales. Поэтому практики работы из разных офисов нет. Хотя, если едешь домой в страну, из которой разрешен доступ к системам, можно некоторое время поработать из дома.
Да, во время менеджерских интервью тоже задают задачи. Хотя я сама не провожу их, могу сказать, что техническая часть действительно нужна.
Для стажировки в Facebook и многих других крупных компаниях нужно быть студентом очного обучения. На стажировку можно попасть, если пойти в магистратуру по computer science: они смотрят не на возраст, а на статус студента. Конечно, нужно будет потренироваться в алгоритмах и структурах данных, научится решать задачи, но шансы всегда есть.
Когда я начинала работу в Facebook — это было 8 января (у нас есть определенные даты общего начала работы, каждые несколько недель) вместе со мной начинал стажер, которому было 37 лет.
У нас есть внутренняя сеть workplace, там люди постят о том, что они делают. Можно подписываться на группы, которые тебе интересны — например, я подписалась на группы, связанные с Oculus.
Это делается в Portal. Про сам Portal тоже есть группы, потому что мы сами делаем для него hardware, модифицируем под него специальную версию Android, делаем разные приложения для него.
Кроме того, у меня в Лондоне много знакомых из разных команд, я и от них узнаю, что они делают. Получать информацию довольно просто, но следить за всем очень сложно из-за того, что информации много.
Довольно легко. Если вы получаете оффер, вам делают рабочую визу, и вы живете здесь. Через какое-то время получаете ПМЖ, в Великобритании – 6 лет для гражданства, 5 лет для вида на жительство.
По-разному. Часто по настроению. Сейчас, когда все сидят дома, делать больше нечего, поэтому я работаю часов по 10-11, примерно с 11 дня до 10 вечера. С перерывами, конечно. Всего работы получается часов 8-9.
В нормальном режиме я прихожу в офис в 11-12 часов и ухожу в 7-8.
Некоторые коллеги работают с 8 утра и уходят в 16. Кто-то работает больше, кто-то – меньше, также это зависит от команды. В первой команде, которая находилась в Лондоне полностью, я никогда не перерабатывала; в текущей – иногда перерабатываю, потому что большая часть команды находится в Калифорнии, и мне приходится оставаться на работе, чтобы поговорить с ними. Мы сейчас делаем приложения для удаленной работы, для Portal – это сейчас в приоритете, поэтому работы много.
Нормальные взаимодействия. У каждой команды есть свои цели, все достаточно позитивные, все хорошо общаются. Обычно команда рада помочь, если что-то нужно. Если другой команде нужно что-то большое, нужно искать компромисс — определять, какие части делать самостоятельно, для чего подключать еще кого-нибудь, что обсуждать с менеджерами, приоритетна ли задача для компании. У меня не было больших проблем во взаимодействиях с другими командами, хотя взаимодействуем мы постоянно.
Можно ездить на конференции в любой точке мира, раз в год. Я думаю, если захотите пройти онлайн-курсы, никаких проблем не будет. Конкретного бюджета нет, все делается по согласованию с менеджментом. Не могу сказать насчет обучения в университете (слышала что-то, связанное с этим, но для США), но организовать получение новых навыков – без проблем.
Этот проект — попытка создать полноценный набор гайдов и рекомендаций для успешной жизни разработчика: как построить карьеру, получить оффер мечты, привлечь инвестиции в стартап, не тухнуть на скучных проектах, вырасти в своем деле и по пути купить домик у моря.
Выкладываем расшифровку прямого эфира с Илоной Папавой, Senior Software Engineer в Лондонском офисе Facebook: она рассказала как попасть на стажировку, что на них ждет стажеров, как показать себя и получить оффер и почему лондонский офис во многом превосходит офис в Долине.
***
Меня зовут Илона, я из России, город Ставрополь. Там я окончила школу, потом поступила учиться в НИУ ВШЭ в Москве, на факультет компьютерных наук. После второго курса я подала заявку на стажировку в компании Facebook, меня порекомендовал муж моей подруги, который там работает – он предложил мое резюме рекрутерам.
В резюме у меня, к тому времени, было несколько проектов – университетские и мои собственные, которыми я занималась ради интереса. Я работала учебным ассистентом, но реального опыта работы у меня не было – только участие в соревнованиях по программированию, в процессе преподавания в школах и в университете (как ассистент), ничего особенного.
Это было уже давно – в 2015 году, я училась с 2013 по 2017, и попасть на стажировку тогда было, с одной стороны, легче – меньше проблем с получением визы в США или в Великобританию, а, с другой стороны, сложнее – сейчас гораздо больше компаний приглашают людей на стажировку.
Все меняется каждый год, я не уверена, какая сейчас ситуация.
Мне назначили несколько интервью, формат был такой: задают несколько задач, как на олимпиадах по информатике, и их нужно решить за 45 минут. Если решаете, проходите на следующий этап интервью — всего 2-3 этапа. Если все хорошо, вас приглашают на стажировку.
После первой стажировки меня пригласили на вторую, потому что я еще не окончила университет, а после этого – позвали на работу, так я оказалась в Facebook в Лондоне. Я поехала в начале 2018 года, и живу здесь уже 2.5 года.
Кем ты видишь себя через пару лет или пять?
Во-первых, мне надо получить гражданство Великобритании. Это занимает 6 лет, а я здесь уже 2.5 года. После этого станет гораздо легче менять компании, и, если надо, можно будет не работать. Я сейчас здесь нахожусь по рабочей визе, и тех компаний, которые их спонсируют, немного: Facebook, Google, например. Стартапы этого делать не могут. В принципе, мне нравится здесь, в Facebook. Я довольно быстро продвинулась от junior до senior и, мне кажется, могу пойти дальше (junior – middle – senior – staff).
У нас используются уровни:
- 3 – junior
- 4 – middle
- 5 – senior
- 6 – staff
- дальше – 7, 8, возможно 9, но таких мало
Мне кажется, возможно перейти на 6, а потом попробовать перейти в people management. Это довольно интересно – мне нравится менторить новых людей в команде, объяснять, поддерживать, решать проблемы. В общем, я планирую пробыть в Facebook по крайней мере пару лет, а дальше – какие будут возможности.
Facebook хорош стабильностью, здесь можно делать разные вещи. Когда я присоединилась, мне дали возможность выбрать команду, в которую я бы хотела устроиться. Есть разные пайплайны, по которым происходит устройство, но в моем случае первые 6-8 недель занимал bootcamp. Там можно было выбрать любую команду, которую хочешь.
Я выбрала команду workplace, в ней я занималась web-разработкой, разными новыми фичами workplace на PHP и React. Через полтора года мне надоело в той команде, и я перешла в команду Portal, тут идет разработка для Android. То есть, разные команды занимаются совершенно разными вещами. Я никогда раньше не занималась Android, в этой команде все было совершенно новое для меня. И, даже если мне надоест здесь, всегда можно перейти в следующую команду.
Что, как и сколько в день и в неделю нужно учить и практиковать, чтобы стать senior в Facebook?
До Facebook у меня не было опыта, кроме стажировок, и путь от junior до senior занял два года.
Это зависит скорее даже не от того, сколько вы знаете, а о того, сколько вы готовы взять на себя ответственности за большие проекты, как вы можете общаться с людьми, работать с другими командами, строить взаимоотношения, договариваться, идти на компромиссы. В большей степени это soft skills.
Есть разные архетипы. Некоторые люди самостоятельно создают сложные фичи, но у меня такого не было. Мне больше нравится общение с людьми, совместная работа, задавание пути развития продукта.
Мой архетип — гибрид между product manager и инженером, хотя в большей степени я инженер. Все зависит от самого человека: кто-то проходит этот путь быстрее, чем я. Мой приятель перешел с junior на senior за полтора года, так что быстрое продвижение возможно, как и медленное.
Как после стажировки получить предложение fulltime, какие технологии стоит изучить заранее?
Я ничего особенного не учила перед стажировками, моя первая стажировка была на PHP.
Английский точно стоит подучить – у меня с разговорной частью было не слишком хорошо, и мне пришлось сложно. Пришлось ежедневные апдейты писать на листочке и читать с него. С остальным можно разобраться на месте. Я бы сказала, что самый важный скилл в Facebook – умение быстро и эффективно разбираться с незнакомыми вещами и начинать пользоваться ими. Это было полезно и в университете, и на стажировке, и на работе.
На стажировке обычно дают проект на 12 недель, первую пару недель идет онбординг – нужно разобраться с технологиями, с тем, как посылать pull request, как их аппрувят, как в принципе все работает в Facebook.
Потом начинается работа в команде. Проекты, которые дают на стажировке, обычно связаны с тем, что команда делает в этот момент; я знаю, что в других компаниях могут за полгода до стажировки назвать, что ты будешь делать, но в Facebook не так.
Команды находят для стажеров проекты, релевантные для самой команды, и узнать свою тему можно только за месяц, может быть – за три недели. Мой проект 2016 года до сих пор используется – конечно, его уже много раз улучшали, но основа осталась. Так что никаких особенных технологий не стоит заучивать – нужно только быстро разбираться на месте и задавать вопросы. Не должно получаться так, что вы две недели сидите и пытаетесь в чем-то разобраться, но и спрашивать обо всем постоянно не стоит. Нужно выработать баланс: у вас должна быть некоторая самостоятельность, но в случае, если у вас что-то не получается, вы должны задавать вопросы и двигаться дальше.
Что насчет разрешения на работу в США? Стажировка доступна только для резидентов, или можно получить визу J1? Как жители СНГ могут попасть на стажировку в Долину?
Я не знаю, как это происходит сейчас, потому что живу не в США. Я думаю, Facebook практически перестали брать студентов из СНГ на стажировку в США. J1 делается довольно легко, но конвертация в H1B – нет, там проходит лотерея. Все меняется каждый год, конечно. Но, когда мы ездили в Россию, мы приглашали людей на стажировку конкретно в Лондон. Лондон сейчас – большой европейский хаб, куда съезжаются люди – кто-то временно, если хочет потом переехать в США, кто-то навсегда, если Лондон больше нравится. Мне кажется, сейчас из СНГ почти все едут в Лондон.
Как лучше всего пушить резюме? Linkedin, прямой контакт с рекрутером? Нужно устроиться на фуллтайм, минуя стажировку.
Можно податься через сайт; все резюме, отправленные через сайт, стараются проверять. Если у вас нет контактов в Facebook, это лучший вариант. Если есть прямой контакт на рекрутера, тоже можно попробовать. Насчет Linkedin не знаю, не пользовалась. Самый лучший вариант – если у вас есть кто-то знакомый в Facebook, и вы можете попросить их закинуть ваше резюме. То есть, зареферить, написать отзыв, что вы молодец и вы что-то умеете. Человек, который вас реферит, сможет наблюдать за прогрессом заявки. Всегда можно написать рекрутеру в личку через рабочий чат и узнать детали.
Какие принципиальные отличия собеседований в UK и России?
Я собеседовалась в основном только в больших компаниях. Но в них, и в стартапах тоже, все примерно одинаково: надо решать олимпиадные задачи по кодингу, также есть поведенческие собеседования, где смотрят, насколько вы адекватны, и спрашивают, какую работу вы обычно делаете. Еще есть собеседования по системному дизайну – там бывают вопросы, на которые нет однозначно правильного ответа, и можно проговаривать разнообразные варианты; их цель – смотреть, насколько глубоко вы знаете разные темы. В России я собеседовалась только в «Яндексе», на стажировку; там тоже были олимпиадные задачи.
Можно ли работать в Facebook удаленно? Может ли senior работать из дома, или однозначно нужно личное присутствие в команде?
Вроде как можно, но вроде как нет. Из России точно не получится – с территории России, Украины, Казахстана и некоторых других стран запрещен доступ к внутренним системам. Из других стран – не знаю. Наверно, должны быть какие-то рабочие позиции, которые позволяют работать удаленно, но я в это не вникала, и не знаю людей, которые работали бы удаленно.
Есть ли смысл пытаться устроиться в Facebook и другие зарубежные компании, будучи миддлом?
Да, конечно. Подавайте заявки, проходите собеседования, устраивайтесь. Нет никаких препятствий для роста.
Рекрутер сказал, что первое время будет bootcamp. Это стажировка? Как понять, зовут ли тебя на стажировку или на фуллтайм?
Bootcamp — это процесс в первые 6-7 недель после прихода в Facebook. В это время вы не работаете в конкретной команде, а изучаете, что такое Facebook, какая тут культура, как общаться, что делать. 4-5 недель вы проводите время с различными командами. Вы выбираете, какие темы вам нравятся, и по одной неделе проводите с командами, которые работают по каждой из них. Вы с ними сидите, пишете код, смотрите на их кодбазу, оцениваете для себя их проекты, ходите на встречи. В общем, буткамп – это выбор первоначальной команды, в которой вы будете работать. Если вы сделаете неправильный выбор, то можно будет сменить команду; я это сделала после полутора лет работы. Если у вас хороший рейтинг и отзывы на перфоманс-ревью, которое проходит раз в полгода, никаких проблем со сменой команды не должно быть. Если есть какие-то проблемы, то менять команду, конечно, сложнее.
Можно получить от тебя реферал?
Рекомендовать рекомендуется только людей, с которыми знакомы лично. Так что нам придется сначала познакомиться.
Как разработчику из России выйти на иностранный рынок, не фрилансом?
Все как обычно. Подавать заявки, высылать резюме в разные компании.
Когда я устраивалась на стажировки, я просто проходила по списку компаний, которые проводят стажировки летом, и посылала во все. Неважно было даже, делают ли они визу — мне был нужен опыт интервью, и я их прошла десятки. Шансы есть, в Facebook устраивается очень много выходцев из СНГ.
Какие финансовые затраты, оплачивается ли стажировка?
Стажировка оплачивается, включая переезд, жилье, и качество жилья хорошее. Я жила в Калифорнии, квартира была гораздо больше той, в которой я сейчас живу в Лондоне. У нас был бассейн и тренажерный зал, локация нормальная, уборка раз в неделю. На первой стажировке у меня была соседка, на второй я жила одна.
Тогда мне еще не было 21 года, и деньги тратить было некуда — машину в аренду мне не давали, в бары не пускали. После первой стажировки я подарила родителям машину, а после второй просто жила год в Москве и не работала.
Обязателен ли для стажировки опыт спортивного программирования?
Не обязателен, хотя и помогает. Я занималась олимпиадами с 8 класса, три раза участвовала во всероссийской олимпиале, хотя ни разу не выигрывала. У меня были дипломы других олимпиад, это помогло поступить в ВШЭ. И, конечно, интервью было легче проходить. На первом курсе у нас был хороший курс английского, замечательный преподаватель, это тоже помогло. После первой поездки все поменялось, у меня появились друзья, знакомые, надо было постоянно говорить на английском, я начала серьезно заниматься языком сама.
Требуется ли наличие высшего технического образования?
Нет. Если у вас уже есть опыт, то образование не требуется. Если нет ни того, ни другого, то будет сложно.
Есть ли стажировки по .NET?
Не знаю, используется ли это у нас. Может быть. Когда вы подаете заявку на стажировку, если вы прошли интервью, то вам дают опросник, где вы указываете, что вам интересно, что — неинтересно, чем бы вы хотели заниматься. Сейчас очень многие пишут, что хотят заниматься machine learning, но команд, которые им занимаются, не так много. Мы стараемся обеспечивать соответствие интересов и той темы, которой занимается команда, по максимуму, но это не всегда возможно.
Когда компания оплачивает переезд?
Всегда оплачивает, неважно, откуда переезжаете. У меня был пакет: мне дали денег, сделали визу, сняли квартиру на два месяца, организовали перевозку вещей из Москвы. Было очень удобно, компания все делает за вас. Даже организовали выбор квартиры из доступных вариантов с различными локациями и ценами, с агентом.
Есть ли возможность попасть на стажировку человеку с инвалидностью по слуху? Нет проблем с письменным английским, но вербальный воспринимается плохо.
Я не знаю точно, нужно изучить этот вопрос. Мне кажется, да. Я встречала на работе людей с инвалидностями, хотя и не слуховыми. Наверно, нужно будет специально проговорить этот вопрос с рекрутерами и организовать специальный вид интервью.
Какие языки и фреймворки особенно ценятся?
Это не так важно. Я провожу собеседования несколько раз в неделю, мне все равно, на каком языке будут писаться задачи. Главное – чтобы люди понимали, могли придумать решения. Если я не знаю, как что делается, например, в Haskell, я сама задам вопрос. В Facebook все равно много внутренних тулов, с которыми каждому придется разбираться, поэтому бэкграунд не особенно важен.
Каковы возрастные ограничения для стажировки? Есть ли смысл пытаться попасть на стажировку, если ты уже не студент и имеешь несколько лет опыта работы?
Обычно на стажировку берут именно студентов, потому что визы США J1 именно для студентов. Нужно доказывать в посольстве, что ты после возвращения со стажировки все еще будешь студентом. Поэтому, вряд ли. Насколько я знаю, в Facebook мы на стажировку берем только студентов.
Может ли несовершеннолетний попасть на работу, возможна ли релокация, обязательно ли иметь высшее образование?
Если нет образования, то нужен опыт работы. Насчет возраста не могу сказать. Мне кажется, могут быть трудности.
Что делать, если рекрутер после общения исчез и не отвечает на почту?
Здесь ничего не поделаешь. Можно написать еще пару мейлов, можно попробовать найти знакомых в компании и связаться через них. В остальном — вариантов нет. Меня в разных компаниях так же игнорили, когда я искала стажировки.
Как тебе Долина, какие плюсы и минусы в сравнении с Лондоном?
Мне не очень понравилось в Долине. Я думаю, фильм Дудя многие смотрели… Там многое не освещено. У меня были причины не хотеть в США, мне там не понравилось здравоохранение — у меня во время стажировки были проблемы с ногой.
Все стоит бешеных денег, ужасные очереди. Допустим, вы платите 150 долларов за emergency room/urgent care, попадаете к врачу, вам выдают четыре таблетки; если вы теряете таблетку, то нужно заново идти к врачу.
Кроме того, там небезопасно. Мне очень не понравился Сан-Франциско. Один раз нам пришлось пройти 15 минут пешком до другого ресторана, потому что тот, у которого мы припарковались, был занят, и даже это было крайне неуютно. Много бездомных, много людей, которые явно не в себе, ведут себя непредсказуемо. В той же Москве можно гулять без проблем, даже ночью, а в Сан-Франциско – страшно.
В Лондоне в основном можно ходить по улицам, хотя в том районе, где стоит офис Facebook, в котором я работаю – тоже неуютно, часто встречаются неадекватные люди. Такой филиал Сан-Франциско.
Кроме того, в Долине всюду надо ездить на машине. Хотя там есть природа, все равно во все места нужно ездить, даже в магазин, если не живешь рядом с ним. Хотя в Долине вообще мало мест. То есть, либо вы живете в Сан-Франциско, и тогда вам приходится каждый день добираться до работы полтора часа, либо жить в Долине, где ничего не происходит, кроме митапов. Если ваш муж или жена – не из IT, то им будет сложно найти работу.
Какой был уровень английского в начале стажировки? Как проверить наличие мест на стажировку в большой компании?
Наличие мест это закрытая информация. Уровень был не очень, на первой стажировке это мешало, но до второй я весь год занималась языком. Конечно, языком надо заниматься.
Как влияет на собеседования слабый уровень английского?
На моем собеседовании я знала, как решать задачи, и у меня получилось донести свои мысли до интервьюера через код и довольно кривые объяснения. Мы относимся к уровню английского с пониманием. Если я могу вас понять на интервью — вне зависимости от того, насколько ломан язык, то все хорошо. Конечно, если я не могу вас понять, и вы не можете ничего объяснить, то все плохо. Нужен хоть какой-то уровень языка.
Что ты имеешь в виду под ответственностью? Как по мне, она совершенно отсутствует. Никогда никто ничего ни с кого не спросит за качество и проблемы.
Если есть какая-то проблема, ты пытаешься ее решить самостоятельно. Это и есть ответственность. Ты не ждешь, когда кто-то придет и починит за тебя.
Нужно иметь смелость в себе. Нужно не просто молча расстраиваться, заметив проблему, а придумать конструктивное решение. Ты должен пообщаться с людьми, определить, кого касается проблема, делает ли она работу команды менее эффективной. Если это так, то ты должен ее решить. Это ожидается от senior.
Конечно, некоторые проблемы сложно решить самостоятельно — в таких случаях я эскалирую, пишу посты, описываю, почему это важно, привлекаю внимание к проблеме. Если ты видишь проблему и молчишь, никто не узнает о том, что она важна для тебя, но если ты напишешь пост о проблеме — будет реакция.
Какие soft skills нужны junior?
Я приведу пример. У меня в команде есть один junior, и у него проблемы с коммуникацией. Бывает так, что мы договариваемся о спринте в рамках команды: определяем задачи на две недели, и он не может завершить свою часть. У него на то есть объективные причины, но о том, что работа не завершена, мы узнаем только в конце спринта. Так не надо. Нужно заранее коммуницировать подобные вещи: я это не успею, я это успею, я могу успеть еще что-то. Ни для кого не должно быть сюрпризов, вся команда должна иметь возможность адаптировать свои ожидания. Поэтому самый главный скилл – умение нормально общаться.
Как ты готовилась к алгоритмическим задачам на интервью? Был ли у тебя опыт олимпиад, использовала ли ты задачи с leetcode?
Да, я это все делала. Больше всего мне помогла подготовка с моим лучшим другом: мы одновременно проходили интервью в разных компаниях, а потом задавали друг другу задачи с этих интервью, также и задачи с leetcode и других ресурсов.
Мы постоянно тренировались разговаривать на английском и писать код вдвоем. На Pramp есть “mock interviews” – их тоже можно проходить. Опыт в олимпиадном программировании, конечно, тоже помогал: во многих задачах используются стандартные приемы, которые довольно легко узнать и использовать.
Чем отличаются собеседования на university grad позиции и обычные?
С точки зрения кодинга — ничем, хотя собеседования на university grad включают поведенческие интервью. Я сама их провожу: два интервью на кодинг и одно поведенческое. Как я говорила, эти интервью для того, чтобы определить адекватность и ответственность человека. Иногда бывают курьезы: один человек почему-то рассказал мне о том, как он наврал профессору о домашнем задании. Это странно.
В чем состоит сама работа и стажировка?
Зависит от того, в каких проектах участвует команда. Я в обе стажировки работала в инфраструктурных, а не продуктовых командах, а потом, когда пришла на фуллтайм, присоединилась к продуктовой команде и работала над User Facing. Во время стажировок вы обычно занимаетесь разработкой в рамках проекта, который можно завершить за 6-8 недель. Бывают разные проекты – например, один стажер сделал чат-бота, который был нужен для проекта.
Какие были трудности при переезде?
Были социальные трудности — весь круг общения остался в России, нужно было искать новых друзей. В целом, мне все нравилось.
Думаю, если переезжать с партнером, а не одному, то первое время на зарплате junior будет довольно трудно. В Лондоне квартиры дорогие — 1500 фунтов в месяц за 25 квадратных метров. Конечно, бывают трудности в проектах — не получается что-то сделать, с кем-то договориться, твоя проблема никому не кажется важной.
Facebook – одна из немногих больших компаний, использующих Haskell. Сколько на нем проектов? Есть ли стажировки, связанные с ним?
Я не знаю, сколько именно на нем проектов, но у меня есть приятель, который с ним работает. Я думаю, стажировки в их команде есть. Один из основных проектов – Community Integrity, эти команды обеспечивают чистоту платформы от суицидальных вещей и тому подобного контента; они использует Haskell, и у них должны быть стажировки. Надо только указать, что вам интересен Haskell в опроснике, который вам дают после прохождения интервью, тогда вас могут заметчить в нужную команду.
Facebook использует какие-либо инструменты разработки, кроме своих собственных? TypeScript, например.
Важно понимать, что в разных командах все по-разному — это и есть главный рефрен моего рассказа. Разные команды используют разные технологии. В моей команде идет разработка под Android – то есть, Java, Scala, собственный инструмент для сборки. Ничего сложного. Что касается других технологий – у нас, конечно, можно найти другие языки и инструменты разработки. Наверно, в какой-нибудь команде используется то, что названо в вопросе. Кто-то пишет на Haskell, кто-то на Erlang — инфраструктуру для WhatsApp.
Frontend так же гоняют по алгоритмам на собеседованиях, как и бэков?
Да, примерно одинаково.
Каких специалистов ищут ваши команды? Работаете ли вы в командах с людьми из других стран, или местные команды в приоритете?
В моей команде все из разных стран. Менеджер из Китая, он сейчас в Калифорнии, есть коллеги из Италии, Колумбии, Македонии и Румынии. Есть команды, в которых много русскоговорящих людей, есть те, где только люди из Индии, в общем, все разные. Во время bootcamp можно выбрать команду, которая вам нравится и с которой вы хотели бы общаться.
Что бы ты посоветовала 18-летней себе?
Делать побольше проектов, чтобы набраться опыта. Делать проекты серьезнее, чем университетские задания. Попробовать для второй стажировки компанию поменьше вместо Facebook — получилось, что в маленьких компаниях я почти не работала. Попробовать работу в разных стартапах, работу над разными темами, для кругозора. Например, мне повезло один раз поработать с машинным обучением (в Яндексе), и я поняла, что не хочу заниматься этой темой – и поняла это рано, а не поздно.
На собеседованиях больше ценится реальный опыт или решение задач из олимпиад?
Ценится все. Надо уметь быстро решать задачи, объяснять решения, решать правильно, тестировать, самостоятельно находить ошибки, общаться. Также ценится предыдущий опыт, если вы руководили командой или тренировали начинающих разработчиков — это здорово. В общем, ценно и то, и то.
Стажировка — это больше индивидуальный проект или работа в команде?
Да, это индивидуальный проект. Мы хотим оценивать ваши возможности, ваш труд. Это сложнее сделать, когда работает целая команда. Обычно это независимая задача, не слишком важная для команды, потому что стажер может не закончить ее, но такая, которую команда все равно собиралась выполнить. Я думала брать стажеров на это лето (передумала из-за эпидемии) под задачи, на которые у меня не хватает рук и времени.
Сколько длится стажировка?
Обычно 12 недель, иногда 16. 16 для тех, кто получает PhD, 12 для бакалавров и магистратуры.
Есть ли такие люди, которые работают один год в лондонском офисе, один — в польском офисе, и так далее?
Нет, потому что у нас основные инженерные офисы находятся в Лондоне, несколько — в США и Сингапуре. В Цюрихе — инженерные офисы Oculus. Хотя офисы компании есть в большинстве стран, обычно в них сидит маркетинг/sales. Поэтому практики работы из разных офисов нет. Хотя, если едешь домой в страну, из которой разрешен доступ к системам, можно некоторое время поработать из дома.
Для менеджерской позиции нужно понимать техническую часть?
Да, во время менеджерских интервью тоже задают задачи. Хотя я сама не провожу их, могу сказать, что техническая часть действительно нужна.
Сколько опыта в кодинге нужно, чтобы подаваться на стажировку? Мне 30, универ заканчивала давно, и он был филологическим.
Для стажировки в Facebook и многих других крупных компаниях нужно быть студентом очного обучения. На стажировку можно попасть, если пойти в магистратуру по computer science: они смотрят не на возраст, а на статус студента. Конечно, нужно будет потренироваться в алгоритмах и структурах данных, научится решать задачи, но шансы всегда есть.
Когда я начинала работу в Facebook — это было 8 января (у нас есть определенные даты общего начала работы, каждые несколько недель) вместе со мной начинал стажер, которому было 37 лет.
Как ты узнаешь о том, что делают различные команды?
У нас есть внутренняя сеть workplace, там люди постят о том, что они делают. Можно подписываться на группы, которые тебе интересны — например, я подписалась на группы, связанные с Oculus.
Это делается в Portal. Про сам Portal тоже есть группы, потому что мы сами делаем для него hardware, модифицируем под него специальную версию Android, делаем разные приложения для него.
Кроме того, у меня в Лондоне много знакомых из разных команд, я и от них узнаю, что они делают. Получать информацию довольно просто, но следить за всем очень сложно из-за того, что информации много.
Насколько сложно уехать по работе и остаться на ПМЖ за границей?
Довольно легко. Если вы получаете оффер, вам делают рабочую визу, и вы живете здесь. Через какое-то время получаете ПМЖ, в Великобритании – 6 лет для гражданства, 5 лет для вида на жительство.
Сколько времени проводишь на работе?
По-разному. Часто по настроению. Сейчас, когда все сидят дома, делать больше нечего, поэтому я работаю часов по 10-11, примерно с 11 дня до 10 вечера. С перерывами, конечно. Всего работы получается часов 8-9.
В нормальном режиме я прихожу в офис в 11-12 часов и ухожу в 7-8.
Некоторые коллеги работают с 8 утра и уходят в 16. Кто-то работает больше, кто-то – меньше, также это зависит от команды. В первой команде, которая находилась в Лондоне полностью, я никогда не перерабатывала; в текущей – иногда перерабатываю, потому что большая часть команды находится в Калифорнии, и мне приходится оставаться на работе, чтобы поговорить с ними. Мы сейчас делаем приложения для удаленной работы, для Portal – это сейчас в приоритете, поэтому работы много.
Как происходят взаимодействия между членами команды и между командами? Возникают ли бюрократические проблемы, или используется agile-подход?
Нормальные взаимодействия. У каждой команды есть свои цели, все достаточно позитивные, все хорошо общаются. Обычно команда рада помочь, если что-то нужно. Если другой команде нужно что-то большое, нужно искать компромисс — определять, какие части делать самостоятельно, для чего подключать еще кого-нибудь, что обсуждать с менеджерами, приоритетна ли задача для компании. У меня не было больших проблем во взаимодействиях с другими командами, хотя взаимодействуем мы постоянно.
Есть ли бюджетное обучение сотрудников? Как можно пройти курс?
Можно ездить на конференции в любой точке мира, раз в год. Я думаю, если захотите пройти онлайн-курсы, никаких проблем не будет. Конкретного бюджета нет, все делается по согласованию с менеджментом. Не могу сказать насчет обучения в университете (слышала что-то, связанное с этим, но для США), но организовать получение новых навыков – без проблем.
kdmitrii
"На собеседованиях больше ценится реальный опыт или решение задач из олимпиад?
Ценится все. "
К сожалению за Фейсбук не могу комментировать, но для Гугла и Амазона это неверно (и почти наверняка неверно для Фейсбука).
Собеседование на 95% состоит из олимпиадных задач и 1 систем дизайна который сможет пройти любой. Т.е по сути проверяют только алгоритмические задачи.
"Чем отличаются собеседования на university grad позиции и обычные?
С точки зрения кодинга — ничем, хотя собеседования на university grad включают поведенческие интервью. "
А это прямо доказательство что в Фейсбуке все так же как и в Гугле с амазоном. Более того это вообще ерись какая-то, там реально людей с 10 годами опыта собеседуют как студентов?
Кстати там ещё было про странность того что человек рассказал что наврал профессору. Странно что рассказал или что наврал? Можно поподробней почему это странно?
"с junior на middle надо перейти за два года
с middle на senior – за три года;
если не получается – увольняют
"
В интервью есть небольшое упоминание того что мера уровня (сидел/сеньер и тд) это мера ответственности. Можно поподробней? Как грубо говоря отличить Мидла от сеньера? Звучит так как будто знания значения не имеют (а в больших компаниях за условно год можно разве что побольше привыкнуть к внутренним велосипедам). И самое главное, какая зп в каждом грейде? Зависит ли за напрямую от грейда? Может ли хотя бы теоритически Джуниор получать больше Мидла? Мидл больше синьера? Какая вообще зп в Лондоне в Фейсбуке? Реально ли получать 180-200 тысяч в год?
"Какие принципиальные отличия собеседований в UK и России?
Я собеседовалась в основном только в больших компаниях. Но в них, и в стартапах тоже, все примерно одинаково: надо решать олимпиадные задачи по кодингу,"
Вот тут я с ответвенностью заявляют что олимпиадные задачи дают только в больших конторах, в нормальных такой бред если и встречается то крайне редко. С вами просто общаются на нужные темы, иногда дают задание на пару часов (оно больше на знание стека чем на что-то ещё).
Zuy
Скажу про Гугл, там действительно 3 из 5 собеседований — это задачи по кодингу, но я бы не назвал их оллимпиадными. Меня спрашивали о развороте слов в строке, буферизации и только один вопрос был про направленный графы, но я прямо ответил, что понятия не имею, что это такое. Устроился на уровень 5 т.е. senior.
У товарищей такого же рода задачи спрашивали.
strannik_k
По статьям и комментам у меня складывается впечатление, что для успеха в IT (то есть попасть в ИТ-гиганты) нужно только 3 вещи: до какого-то уровня подтянуть разговорный английский, хорошенько потренироваться в решении алгоритмических задач, почитать что-нибудь/пройти курс/посмотреть видео по System Design, чтобы хоть что-то по нему знать.
Aecktann
Из всех людей, которых я рекомендовал в разные компании FAANG'а, почти все думали, что английский — это самая серьёзная проблема, которая у них есть. Почти все из них ошибались.
Уровня английского, когда человек может сказать «хере ви итерейт овер зе лист энд инкремент вариайбл джи» более чем достаточно, чтобы пройти интервью и выйти на работу. Через 3-6 месяцев люди начинают говорить легко и быстро. Конкретно в FB есть спонсируемые курсы для не нейтив-спикеров.
Плохой английский на интервью мешает только кандидату. Вместо того чтобы сфокусироваться на задаче, человек тратит очень много сил на то чтобы просто говорить. Но даже это не проблема почти никогда.
mbezoyan
Видимо все мои знакомые не очень способны к языкам, большинство через 6 месяцев только начинает понимать, о чем говорят на митингах :)
Aecktann
Новые ребята имеют свойство выбирать команду, где много русских, и даже потом предпочитают коммуницировать с русскоязычными. В европейских офисах это обычно не очень сложно. Но это палка о двух концах.
Zuy
В общем так и есть. Это называется прокачать навык прохождения интервью. С реальной работой этот процесс вообще никак не связан.
ganqqwerty
То бишь примерно Easy-Medium с leetcode?
Zuy
Может мне везло, но да, выше уровня medium мне задачи ниразу не задавали на интервью. Я лет 20 в разработке близко к железу, ниразу в реальной работе деревья не требовались. Я про них только узнаю, когда очередной раз начинаю готовиться к очередному интервью.
Aecktann
>И самое главное, какая зп в каждом грейде?
levels.fyi
>Зависит ли за напрямую от грейда?
Да, есть условные вилки для каждого грейда.
>Может ли хотя бы теоритически Джуниор получать больше Мидла? Мидл больше синьера?
Часть компенсационного пакета опциональна: бонусы и RSU. Они зависят от перформанса. Технически успешный мидл может по итогу собрать больше среднего сениора.
>Какая вообще зп в Лондоне в Фейсбуке? Реально ли получать 180-200 тысяч в год?
Очень расплывчатый вопрос. Какой валюты, гросс или нетто, на какой позиции, базовой зарплаты или тотала. Вообще, levels.fyi :) Там можно отфильтровать по позиции и по офису.
alex_www
По Дублину/Лондону там мало ЗП и оони сильно ниже американских, даже вне долины
mbezoyan
?180-200k в фб в Лондоне получать вполне реально, сколько от этого будет оставаться после налогов можно посмотреть на https://www.uktaxcalculators.co.uk/
alex_www
по дефолту показывает что на налоги уйдет 37%. Это… не много если сравнить с большинством провинций Канады, или NY, CA в США.
mbezoyan
Моя математика показывает что для 200к налог будет 41.5%, что как бы совсем немало:)
alex_www
Ну такой же налог в Калифорнии или Онтарио. Да, налоги высоки на западе.
wataru
Не забывайте, что в России налоги тоже не маленькие. На западе обычно в эти 40% все взносы уже входят, а в России это все дополнительно к 13% приплюсовывается. Однако, на западе довольно часто встречается прогрессивная шкала налогов. В итоге много где налоги в среднем меньше, чем России. Айтишников это меньше касается, но тем кто меньше зарабатывает — сильно помогает.
0xd34df00d
Я с немногим меньшей меньшей зарплаты, но учитывая налоги типа council tax или на телевизор (от которого отказаться трудно, если в снимаемой тобой квартире телевизор есть), отдавал в районе 45% налогов.
В США в NY с существенно большей зарплаты я отдаю в районе 26-28% налогов, ну и покупательная способность доллара тут существенно выше, на мой взгляд.
alexfetisov
Я не соглашусь с высказыванием, что «проверяют только алгоритмические задачи». Дело в том, что с помощью этих задач, очень легко увидеть Ваш уровень на данный момент. Абстрактный уровень на абсолютно случайной легкой формальной проблеме. Никто не знает, над чем Вы будете работать в Facebook, сперва идет bootcamp, так что выбор команды — это Ваш личный выбор. Поэтому я не могу спросить детали. Да и не хочу. Мне интересно видеть, как вы рассуждаете. Как вы пишете простые вещи. На сколько хорошо владеете базовым языком, который Вы выбрали. Как вы ищете баги в коде. Но лучше всего для меня, если Вы не знаете как решать задачу после прочтения. Тогда мы можем поговорить, я попытаюсь навести Вас на мысль и будет диалог, в процессе которого выяснится много вещей.
«Бред» — это сложное слово про интервью, я не хочу спорить. Но практика показывает, что подобное интервью позволяет выбирать хороших инженеров. Обратное не верно. Я не спорю, что бывают false negative, когда очень крутой инженер не смог решить задачу. Но тут значит все факторы (коммуникация, подсказки, кодинг, да и все 4-5 интервью прошли не так). Это неудача, но они случаются.
К сожалению, многие думают, что интервью удалось, если решишь задачу, а если не решишь, то провалено. Это не так. По крайней мере не должно быть так. Суть — понять, как человек можно думать и придумывать. Тогда есть высокий шанс, что человек способен научиться работать.
Разумеется, есть найм спецов в конкретную отрасль, ну допустим в команду баз данных. Но обычно это какой-то уровень стафф или выше, когда нужны действительно глубокие знания, чтобы уметь вести команду и продукт в верном направлении. Тогда уже разговор будет другой и в стартапе и в большой компании.
Про миддл и сеньор: это мера опыта. Допустим я сеньор, от меня ждут умения взять проект или понять проблему. Понять как ее решать. И решить. И я это должен делать сам, без того, чтобы мне кто-то указал. Ожидания от миддла меньше. Однако, когда я был миддлом, ожидание почему-то тоже было похожее на сеньорное :) Не знаю, на счет ответственности. По моему, всегда ответственность на том, кто ведет проект. В общем есть точно довольно интересный документ про уровни (я его видел, когда был в Dropbox, но вроде есть в каждой конторе), где каждый уровень расписан. И в основном это scope задач, которые Вы решаете.
warhamster
Мне вот любопытно, а а как, например, уровень владения языком оценить по алгоритмическим задачам? Там чаще всего язык вообще неважен, всякие вещи типа ООП, паттернов и прочего солида — тоже побоку. Плюс под «владением языком» сегодня обычно имеется в виду больше знание фреймворков и инфраструктуры, чем собственно сам язык.
Я, в принципе, уже смирился с мыслью, что когда в следующий раз буду искать работу — придется порешать задачки, потому что выше определенного уровня без них попасть сегодня не получится. Но, глядя на продукцию гугла и фейсбука, возникает вопрос — а куда они этих отборных кадров девают, почему такая трэшачина-то выходит?
acmnu
Эм. А зачем? На мой взгляд, если программист не знает конкретного языка или фреймворка, он его изучит, и я готов ему на это дать время и деньги. Более того, я организую ему обучение за счет компании и внутренние тусовки с правильными людьми. Но если он не понимает как именно его программа запускается на сервере и взаимодействует с окружающим миром и не понимает базовых принципов написания программ: структуры данных, рекурсия vs циклы, процессы, потоки, O нотация и так далее, то я не смогу его этому научить за разумный срок. На изучение фреймворка, даже большого уходит до года, а на инженерное мышление уходят иногда десятилетия.
По языку я спрашиваю обычно несколько вопросов, просто чтоб понять водят ли меня за нос, говоря о большом опыте. Грубо говоря, если Python Senior не знает как пишется декоратор, это странно, а если знает то это повод поговорить о функциях высшего порядка, частичном применении и их влиянии (или отсутствии этого влияния) на то, что он делал раньше и будет делать у нас.
Мне кажется примитивным сводить умение программировать к доскональному знанию языка. Это как в школе. Есть отличники, которые каждый урок истории выдают все даты на зубок, но через год уже ничего не помнят. Но обязательно найдется раздолбай в классе, который понятия не имеет о дате смерти Павла I, но точно объяснит вам, а почему это произошло, как это связано с гвардией, сложными взаимоотношениями между Елизаветой, Екатериной, Павлом и Александром, а так же как это выглядит с точки зрения марксизма. Вот такие раздолбаи, если попадают в правильную среду и учатся ответственности, становятся очень сильными программистами, архитекторамии и rockstar, а отличники дальше мидла вырастают редко и обычно уходят в менеджмент.
0xd34df00d
Вы там пишете что-нибудь, например, на C++?
vladon
По опыту, коллеги, которые приходили к нам писать на C++ из совершенно других миров (Java, Python-only, C#, т.е. вообще даже с garbage collector'ом, и из фронта с JS), вполне себе за пару-тройку недель начинали писать нормальный код.
Нет ничего сложного в C++, оказывается.
0xd34df00d
Ну что сказать, вы там действительно нанимаете гениев.
ganqqwerty
Может просто код-ревью строгие и не дают выпендриваться?
0xd34df00d
«Нормальный код» же — значит, наверное, от строгости код-ревью там зависит немногое.
А если не выпендриваться (что бы это ни значило), то можно и не на плюсах писать.
ganqqwerty
Кстати, всегда интересно было формализовать выпендреж, которым славятся плюсовые проекты. Думаю, что все должно идти от ключевого вопроса — сможет ли человек, перешедший на плюсы месяц назад понять твой код? Нет? Используй более простые конструкции. Рано или поздно список рекомендованных, нерекомендованных и запрещенных конструкций должен стабилизироваться и, может быть, оформиться в виде документа.
0xd34df00d
Насколько понятна такая конструкция?
При каких условиях на
expr
она валидна, а при каких — нет?Насколько легко их проверять на кодревью? Насколько глаз вообще зацепится за это?
Но это так, для разогрева.
У плюсов есть пара мощных аспектов: метапрограммирование вместе с возможностью генерить относительно эффективный код
так как эта эффективность от малейшего шевеления синтаксиса разваливается, как, например, в случае clang недавних релизов, который оптимизировал
std::min({ ... })
корректно в простых функциях, но спиллил регистры в более сложных контекстах, замедляя вычисления в три раза, например).ganqqwerty
Потому что в си нет классов. По-моему, можно вполне писать на си как на Java 1.6, иногда в нужные места вставляя более тонкое управление памятью, ну и может быть, заимствовав каких-нить уж очень вкусных синтаксических сладостей типа лямбд. В проект с таким код-стайлом легко вьехать свитчеру с других языков.
CheatEx
Зачем классы?
0xd34df00d
В хаскеле тоже нет классов (ну, в смысле C++, по крайней мере), но между плюсами и хаскелем я выберу второе в подавляющем большинстве случаев.
Нужность классов действительно неочевидна.
В конце концов, возьмите, действительно, джаву или там питон. Зачем плюсы-то?
ganqqwerty
Вообще все это наводит на мысль — нет ли где проекта совместимого подмножества плюсов? Этакий «Opinionated С with classes». Ну, понимаете, чтоб как C++, но осваиваемый без десятилетнего дрочева. За основу можно взять какую-нить из ранних версий C++ стандарта, выкинуть оттуда дурь, оставленную для обратной совместимости, добавить туда ограниченные версии ништяков с низким порогом вхождения из новых версий стандарта.
CheatEx
Есть, в 98 Sun, земля ему пухом, зарелизил. Называется… oh wait…
ganqqwerty
Офигенно же вышло!
Barbaresk
Пожалуй, С++ в контексте вопроса о лёгком переходе на другой язык и, правда, лучший контрпример. Я примерно после 5 лет интенсивного использования С++, изучения стандартов, чтения учебников страуструпа (включая самый трудный из них), разборов и написания всяких мозговыносящих программ, а-ля «игра жизнь» на шаблонах, пришёл к выводу, что с меня этой чехарды хватит и ушёл на C#. Так вот, немного занимался обучением студентов языку С++ и мой стандартный совет: «пишете как можно проще и если не уверены в чём-то в С++, то лучше не используйте». И всё же на С++ можно писать в довольно простом стиле с простенькими шаблонами, простыми классами (единственное тут не забыть про copy/move варанты конструкторов и операторов=). При таком раскладе есть некоторые шансы избежать граблей даже тем, кто только пришёл в С++ из других языков. Так что история про то, что люди на изи пришли из другого языка, это истории о том, как люди просто пишут на некотором подмножестве языка С++ в знакомом для них стиле из прошлого опыта. Но, имхо, С++ вообще не тот язык, на котором стоит писать программы. Часто вместо решения прикладной проблемы ты решаешь проблемы самого языка.
CheatEx
Плюсы это не какой нибудь Scaskell. Там нет простых и сложных конструкций. Там 800 страничный стандарт где каждая фича взаимодействует с почти каждой другой фичёй.
0xd34df00d
800? Это для C++98, что ли?
1448 для драфта C++17, будет ещё минимум на сотню-другую больше для драфта C++20.
CheatEx
Ну я примерно в 2004 слился с попыток им пользоваться (:
acmnu
Да, С++ отдельная песня. Уж очень тяжел язык, слишком много UB, поэтому невозможно быстро изучить. Но он такой по сути один.
alexfetisov
Владение языком — это не вот эта жесть которую в Яндексе спрашивали про ++i++i++; Что выведется мол на экран. Нет. Я именно хочу понять, как вы выучите новый фреймворк или язык. Если вы можете написать 50 строк простого кода без ошибок и умеете транслировать свои мысли в код, утверждается, что скорее всего вы сможете. Я плохо выразился про «уровень владения языком». Нужно умение базовых вещей. Например, если вы умеете решать задачи по физике лучше всех, но не знаете как означать физические величины, я не пойму вас. Тут тоже самое. В этих 50 строках мы обсудим О нотацию, может быть напишем бинарный поиск (может быть даже изобретем его), рекурсию и еще что там. Я даже не требую строгого API для допустим TreeMap или std::set. Но если вы не можете написать цикл без ошибок… Ну что сказать?
vladon
Такого в Яндексе уже очень давно не спрашивают.
alexfetisov
Это хорошо. Просто в те времена, когда я спаршивал ребят из Яндекса, там вопросы были по с++, что Страуструп вполне попросит минутку подумать :)
acmnu
Я слышал недавние байки, что нанимают человека в Яндексе, а потом просят прислать какой-нибудь кусок кода на C++, хоть со стак оверфлоу скопировать, чтоб вставить в отчеты о найме :)
Вообще эти собесы в Яндексе уже такая дикая легенда на местном рынке, что пожалуй пора выпускать опровержения с их стороны.
Kib0rg
Это будет выглядеть как оправдание и никакого положительного PR эффекта не принесёт, поэтому обычно крупные компании не комментируют слухи, если только не произошел (или не произошел) какой-то инцидент.
Зачем нужны опровержения, которым все равно мало кто поверит, если можно самостоятельно сходить на собеседование и всё узнать?
n7nexus
Года два назад пробовал проходить там собеседование, по языку как таковому вопросов не было, надо было решать алгоритмические задачки на бумаге/доске, где ты свои знания и показывал.
vladon
Вы можете сами прособеседоваться, чтобы составить своё собственное мнение, и не верить байкам и легендам.
ganqqwerty
А какой правильный ответ? «Дружище, а тебе самому не смешно от этого вопроса?»
alexfetisov
Ну почти на каждый из тех вопросов по С++ я говорил, если бы я увидел это в диффе на код ревью, то это был бы «request changes» сходу и дальше я бы уже не читал!
zynaps76
Не уверен, но думаю, что примерно туда же, куда и у нас. Сначала гоняют по алгоритмам, а потом человек три года грубо говоря «перекладывает данные из одного json в другой протобаф». А года через 3 и глаза уже не так горят, да и менеджеры с задачами «нужно было вчера» никак не отстают.
Barbaresk
А есть ещё такая вещь как архитектура приложений. Почему-то некоторые думаю, что, посадив 5 миддл программистов в ряд, можно получить готовое приложение без всяких проблем внутри. А посадив 10, получить в два раза быстрее. В то время как архитектурные проблемы приложений это уже не просто баги в коде, а заложенные мины, которые могут взорваться и через год, и через пять лет и т.д., когда уже вложены многие человеко-года разработки. Но вот только для оценки возможности возникновения таких проблем нужны люди не просто умеющие в noname-ЯП, а набившие все шишки во многих проектах и изучивших уже существующий опыт.
alexfetisov
Так о том и речь, что я не прошу ООП и фреймворки. Напишите 50 строчек кода без ошибок. И при этом надо просто написать то, что мы обсудили в виде кода на языке, который вы выбрали сами. Это все! Но оказывается это не просто. Однако, ничего сверхъестественного.
А простите, что за трешачина? Инстаграм вроде бы открывается, не падает. Фотки грузятся, лайки ставятся. Лента в ФБ открывается, посты постятся. WhatsUp вроде почти везде используют и тоже не падает. Остальные продукты тоже работают хорошо. У гугла тоже вроде поиск работает, почта тоже, youtube вообще по моему в половине вкладок у всех открыт, кого я знаю. Все продукты держат какую-то фантастическую нагрузку и огромное число юзкейсов. Так что за треш то?
alex_www
Ну так себе гмэйл открывается — визуально slow motion.
alexfetisov
Ну не знаю, у меня вроде нормально. Но мне и не надо от почтового клиента космической скорости. Вот если видео начинает лагать — это да. Или как допустим был момент, когда я звонил в Россию с телеги и связь была ужасная, прерывалось и т.д., но в то же время перезвонил на WhatsApp и все ОК. Вот это проблема.
wataru
Но тут надо выставить ожидания правильно. Все-таки gmail — уже давно не тупо почтовый клиент. Там же куча фич есть вроде чата, редактора, автодополнения, оффлайн режима. Хотелось бы, конечно, что бы оно сильно быстрее грузилось, но не так все плохо.
Aecktann
Вы знаете, я прямо сейчас замерил. Gmail быстрее чем хабр загружается.
Stas911
В некоторых компаниях уровни зарплат разных левелов касаются или даже слегка пересекаются. Очень сильно зависит от вашего настроя и скилла торговли с рекрутером. Например, когда я устраивался, у меня в тот момент была неплохая работа и я просто принципиально не собирался менять шило на мыло без существенного повышения, поэтому торговался яростно и по итогу получил оффер почти по верхней границе своего грейда, как в итоге оказалось. Если б я сидел без работы — вероятно, столько бы не выбил.
Все почему-то зацикливаются на задачах, но ведь soft skills очень сильно решают на интервью. Время одиночек прошло и без умения общаться с людьми (клиентами, коллегами) далеко не уехать.
PleaseKING
Провожу в Гугле по два интервью в неделю в среднем на уровень 6 Engineering Manager, в основном coding, хотя иногда и другие. Никак не могу сказать, что спрашиваю олимпиадные задачи, как минимум потому, что не умею решать их сам. Интересует умение рассуждать, поиск решения, реакция на мои замечания, исправление собственных ошибок, общий скилл работы с кодом.
Требования к Engineering Manager на уровнях 5-7 в части технических скиллов в принципе эквивалентны требованиям к инженерам соответствующих уровней, допускается уровень минус один. Ну и coding interview будет одно-два, а не три.
И да, огромное большинство кандидатов с 15-20 годами опыта в Долине эти интервью не проходит.
ganqqwerty
А общий скилл работы с кодом — это про разные аспекты Clean Code речь или про что-то ещё?
PleaseKING
Ну это вообще про умение читать код, видеть идиомы языка, выбирать оптимальные и т.п. Грубо говоря, должно быть видно, что человек любит и умеет писать хороший код и читать его.
Clean code — хорошая вещь.
capitannemo
Спасибо за проект, добавил в закладки.
Илоне — успехов и потом — терпения. Молодец.
DmitriyTitov
Вопрос причастным: зачем люди стремятся в Гугл, там, Фейсбук или Яндекс? Чего там такого манящего, почему эта тема так популярна? Вопрос без подвоха.
Неужели в небольшой компании не так интересно или меньше возможностей? Или само чувство приобщения к чему-то большому и известному притягивает людей?
kdmitrii
По сути только 2 варианта. Первый это то что в эти компании как ни странно относительно просто устроится после(или даже во время) обучения в универе. Второй вариант возможен для очень серьезных чуваков, суть в том что на объемах Гугла или Фейсбука можно строить инфраструктуру только очень нетривиальными вещами. Грубо говоря это одно из немногих мест где твой опыт распределенных систем может быть прямо таки необходим. Хадуп, Спарк, КликХаус и тому подобные штуки не используют компании из 10 человек.
А если тебя не интересуют подобные технологии то примерно в 99% случаев в маленькой компании будет и комфортней и платить будут больше.
DmitriyTitov
Я немного пописываю на Go, и если верить вакансиям подобные штуки (не именно все эти, но многие похожие) используют абсолютно все конторы, вне зависимости от размера.
И ещё у всех хайлод. И микросервисы в кубернетисе (даже если это единственный Go-бинарник).
Все хотят быть «как у Гугла», наверное.
vsb
Не знаю, что насчёт Go. Могу описать технологический стек проекта, в котором я уже несколько лет участвую. База данных Oracle 9i. Толстый клиент на Delphi 7 (в статусе устаревшего, но для ряда задач всё ещё используется). Новый софт пишется на Java 8, используется Spring MVC, запускается на Tomcat. Кроме этого используется Wicket в некоторых проектах. На серверах Windows 2003 и Windows 2008. Никаких микросервисов, хадупов, спарков, кликхаусов нет. Даже интернета нет.
Так что про "абсолютно все" вы абсолютно точно ошибаетесь. Думаю, хватает компаний со "скучными" стеками.
DmitriyTitov
А я про Go, а не про Delphi.
Ну и рекомендую смахнуть с моего комментария лёгкий налёт сарказма перед ответом.
Zuy
Деньги и проекты. Платить в маленьких больше не будут. Я проходил собеседования во многие компании в долине. Если компания не публичная то они дают базовую ЗП может и выше но у них нет второй части — акции. А это ещё плюсом такая же вторая ЗП. Точнее они дают свои внутренние стоки но они ничего не стоят. В уши льют что вот мы выйдем на IPO и тогда все разбогатеют, но вероятность этого мизерная.
Ну а проекты, я например работаю в Гугл, в разработке софта для сетевых карт будущего. Такие железки появятся в дата центрах года через 2-3. Если кто-то ещё их разрабатывает то такие же гиганты как Гугл.
alex_www
Навалом кто делает свои сетевые карты и сетевое железо. А вот как раз свои чипы сетевые делает мало кто. Закупают у броадкома как правило. Что там — циско и джунипер сорсит у броадкома.
kloppspb
Возможно, «уух какие технологии», «уух какой карьерный рост». Ну и причастность к чему-то большому, для начинающих это, наверное, важно…
Понимание этого приходит позже.
wataru
У Гугла, например, зарплаты довольно высокие. А что касается комфорта, то это тоже спорный вопрос. Маленькая компания, например, не сможет так же обустроить офис с трехразовым питанием, спорт залом и душевой. Офис вероятнее будет находится в неудобной локации. Это, конечно, субъективные вещи. Если вы предпочитаете и можете работать из дома — то эти перки вам малоинтересны.
ganqqwerty
Для меня причастность к большому стала важным (и очень важным) фактором только через шесть-семь лет разработки.
kloppspb
А мне лет через 20 стало глубоко насрать :)
ganqqwerty
Может быть, это циклический процесс?
0xd34df00d
Наверное, у меня просто большой цикл, но мне на это всегда было плевать :]
Сложность решаемых задач куда интереснее.
kloppspb
Ну, у меня пока зациклиться не получилось :) Хотя с грандами имел дело. Но соглашусь с Мертвоедом:
Да. В данный момент у нас всего 4 разработчика. И это офигенно (все матёрые зубры, глубоко за 30, и задачки уровня «а ну-ка попробуй скомпилючить libpq под альфу»)
alex_www
www.levels.fyi вот зачем. Небольшие/малоизвестные конторы крайне редко платят столько.
DmitriyTitov
Мне ничего не говорят американские зарплаты. Вообще не понятно много это или нет.
В России эти компании, если верить статьям тут же, не особенно задирают зарплаты. Кроме того, работа в большой компании — это практически всегда работа в офисе (опять же в России), в крупном городе. А, значит, это дорогая аренда, еда, транспорт и пр.
То есть вот вы имеете информацию, в России действительно выгоднее работать в Яндексе чем в конторе средней руки?
Milein
В США FAANG платят вполне достойно, но можно найти и выше.
А вот в Европе они платят заметно выше рынка. В Лондоне можно урвать больше в трейдинг фирмах, но это соковыжималка из людей.
Ещё спокойно и беспроблемно тащат людей из других стран, и внутренний релокейт между офисами есть.
Но ведь в России их и нет…
DmitriyTitov
Как это нет? Есть и Яндекс и Майкрософт и АйБиЭм и почти все прочие. Я не знаю, есть ли Фейсбук, но на суть вопроса это никак не влияет.
Зарплаты в Лондоне и Америке интересуют не только лишь всех россиян. Мне вот они, к примеру, вообще безразличны. Я спрашивал именно про Россию.
Milein
У микрософт насколько я помню в РФ одни продажники остались.
Фейсбука нет. Гугла, Амазона и Нетфликса нет.
IBM не вписывают в ряды FAANG.
Яндекс уж тем более, это просто локальная конторка по сравнению с FAANG. Он только похож тем что алгоритмы любит спрашивать, но вот и всё сходство.
Поэтому я и говорю — FAANG в России нет. Так что для сравнения их с остальными компаниями придётся вам изучать зарплаты например в том же Лондоне.
wataru
Они в России вообще есть? Тут из подобного только Яндекс, но они особенные — платят меньше рынка. FAANG таким не страдают. В России в Яндексе можно работать ради задач или престижа. В FAANG есть еще точно высокая зарплата.
kdmitrii
290 тысяч это лишь чутка выше средней зп сеньера с Кремниевой Долине. Обычно предлогают 240 для человека с 6-7 годами опыта. Т.е ничего особенного. Кстати кому там столько предложат это еще интересный вопрос. И нужно понимать что 200 тысяч гденить в Майями это лучше чем 300 в Сан Франциско. К тому же здесь опущена вся специфика любых крупных компаний от которых работать там может быть не очень приятно.
alexfetisov
Субъективно, я выбирал компанию по тому, что я хочу на данный момент, с кем хочу работать и над чем. Если есть продукт, который мне нравится и я в него верю, почему бы не учавствовать в нем. Я так пошел в свое время в Убер, потому что, как бы это банально не звучало, я верил, что мы делаем что-то очень крутое и нужное.
Но большие компании — это стабильность. Акции не настолько прыгают, как у маленьких. А если говорит про pre-IPO, так вообще неясно, выйдет компания или нет. Ну еще допустим в Facebook куча очень крутых проектов, в которых нет ощущения большой компании, когда 5-10 человек пишут очень мощные вещи. То есть возможности тоже есть.
А вот еще такой вариант, Вы решили завести семью. И вхерачивать по 14 часов без выходных уже не кажется такой заманчивой перспективой, как в 22 года. Хочется сходить на jiu jitsu или тайский бокс после работы, поужинать с детьми. Большие компании очень ценят work/life balance. И планы работы это закладывают. В отличие от маленьких компаний, где вам нужно успеть все за неделю, потому что через неделю надо питчить, и если это не будет готово, то денег не будет и все пойдут по домам.
Ну и еще вариант. В большой компании можно научиться как надо делать. То есть все системы должны работать вот так. Потому что это проверено временем, нагрузками и sev'ами.
DmitriyTitov
Аргумент про акции звучит немного непонятно для человека, не имевшего дело с американскими компаниями, но ОК. К тому же маленькая компания — совсем не обязательно софтверный стартап, как у вас в комментарии. Это вообще не обязательно должна быть ИТ-компания, и работа по 14 часов тоже далеко не везде (очень редко где и исключительно по желанию).
Но аргумент понятен.
Такой к вам вопрос:
У вас нет ощущения, что Убер и без вас сделал бы этот продукт точно так же? То есть реально ли оценить вклад каждого конкретного сотрудника в успех или неудачу компании? Ведь без этого, считаю, того самого ощущения сопричастности не появится.
alexfetisov
Когда я пришел, то в компании было по-моему около 200-300 инженеров. Скорее всего, если бы я там не работал, ничего плохого бы не случилось бы и убер так же стал бы тем кем стал. Однако я там был и сделал какой-то вклад в становление компаний. А мысли что и без меня бы все было хорошо, какие-то обесценивающие, поэтому, нет, мне так не кажется :)
Kuorell
Ну вот в том же яндексе акции по результатам пологодового ревью — значимая часть дохода
middle
До недавнего времени их давали более-менее регулярно лишь начиная со старшего разработчика (нет, вам не дадут старшего разработчика в Я просто потому, что вы 10 лет проработаете в «Рогах и копытах» и «имеете опыт». И если в Я проработаете 10 лет, тоже не дадут). В прошлом году их стали давать активнее, но сейчас закручивают гайки обратно. Так что это значимая часть дохода, но далеко не у всех.
0xd34df00d
Маленькие компании ? стартапы.
А можно и не научиться. Потому что решения могут быть обоснованы легаси, традицией и политикой.
В маленьких компаниях мне было куда проще стимулировать переход на C++17 или вносить какой-нибудь хаскель, когда он подходил задаче.
alexfetisov
Ну я же говорю «in general». Ясно, что существуют исключения. Можно и не научиться, но обычно даже отрицательный опыт legacy или там кучи зависимостей — тоже отлично учит. Знаешь чего избегать.
Я вообще говорил только про IT компании. И чем меньше человек, тем выше количество задач на одного, то есть у вас растет требования (ну если только не какие-то государственные вливания там или еще что-то), ведь надо делать новые вещи.
В общем, данная тема и правда очень субъективная, так что особо не вижу смысле в ней. Это был исключительно мой взгляд на вещи. Я очень даже допускаю, что в нем много предположений и допущений.
Stas911
Все ищут и находят разное. В больших конторах, например, много людей, которые умнее тебя (ну, в смысле, меня). А в мелкой, ты можешь быть самым умным настолько, что и спросить совета будет не у кого и в итоге делать лютую чепуху и никто не скажет «чувак — это лютая хрень и так не делают». Work\life balance выше упоминули. Бывает по-разному, но обычно с процессами у них намного все лучше, чем в мелких.
DmitriyTitov
Неплохой аргумент про самого умного, действительно сильный.
Правда по этому поводу я раньше думал так: вот устроюсь, я, скажем, в Яндекс, а вокруг одни олимпиадники и будет постоянное ощущение определённого давления. Есть такой эффект на практике в известных конторах?
PleaseKING
Про гугл скажу — нет такого. Обычные люди кругом, неглупые, разумеется, я десять лет работал в российском аутсорсере — там не хуже люди были в среднем. Но, конечно, есть и очень умные, куда умнее меня, и понятно, что в компании на 100тыс сотрудников их много.
С процессами такой же бардак, как и везде.
Stas911
Ну, синдром самозванца никто не отменял. Но такого нет, что ты прямо вообще ноль, а вокруг боги. Да, чего-то ты не знаешь, чего-то они — у всех разный бэкграунд.
У меня еще есть ненулевое количество коллег, которые из серии «ой, да че там делать — час работы». А как попросишь их подробно расписать по пунктам, что нужно сделать, выясняется, что там только кодить пару дней, не считая тестирования.
PleaseKING
Скажу от себя про гугл, я туда не стремился, он ко мне сам пришел, я согласился. Интересных вещей несколько:
При этом не боги горшки обжигают, и, в основном, кругом обычные люди, такие же вчерашние студенты, зачастую, как были в России у меня, и ни разу не умнее и не лучше подготовленные. И бардак с процессами есть, каждый делает как хочет. И велосипеды эти внутренние не всегда так хороши, как хотелось бы. То есть чуда-то нет никакого.
Как-то так..
zynaps76
Оу, тут много чего в кучу. Очень индивидуально и не всем подходит, но попробую накидать немного, тоже без подвоха. Неблагодарное это дело. Не судите строго:
— финансовая стабильность работодателя: доходы диверсифицированы. бывает очень важно;
— финансовые вилки с большим разбросом: если вы интересны и нужны, то торг очень уместен;
— хорошая строчка в резюме: трамплин. если нужен. а лишним никогда не бывает;
— повышенный шанс встретить много «умных» коллег: далеко не аксиома, но так;
— всякие плюшки: бесплатные визы, спортзалы, помощь в покупке недвиги, гибкие графики;
— устоявшаяся техническая инфраструктура: можно пользоваться готовым, а не выстраивать с нуля;
— и снова инфраструктура: можно не уметь ее полноценно готовить самому, но сам факт, что вы пользовались грамотно настроенной уже будет, пусть небольшим, но плюсом со стороны будущего интервьюера. вы носитель культуры;
— уважение окружающих: "-где работаешь? -в {company_name}. -wow!". с годами проходит.
— проекты, которыми пользуются многие: причем сразу. сотни тысяч, миллионы, сотни миллионов;
— кого-то перехватывают на подлете: еще в вузе на практике/стажировке. ноготок уже увяз и вопрос «куда идти» отсутствует;
P.S.
Что-то в отдельности никогда не побеждает. Обычно в кучу: это, это и вот то.
Могу накидать столько же, если не больше, минусов (куда же без них) ;-)
DmitriyTitov
Накидайте минусы, если не трудно :)
Все эти плюсы, на мой взгляд, со временем начинают терять актуальность. Ну, кроме денег, понятно. При этом, мне кажется, что минусов в крупной конторе не меньше и сальдо получается около нуля. Как считаете?
zynaps76
Нетрудно. Попробую, но дело это еще более спорное, чем плюсы.
— ваш вклад в проект может оказаться сильно размыт. проект один, под-проектов много, а людей еще больше;
— плюшки работодателя могут оказаться не к месту: кофе не пью, дмс-ом не болею, печенья и орехов нужна пригоршня/две в неделю. что там еще? а… впрочем и остальным нет нужды пользоваться;
— меж-проектные согласования могут показаться адом на яву. куча встреч, разговоров, аргументов, балансирование на лезвии. правки потому, как «кто-то что-то понял по своему». и все ради того, что бы сделать простую и атомарную штуку в продакшене;
— умные коллеги могут оказаться кислотными: требовать или ерунду или нереальные сроки. причем вполне аргументированно. они умные и как-то надо постоянно снова балансить;
— повышение зарплаты может быть простым на словах: профессиональные HR-ы вооружены не менее профессиональными покупными средними медианами и прочими красивыми статистиками;
— очень и очень не очевидно: ваши рядовые коллеги здесь, сейчас и в ближайшее время могут оказаться на голову выше вас и работать за деньги о которых вы грезите;
— рутины может оказаться очень много: около 90% вне зависимости от вашей крутизны. бизнес устоявшийся и развивается местами очень спокойно;
— вас может начать под-бамбливать от гибких технологий типа аджайла: брали на под-проект X и Y, а надо быстро разобраться и нести ответственность за бесконечные E, T и C.
Так, но кому как. :-) Сильно индивидуально и смотря, что нужно.
DmitriyTitov
Спасибо, познавательно.
wataru
Еще минус важный есть, кому-то это dealbreaker — нельзя, пока работаешь в Гугле, участвовать в open source. Вернее можно, но все права принадлежат Гуглу. Видимо, сделанно, что бы не судиться потом, в рабочее ли время условный сотрудник пилил мега идею, или это его личная работа. С учетом что выдают кучу оборудования, можно работать из дома по гибкому графику — это все нетривиальные вопросы. Похожая нервотрепка есть с и другими компаниями: надо, по крайней мере, получать разрешение что-то стороннее делать.
Другая проблема — очень формализованный и забюрократизированный процесс повышения. Зарплату вам может ваш менеджер поднимать, если вы хорошо работаете, но рано или поздно вы в потолок вашего грейда упретесь. Тут придется очень много сил и труда потратить на составление документации, доказывающей левым, незнакомым с Вашей работой людям почему вы достойны повышения. Это отдельный навык, слабо пересекающейся с остальной работой.
Связанно с этим — каждый год надо проходить peer review, даже если вы не идете на повышение. Это вы должны описать всю вашу работу и достижения. Потом ваши коллеги пишут ревью на ваши достижения. Это все влияет на рост зарплаты и возможность повышения. Это довольно стрессовый период. В маленьких компаниях все немного проще.
Ну, про совещания вам уже рассказали. Их много и они достают.
Еще в такой большой компании появляется политика и связанные с этим драмы. Какой-то там директор домогался своей подчиненной, а потом ушел из компании, получив 40 миллионов долларов (вскрылось несколько лет спустя). У всех подгорает, все это обсуждают, вся цепочка менеджеров пишет письма, что никогда больше и мы расследуем и боремся. Активисты пишут открытые письма против чего-то или там за что-то. Это не напряжно и это все можно пропускать мимо себя, но может кому-то это будет очень неприятно. Если не смотреть на драмы такого порядка, то, по моему опыту, на более низком уровне климат очень доброжелательный, каких-то скандалов и интриг тут нет (говорю про Гугл).
DmitriyTitov
Спасибо! Про драмы мне наплевать было бы, а вот всякие там оценки даже прикольно. Не люблю стабильность и уверенность в завтрашнем дне.
ganqqwerty
А получается достигать достижения? Мне как-то сложновато пока перестроиться на этот американский достиганческий лад. «Что делал?» «Работу делал, вот запустили полезную штуку вшестером.» «Чего достиг?» «Как чего? Я же сказал, штуку запустили!»
wataru
А это главная проблема, но немного не так, как вы думаете. Единственный простой способ показать достижения — это запустить какую-то штуку. Тут еще придется красиво все описать (дизайн доки, графики и метрики на много-много страниц) и чтобы коллеги хвалили. Отсюда, возможно, растут ноги у желания запускать продукты, даже если они не очень готовы или не очень-то и нужны.
ganqqwerty
Вот мой топ причин:
distortion2
> Не обязателен.
> Я занималась олимпиадами с 8 класса
> Три раза участвовала во всероссийской олимпиале, хотя ни разу не выигрывала
> У меня были дипломы других олимпиад
> это помогло поступить в ВШЭ
То есть у девушки к 11 классу было ~5 лет «опыта» работы. Ну норм, чо. А я крапиву палкой бил в 8 классе.
Для работы в Google нужно быть чемпионом мира по программированию?
Нет, не обязательно. Это вообще какие-то глупые люди придумали эти вещи про чемпионов мира. Не понимаю их. Дурачки какие-то, ей богу. Достаточно быть чемпионом своей страны или города.
galimova_ruvds Автор
Ну, олимпиадное программирование это совсем не опыт работы.
К тому же Илона на всеросе не взяла диплом — она не чемпион мира.
distortion2
Да, спасибо за пояснение. Я знаю всю эту кашу ибо сам собеседую и ревьюю людей от стажеров до синьеров. Просто западные метрики про «1000 часов acm icpc» и наши «нам программирование читал бывший физик-ядерщик» довольно сильно понижают ценность наших выпускников среднего звена.
ganqqwerty
Дык полтора-два годика вдумчивого фигачинга литкода должны помочь, разве нет?
paramahamsa
За Илону рад, может и правда гений, но как-то смущает, что
>путь от junior до senior занял два года
>Мой приятель перешел с junior на senior за полтора года
И не знаю связан ли подобный стремительный рост с тем, то в ФБ такие кривые и противоречивые АПИ. Например при создании лидерборда через graphql в instant games он не отображается в консоли, да и создать можно, а вот удалить нет + масса других нестыковок. А переодически падающий ФБ логин — это норма жизни.
distortion2
Всё зависит от постановки KPI. Он может измеряться разными способами. Вплоть до количества написанных строк кода, тестов, микро-фичей и прочего. Всё может упираться в то, что не важно назначение задачи. Просто должно быть много кода, тестов и это должно работать. Запустить сервис на телефоне важнее для бизнеса, чем зарефакторить 1кк строк инфраструктуры. Решить много средних задач важнее, чем мало сложных.
tumaso
Ну тут всё легко объяснимо — уволить криворуких невозможно, сразу засудят за притеснение угнетаемых. Мне вот только интересно, когда в итоге в FB/Google/Amazaon/etc останутся одни равноправные, кто будет писать нормальный код?
Aecktann
Уволить криворуких вполне возможно (особенно в США) и это нередко случается.
Лучше всего, конечно, не нанимать криворуких.
tumaso
Когда в компаниях уровня FB/Google/Amazon/etc стоит задача достижения полной толерантности/равноправия, то критерий отбора в виде профессиональных скилов уже не является главным. Пример обсуждаемого человека в статье это хорошо показывает — за полтора года с джуна до сеньора? Корпорации гениев, не иначе.
Можно конечно сказать, что это бред сивой кобылы, но:
— качество сервисов от этих компаний становится всё хуже. Как же так, если в компаниях работают сотрудники, прошедшие кучу вступительных этапов?
— посмотрите состав увольняемых сотрудников в наступивший кризис, превалирующая доля как раз эти самые группы толерантности.
dvenum
Если у них senior, это тот, кого принято называть middle, то все сходится. Человек, который понимает, что происходит. Не зря же упомянут какой-то staff и еще три дополнительных уровня.
Aecktann
А можно какой-нибудь пруф про массовые увольнения инженеров в Фейсбуке и в Гугле в связи с кризисом?
Убер в пример чур не приводить.
alexfetisov
Погоди, а убер же вроде не увольнял инженеров. Там вроде в лифте было сокращение? Или я что-то пропустил?
Aecktann
Убер увольнял до, увольняет сейчас. Доходит до отзывов джоб-офферов.
https://www.forbes.com/sites/jackkelly/2020/05/13/uber-lays-off-3500-employees-over-a-zoom-call-the-way-in-which-a-company-downsizes-its-staff-says-a-lot-about-the-organization/#779b8e537251 например.
alexfetisov
Грустно…
Stas911
Увольняют со свистом как раз, но в крупных конторах собесы сложные и многоступенчатые, тч совсем лютые ошибки найма редко бывают.
0xd34df00d
Нифига не со свистом. Я работал с человеком, который типа C++ senior developer/researcher, но при этом он не понимал, что происходит, когда он пишет
так что мне пришлось ему рассказывать, что такое стек, что такое хип, как работает механизм выделения памяти в плюсах, и что такая конструкция, вообще говоря, невалидна, и чем она плоха, даже если бы была валидна (а у него там стек срывался при слишком больших
n
). И никто его не уволил за несколько лет работы с околонулевым результатом и вот такими вполне себе, э, документируемыми признаками несоответствия занимаемой должности. И все эти олимпиадные развороты красно-чёрных деревьев со скобками не помогли узнать, что человек просто не умеет писать код.Большая компания, про которую вы точно слышали. До этого чувак работал в другой большой компании, про которую вы точно слышали.
И это далеко не единичный случай.
alex_www
но он прошел все уровни leetcode интервью в FAANG и скопил бабла. Потому оптимизируйтесь по литкод!
0xd34df00d
Я пытался оптимизироваться под литкод, взял там какую-то задачу уровня хард (написать кусочек движка регулярок), наваял код, а потом выяснил, что на литкоде нельзя хаскель, расстроился и закрыл вкладку.
strannik_k
Учитывая градацию
У меня предположение, что эквивалент senior у них где-то на уровне 6-7. Ну не может программист, который скорее всего работал только в 1-ом — 2-х проектах, поработавший над относительно небольшим количеством и разнообразием задач и, скорее всего, не участвовавший в разработке с нуля, стать сеньором.А подобное мне кажется следствием отсеивания алгоритмическими собеседования. Если разработчик плох в алгоритмах, но силен в других вещах, его отсеют. На остальные этапы пройдут только те, кто хорош в алгоритмах. И среди них может быть большой процент посредственностей во всем остальном.
Думаю, что было бы качественней, если какой-то средний проходной бал считали по нескольким навыкам (например: алгоритмы, проектирование, кругозор и техническая эрудированность).
strannik_k
Увидел, что в статье говорится, что soft скиллы гораздо важнее. Т.е. технически можно быть не очень опытным мидлом и при этом, руководить разработкой проектов, получив должность сеньора и выше.
В общем, чем раньше понять, что технические навыки наименее полезные навыки для карьеры, и развивать их, тем лучше.
Alexsey
С джуна до сеньера за 1,5-5 лет… И это фейсбук… Просто идеальная демонстрация того что все эти лычки — мусор и никак не коррелируют с реальными знаниями и умениями.
FreeBa
Просто миддл фейсбука это прокаченный джун. А сеньор — это мидл. И все встает на свои места, включая треш который творится в фейсбуковском апи.
Без нормальных сеньоров далеко они не уедут… И похоже это становится все более очевидным даже людям со стороны.
Aecktann
Действительно, ведь фейсбук так недалеко уехал…
Вот совсем скоро к ним придет настоящая высокая нагрузка и они узнают, что масштабироваться и строить действительно серьезные проекты без сениоров нельзя.
mbezoyan
А кто в фейсбуке строит серьезные проекты? Все решения уже давно придуманы, обычные сеньеры только перекладывают protobuf и дергают api существующих систем, никакого там умения масштабироваться на уровне продуктовых команд не нужно.
Aecktann
А в твиттере? ;)
Большие проекты сами по себе же создаются, развиваются и в конечном итоге умирают, да?
Подёргать API-шку несложно, сложно решить важную задачу, «просто дёргая API-шку».
mbezoyan
Это в любой компании так, что нужно решить важную задачку дергая апишку. В чем отличие то от рогов и копыт, кроме пафоса работы в фб?:)
mbezoyan
А в твиттере есть команды интересные в платформе, которые решают задачи создания всяких хранилищ и облачных решений и попасть в них можно не находясь в CA ;)
Aecktann
А в фейсбуке есть команды интересные в платформе, которые решают задачи создания всяких хранилищ и облачных решений и попасть в них можно не находясь в CA ;)
mbezoyan
Нужны примеры прям.
Aecktann
Ну я вот живой здесь.
В Фейсбуке в Лондоне, например, есть часть MySQL-команды, целиком команда logdevice (https://logdevice.io/, очень грубо — внутренняя кафка), часть команды tupperware (очень грубо — внутренний кубернетес), целиком команда Scribe (очень грубо — внутренний Splunk), Source Control (команда, которая держит внутренние репозитории). Просто то, что я вспомнил прямо сейчас и о чём можно говорить.
mbezoyan
Ну так пример проекта за пределами менло парка в котором идёт активная разработка.
Aecktann
Любой из перечисленных.
mbezoyan
Ну вот эти уже другое дело, а разработка или просто поддержка?
Aecktann
Все перечисленные проекты — это активная разработка.
Проекты на холде, которые медленно умирают и их мало трогают — это, вообще говоря, редкость. Даже и пример в голову-то не приходит.
mbezoyan
Интересно, сколько народу кафку пилят?
Aecktann
Если речь идёт о внутренней «кафке», а не о настоящей — около 25 человек.
alexfetisov
Cерьезных проектов, где надо писать серьезные штуки очень много. Из команд, с кем я общался, практически в каждой были задачи, которые неясно как решать.
mbezoyan
Я вот прям не верю, что инженеры продуктовых команд решают вопросы масштабирования. В чем именно серьезность штук заключается? И почему этой серьёзности нет в обычных компаниях?
ganqqwerty
Попробую предположить. Меньше юзеров, менее жесткие требования к софту
alexfetisov
Лучше не сказать. Практически любая задача становится неподъемной, когда мы увеличим число пользователей и поднимем требования на качество. А еще добавим гео распределения и пики траффика на праздники и т.д. Но я не буду никого убеждать. Господин mbezoyan может и скорее всего останется при своем мнении :)
mbezoyan
Все задачи неподъёмные просто из-за более низкого качества разрабов, больше ценятся те, кто умеет хорошо говорить, а не те, кто умеет хорошо делать. С точки зрения бизнеса это понятно, денег полно и можно думать не об эффективности, а о снижении рисков. С проблемами геораспределения и траффика на праздники сталкиваются большинство работающих контор, никакого рокетсайенс в этом нет.
alexfetisov
Ну ок! Как скажете! Видимо во вашему мнению у нас работают инженеры очень низкого уровня за неоправданно большую зарплату. Каким-то чудом построили продукт, который неясно как приносит деньги, когда не нужно ни о чем думать. При чем сильные инженеры не хотят видимо к нам идти, ведь мы не пускаем их! Даем задачи алгоритмические писать. А может сильные инженеры не хотят получать достойную зарплату… Не знаю в общем, почему мы нанимаем низкое качество. Ах да, они же говорят хорошо! Убедили всех.
На всякий случай покажу табличку сарказм.
Aecktann
Потому что любая задача становится сложной.
Вы запускали
bazel build //... && bazel test //...
в вашем проекте перед коммитом? А теперь не можете.Вы хотите обновить ядро на всех серверах вашего проекта? А теперь это проект на пару месяцев.
Вы хотите просто задеплоить новую версию софта? А теперь не можете, в процессе деплоя часть железяк тупо умрёт, а часть запровижионится.
Вы ждали раньше, пока ваш сторадж отребилдится перед тем как деплоить новую версию софта (ну просто чтобы минимизировать риски)? А теперь не можете, ваш сторадж ребилдится всегда.
Вы хотите изменить интерфейс API, добавить аргумент в какой-то RPC-колл? Добро пожаловать в кодовую базу вообще всех проектов, кто вас использует.
Хотите обновить python 3.7 на python 3.8? Ну вы поняли.
alexfetisov
Обновить с 3.7 до 3.8 еще ничего. Вот со 2ого на 3ий.
mbezoyan
и что из выше перечисленного так сложно и требует каких то особых навыков? Новое ядро просто тестируется на небольшом подмножестве прод серверов, а потом автоматически раскатывается, внимание sre требуется от силы на пару дней, так же как и в маленькой конторе. Все остальное из той же серии, никаких серьезных инженерных проблем, любой нормальный инженер из компании, в которой есть хоть лям юзеров, знает что делать, чтобы все работало.
Aecktann
На минуточку, фейсбук в три тысячи раз больше, чем типичная "компания, в которой есть хоть лям юзеров".
Вы правда верите, что система обновления ядер, которая прячется за словосочетанием "автоматически раскатывается" масштабируется в три тысячи раз без обнаружения множества подводных камней? Однажды я работал в "компании, в которой есть как минимум лям юзеров" (вы тоже там работали, кстати :D), я там масштабировал Cobbler чтобы налить всего лишь три тысячи машин за 24 часа. Один маленький пример из того опыта: пришлось выкинуть TFTP (который абсолютно стандартен здесь!), потому что TFTP крайне нестабилен, если TFTP-сервер хоть чуть-чуть нагружен. Если у вас 50 машин — вы просто поретраите десяток машин. Если 3000 — уже не поретраите. Впрочем, видимо, остальное масштабирование до масштабов фейсбука стало бесплатным, если просто дёрнуть протобуф и переложить данные в JSON.
Фейсбук надо, наверное, в клауде развернуть, там все проблемы решены. RuVDS подойдет? :)
Впрочем, мне вас не переубедить.
mbezoyan
Так в том и дело, что для тебя как для разраба разницы нет: в gcp ты хостишься или в private cloud фейсбука. Все проблемы решены, ты только jsonчики перекладываешь, в то время как разрабы в мелких конторах должны разбираться во всех технологиях которые они используют. Те мелкие конторы более требовательны к уровню разрабов а не наоборот.
Aecktann
То есть я правильно понимаю? Инфраструктурные команды в фейсбуке не нужны потому что в фейсбуке уже есть инфраструктурные команды, и там все задачи решены?
Ну ок.
mbezoyan
Я уверен, что в фб есть люди которые решают сложные задачи, но на 1 такого человека приходится 100 перекладывателей json, разве нет? И даже у того одного человека основная сложность это не сама задача, а согласование с миллионом стейкхолдеров, что не совсем инженерная задача.
ЗЫ. А это правда что фб до сих пор использует для хранения связей MySQL + memcached но гордо называет это TAO?
Aecktann
Вы знаете, я долго думал, что на одного человека со сложными задачами приходится 100 перекладывателей json. Но ни одного перекладывателя json я не знаю, а людей со сложными задачами знаю сотни. Иронично, а?
Я боюсь, что ответ на этот вопрос я не знаю :) А это правда, что Амазон использует жесткие диски и ссд, но гордо называет это S3?
mbezoyan
Я рад за вас:) хорошо когда вокруг так много действительно сложных и новых задач :)
Мне просто кажется, что многие из них не сильно сложнее задач с которыми сталкиваются обычные разработчики в обычных компаниях.
ЗЫ. Про Амазон как то некорректно, так то фб использует тоже ssd ;)
Aecktann
Ой, а про ТАО корректно? 1:1.
balberbro
Добавь еще то, что они набирают спецов не по какому-то стеку, а просто инженеров.
В итоге, ребята, которые всю жизнь условно писали на Java садятся за какой-нибудь pytho/js и начинают из него делать Java, что потом вообще поддерживать невозможно становится.
Как уже многие говорили. На собеседованиях гоняют по алгоритмам, нетривиальным задачам и устраивают вайт-борд. А по факту сидишь и гоняешь json для какого-то внутреннго сервиса графика уборки офиса.
strannik_k
Stas911
О, вот это вообще сплошь и рядом. Приходишь с бэкенда, а тебе такие — «а набросай тут UI на React». Вот просто бесит неимоверно.
Zuy
Странный посыл насчёт невозможности найти работу в долине если не IT. Сложно найти работу не в IT если она должна обеспечивать жизнь. А просто низкоквалифицированной работы с оплатой до 20$/час навалом. Если один человек в семье работает нормально в IT то второй спокойно устраивается на почасовую и имеет гибкий график и свои 2-3к в месяц.
distortion2
В США очень распространена контрактная работа. Особенно QA/Frontend/Mobile. Целые школы есть в Калифорнии. Правда всё без обязательств и полный at will employment.
Zuy
Так я полностью согласен, я в долине 10 лет уже. Меня по-этому и удивило, что есть какие-то трудности с работой в долине.
Andrey_Dolg
И какой бы вы способ посоветовали попасть в долину(для работы)? На сколько развита практика найма удалённых работников?
Zuy
Трудно сказать, что сейчас с наймом удаленных работников, особенно с этим covid. Идеальный способ попасть в долину — это гринкарту выйграть, но этот вариант подразумевает полноценную иммиграцию, а не только работу.
Aecktann
1) Выиграть грин-карту
2) Выиграть H-1B
3) Устроиться на работу в интернациональную компанию, отработать год, получить L-1, переехать, оформить грин-карту.
0xd34df00d
Третье самое реальное, судя по статистике нескольких знакомых и себя же.
alexfetisov
Ну стойте, у меня в долине очень много друзей не в IT и вроде обеспечивают жизнь и очень неплохо обеспечивают. Хотя опять же, наверное, важно определить, что значит «обеспечивать жизнь» :)
Zuy
Так я с этим и не спорю, это автор почему-то утверждает, что для не IT есть какая-то проблема с работой в долине.
alexfetisov
А, прошу прощения. Автору возможно стоит добавить больше данных в эти утверждения :)
ganqqwerty
А он не умрет на 2-3к в месяц?
Zuy
А с чего ему умирать? Буритто стоит около $10, если шиковать и есть по два буритто в сутки то всего-то нужно $600 в месяц. А с двух местных буритто в день не то что умереть, зад разнесет так, что в дверь не войдете :-)
А если серьезно, то вы же не думаете, что каждый человек в каждом магазине или ресторане заколачивает по $100k в год? Огромное количество людей тут работает именно за 2 — 3к в месяц. Естественно — это не основной доход семьи. В оригинальном комментарии говорилось о втором человеке, обычно это супруга, которая часто вообще не работает, но если ей становится скучно то спокойно на part time может получать свои 2к.
ganqqwerty
Бурита буритой, а почем аренда? Страховка шоб подлечиться и не склеить ласты? Машина, как я понимаю, тоже обязательна?
Zuy
В окрестностях Сан Хосе, один бедрум в районе 2к можно снять. Страховку у малоимущих бесплатная благодаря Abamacare. Машина очень желательна, иногда подальше от дома можно найти повыше часовой рейт. Бензин 2.7$/галлон, страховка ответственности что-то около 40$/мес. Если совсем малоимущий то и купоны на еду дадут и иногда саму еду раздают бесплатно.
Но я не в коем случае не говорю. что один человек, без жилья на 3к в долине отлично проживет. Конечно нет. Но если в семье два человека работают, то даже если они оба работают за 20$/час то за 4 недели это 6400$. А если взять продленную смену то и 8к заколотить можно. Хочу обратить внимание, что это мы говорим о работе, которую любой человек с улицы способен делать.
Вообще я на себе заметил интересный эффект. Тяжелее всего кода ты слегка проходишь вверх уровень малоимущих. Т.е. примерно 100к в год на семью. Тогда тебе власти уже не помогают, и ты сам за все платишь по полным ценам. Конечно, какой-нить бомж из СФ возмутился бы такому высказыванию, но у них там своя история.
ganqqwerty
Ох, стар я для Америки, очень стар.
ageres
Да ну! Выдыхай!!!
billyevans
А мне Лондон скучным показался. Горы далеко, океан далеко. Чем там вообще заняться? По митапам только ходить? Толпы людей везде, просто муравеник какой-то.
На машине очень удобно ездить. Не нужно думать, где пересадку делать, где там ветка закрыта из-за забастовки. Ждать ничего тоже не нужно на остановке. Сел и поехал. И думать про маски, всякое социальное дистанцированиие тоже не нужно. Очень все просто и прямо.
0xd34df00d
Лондон-то? Я в Сити жил, и он по выходным вымирал. Да и по будням не было такого количества людей, как в NY.
И сидишь и едешь. Ни книжку почитать, ни в мобильник попыриться хоть даже.
Aecktann
Чтобы по выходным не вымирал — нужно в Soho жить.
0xd34df00d
Хорошо, что я там не жил.
А вообще это слишком далеко от работы было, а так 7 минут пешком до офиса.
billyevans
Не бы в НЙ, может там ещё хуже все. Вы жили не в жилом районе по сути. В тех районах, где живут больше, а не офисы — толпы и в выходные. Может даже и больше тк все не в центре.
Я и в метро/автобусе не могу читать из-за тряски, только слушаю. Ну и у меня маршрут удачный, примерно 80% времени машина сама по хайвею едет. Я как то даже в ноуте ковырялся пока ехал, тк алерт прилетел.
ganqqwerty
Очень интересно будет еще послушать Илону про фейсбучное житье-бытье.
elijah_sd
Отвечу на некоторые вопросы выше и дам уточнения с вашего позволения.
Дисклеймер: я работал в Фб, и все что ниже, мое мнение, компания большая, другие инженеры могут иметь совершенно другой опыт.
«На собеседованиях больше ценится реальный опыт или решение задач из олимпиад?
Ценится все. „
Опыт и образование принимается во внимание, но ценится меньше, чем перформанс при решении задач. Не только решение задач, но ваше поведение, ход мысли, работа с интервьювером — все это плюс ессна знание и понимание алгоритмов, структур данных и т д.
“с junior на middle надо перейти за два года
с middle на senior – за три года;
если не получается – увольняют»
Вроде ж уже отменяют везде (в Фб и Гугле).
«Как грубо говоря отличить Мидла от сеньера?»
Есть метрики, и менеджеры постоянно (реально это их работа) работают над вашим карьерным ростом. Без подробностей — не хочу наврать, давно это было.
«Вопрос причастным: зачем люди стремятся в Гугл, там, Фейсбук или Яндекс?»
1. Свобода действий — грубо тебе не ставят задачи, ты решаешь что делаешь, твои идеи, ты свой архитектор и менеджер, бери и твори. Даунсайд конечно, когда придет время ревью надо будет показать, что то что ты делаешь приносит прибыль.
2. Деньги, акции, бонусы плюс плюшки — бесплатная еда, транспорт, у них нереальное количество всяческих плюшек — за полгода привыкаешь жить как на курорте (но работать). И нет, 300k это не средняя зарплата сеньора в долине, 99% компаний это таки не FAANG (большинство даже не в зп чартах), 180-200k может. В FAANG скажем 200k и до миллионов, но! если посчитать бонусы, страховку, 401k match, транспорт, оплату переезда, еду в конце концов, даже с 200k FAANG будут далеко впереди…
3. Резюме — имея Фб или Гугл в резюме можно рассчитывать на лучшие зарплаты, легче найти работу (да-да даже для хорошего инженера полгода поисков в штатах это нормально)
«Просто миддл фейсбука это прокаченный джун.»
Что-что а уровень инженеров в Фб весьма достойный, у меня были претензии к менеджменту, но все инженеры с которыми работал были круты (есть с чем ставнить: TI, Amazon, Nvidia, Panasonic)
ganqqwerty
Как по-вашему, год нарешивания задачек с литкода — это форма честного прокачивания своих problem solving скиллов или форма нечестного взлома системы найма на работу? Предположим, что система этого самого нарешивания очень хороша: кандидат классифицирует задачи, осознаёт, в каких местах он косячит чаще всего, решает больше задач, чтобы устранить свои недостатки, научается считать big O для большого класса задач и впитывает в себя методику подсчета, собирает фидбек на mock interview, учится рассуждать вслух, учится продумывать решение и лишь затем писать код, учится дебажить свой код в голове и на бумаге и прочее. Вот прошёл год подготовки. Можно ли сказать, что если я делал все правильно, я стал лучшим программистом? Или же я стал просто лучшим проходистом собеседований?
wataru
Я считаю, что можно.
Во первых задачи подобные тому, что спрашивают на собеседованиях, действительно попадаются в ежедневной работе (по крайней мере, в Гугле). Да, не каждый день. Но программист, который нарешал тучу таких задачек для прохождения интервью сможет решить рабочую задачу, когда как программист, который не умеет решать "алгоритмические" задачки, скорее всего напишет какой-то адский бред, или хотя бы дико неэффективный, не читаемый, и плохо поддерживаемый код. Просто потому что "тупое" решение задачи, если и возможно, то его очень тяжело сделать хорошо.
Во вторых умение решать такие задачи здорово вправляет мозги. Вы начинаете уметь разбивать задачу на подзадачи, искать паттерны, мыслить абстрактно. Это все очень полезные навыки при разработке сколько-нибудь сложных систем.
Еще один скил, нужный для прохождения интервью — умение объяснить решение задачи. Не написать код и сказать "вот тут мы делаем так", а именно рассказать в виде "сначала итерируемся слева-направо запоминая минимум для каждой точки, потом идем справа-налево поддерживая частичную сумму". Это полезный навык при обсуждении и проектировки решений.
ganqqwerty
Дада, я все эти вещи начал в себе замечать после того как стал готовиться. Спасибо за ответ!
CheatEx
> действительно попадаются в ежедневной работе (по крайней мере, в Гугле). Да, не каждый день
Это противоречивые утверждения.
wataru
"Ежедневная работа" = обычная работа, которую вы делаете.
strannik_k
Как-то выходит, что уже не первый раз пишу комменты к вашим)
Я точно не знаю, что там за задачки на leetcode.Просто пишите про то, с чем моя точка зрения не совпадает.
На leetcode я не решал задачи. Но, учась в лицее, нарешал кучу алгоритмических задач, хотя и не олимпиадного уровня. Плюс в универе они тоже были, но в гораздо меньшем количестве, хотя в целом посложнее. Конечно, как-то сказывается, что я этим занимался в прошлом. Но все-таки за 10 лет работы что-то более-менее алгоритмически сложное приходилось писать раз 5. То, что я раньше делал за полчаса, сейчас займет несколько часов, т.к. навык решения алгоритмических задач сильно притупился.
Зато, если в те времена, я мог написать прогу максимум в 10к строк, т.к. дальше ни другие, ни я просто не смогли бы ее поддерживать и расширять, то сейчас несколько сотен тысяч строк не проблема сделать достаточно читабельными и расширяемыми.
Я уверен, что как раз программист, нарешавший кучу алгоритмических задач, но без опыта работы, точно напишет на реальном проекте какой-то адский бред, не читаемый, и плохо поддерживаемый код) Ну и если нужно, прокачать навык решения задач можно во время работы (после работы, на выходных), как и все остальное прокачивают, когда устраиваются джунами.
Алгоритмические задачи не учат писать читаемый код, не учат разбивать задачу на подзадачи, не учат/практически не учат паттернам, не учат мыслить абстрактно. Для их решения нужно 10, 20, ну 500 строк (почти потолок). Это не тот объем кода, при котором одному человеку будет сильно необходимо заботиться о качестве кода.
Этому учат книги, статьи, видеоматериалы, другие люди, при совмещении с практическим опытом, когда пишешь большие проекты, где, например, надо делать сложные формы под 10 ролей. Или когда ищешь, как упростить или не городить сложную иерархию наследования. Или когда стараешься писать код с учетом того, что требования могут неоднократно поменяться. Или когда думаешь, как ускорить разработку, как лучше избежать написание лишнего, избежать дублирование кода и нужно ли его в данном случае избегать. Или когда думаешь, как вставить новый функционал, о возможности которого автор кода/плагина/фрейворка/системы совсем не позаботился или не подумал.
Я не говорю, что от алгоритмических задач нет пользы. Они как математика. Тренируют мозги, а также дают знание структур данных и алгоритмов, дают какие-то знания для решения определенного круга задач. Большинству в реальной работе нужны будут редко (за исключением некоторых направлений) и забудутся почти до основания, как и все неиспользуемое. Все зависит от того, чем заниматься.
ganqqwerty
Ещё я вот подумал про конторы с кучей велосипедов — важно умение оглядеть по-быстрому проект на миллионы строк кода и быстро понять, где там что. Это вообще непонятно как прокачивать.
strannik_k
Тут наверное надо во многих различных проектах поучаствовать, много различных систем поизучать на разных стеках. Тогда повысится шанс, что в чужом проекте что-то знакомое увидишь и быстрее разберешься.
А так, в случае контор с кучей велосипедов, да и почти в любой, без авторов обычно не разобраться. Имхо, куда больше зависит от того, как написано, а не от навыков нового разработчика.
ganqqwerty
гммм, да, пожалуй. Может быть, еще опен-сорсовые фреймворки попробовать поковырять, поглядеть на видосы разбора их кода, записать самостоятельно подобный видос, послать создателям, послушать, как они поднимут тебя на смех и может быть объяснят, где ты неправ.
elijah_sd
Ох, разумеется это нечестно. Хотя подготовка, что вы описали безусловно сделает вас лучшим программистом (мне помогает).
В компании которая растет, получает десятки тысяч (наверное) резюме в день и нанимает сотни в период роста и десятки в период простоя, просто невозможно создать систему, которая будет работать честно.
В компаниях типа Гугл и Фб, привыкли работать с big data, поверьте все результаты интервью и дальнейший перформанс скармливаются ии и изучаются, процесс улучшается от года к году в соответствии с фидбеком.
Однако вы упускаете objective системы — цель не в том, чтобы нанимать лучших, а в том чтобы максимально исключить false positive. Не нанять хорошего инженера это ничего страшного, а вот нанять плохого — это сказывается на перфомансе очень сильно. И оно вроде так работает, насколько я могу судить.
ganqqwerty
Вот я из того, что сказал wataru сообщением выше делаю вывод, что очень даже это все честно. Ну, то есть, если мой десятилетний опыт не помог мне решать задачки, которые спрашиваются на собесах гугла и коррелируют с задачками в гугле — значит, все десять лет я работал как бы в другой отрасли и в своем сегодняшнем виде буду бесполезен. У меня от этого никакой фрустрации нет.
Ну окей, а сейчас хочу работать в гугле, значит надо пройти гугловый собес. Открыл литкод — и не закрывай пока штучек 200-300 задачек не нарешается, а на mock-interview не будешь регулярно срывать аплодисменты. Ну, раз надо, будем делать и будем подходить к этому процессу максимально осознанно и вдумчиво, брать будем пониманием, а не зубрежкой.
Вообще, меня очень порадовал ответ о том, что мой ближайший год будет не просто наяриванием тестов на определенный экзамен, но и повысит мой профессионализм как разработчика.
A114n
Да как это у всех так получается?!
alex_www
Ну так. В FAANG проще попасть после универа чем с опытом. Свежий выпускник + литкод = успех
ganqqwerty
Вдогонку вопрос — как получается справляться с опенспейсами?
wataru
Наушники и требования поставить доску-перегородку за спиной. И уже жить можно.
galimova_ruvds Автор
Ребята, напоминаем, что в понедельник будет еще один эфир: с Натальей Теплухиной, Vue.js core team member, GoogleDevExpret и Senior Frontend Engineer в GitLab.
Наташа расскажет, как перешла во фронтенд посл 30, за 4 года не только выросла в синьора, но и стала обучать других: она аккредитированный GoogleDevExpret, выступает на англоязычных конференциях, пишет статьи и гайды.
Задать Наташе вопрос можно в комментариях в этом посте.
Эфир пройдет тут