Немного о себе 👋
Я Макс, ML/AI-инженер в Isomorphic Labs (стартап, отделившийся от Google DeepMind, чтобы сосредоточитьсяна фолдинге протеинов). До этого работал в Spotify, перед этим — в Bosch. В сумме набежало >7 лет опыта в индустрии, хотя как-то не чувствуется.
➜ В 2015-м году я поступил в магистратуру университета Штутгарта и переехал в Германию. Большую часть магистратуры я учил компьютерную графику и мечтал работать в геймдеве. В конце программы я «запивотил» в Machine Learning. Магистерский тезис я написал в Bosch и вдогонку провел там первые 3 года своей карьеры.
➜ В Bosch я работал Research Engineer в группе, которая занималась Reinforcement Learning. Мне повезло работать с невероятно талантливыми людьми над очень интересными и довольно «неклассическими» проектами. Мы юзали RL, чтобы оптимизировать ABS-контроллер в машине, учили контроллеры для MagLev-платформ и оптимизировали продакшн-планы на фабриках.
➜ В Spotify я был Machine Learning Engineer. Первый год работал над довольно стандартной рекомендательной системой. ML там, конечно, был не из последних публикаций на NeurIPS, но весь интерес был в скейле и количестве реквестов/инференсов в секунду. Позже девелопил «бандитов», чтобы эффективно эксплорить весь новый публикуемый контент, а последний год препарировал и файнтюнил внутренние LLM-ки.
➜ В прошлом году, спустя 10 лет, я получил гражданство Германии и первым делом переехал в Лондон, чтоб фолдить протеины в Isomorphic Labs.
#карьера@softmaxFn
Я Макс, ML/AI-инженер в Isomorphic Labs (стартап, отделившийся от Google DeepMind, чтобы сосредоточитьсяна фолдинге протеинов). До этого работал в Spotify, перед этим — в Bosch. В сумме набежало >7 лет опыта в индустрии, хотя как-то не чувствуется.
➜ В 2015-м году я поступил в магистратуру университета Штутгарта и переехал в Германию. Большую часть магистратуры я учил компьютерную графику и мечтал работать в геймдеве. В конце программы я «запивотил» в Machine Learning. Магистерский тезис я написал в Bosch и вдогонку провел там первые 3 года своей карьеры.
➜ В Bosch я работал Research Engineer в группе, которая занималась Reinforcement Learning. Мне повезло работать с невероятно талантливыми людьми над очень интересными и довольно «неклассическими» проектами. Мы юзали RL, чтобы оптимизировать ABS-контроллер в машине, учили контроллеры для MagLev-платформ и оптимизировали продакшн-планы на фабриках.
➜ В Spotify я был Machine Learning Engineer. Первый год работал над довольно стандартной рекомендательной системой. ML там, конечно, был не из последних публикаций на NeurIPS, но весь интерес был в скейле и количестве реквестов/инференсов в секунду. Позже девелопил «бандитов», чтобы эффективно эксплорить весь новый публикуемый контент, а последний год препарировал и файнтюнил внутренние LLM-ки.
➜ В прошлом году, спустя 10 лет, я получил гражданство Германии и первым делом переехал в Лондон, чтоб фолдить протеины в Isomorphic Labs.
#карьера@softmaxFn
❤8🔥7
Гайд по поиску квартиры в Лондоне (от человека с PTSD из Германии) 🏠
3 месяца назад я переехал из Мюнхена в Лондон. В Германии поиск квартиры — это ад и Афганская война. Поэтому мысли о поиске жилья в Лондоне были, мягко говоря, «слегка тревожными». Но, как и следовало ожидать, ситуация с рынком съемного жилья тут оказалась совершенно другой, и по итогу я бы сказал, что весь процесс может быть менее стрессовым, чем в Германии (если знать его особенности).
➜ Рынок съемного жилья тут намного более ликвидный. Город огромный, и каждый день на рынок выкидываютдостаточно много новых предложений. Однако улетают эти квартиры тоже довольно быстро. Здесь, в отличие от Германии, большинство квартир сдается риэлторскими компаниями. И в то время как в Германии частные лендлорды любят устраивать интервью-процесс с несколькими раундами и ребатлами, в Лондоне процесс предпочитают не затягивать и выбирают из первых кандидатов. Поэтому очень важно назначить просмотр в первые дни после того, как квартиру выложили, и одними из первых сделать «оффер».
Про-типс:
🔸 Сайтов по поиску жилья тут много, но объявления практически на всех повторяются. Не распыляйте внимание, выберите один и сосредоточьтесь на нем.
🔸 Не бойтесь говорить, что «вы готовы сделать оффер» на просмотре квартиры. До того как вы внесете reservation deposit, вы ни к чему не обязаны. Но если вы скажете агенту, что вам нужно пару дней подумать, квартиру, скорее всего, уже сдадут.
🔸 Если вы уже посмотрели одну или несколько квартир в доме, который вам нравится, можете спросить у агента, есть ли у них похожие квартиры, которые вы можете «take off the market». Это когда вы заключаете контракт, не видя квартиру вживую (максимум план и несколько фоток). Довольно рисковый мув, но может быть оправдан, если снимать квартиру у большой компании с хорошими отзывами в доме, который вы видели до этого.
➜ Когда вы внесли reservation deposit, следующий шаг — это referencing. Риэлторская компания передает ваши документы в отдельную компанию на проверку вашего бэкграунда. Если это ваша не первая квартира в ЮК и у вас стабильная работа в большой компании, то переживать, в принципе, не о чем. Если вы только переехали, может быть довольно хардкорно. Процесс всегда разный в зависимости от того, на какую referencing-компанию вы попадете. Если повезет — процесс может завершиться с минимальным эффортом с вашей стороны: скинуть рабочий контракт, пару выписок из банка и все. Если не повезет, можете попасть по полной. Вам могут две недели еб*ть мозги, требуя все возможные и невозможные документы и даже требуя, чтобы ваш бывший лэндлорд и текущий работодатель заполняли для них какие-то формы. Как вы поняли, у нас был второй вариант.
Про-типс:
🔸 Можете спросить, с какой referencing-компанией работает ваш риелтор (компания, которая сдает жилье), и черкнуть в Гугл-ревьюс, что о них пишут. Если вы находитесь в позиции, где можете выбирать из нескольких вариантов, я бы советовал учитывать «вероятность того, что вам отымеют мозг во время referencing» при вашем выборе. Особенно учитывая, что если вы не пройдете референс, reservation deposit вам не вернут.
🔸 Если планируете переезд в ЮК заранее, постарайтесь остаться в хороших отношениях с прошлым лэндлордом в другой стране. Может случиться так, что вам нужно будет уламывать их заполнить для вас какую-то форму от сторонней компании из ЮК.
🔸 Если вы оказались в ситуации, где referencing-компания требует от вас неисполнимого — например, заставить немецкую компанию, у которой вы снимали прошлое жилье, наплевать на GDPR и передать данные о своих клиентах какой-то мутной компании из ЮК, — старайтесь давить на компанию риэлтора. Да, по идее, referencing — это ваша проблема и депозит вы уже заплатили, но для них, если эта сделка сорвется, это все равно дополнительные расходы и риски. В нашем случае все решилось после того, как я поговорил с менеджером в риелторской компании и объяснил ему ситуацию. После этого они позвонили в referencing-компанию и сказали им «сделать исключение».
#жизнь_юк@softmaxFn
3 месяца назад я переехал из Мюнхена в Лондон. В Германии поиск квартиры — это ад и Афганская война. Поэтому мысли о поиске жилья в Лондоне были, мягко говоря, «слегка тревожными». Но, как и следовало ожидать, ситуация с рынком съемного жилья тут оказалась совершенно другой, и по итогу я бы сказал, что весь процесс может быть менее стрессовым, чем в Германии (если знать его особенности).
➜ Рынок съемного жилья тут намного более ликвидный. Город огромный, и каждый день на рынок выкидываютдостаточно много новых предложений. Однако улетают эти квартиры тоже довольно быстро. Здесь, в отличие от Германии, большинство квартир сдается риэлторскими компаниями. И в то время как в Германии частные лендлорды любят устраивать интервью-процесс с несколькими раундами и ребатлами, в Лондоне процесс предпочитают не затягивать и выбирают из первых кандидатов. Поэтому очень важно назначить просмотр в первые дни после того, как квартиру выложили, и одними из первых сделать «оффер».
Про-типс:
🔸 Сайтов по поиску жилья тут много, но объявления практически на всех повторяются. Не распыляйте внимание, выберите один и сосредоточьтесь на нем.
🔸 Не бойтесь говорить, что «вы готовы сделать оффер» на просмотре квартиры. До того как вы внесете reservation deposit, вы ни к чему не обязаны. Но если вы скажете агенту, что вам нужно пару дней подумать, квартиру, скорее всего, уже сдадут.
🔸 Если вы уже посмотрели одну или несколько квартир в доме, который вам нравится, можете спросить у агента, есть ли у них похожие квартиры, которые вы можете «take off the market». Это когда вы заключаете контракт, не видя квартиру вживую (максимум план и несколько фоток). Довольно рисковый мув, но может быть оправдан, если снимать квартиру у большой компании с хорошими отзывами в доме, который вы видели до этого.
➜ Когда вы внесли reservation deposit, следующий шаг — это referencing. Риэлторская компания передает ваши документы в отдельную компанию на проверку вашего бэкграунда. Если это ваша не первая квартира в ЮК и у вас стабильная работа в большой компании, то переживать, в принципе, не о чем. Если вы только переехали, может быть довольно хардкорно. Процесс всегда разный в зависимости от того, на какую referencing-компанию вы попадете. Если повезет — процесс может завершиться с минимальным эффортом с вашей стороны: скинуть рабочий контракт, пару выписок из банка и все. Если не повезет, можете попасть по полной. Вам могут две недели еб*ть мозги, требуя все возможные и невозможные документы и даже требуя, чтобы ваш бывший лэндлорд и текущий работодатель заполняли для них какие-то формы. Как вы поняли, у нас был второй вариант.
Про-типс:
🔸 Можете спросить, с какой referencing-компанией работает ваш риелтор (компания, которая сдает жилье), и черкнуть в Гугл-ревьюс, что о них пишут. Если вы находитесь в позиции, где можете выбирать из нескольких вариантов, я бы советовал учитывать «вероятность того, что вам отымеют мозг во время referencing» при вашем выборе. Особенно учитывая, что если вы не пройдете референс, reservation deposit вам не вернут.
🔸 Если планируете переезд в ЮК заранее, постарайтесь остаться в хороших отношениях с прошлым лэндлордом в другой стране. Может случиться так, что вам нужно будет уламывать их заполнить для вас какую-то форму от сторонней компании из ЮК.
🔸 Если вы оказались в ситуации, где referencing-компания требует от вас неисполнимого — например, заставить немецкую компанию, у которой вы снимали прошлое жилье, наплевать на GDPR и передать данные о своих клиентах какой-то мутной компании из ЮК, — старайтесь давить на компанию риэлтора. Да, по идее, referencing — это ваша проблема и депозит вы уже заплатили, но для них, если эта сделка сорвется, это все равно дополнительные расходы и риски. В нашем случае все решилось после того, как я поговорил с менеджером в риелторской компании и объяснил ему ситуацию. После этого они позвонили в referencing-компанию и сказали им «сделать исключение».
#жизнь_юк@softmaxFn
👍4❤1
Прикладная статистика 📈
Если честно признаться, я «не то чтобы очень силен» в статистике. У меня есть хорошее интуитивное понимание линейной алгебры и анализа, но вот любые intermediate и выше концепты в статистике мне даются довольно сложно. Но я активно работаю над тем, чтобы эту ситуацию улучшить. Сегодня как раз подвернулась возможность копнуть поглубже в один из концептов.
Ситуация: У вас есть эксперимент, который вы можете ранать в энвайронменте А и в энвайронменте Б. Идея в том, что А и Б должны быть идентичными, но, несмотря на идентичные входные данные, эксперимент возвращает более низкие метрики в Б. Энвайронмент А будут деприкейтить, и ваша задача — понять, почему Б перформит хуже.
Еще одно усложнение в том, что в А эксперимент может ранаться на TPU и на GPU, а в Б — только на GPU. В результате у вас есть 3 рана для анализа:
1. Энв А с TPU
2. Энв А с GPU
3. Энв Б с GPU
Все три рана показывают разные метрики для тех же входных данных. Ран 1 считается текущим бейслайном, то есть возвращает самые высокие метрики. Но после деприкации А единственная возможность, которая у нас останется, — это 3. Имея эти три рана, нам нужно решить: стоит ли тратить свое время на то, чтобы дебажить разницу в энвайронментах?
Другими словами, нам нужно понять, насколько сильно разница между 1 и 3 объяснена разницей в чипах, а насколько — разницей в А и Б. Если главный контрибьютор — это чипы, тратить пару недель на то, чтобы избавиться от минимальной разницы в энвайронментах, — это довольно плохой инвестмент нашего времени. К счастью, в статистике есть «just the right tool for this job». Мы можем использовать ран 2, чтобы ответить на этот вопрос.
На помощь спешит линейная регрессия. Основная идея в том, чтобы зафитить 1d линейную модель: Y=αX+β. Инпутами (X) будут разницы между метриками 2 и 1, а таргетами (Y) — разницы между 3 и 1.
Дальше считаем R2 скор. Если R2≤0.5: мы не знаем, влияет ли энвайронмент и как сильно — делать нечего, нужно дебажить. Если R2≥0.8, то большая часть разницы, скорее всего, объяснена чипами. Это нам не особо помогает, так как TPU в Б нет, поэтому идем дальше и смотрим на α и β зафитиной модели. Если α>1, это значит, что разница в энвайронментах усиливает разницу, которая уже есть от чипов. Соответственно, если мы хотим уменьшить максимальную разницу в аутлайерах — идем дебажить. Если α≤1, разница в энвайронментах либо не влияет на финальную разницу между 1 и 3, либо ее демпфит (нам очень повезло). β — это фиксированная разница, которую добавляет энвайронмент. Если β намного больше 0, то можно подумать о том, чтобы потратить пару дней, если нет — то справились 😄.
Все это можно посчитать в пару строк, используя библиотеку sklearn в Python.
#мл@softmaxFn
#тех@softmaxFn
Если честно признаться, я «не то чтобы очень силен» в статистике. У меня есть хорошее интуитивное понимание линейной алгебры и анализа, но вот любые intermediate и выше концепты в статистике мне даются довольно сложно. Но я активно работаю над тем, чтобы эту ситуацию улучшить. Сегодня как раз подвернулась возможность копнуть поглубже в один из концептов.
Ситуация: У вас есть эксперимент, который вы можете ранать в энвайронменте А и в энвайронменте Б. Идея в том, что А и Б должны быть идентичными, но, несмотря на идентичные входные данные, эксперимент возвращает более низкие метрики в Б. Энвайронмент А будут деприкейтить, и ваша задача — понять, почему Б перформит хуже.
Еще одно усложнение в том, что в А эксперимент может ранаться на TPU и на GPU, а в Б — только на GPU. В результате у вас есть 3 рана для анализа:
1. Энв А с TPU
2. Энв А с GPU
3. Энв Б с GPU
Все три рана показывают разные метрики для тех же входных данных. Ран 1 считается текущим бейслайном, то есть возвращает самые высокие метрики. Но после деприкации А единственная возможность, которая у нас останется, — это 3. Имея эти три рана, нам нужно решить: стоит ли тратить свое время на то, чтобы дебажить разницу в энвайронментах?
Другими словами, нам нужно понять, насколько сильно разница между 1 и 3 объяснена разницей в чипах, а насколько — разницей в А и Б. Если главный контрибьютор — это чипы, тратить пару недель на то, чтобы избавиться от минимальной разницы в энвайронментах, — это довольно плохой инвестмент нашего времени. К счастью, в статистике есть «just the right tool for this job». Мы можем использовать ран 2, чтобы ответить на этот вопрос.
На помощь спешит линейная регрессия. Основная идея в том, чтобы зафитить 1d линейную модель: Y=αX+β. Инпутами (X) будут разницы между метриками 2 и 1, а таргетами (Y) — разницы между 3 и 1.
Дальше считаем R2 скор. Если R2≤0.5: мы не знаем, влияет ли энвайронмент и как сильно — делать нечего, нужно дебажить. Если R2≥0.8, то большая часть разницы, скорее всего, объяснена чипами. Это нам не особо помогает, так как TPU в Б нет, поэтому идем дальше и смотрим на α и β зафитиной модели. Если α>1, это значит, что разница в энвайронментах усиливает разницу, которая уже есть от чипов. Соответственно, если мы хотим уменьшить максимальную разницу в аутлайерах — идем дебажить. Если α≤1, разница в энвайронментах либо не влияет на финальную разницу между 1 и 3, либо ее демпфит (нам очень повезло). β — это фиксированная разница, которую добавляет энвайронмент. Если β намного больше 0, то можно подумать о том, чтобы потратить пару дней, если нет — то справились 😄.
Все это можно посчитать в пару строк, используя библиотеку sklearn в Python.
#мл@softmaxFn
#тех@softmaxFn
Мюнхен vs Лондон глазами велосипедиста 🚴♂️
Мюнхен — это один из лучших городов в мире для комьюта на велосипеде. Инфраструктура уровня Амстердама, но совсем не такие толпы. А чего только стоит велосипедный «автобан» понад альпийской речкой Изар… В общем, неудивительно, что у меня, как у многих мюнхенцев, большая часть net worth была инвестирована в алюминий (ну или карбон) с двумя колесами 😀.
При переезде в Лондон встал вопрос: что делать с байком? Нужен ли он там вообще и стоит ли везти мой?
Я посмотрел видео пары ютуберов из Лондона, которые пели дифирамбы велосипедной инфраструктуре, и решил, что байк мне обязательно нужен. Единственное, что я не учел, — это то, что эти ютуберы были родом из США 😅. Понятное дело, что для тех, кто жил в США (за исключением, может, Нью-Йорка и Бостона), любое количество асфальта, где можно ехать на велосипеде и не бояться, что в тебя въедет 5-тонный пикап на скорости «50 бургеров / 10 североамериканских орлов», — это высококлассная велоинфраструктура. Если сравнивать же с Германией, то лондонская инфраструктура — это 3 из 5 с большой натяжкой.
Главная проблема — это очень маленькое количество дорог с отдельной выделенной или защищенной велодорожкой. Большую часть времени вы делите и без того узкую дорогу с машинами и, что более страшно, — с двухэтажными автобусами! Узкие дороги научили водителей Лондона, что 10 сантиметров между головой велосипедиста и зеркалом заднего вида — это вполне достаточный safety margin 👌. Моя коллега как-то спорила со мной, что велокомьют в Лондоне — это абсолютно безопасное занятие, приведя аргумент: «За 8 лет меня всего два раза сбил автобус». Это как бы на 2 раза больше, чем хотелось бы 😅.
Картину также довольно часто ухудшает влажная погода. Если у вас в офисе нет места, где повесить сушить вымокший хардшелл или где хранить запасную сухую одежду, полагаться на велосипед как на основное средство комьюта — не самая лучшая идея.
Несмотря на это, довольно много лондонцев активно комьютит на велосипеде. И, отдавая должное, из всего, что я слышу от людей, которые здесь живут долгое время, — ситуация постоянно улучшается. Но от главного констрейнта — очень узких улиц — в Лондоне никуда не деться. Как мне кажется, чтобы догнать по уровню комфортности немецкие города, Лондону нужно полностью закрывать многие улицы для автомобильного трафика и делать их велопешеходными. И я не знаю, хватит ли у обычных велокомьютеров политической силы, чтобы это сделать…
По итогу — велосипед я перевез и пока что выехал на нем один раз на выходных в парк 😅. Но я все еще храню надежду, что за Лондоном ситуация обстоит намного лучше. Я слышал очень много лестных отзывов о велотуринге в британском кантрисайде. В общем, будем эксплорить и писать апдейты.
#жизнь_юк@softmaxFn
Мюнхен — это один из лучших городов в мире для комьюта на велосипеде. Инфраструктура уровня Амстердама, но совсем не такие толпы. А чего только стоит велосипедный «автобан» понад альпийской речкой Изар… В общем, неудивительно, что у меня, как у многих мюнхенцев, большая часть net worth была инвестирована в алюминий (ну или карбон) с двумя колесами 😀.
При переезде в Лондон встал вопрос: что делать с байком? Нужен ли он там вообще и стоит ли везти мой?
Я посмотрел видео пары ютуберов из Лондона, которые пели дифирамбы велосипедной инфраструктуре, и решил, что байк мне обязательно нужен. Единственное, что я не учел, — это то, что эти ютуберы были родом из США 😅. Понятное дело, что для тех, кто жил в США (за исключением, может, Нью-Йорка и Бостона), любое количество асфальта, где можно ехать на велосипеде и не бояться, что в тебя въедет 5-тонный пикап на скорости «50 бургеров / 10 североамериканских орлов», — это высококлассная велоинфраструктура. Если сравнивать же с Германией, то лондонская инфраструктура — это 3 из 5 с большой натяжкой.
Главная проблема — это очень маленькое количество дорог с отдельной выделенной или защищенной велодорожкой. Большую часть времени вы делите и без того узкую дорогу с машинами и, что более страшно, — с двухэтажными автобусами! Узкие дороги научили водителей Лондона, что 10 сантиметров между головой велосипедиста и зеркалом заднего вида — это вполне достаточный safety margin 👌. Моя коллега как-то спорила со мной, что велокомьют в Лондоне — это абсолютно безопасное занятие, приведя аргумент: «За 8 лет меня всего два раза сбил автобус». Это как бы на 2 раза больше, чем хотелось бы 😅.
Картину также довольно часто ухудшает влажная погода. Если у вас в офисе нет места, где повесить сушить вымокший хардшелл или где хранить запасную сухую одежду, полагаться на велосипед как на основное средство комьюта — не самая лучшая идея.
Несмотря на это, довольно много лондонцев активно комьютит на велосипеде. И, отдавая должное, из всего, что я слышу от людей, которые здесь живут долгое время, — ситуация постоянно улучшается. Но от главного констрейнта — очень узких улиц — в Лондоне никуда не деться. Как мне кажется, чтобы догнать по уровню комфортности немецкие города, Лондону нужно полностью закрывать многие улицы для автомобильного трафика и делать их велопешеходными. И я не знаю, хватит ли у обычных велокомьютеров политической силы, чтобы это сделать…
По итогу — велосипед я перевез и пока что выехал на нем один раз на выходных в парк 😅. Но я все еще храню надежду, что за Лондоном ситуация обстоит намного лучше. Я слышал очень много лестных отзывов о велотуринге в британском кантрисайде. В общем, будем эксплорить и писать апдейты.
#жизнь_юк@softmaxFn
👍6
Первые 3 месяца в Isomorphic Labs 🧬
Прошло больше 3 месяцев в Isomorphic Labs, я прошел пробный период, а значит, пора бы уложить в своей голове первые впечатления…
Оверолл, Iso — это офигенная компания, и я нереально рад, что смог сюда попасть. Даже если быть полным скептиком и не верить в то, что своей работой ты делаешь маленькие контрибьюшены на пути к “solve all diseases”, — мне все еще очень «доставляет» сам сет проблем, над которыми мы работаем. Вообще немного странно, так как в школе биология и химия были моими самыми нелюбимыми предметами. Не знаю, может, к любой дисциплине нужно просто прийти в «свое время», но сейчас сидеть и разбираться, что такое протеины, из чего они состоят, как фолдятся, — звучит как очень веселое времяпрепровождение.
Еще один определенный бенефит работы в Iso — это сумасшедше умные и талантливые люди, с которыми ты работаешь. Помогает также то, что в Iso очень живая и бурлящая атмосфера в офисе. Офис маленький, почти все приходят минимум 3 раза в неделю, и от этого кухня и кафетерии выглядят как общие комнаты в каких-нибудь университетских холлах: все постоянно что-то друг другу рассказывают, делятся последними ресерч-результатами, показывают графики и т. д. Такая атмосфера очень заряжает, ну и способствует очень быстрому расширению круга знакомств.
Есть у Iso еще один позитивный момент, который мне не так легко артикулировать. Большинство всех топ AI-лабораторий работают над general моделями и пытаются решить “Artificial General Intelligence”. Iso тоже недавно расширили свою миссию до “Solve all diseases”, но даже сейчас это чувствуется как более направленный, сфокусированный эффорт. И то, над чем ты работаешь каждый день, каждый небольшой импрувмент в модель или в трейнинг/инференс инфраструктуру намного легче, как мне кажется, законнектить с лонг-терм целью.
Конечно, не без сложностей: бампи онбординг, привыкание к стилям коммуникации очень талантливых людей со strong opinions, небольшой мисэлаймент с тем, что нужно, и тем, что ты «мечтал» делать, синдром самозванца — все на месте. Но так будет в любой компании. В общем, пока 🔥 — едем дальше.
#карьера@softmaxFn
Прошло больше 3 месяцев в Isomorphic Labs, я прошел пробный период, а значит, пора бы уложить в своей голове первые впечатления…
Оверолл, Iso — это офигенная компания, и я нереально рад, что смог сюда попасть. Даже если быть полным скептиком и не верить в то, что своей работой ты делаешь маленькие контрибьюшены на пути к “solve all diseases”, — мне все еще очень «доставляет» сам сет проблем, над которыми мы работаем. Вообще немного странно, так как в школе биология и химия были моими самыми нелюбимыми предметами. Не знаю, может, к любой дисциплине нужно просто прийти в «свое время», но сейчас сидеть и разбираться, что такое протеины, из чего они состоят, как фолдятся, — звучит как очень веселое времяпрепровождение.
Еще один определенный бенефит работы в Iso — это сумасшедше умные и талантливые люди, с которыми ты работаешь. Помогает также то, что в Iso очень живая и бурлящая атмосфера в офисе. Офис маленький, почти все приходят минимум 3 раза в неделю, и от этого кухня и кафетерии выглядят как общие комнаты в каких-нибудь университетских холлах: все постоянно что-то друг другу рассказывают, делятся последними ресерч-результатами, показывают графики и т. д. Такая атмосфера очень заряжает, ну и способствует очень быстрому расширению круга знакомств.
Есть у Iso еще один позитивный момент, который мне не так легко артикулировать. Большинство всех топ AI-лабораторий работают над general моделями и пытаются решить “Artificial General Intelligence”. Iso тоже недавно расширили свою миссию до “Solve all diseases”, но даже сейчас это чувствуется как более направленный, сфокусированный эффорт. И то, над чем ты работаешь каждый день, каждый небольшой импрувмент в модель или в трейнинг/инференс инфраструктуру намного легче, как мне кажется, законнектить с лонг-терм целью.
Конечно, не без сложностей: бампи онбординг, привыкание к стилям коммуникации очень талантливых людей со strong opinions, небольшой мисэлаймент с тем, что нужно, и тем, что ты «мечтал» делать, синдром самозванца — все на месте. Но так будет в любой компании. В общем, пока 🔥 — едем дальше.
#карьера@softmaxFn
🔥9
Кто такие ML/AI инженеры и чем они вообще занимаются 🧑💻🤖
Из моих наблюдений за 7 лет, всех людей, работающих над ML, в зависимости от их фокуса, можно условно разместить внутри треугольника с вершинами: Research, Software Engineering, Data.
➜ Люди, которые находятся ближе к вершине ML Research, в основном работают над улучшениями моделей. Day-to-day они твикают код модели и тренировочного цикла и ранают эксперименты, чтоб GPU всегда делали brrrrr 🔥. Анализируют полученные данные, решают, какие метрики трекать, думают над гипотезами для новых экспериментов — и всё по кругу.
Кор-квалификации:
🔹 Возможно, немного неожиданно — Scientific Method. Это умение правильно сформулировать гипотезу, задизайнить эксперимент, проанализировать наблюдения и результаты. Это базовые вещи. У меня на самом деле довольно много времени заняло, чтобы понять и заартикулировать для себя, что так выделяет топ-людей, сфокусированных на ресерче. Мой ассампшн — что это именно осознанное применение scientific method.
🔹 Матчасть: линейная алгебра, математический анализ, статистика, оптимизационная теория. Не нужно быть экспертом в каждой дисциплине, но если вы интуитивно понимаете базовые концепты — это очень помогает.
🔹 Техстек: Python, любой autograd/NN фреймворк, Pandas/SQL для анализа табличных данных.
➜ Ближе к Software вершине мы можем встретить людей, которые работают над написанием фреймворков для массивных распред. вычислений, оптимизацией и скейлингом тренировочных циклов, инференсом с низким лейтенси и инфраструктурой. Если обобщить, тут люди большую часть своего времени проводят над крафтом «тулзов», чтоб другие могли гонять как можно больше экспериментов за меньшие 💸, или работают над интеграцией моделей с другими системами компании.
Кор-квалификации:
🔹 Сильный бэкграунд в Software, предпочтительней Backend/Systems. Есть также очень нишевые позиции с не менее нишевыми скиллами — низкоуровневое программирование акселераторов (GPU/TPU).
🔹 Техстек: as wide as it gets. На самом деле даже перечислять, наверное, не имеет большого смысла, но базовые вещи: Python, Docker/Kubernetes, SQL/NoSQL. Иногда C++ и CUDA, иногда Java или Go, если вдруг нужно будет писать немного бэкенда.
➜ Data. Люди, которые находятся ближе к этой вершине, работают над пайплайнами, которые агрегируют, чистят и процессит MASSIVE data. Также тут занимаются оркестрацией и релайабилити этих пайплайнов, чтоб данные всегда были свежими, как булочки в немецкой бэккерай.
🔹 Тут я заметил еще больше людей с бэкграундом в Backend, которые решили сфокусироваться на Data-стороне. Но есть и люди, которые изначально фокусировались на distributed data processing. В некоторых компаниях, например в Spotify, это даже вынесено в отдельную роль.
🔹 Техстек: Python, Java, SQL, какой-нибудь mapReduce фреймворк, например Spark или Apache Beam. Для оркестрации — что-то вроде Flyte или Airflow.
Вот как-то так. Очень упрощенный треугольник ML-инжиниринга. Но главное: мало кто находится очень близко к одной вершине и остается там надолго. Большинство людей, которых я встречал, — мультидисциплинарные (находятся ближе к сторонам треугольника или даже к центру) и путешествуют по нему в зависимости от того, где нужно принести импакт в текущий момент.
#карьера@softmaxFn
Из моих наблюдений за 7 лет, всех людей, работающих над ML, в зависимости от их фокуса, можно условно разместить внутри треугольника с вершинами: Research, Software Engineering, Data.
➜ Люди, которые находятся ближе к вершине ML Research, в основном работают над улучшениями моделей. Day-to-day они твикают код модели и тренировочного цикла и ранают эксперименты, чтоб GPU всегда делали brrrrr 🔥. Анализируют полученные данные, решают, какие метрики трекать, думают над гипотезами для новых экспериментов — и всё по кругу.
Кор-квалификации:
🔹 Возможно, немного неожиданно — Scientific Method. Это умение правильно сформулировать гипотезу, задизайнить эксперимент, проанализировать наблюдения и результаты. Это базовые вещи. У меня на самом деле довольно много времени заняло, чтобы понять и заартикулировать для себя, что так выделяет топ-людей, сфокусированных на ресерче. Мой ассампшн — что это именно осознанное применение scientific method.
🔹 Матчасть: линейная алгебра, математический анализ, статистика, оптимизационная теория. Не нужно быть экспертом в каждой дисциплине, но если вы интуитивно понимаете базовые концепты — это очень помогает.
🔹 Техстек: Python, любой autograd/NN фреймворк, Pandas/SQL для анализа табличных данных.
➜ Ближе к Software вершине мы можем встретить людей, которые работают над написанием фреймворков для массивных распред. вычислений, оптимизацией и скейлингом тренировочных циклов, инференсом с низким лейтенси и инфраструктурой. Если обобщить, тут люди большую часть своего времени проводят над крафтом «тулзов», чтоб другие могли гонять как можно больше экспериментов за меньшие 💸, или работают над интеграцией моделей с другими системами компании.
Кор-квалификации:
🔹 Сильный бэкграунд в Software, предпочтительней Backend/Systems. Есть также очень нишевые позиции с не менее нишевыми скиллами — низкоуровневое программирование акселераторов (GPU/TPU).
🔹 Техстек: as wide as it gets. На самом деле даже перечислять, наверное, не имеет большого смысла, но базовые вещи: Python, Docker/Kubernetes, SQL/NoSQL. Иногда C++ и CUDA, иногда Java или Go, если вдруг нужно будет писать немного бэкенда.
➜ Data. Люди, которые находятся ближе к этой вершине, работают над пайплайнами, которые агрегируют, чистят и процессит MASSIVE data. Также тут занимаются оркестрацией и релайабилити этих пайплайнов, чтоб данные всегда были свежими, как булочки в немецкой бэккерай.
🔹 Тут я заметил еще больше людей с бэкграундом в Backend, которые решили сфокусироваться на Data-стороне. Но есть и люди, которые изначально фокусировались на distributed data processing. В некоторых компаниях, например в Spotify, это даже вынесено в отдельную роль.
🔹 Техстек: Python, Java, SQL, какой-нибудь mapReduce фреймворк, например Spark или Apache Beam. Для оркестрации — что-то вроде Flyte или Airflow.
Вот как-то так. Очень упрощенный треугольник ML-инжиниринга. Но главное: мало кто находится очень близко к одной вершине и остается там надолго. Большинство людей, которых я встречал, — мультидисциплинарные (находятся ближе к сторонам треугольника или даже к центру) и путешествуют по нему в зависимости от того, где нужно принести импакт в текущий момент.
#карьера@softmaxFn
❤6👍2
Гейткипинг в IT ✋⛔️
Я тут вспомнил, как почти год назад проходил интервью Meta на Staff MLE, и решил вам поныть про гейткипинг.
Вначале небольшое отступление для тех, кто не сталкивался с IT/ML-интервью и их недостатками. Даже несмотря на 5–6 раундов, которые по идее должны уменьшать нойз и влияние одного неудачного интервью, из-за количества аппликантов во многих больших компаниях даже один негативный фидбэк равен «удачи в следующем году». Это значит, что каждый интервьюер по сути может зафейлить вам весь процесс. И, к сожалению, случается так, что интервьюеры ведут себя нерационально ну или просто гейткипят кандидатов.
В Meta на Staff MLE процесс довольно типичный. Не считая первого созвона с рекрутером, всего 5 раундов: 3 раунда LeetCode по две медиум-задачи каждый раунд и 2 раунда ML-дизайна. Для Staff-позиции дизайн-интервью включают секцию с 2 вопросами о leadership and cross-functional collaboration (xfn) и непосредственно сам систем-дизайн.
По окончании всех этапов я был более-менее уверен в двух дизайн-интервью и сильно сомневался в LeetCode: 6 задач как-никак, мало ли где натупил. Забавно, что фидбэк оказался диаметрально противоположным.
Рекрутер начала с того, что у меня очень сильные кодинг-интервью, но вот по дизайну и leadership and xfn фидбэк смешанный. Я был немного удивлен и приготовился внимательно слушать. Начала она с того, что первый интервьюер сказал, что я не показал «достаточную глубину». Хорошо, что разговор был по телефону, потому что мое лицо выглядело примерно так: 🤨. Для контекста: на этом интервью я в Excalidraw писал формулы cross entropy, потому что интервьюер делал вид, что он «не понимает», что я имею в виду под multi-label и multiclass cross entropy. Это я собственно и обрисовал рекрутеру и вполне серьезно спросил: «Какой же глубины тогда искал интервьюер?» На что рекрутер начала отвечать что-то не особо внятное и даже немного забавное в стиле: «Ну нет, проблема как бы не в том, что у вас нет достаточной глубины знаний… а в том, что вы как бы сами не спустились на эту глубину, а интервьюеру нужно было вас туда за руку отвести». Я, как пел классик, «потихоньку начинаю въезжать…»
Ну ладно, думаю я, давайте послушаем, что там было не так со вторым дизайн-интервью. «Во втором интервью, — начала рекрутер, — дизайн и техсторона были очень сильными, но вот с leadership и xfn немного есть проблемы». Сижу молча, жду деталей. «Главная проблема в том, что вы совсем не продемонстрировали, как вы менторите джуниор-коллег…» 🫤 Опять — спасибо огромное, что разговор по телефону, потому что моя кабина держать pokerface была уже не в состоянии. Дело в том, что на этом интервью у меня спросили два вопроса: как я доношу информацию нетехническим стейкхолдерам и как я приоритизирую задачи в роадмапе. Нужно ли мне было начинать каждое интервью с «Здравствуйте, меня зовут Макс, и я отлично менторю джуниор-коллег», я у рекрутера решил уже не спрашивать 😅
По итогу предложение Меты было: «Мы принимаем тебя в совет, но не даем звание магистра». То есть мне дали оффер на Senior, который я вежливо не принял.
Еще хотел бы пояснить: в Meta работает огромное количество выдающихся инженеров, и планка действительно высокая. Я не считаю себя «top of the pack» и обычно спокойно принимаю негативный фидбэк, пытаясь извлечь из него наиболее конструктивные экшн-поинты. Но в данном конкретном случае меня не покидает ощущение, что вначале было принято решение задаунгрейдить меня до Senior, а потом уже фидбэк зарэтрофитили, чтобы «история сошлась». Поэтому я и назвал это гейткипингом.
Были ли у вас ситуации, где вы чувствовали, что вас откровенно гейткипят? Пишите в комментах — выговариваться помогает 😀
#карьера@softmaxFn
Я тут вспомнил, как почти год назад проходил интервью Meta на Staff MLE, и решил вам поныть про гейткипинг.
Вначале небольшое отступление для тех, кто не сталкивался с IT/ML-интервью и их недостатками. Даже несмотря на 5–6 раундов, которые по идее должны уменьшать нойз и влияние одного неудачного интервью, из-за количества аппликантов во многих больших компаниях даже один негативный фидбэк равен «удачи в следующем году». Это значит, что каждый интервьюер по сути может зафейлить вам весь процесс. И, к сожалению, случается так, что интервьюеры ведут себя нерационально ну или просто гейткипят кандидатов.
В Meta на Staff MLE процесс довольно типичный. Не считая первого созвона с рекрутером, всего 5 раундов: 3 раунда LeetCode по две медиум-задачи каждый раунд и 2 раунда ML-дизайна. Для Staff-позиции дизайн-интервью включают секцию с 2 вопросами о leadership and cross-functional collaboration (xfn) и непосредственно сам систем-дизайн.
По окончании всех этапов я был более-менее уверен в двух дизайн-интервью и сильно сомневался в LeetCode: 6 задач как-никак, мало ли где натупил. Забавно, что фидбэк оказался диаметрально противоположным.
Рекрутер начала с того, что у меня очень сильные кодинг-интервью, но вот по дизайну и leadership and xfn фидбэк смешанный. Я был немного удивлен и приготовился внимательно слушать. Начала она с того, что первый интервьюер сказал, что я не показал «достаточную глубину». Хорошо, что разговор был по телефону, потому что мое лицо выглядело примерно так: 🤨. Для контекста: на этом интервью я в Excalidraw писал формулы cross entropy, потому что интервьюер делал вид, что он «не понимает», что я имею в виду под multi-label и multiclass cross entropy. Это я собственно и обрисовал рекрутеру и вполне серьезно спросил: «Какой же глубины тогда искал интервьюер?» На что рекрутер начала отвечать что-то не особо внятное и даже немного забавное в стиле: «Ну нет, проблема как бы не в том, что у вас нет достаточной глубины знаний… а в том, что вы как бы сами не спустились на эту глубину, а интервьюеру нужно было вас туда за руку отвести». Я, как пел классик, «потихоньку начинаю въезжать…»
Ну ладно, думаю я, давайте послушаем, что там было не так со вторым дизайн-интервью. «Во втором интервью, — начала рекрутер, — дизайн и техсторона были очень сильными, но вот с leadership и xfn немного есть проблемы». Сижу молча, жду деталей. «Главная проблема в том, что вы совсем не продемонстрировали, как вы менторите джуниор-коллег…» 🫤 Опять — спасибо огромное, что разговор по телефону, потому что моя кабина держать pokerface была уже не в состоянии. Дело в том, что на этом интервью у меня спросили два вопроса: как я доношу информацию нетехническим стейкхолдерам и как я приоритизирую задачи в роадмапе. Нужно ли мне было начинать каждое интервью с «Здравствуйте, меня зовут Макс, и я отлично менторю джуниор-коллег», я у рекрутера решил уже не спрашивать 😅
По итогу предложение Меты было: «Мы принимаем тебя в совет, но не даем звание магистра». То есть мне дали оффер на Senior, который я вежливо не принял.
Еще хотел бы пояснить: в Meta работает огромное количество выдающихся инженеров, и планка действительно высокая. Я не считаю себя «top of the pack» и обычно спокойно принимаю негативный фидбэк, пытаясь извлечь из него наиболее конструктивные экшн-поинты. Но в данном конкретном случае меня не покидает ощущение, что вначале было принято решение задаунгрейдить меня до Senior, а потом уже фидбэк зарэтрофитили, чтобы «история сошлась». Поэтому я и назвал это гейткипингом.
Были ли у вас ситуации, где вы чувствовали, что вас откровенно гейткипят? Пишите в комментах — выговариваться помогает 😀
#карьера@softmaxFn
😱7❤6
softmax: AI/IT in London pinned «Кто такие ML/AI инженеры и чем они вообще занимаются 🧑💻🤖 Из моих наблюдений за 7 лет, всех людей, работающих над ML, в зависимости от их фокуса, можно условно разместить внутри треугольника с вершинами: Research, Software Engineering, Data. ➜ Люди, которые…»
Vacation time 🛫🏔️🏂
Одна из лучших инвестиций за мои 10 лет в Германии — это то, что живя рядом с горами я научился кататься на борде. Несмотря на хронически отбитый зад, горный отпуск зимой я жду уже начиная с лета.
У меня есть к вам вопрос — кому-нибудь тут будут интересны периодические посты про сноубординг, горы, путешествия в целом:
👍 - да, почему бы и нет
👎 - нет, спасибо, мамкин трэвел-блогер.
Вы катаетесь на доске/лыжах? Любите горы зимой? Хотите попробовать? Пишите в комментах.
#путешествия@softmaxFn
Одна из лучших инвестиций за мои 10 лет в Германии — это то, что живя рядом с горами я научился кататься на борде. Несмотря на хронически отбитый зад, горный отпуск зимой я жду уже начиная с лета.
У меня есть к вам вопрос — кому-нибудь тут будут интересны периодические посты про сноубординг, горы, путешествия в целом:
👍 - да, почему бы и нет
👎 - нет, спасибо, мамкин трэвел-блогер.
Вы катаетесь на доске/лыжах? Любите горы зимой? Хотите попробовать? Пишите в комментах.
#путешествия@softmaxFn
👍20❤3
LeetCode rollercoaster 🎢
Сидел тут, вспоминал про то, как первый раз решил податься в «бигтех» и про сопутствующий этому LeetCode-грайнд, и решил написать пару своих смешных наблюдений.
Я надеюсь, все понимают: LeetCode (LC) не определяет ни ваш интеллект, ни ваш скилл как девелопера. С LeetCode страглят все. Даже топ-талантам в индустрии он не дается легко. Это классическая numbers game — то, насколько ты хорош, определяется только тем, сколько ты практиковался. Поэтому LeetCode — это как инвестиции: тут главное не интеллект, а дисциплина и mental resilience. Главное — не сдаваться, верить в результат и прилежно грайндить.
За несколько своих LeetCode «кампаний» и из опыта друзей, которым я помогал, я понял, что весь путь до заветных 100 задач можно разделить на 3 сегмента. И самое интересное, что самый тяжелый — это не первый.
Если вы никогда не гриндили LC, первые 20–30 задач даются для менталки не так уж тяжело. Это такой себе honeymoon период. Вы всё еще в beginner mode, не требуете от себя многого, все задачи еще кажутся довольно новыми, и вы сосредоточены на усвоении знаний, а не на результате.
По моим ощущениям, 30–70 задач — вот это где начинается трэш и настоящее испытание вашей мотивации. Я называю его «Долина Сомнений». Именно тут начинаются ситуации, где вы уже вроде как видели похожие задачи, но всё еще страглите с каждой второй. Именно тут начинают в голову лезть мысли: «Я тупой. Это не для меня. Какой вообще в этом смысл? Каков смысл в моей жизни?» и т. д. Тут главное помнить, что так у всех! Не зацикливаться на том, что даже похожие задачи не решаются, не тратить время на overanalyzing каждой не получившейся. Нужно просто пушить вперед: step by step, task by task.
70–100 задач — это отрезок «просветления». Вы начинаете видеть паттерны, вы набили руку на базовых алгоритмах и можете на автомате закодить структуру BFS/DFS, а потом адаптировать ее под конкретную задачу. Где-то в этом периоде, как говорил один мудрый человек, вам «этот мир стал абсолютно понятен» 😅.
Из моего опыта, после 100 задач начинается diminishing returns. Из каждого потраченного часа пользы выходит всё меньше. На этом этапе я бы уже советовал фокусироваться больше на других факторах, усложняющих настоящее интервью: стресс и общение с реальным человеком. Больше всего с этим помогают, конечно, мок-интервью.
А вы грайндили LeetCode? Какие стратегии вам помогают?
#карьера@softmaxFn
Сидел тут, вспоминал про то, как первый раз решил податься в «бигтех» и про сопутствующий этому LeetCode-грайнд, и решил написать пару своих смешных наблюдений.
Я надеюсь, все понимают: LeetCode (LC) не определяет ни ваш интеллект, ни ваш скилл как девелопера. С LeetCode страглят все. Даже топ-талантам в индустрии он не дается легко. Это классическая numbers game — то, насколько ты хорош, определяется только тем, сколько ты практиковался. Поэтому LeetCode — это как инвестиции: тут главное не интеллект, а дисциплина и mental resilience. Главное — не сдаваться, верить в результат и прилежно грайндить.
За несколько своих LeetCode «кампаний» и из опыта друзей, которым я помогал, я понял, что весь путь до заветных 100 задач можно разделить на 3 сегмента. И самое интересное, что самый тяжелый — это не первый.
Если вы никогда не гриндили LC, первые 20–30 задач даются для менталки не так уж тяжело. Это такой себе honeymoon период. Вы всё еще в beginner mode, не требуете от себя многого, все задачи еще кажутся довольно новыми, и вы сосредоточены на усвоении знаний, а не на результате.
По моим ощущениям, 30–70 задач — вот это где начинается трэш и настоящее испытание вашей мотивации. Я называю его «Долина Сомнений». Именно тут начинаются ситуации, где вы уже вроде как видели похожие задачи, но всё еще страглите с каждой второй. Именно тут начинают в голову лезть мысли: «Я тупой. Это не для меня. Какой вообще в этом смысл? Каков смысл в моей жизни?» и т. д. Тут главное помнить, что так у всех! Не зацикливаться на том, что даже похожие задачи не решаются, не тратить время на overanalyzing каждой не получившейся. Нужно просто пушить вперед: step by step, task by task.
70–100 задач — это отрезок «просветления». Вы начинаете видеть паттерны, вы набили руку на базовых алгоритмах и можете на автомате закодить структуру BFS/DFS, а потом адаптировать ее под конкретную задачу. Где-то в этом периоде, как говорил один мудрый человек, вам «этот мир стал абсолютно понятен» 😅.
Из моего опыта, после 100 задач начинается diminishing returns. Из каждого потраченного часа пользы выходит всё меньше. На этом этапе я бы уже советовал фокусироваться больше на других факторах, усложняющих настоящее интервью: стресс и общение с реальным человеком. Больше всего с этим помогают, конечно, мок-интервью.
Дисклеймер: если вы сомневаетесь, стоит ли грайндить LeetCode или нет, пожалуйста, не воспринимайте этот пост как аргумент «за!». Я заметил, что по индустрии структура тех-интервью начинает потихоньку меняться. И хоть для бигтех-интервью процесс всё еще включает LC в 99% случаев, в будущем (возможно, недалеком) этот скилл, вполне вероятно, может стать менее ценным. Стоит ли инвестировать в него время — это только ваше решение.
А вы грайндили LeetCode? Какие стратегии вам помогают?
#карьера@softmaxFn
👍12❤5
This media is not supported in your browser
VIEW IN TELEGRAM
Полезные советы от сезонного сноубордиста. Часть 1: Даты 🗓️
Если собираетесь кататься на доске или лыжах в Австрии или Швейцарии — запомните эти даты: 12–20 февраля. В этот период жители южной Германии и половины Нидерландов совершают свое ежегодное паломничество в Альпы. Причина — удлиненные выходные после праздника Fasching и последующие зимние школьные каникулы.
За ночь с 11 на 12 количество людей на больших курортах увеличивается в ~5 раз, а очереди на подъемниках — раз в 10. Условия на трассах ухудшаются в соответствующих пропорциях. Еще до обеда уже можно встретить метровые бампы и снег разбитый в «жидкий лед», предлагаемый в барах как освежительный напиток 🥃.
#путешествия@softmaxFn
Если собираетесь кататься на доске или лыжах в Австрии или Швейцарии — запомните эти даты: 12–20 февраля. В этот период жители южной Германии и половины Нидерландов совершают свое ежегодное паломничество в Альпы. Причина — удлиненные выходные после праздника Fasching и последующие зимние школьные каникулы.
За ночь с 11 на 12 количество людей на больших курортах увеличивается в ~5 раз, а очереди на подъемниках — раз в 10. Условия на трассах ухудшаются в соответствующих пропорциях. Еще до обеда уже можно встретить метровые бампы и снег разбитый в «жидкий лед», предлагаемый в барах как освежительный напиток 🥃.
#путешествия@softmaxFn
❤4👀2❤🔥1🥰1😨1
🧑💻 Тейк-хоум задачи в интервью процессах
Я заметил, что в Лондоне довольно много IT-компаний — от стартапов до крупных банков — вместо LeetCode-раунда дают задачу «на дом» с последующим ее обсуждением.
Задачи довольно сильно варьируются по интересности и сложности.
Чаще всего дают темплейт простого CRUD-сервиса, где нужно заимплементить недостающие эндпоинты. Но встречаются и довольно интересные таски — например, где нужно писать эффективный процессинг большого датасета (что-то вроде One Billion Rows Challenge, только проще и меньше 😅).
So far мой фаворит — это написать свой веб-краулер. Это реально очень интересный таск, где можно за пару часов набросать что-то простое и эффективное, а можно и «упороться» и написать дистрибьютед краулер, который можно будет ранить на нескольких процессах и даже нодах, попутно выучив и повторив кучу базовых и полезных вещей.
#карьера@softmaxFn
Я заметил, что в Лондоне довольно много IT-компаний — от стартапов до крупных банков — вместо LeetCode-раунда дают задачу «на дом» с последующим ее обсуждением.
Задачи довольно сильно варьируются по интересности и сложности.
Чаще всего дают темплейт простого CRUD-сервиса, где нужно заимплементить недостающие эндпоинты. Но встречаются и довольно интересные таски — например, где нужно писать эффективный процессинг большого датасета (что-то вроде One Billion Rows Challenge, только проще и меньше 😅).
So far мой фаворит — это написать свой веб-краулер. Это реально очень интересный таск, где можно за пару часов набросать что-то простое и эффективное, а можно и «упороться» и написать дистрибьютед краулер, который можно будет ранить на нескольких процессах и даже нодах, попутно выучив и повторив кучу базовых и полезных вещей.
#карьера@softmaxFn