Как стать автором
Обновить
103
-1
Max Strakhov @Monnoroch

Data Science/Machine Learning

Кто такой — джуниор в FAANG?

Уровень сложности Простой
Время на прочтение 4 мин
Количество просмотров 4.1K

Все мы понимаем, что означает слово Junior в контексте разработки софта. Человек без опыта, недавно попавший в профессию, часто делающий ошибки, требующий помощи и наставлений. Но как так получается, что в FAANG на Junior позиции (напр., L3 в Google) платят, как на Senior позиции в остальной отрасли? За что? За ошибки, помощь, наставления и отсутствие опыта? Какая‑то бессмыслица!

Каждая компания определяет слово «Junior» по‑своему, и это правильно. В этой статье я расскажу, как эту позицию определяют FAANG компании, и значительная часть Big Tech индустрии вместе с ними. В прошлый раз я поговорил про общие требования к кандидатам. Разобравшись с требованиями к этой позиции, вы узнаете, кому стоит приходить на собеседование в FAANG, а также как к нему готовиться. При правильном подходе быть принятым на работу гораздо проще, чем кажется на первый взгляд.

И кто же он такой?
Всего голосов 13: ↑9 и ↓4 +5
Комментарии 27

Развеиваем мифы о собеседованиях в FAANG

Уровень сложности Простой
Время на прочтение 8 мин
Количество просмотров 14K

Наверное, уже все слышали про процесс собеседования в FAANG (и другой BigTech). Leetcode задачи, системный дизайн, поведенческие вопросы, culture fit, и прочие баззворды регулярно обсуждаются на Хабре. Коллективный разум Хабра более или менее пришел к общему консенсусу: это бессмысленная процедура, которую проектировали некомпетентные люди.

Волею судеб за десять лет опыта в FAANG+ мне повезло обсудить тему найма с множеством высокоуровневых инженеров, менеджеров, директоров, а также членов комитетов, принимающих решения о найме, из нескольких FAANG компаний. Этой статьей я хочу попробовать донести их позицию до широкой аудитории.

И в чем же смысл литкода?
Всего голосов 50: ↑43 и ↓7 +36
Комментарии 179

Что понимают технологические компании и чего не понимают традиционные компании о разработчиках ПО

Уровень сложности Простой
Время на прочтение 10 мин
Количество просмотров 11K

Я работал в разнообразных технологических компаниях: от «традиционных» центров программирования и консалтингов до инвестиционных банков и быстрорастущих технологических фирм. Также я общался с разработчиками ПО, работающими в стартапах, банковской сфере, автомобилестроении, big tech и в более «традиционных компаниях». В этой выборке была приличная доля компаний из Кремниевой долины и тех, которые находятся вне её.

Я заметил, что компании Кремниевой долины часто «схватывают» то, что их традиционные конкуренты не могут даже понять и реализовать на практике — особенно в Европе. Эти практики приводят к ускоренным инновациям на уровне компаний, более качественному профессиональному росту инженеров и просто к «оптимальности» в лучшем значении этого слова. В свою очередь, компании Кремниевой долины могут платить (и платят!) больше, и могут получить больше пользы от одного и того же человека.

В этой статье я буду использовать термин «компания в стиле Кремниевой долины», подразумевая современные компании, оптимально использующие каждого разработчика ПО и традиционно находящиеся в Кремниевой долине (хотя многие новые компании этого типа обосновываются уже не там). Такие компании сравнимы по КПД инженера с Meta* или Google. Они используют схожие методологии и часто могут привлекать персонал из других компаний «в стиле Кремниевой долины».
Читать дальше →
Всего голосов 61: ↑58 и ↓3 +55
Комментарии 19

Продолжаем разгонять FizzBuzz

Время на прочтение 5 мин
Количество просмотров 7.5K

После написания первой статьи про FizzBuzz (которая неожиданно для меня стала выбором редакции на Технотексте 2021) у меня появлялись мысли о том, как еще можно ускорить, но все время было не до того. И тут мне прилетает перчатка.

Читать далее
Всего голосов 46: ↑44 и ↓2 +42
Комментарии 5

И еще немного про авто-тесты в QEMU

Время на прочтение 5 мин
Количество просмотров 3.3K

Привет, Хабр. Меня зовут Роман, я разработчик встраиваемых систем в Dannie и мы тут делаем умные камеры. По долгу службы, мне потребовалось завести эмуляцию прошивки для чипа из семейства MIPS. В рамках разработки проекта мы обозначили для себя задачу получения быстрой обратной связи при разработке ПО и прошивки. Для этого начали выстраивать CI/CD-цепочку с проверкой прошивки в эмуляторе. Одной из требуемых функций являлась возможность манипулировать окружением загрузчика (u-boot environment). В статье я расскажу что получилось и как из говна и палок завести авто-тесты прошивки в CI.

Читать далее
Всего голосов 5: ↑5 и ↓0 +5
Комментарии 0

Обновляем контент, не проходя повторное ревью в сторах

Время на прочтение 5 мин
Количество просмотров 4.2K

Всем привет, я Дима из мобильной команды Туту, мы делаем приложения с 20М инсталлов. Расскажу, как можно быстро добавлять в приложение новый контент и обновлять его, не проходя повторные ревью в сторах. Это нужно, например, когда мы хотим быстро донести до людей коронавирусные ограничения.

Ниже реализация на SwiftUI и Kotlin (но вы можете использовать UIkit и серверный язык, принятый в вашей команде), а в GitHub-репозитории в конце статьи вы найдёте код сервера и приложений для детального изучения.

Читать далее
Всего голосов 13: ↑13 и ↓0 +13
Комментарии 4

Сколько мне стоило попасть в Гугл и получить повышение, не проработав там ни одного дня

Уровень сложности Простой
Время на прочтение 10 мин
Количество просмотров 92K

Декабрь 2020, вторая волна Ковида в разгаре. Я ПМ на удаленке в Американской компании. После похорон отца в Тбилиси я находился в прострации, надо было возвращаться в США и как-то менять своё положение, ведь денег, которых я зарабатывал явно не хватало на нормальную жизнь. Сами воспоминания о моём предыдущем поиске вызывали во мне холодный озноб и какой-то внутренний голос тихо шептал «подожди, сейчас пандемия, многие и о таком мечтают, как-нибудь выкрутишься…».

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

Я зарегистрировал себе американский номер в Google Voice, чтобы мне начали звонить рекрутеры и начал рассылать резюме. Я разослал около сотни адаптированных резюме и указал в LinkedIn что активно ищу работу. Постепенно на меня начали выходить рекрутеры небольших компаний, но я понимал, что в них условия будут в лучшем случае на 40% лучше текущей и это все равно не решало моих проблем. Хоть и казалось, что на LinkedIn висят тысячи позиций, однако основных работодателей я этим исчерпал. Подавался я в основном на Sr. Project Manager или Engineering Manager позиции.

Осознание пришло, когда я стал читать teamblind.com – лучший ресурс в США по анализу рынка в ИТ и levels.fyi где можно посмотреть реальные зарплаты. Раньше я читал Glassdoor, но информация на нем устарела.

Оказалось, что в финансовой сфере в США, которая мне была интересна - плохие условия и токсичная культура, тоже самое в консалтинге кроме компаний из Big4 или MBB где надо работать долгие часы, но возможно получать 1+ миллион долларов в год дослужившись до партнёра. Самыми интересными оказались компании, которые называют FAANG (Fb, Apple, Amazon, Netflix, Google) иногда в место этого списка используют FAANGMULA справедливо добавляя туда Microsoft, Uber, Lyft и Airbnb – все они технологические, инновационные компании не просто создающие бизнес-продукты, но и технологии, которыми пользуются весь мир. Компании, создающие де-факто стандарты разработки цифровых продуктов, инвестирующие в научные исследования, создающие легендарные условия для своих сотрудников, чем привлекают умнейших инженеров и ученных со всего мира.

Читать далее
Всего голосов 149: ↑133 и ↓16 +117
Комментарии 125

KODI: собираем удобный и функциональный медиацентр для дома. Часть 6. MariaDB и синхронизация медиатеки

Время на прочтение 9 мин
Количество просмотров 24K

Продолжаем «изобретать» медиацентр. Разберемся, как иметь несколько KODI-медиацентров и одну медиатеку на все устройства в доме. Причем такую медиатеку, которая понимает, где вы закончили просмотр и позволит его продолжить на другом устройстве.

Читать дальше →
Всего голосов 1: ↑1 и ↓0 +1
Комментарии 33

[Личный опыт] Фронтенд-инженер из лондонского Facebook: как попасть в FAANG?

Время на прочтение 17 мин
Количество просмотров 18K
Как готовиться к собеседованиям, чтобы устроиться в компанию уровня FAANG? Вместе с Олегом Громовым, фронтенд-инженером из лондонского офиса Facebook (ex. Yandex, Toptal etc.), составили план подготовки по мотивам прошедшего вебинара — опираясь на его личный опыт.

Обсуждаем:

  • плюсы-минусы работы в крупных компаниях,
  • оформление резюме,
  • как проходят скрининг, алгоритмическая и архитектурная секции,
  • какова роль английского и soft skills — на поведенческой секции и в целом на собеседовании,
  • где тренироваться необходимым навыкам для каждого этапа: собрали полезные ссылки.


Читать дальше →
Всего голосов 23: ↑18 и ↓5 +13
Комментарии 28

Security Week 44: серьезная уязвимость в GeForce Experience

Время на прочтение 3 мин
Количество просмотров 3.8K
Разработчики из NVIDIA залатали две серьезные уязвимости в утилите GeForce Experience. Эта программа устанавливается вместе с драйверами для видеокарт, отвечает за автоматическое обновление ПО и другие функции. В версиях GeForce Experience до 3.20.5.70 нашлась серьезная проблема, в теории позволяющая получить полный контроль над системой.

При установке сервисного ПО на компьютере пользователя поднимается веб-сервер на базе NodeJS, отвечающий за связь с инфраструктурой производителя. Он автоматически подгружает необходимые библиотеки. В одном случае расположение этого компонента находится под контролем потенциального атакующего, и тот может подменить его на вредоносный код. Уязвимость CVE-2020-5977 получила 8,2 балла по шкале CvSS и может приводить как к отказу в обслуживании, так и выполнению произвольного кода с повышенными привилегиями.
Читать дальше →
Всего голосов 9: ↑9 и ↓0 +9
Комментарии 4

Разбираем EM-algorithm на маленькие кирпичики

Время на прочтение 22 мин
Количество просмотров 25K


В этой статье, как Вы уже, наверное догадались, речь пойдет об устройстве EM-алгоритма. Статья прежде всего может быть интересна тем, кто потихонечку уже вступает в сообщество датасайнтистов. Материал изложенный в статье в большей степени будет полезен тем, кто недавно начал проходить третий курс «Поиск структуры в данных» в рамках специализации «Машинное обучение и анализ данных» от МФТИ и Яндекс.

Изложенный в статье материал, в каком-то смысле, является дополнением к первой неделе обучения на вышеобозначенном курсе, а именно, позволяет ответить на некоторые немаловажные вопросы, касательно принципа действия EM-алгоритма. Для лучшего понимания материала нашему многоуважаемому читателю желательно уметь осуществлять операции с матрицами (умножение матриц, нахождение определителя матрицы и обратной матрицы), разбираться в основах теории вероятности и матстата, ну и конечно же, иметь хотя бы базовое представление о базовых алгоритмах кластеризации и понимать какое место кластеризация занимает в машинном обучении. Хотя, безусловно, и без этих знаний можно ознакомиться со статьей, что-то да наверняка будет понятным :)

Также по старой традиции, статья не будет содержать глубоких теоретических изысканий, но будет наполнена простыми и доступными для понимания примерами. Каждый последующий пример будет немного глубже предыдущего объяснять действие EM-алгоритма, что в конечном итоге приведет нас прямёхонько к разбору самого алгоритма. Для каждого примера будет написан код. Весь код написан на языке python 2.7, и за это я заранее приношу извинения. Так вышло, что сейчас я использую именно эту версию, но после перехода на python 3, постараюсь изменить код в статье.
Читать дальше →
Всего голосов 14: ↑14 и ↓0 +14
Комментарии 5

Почему разработчики такие медленные: распространенные проблемы и их решения

Время на прочтение 15 мин
Количество просмотров 15K
Привет, Хабр! Представляю вашему вниманию перевод статьи Why Development Teams are Slow: Common Software Jams and Solutions автора Эрика Эллиота.



Если вы больше любите слушать, чем читать, то в аудио формате перевод доступен на Яндекс.Музыке и в Apple Podcasts

Давайте рассмотрим, что вызывает сбои в процессе разработки программного обеспечения, и что вы как руководитель можете с этим сделать. Причин может быть много, так что наш список, конечно, будет далеко не исчерпывающим. Вместо этого мы сосредоточимся на нескольких наиболее распространенных проблемах:

  • Нереалистичные ожидания
  • Слишком много открытых тикетов
  • Неконтролируемый объем задач
  • Накопление код ревью
  • Плохая подготовка
  • Выгорание разработчиков
  • Баги
  • Текучка кадров

Медлительность разработчиков — не корень проблемы. Это симптом других перечисленных проблем. В 100% случаев, если команда разработки работает слишком медленно — это вина руководителя. Но хорошая новость заключается в том, что вы в силах это исправить. Давайте рассмотрим каждый из пунктов подробнее, чтобы разобраться, что мы можем с каждым из них сделать.
Читать дальше →
Всего голосов 34: ↑31 и ↓3 +28
Комментарии 8

Разворачиваем среду для работы с микросервисами. Часть 1 установка Kubernetes HA на bare metal (Debian)

Время на прочтение 21 мин
Количество просмотров 67K


Здравствуйте уважаемые читатели Хабра!


Этой публикацией я хочу начать цикл статей про развертывание полноценной среды оркестрации контейнерами Kubernetes, которая будет готова к эксплуатации и запуску приложений.
Я хочу рассказать не просто про то, как развернуть кластер Kubernetes, но и про то, как настроить кластер после установки, как добавить в него удобных инструментов и дополнений для использования микросервисной архитектуры.


Данный цикл будет состоять минимум из четырех статей:


  1. В первой из них я расскажу, как на голое железо установить отказоустойчивый кластер kubernetes, как установить стандартный дашборд и настроить доступ к нему, как установить ingress контроллер.
  2. Во второй статье я расскажу, как развернуть отказоустойчивый кластер Ceph и как начать использовать RBD тома в нашем кластере Kubernetes. Также немного затрону остальные виды стораджей (storages) и более подробно рассмотрю local-storage. Дополнительно расскажу, как на базе созданного кластера CEPH организовать отказоустойчивое хранилище S3
  3. В третьей статье я расскажу, как в нашем кластере Kubernetes развернуть отказоустойчивый кластер MySql, а именно — Percona XtraDB Cluster on Kubernetes. И также опишу все проблемы с которыми мы столкнулись, когда решили перенести БД в kubernetes.
  4. В четвертой статье я постараюсь собрать все вместе и рассказать, как задеплоить и запустить приложение, которое будет использовать БД и тома ceph. Расскажу, как настроить ingress контроллер для доступа к нашему приложению извне и сервис автоматического заказа сертификатов от Let's Encrypt. Еще — как автоматически поддерживать данные сертификаты в актуальном состоянии. Также немного затронем тему RBAC в контексте доступа до панели управления. Расскажу в двух словах про Helm и его установку.
    Если Вам интересна информация данных публикаций, то — добро пожаловать!
Читать дальше →
Всего голосов 16: ↑15 и ↓1 +14
Комментарии 4

MCMC-сэмплинг для тех, кто учился, но ничего не понял

Время на прочтение 15 мин
Количество просмотров 32K
Рассказывая о вероятностном программировании и Байесовской статистике, я обычно не уделяю особого внимания тому, как, на самом деле, выполняется вероятностный вывод, рассматривая его как некий «чёрный ящик». Вся прелесть вероятностного программирования заключается в том, что, на самом деле, для того, чтобы строить модели, не обязательно понимать, как именно делается вывод. Но это знание, безусловно, весьма полезно.


Как-то раз я рассказывал о новой Байесовской модели человеку, который не особенно разбирался в предмете, но очень хотел всё понять. Он-то и спросил меня о том, чего я обычно не касаюсь. «Томас, — сказал он, — а как, на самом деле, выполняется вероятностный вывод? Как получаются эти таинственные сэмплы из апостериорной вероятности?».
Читать дальше →
Всего голосов 19: ↑18 и ↓1 +17
Комментарии 22

Шпаргалки по безопасности: Docker

Время на прочтение 7 мин
Количество просмотров 39K


Docker контейнеры — самая популярная технология для контейнеризации. Изначально она использовалась в основном для dev и test окружений, со временем перешла и в production. Docker контейнеры начали плодиться в production среде, как грибы после дождя, однако мало из тех, кто использует данную технологию, задумывался о том, как же безопасно публиковать Docker контейнеры.

Основываясь на OWASP, мы подготовили список правил, выполнение которых позволит значительно обезопасить ваше окружение, построенное на Docker контейнерах.
Читать дальше →
Всего голосов 33: ↑31 и ↓2 +29
Комментарии 5

Публикуем приложения iOS в App Store с GitLab и fastlane

Время на прочтение 5 мин
Количество просмотров 8.8K


Как GitLab с fastlane собирает, подписывает и публикует приложения для iOS в App Store.


Недавно у нас был пост о том, как быстро собрать и запустить приложение Android с GitLab и fastlane. Здесь мы увидим, как собрать и запустить приложение iOS и опубликовать его в TestFlight. Зацените, как круто я вношу изменение на iPad Pro с GitLab Web IDE, беру сборку и получаю обновление тестовой версии приложения на том же iPad Pro, где я его разработал.


Здесь мы возьмем простое приложение для iOS на Swift, с которым я записывал видео.

Читать дальше →
Всего голосов 15: ↑15 и ↓0 +15
Комментарии 0

Настройка НА-кластера Kubernetes на «голом железе» с kubeadm. Часть 1/3

Время на прочтение 18 мин
Количество просмотров 50K

Часть 2/3 тут
Часть 3/3 тут


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


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


0. Вступление


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


Читать дальше →
Всего голосов 32: ↑28 и ↓4 +24
Комментарии 5

Строим загружаемую по сети ферму серверов для Kubernetes с помощью LTSP

Время на прочтение 12 мин
Количество просмотров 8.4K


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


С этого момента вам больше не придется думать об установке ОС и отдельных пакетов на каждую ноду. Зачем? Вы можете сделать все это автоматически через Dockerfile!


Тот факт что вы можете купить сотню новых серверов, добавить их в рабочее окружение и почти моментально получить их готовыми к использованию — это действительно потрясающе!


Заинтриговал? Теперь давайте обо всем по порядку.

Читать дальше →
Всего голосов 8: ↑7 и ↓1 +6
Комментарии 5

Мониторинг и Kubernetes (обзор и видео доклада)

Время на прочтение 10 мин
Количество просмотров 31K
28 мая на проходившей в рамках фестиваля РИТ++ 2018 конференции RootConf 2018, в секции «Логирование и мониторинг», прозвучал доклад «Мониторинг и Kubernetes». В нём рассказывается об опыте настройки мониторинга с Prometheus, который был получен компанией «Флант» в результате эксплуатации десятков проектов на Kubernetes в production.



По традиции рады представить видео с докладом (около часа, гораздо информативнее статьи) и основную выжимку в текстовом виде. Поехали!
Всего голосов 32: ↑29 и ↓3 +26
Комментарии 12

Generative adversarial networks

Время на прочтение 12 мин
Количество просмотров 26K
В прошлой статье мы рассмотрели простейшую линейную генеративную модель PPCA. Вторая генеративная модель, которую мы рассмотрим — Generative Adversarial Networks, сокращенно GAN. В этой статье мы рассмотрим самую базовую версию этой модели, оставив продвинутые версии и сравнение с другими подходами в генеративном моделировании на следующие главы.


Читать дальше →
Всего голосов 23: ↑22 и ↓1 +21
Комментарии 3

Информация

В рейтинге
Не участвует
Откуда
London, England - London, Великобритания
Зарегистрирован
Активность