Forwarded from Базы данных & SQL
Хабр
Инструкция по бэкапу одной базы в Postgres – миф или реальность
Бэкап кластера или базы – как не ошибиться в выборе? В предыдущей части Инструкция по установке Postgres для OLTP приложений и 1С. Часть 1 Базовая конфигурация. мы импортозаместились на Postgres ,...
Forwarded from Artem Ryblov’s Data Science Weekly
Exceptional Resources to Prepare for the Data Science Interview. Part 1: Live Coding
In this article, we will understand what a live coding interview is and how to prepare for it.
This blog-post will primarily be useful to Data Scientists and ML engineers, while some sections, for example, Algorithms and Data Structures, will be suitable for all IT specialists who will have to go through the live coding section.
Table of contents
- Preparing for an Algorithmic Interview
- Resources
- Algorithms and Data Structures
- Programming in Python
- Solving a Practical Data Science Problem
- Hybrid
- Learning How to Learn
- Let’s sum it up
- What’s next?
NB:
I'm the author of the article.
It was initially published in Russian (on habr.com), then I added additional resources in English to make up for deleting resources in Russian language and published it on medium.com.
So, for Russian speakers I recommend to read Russian version, for English speakers I recommend to read English version and both will benefit from starring the repository, which will be maintained and updated when new resources become available.
Links:
- Medium (eng)
- Habr (rus)
Navigational hashtags: #armknowledgesharing #armarticles
General hashtags: #interview #interviewpreparation #livecoding #leetcode #algorithms #algorithmsdatastructures #datastructures #python #sql #kaggle
@data_science_weekly
In this article, we will understand what a live coding interview is and how to prepare for it.
This blog-post will primarily be useful to Data Scientists and ML engineers, while some sections, for example, Algorithms and Data Structures, will be suitable for all IT specialists who will have to go through the live coding section.
Table of contents
- Preparing for an Algorithmic Interview
- Resources
- Algorithms and Data Structures
- Programming in Python
- Solving a Practical Data Science Problem
- Hybrid
- Learning How to Learn
- Let’s sum it up
- What’s next?
NB:
I'm the author of the article.
It was initially published in Russian (on habr.com), then I added additional resources in English to make up for deleting resources in Russian language and published it on medium.com.
So, for Russian speakers I recommend to read Russian version, for English speakers I recommend to read English version and both will benefit from starring the repository, which will be maintained and updated when new resources become available.
Links:
- Medium (eng)
- Habr (rus)
Navigational hashtags: #armknowledgesharing #armarticles
General hashtags: #interview #interviewpreparation #livecoding #leetcode #algorithms #algorithmsdatastructures #datastructures #python #sql #kaggle
@data_science_weekly
Forwarded from DeepSchool
Q-Learning
Q-Обучение — один из фундаментальных алгоритмов обучения с подкреплением. Его использовали ещё при обучении агентов в играх на Атари. Он актуален и сегодня — применяется, например, в офлайн-обучении с подкреплением.
Из новой статьи вы узнаете:
- как работают методы обучения с подкреплением, основанные на функции ценности
- какие есть методы для оценки этой функции
- что такое уравнение Беллмана
- и конечно же, какой алгоритм у Q-обучения.
Читайте нашу статью по ссылке: https://www.notion.so/deepschool-pro/Q-314e0f83efb14ef19b12ffaacfc2b4a6?pvs=4
Q-Обучение — один из фундаментальных алгоритмов обучения с подкреплением. Его использовали ещё при обучении агентов в играх на Атари. Он актуален и сегодня — применяется, например, в офлайн-обучении с подкреплением.
Из новой статьи вы узнаете:
- как работают методы обучения с подкреплением, основанные на функции ценности
- какие есть методы для оценки этой функции
- что такое уравнение Беллмана
- и конечно же, какой алгоритм у Q-обучения.
Читайте нашу статью по ссылке: https://www.notion.so/deepschool-pro/Q-314e0f83efb14ef19b12ffaacfc2b4a6?pvs=4
deepschool-pro on Notion
Q-Обучение | Notion
Автор: Шамиль Мамедов
Редактура: Герман Петров
Редактура: Герман Петров
Forwarded from DziS Science | Data Science
Привет всем!👋
Самая трудная часть собеседования - техническая. Нередко при собеседовании спрашивают задачи на указатели, сортировку, связанные списки или кучи.
Основной сложностью при подготовке является именно понимание всех алгоритмов и трюков, знание сложности алгоритмов.
Хотел бы поделиться несколькими интересными источниками, которые помогут разобраться с алгоритмами.
1️⃣ . Визуализации от института Сан-Франциско.
Тут есть реализации многих алгоритмов, которые спрашивают на собеседованиях.
2️⃣ . Вики по алгоритмам от МИТ.
Тут без проблем можно найти, например, сложность алгоритмов сортировки и описание многих алгоритмов.
3️⃣ . Еще одна визуализация алгоритмов на JS.
Красивая платформа для демо основных алгоритмов, можно посмотреть код на JavaScript.
По традиции поставьте 🔥, если понравилось
Самая трудная часть собеседования - техническая. Нередко при собеседовании спрашивают задачи на указатели, сортировку, связанные списки или кучи.
Основной сложностью при подготовке является именно понимание всех алгоритмов и трюков, знание сложности алгоритмов.
Хотел бы поделиться несколькими интересными источниками, которые помогут разобраться с алгоритмами.
Тут есть реализации многих алгоритмов, которые спрашивают на собеседованиях.
Тут без проблем можно найти, например, сложность алгоритмов сортировки и описание многих алгоритмов.
Красивая платформа для демо основных алгоритмов, можно посмотреть код на JavaScript.
По традиции поставьте 🔥, если понравилось
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Поступашки - ШАД, Стажировки и Магистратура
How to забоать алгосы к ШАД за оставшееся время
Товарищи, вступительные ШАД совсем скоро, самое время начать готовиться!
Для начало сравним задачи вступительных 2023 и 2018 года.
Вот несколько задач которые встречались в 2023 году.
https://t.me/algoses/6
https://t.me/algoses/12
https://t.me/algoses/19
2018 год
https://t.me/algoses/69
https://t.me/algoses/9
Задачи сильно отличаются......
2018 год был аномальным по алгоритмам и сейчас такого уже не делают, так что расслабляемся и не тревожимся.
Лучше всего сфокусироваться на свежих задачах, это касается не только алгосов, но и всего другого. Тот же матанализ, если вы видели задания 2022 года и 2023, то согласитесь во многом общие темы.
И так какие же темы по алгоритмам попадались в прошлом году и какие скорее всего попадутся в этом ?
—Бинарный поиск, два указателя, префиксные суммы, жадные алгоритмы, бинарные деревья, графы.
Первые два этапа обычно состоят из задач на бинарный поиск/два указателя, графы. (в прошлом году было так)
Последний этап - это собес, и скорее всего вам дадут задачу на два указателя/жадные алгоритмы.
Объясню логику почему на последним этапе именно такие задачи.
-Во первых это Яндекс и зачастую на собесах дают задачи со сложностью O(N).
-Во вторых собес длится 30 минут, давать задачи на сложные алгоритмы или сложную идею нет смысла, скорее всего будет задача где можно легко уйти не туда, не учесть подводные камни и наделать багов. Как раз таки темы на два указателя/жадные алгоритмы такие.
На вступительных экзаменах могут встречаться два типа задач: идеиные и простые на реализацию.
Темы из которых обычно составляют идейные задачи - бинарныи поиск, два указателя, префиксные суммы, жадные алгоритмы.
А на просто закодить - бинарные деревья, графы
—Теперь про подготовку:
Чтобы избежать ситуации, когда не удастся решить простую задачу на графах из-за недостаточного знания этой темы, я предлагаю вам ознакомиться с алгоритмами, перечисленными выше. Для этого можно решать простые задачи на соответствующие темы на платформе leetcode. Желательно до-конца марта это одолеть.
Начиная с апреля, мы переходим к решению более сложных задач.
-Для БП и двух указателей берите курс ИТМО (чтобы ссылка работала, нужно зарегаться), если вы прорешали все задачи на бп и два указателя, я уверен вы сможете решить любую задачу из ШАДа на эти темы.
-Префиксные суммы, жадные алгоритмы и бинарные деревья лучше всего решать на Leetcode, ваша цель дойти до уровня медиум.
-По графам не нужно знать супер сложные алгоритмы. Я вам рекомендую acmp, прорешать обязательно 1 часть, а второй части решить хотя-бы по 5 задач на алгоритм Флойда и Дейкстры.
Если вы все эти темы хорошо знаете или осталось еще свободное время для подготоки, я предлагаю вам порешать задачи на монотонный стек, СНМ, ДП.
Такой подход подготовки показал отличные результаты при подготовки к ШАДу и к собеседованиям. А если хотите гарантировано подготовиться к школам по типу ШАДа или тащить алгособесы, то советую наш новый курс по алгоритмам.
Товарищи, вступительные ШАД совсем скоро, самое время начать готовиться!
Для начало сравним задачи вступительных 2023 и 2018 года.
Вот несколько задач которые встречались в 2023 году.
https://t.me/algoses/6
https://t.me/algoses/12
https://t.me/algoses/19
2018 год
https://t.me/algoses/69
https://t.me/algoses/9
Задачи сильно отличаются......
2018 год был аномальным по алгоритмам и сейчас такого уже не делают, так что расслабляемся и не тревожимся.
Лучше всего сфокусироваться на свежих задачах, это касается не только алгосов, но и всего другого. Тот же матанализ, если вы видели задания 2022 года и 2023, то согласитесь во многом общие темы.
И так какие же темы по алгоритмам попадались в прошлом году и какие скорее всего попадутся в этом ?
—Бинарный поиск, два указателя, префиксные суммы, жадные алгоритмы, бинарные деревья, графы.
Первые два этапа обычно состоят из задач на бинарный поиск/два указателя, графы. (в прошлом году было так)
Последний этап - это собес, и скорее всего вам дадут задачу на два указателя/жадные алгоритмы.
Объясню логику почему на последним этапе именно такие задачи.
-Во первых это Яндекс и зачастую на собесах дают задачи со сложностью O(N).
-Во вторых собес длится 30 минут, давать задачи на сложные алгоритмы или сложную идею нет смысла, скорее всего будет задача где можно легко уйти не туда, не учесть подводные камни и наделать багов. Как раз таки темы на два указателя/жадные алгоритмы такие.
На вступительных экзаменах могут встречаться два типа задач: идеиные и простые на реализацию.
Темы из которых обычно составляют идейные задачи - бинарныи поиск, два указателя, префиксные суммы, жадные алгоритмы.
А на просто закодить - бинарные деревья, графы
—Теперь про подготовку:
Чтобы избежать ситуации, когда не удастся решить простую задачу на графах из-за недостаточного знания этой темы, я предлагаю вам ознакомиться с алгоритмами, перечисленными выше. Для этого можно решать простые задачи на соответствующие темы на платформе leetcode. Желательно до-конца марта это одолеть.
Начиная с апреля, мы переходим к решению более сложных задач.
-Для БП и двух указателей берите курс ИТМО (чтобы ссылка работала, нужно зарегаться), если вы прорешали все задачи на бп и два указателя, я уверен вы сможете решить любую задачу из ШАДа на эти темы.
-Префиксные суммы, жадные алгоритмы и бинарные деревья лучше всего решать на Leetcode, ваша цель дойти до уровня медиум.
-По графам не нужно знать супер сложные алгоритмы. Я вам рекомендую acmp, прорешать обязательно 1 часть, а второй части решить хотя-бы по 5 задач на алгоритм Флойда и Дейкстры.
Если вы все эти темы хорошо знаете или осталось еще свободное время для подготоки, я предлагаю вам порешать задачи на монотонный стек, СНМ, ДП.
Такой подход подготовки показал отличные результаты при подготовки к ШАДу и к собеседованиям. А если хотите гарантировано подготовиться к школам по типу ШАДа или тащить алгособесы, то советую наш новый курс по алгоритмам.
Forwarded from Записки MLEшника (Egor)
Сегодня пост про статью моего любимого жанра - "если А, бери Б" 🌝
Встречайте - Battle of the Backbones. Ребята взялись найти лучший бекбоун для задачек Computer Vision. Искали для четырех задач - классификация, детекция, сегментация, image retrieval и определение out of distribustion. Подход прост - учили разные комбинация на разных датасетах, а потом смотрели, где метрики лучше.
Итого:
Топ средних по размеру бекбоунов:
- supervised ConvNeXt-Base
- supervised SwinV2-Base trained using ImageNet-21k
- CLIP ViT-Base
Топ маленьких бекбоунов:
- ConvNeXt-Tiny
- SwinV2-Tiny
- DINO ViT-Small
Более подробный топ по каждой задаче на картинке.
Веса брали из библиотечки timm, поэтому использовать их должно быть легко.
Пару интересных выводов от авторов:
- CNN часто опережает ванильный ViT (а неванильные заимствуют идеи у CNN - например, swin)
- при одинаковом количестве данных self-supervised претрейн (типа SimCLR, DINO) оказывается лучше
Встречайте - Battle of the Backbones. Ребята взялись найти лучший бекбоун для задачек Computer Vision. Искали для четырех задач - классификация, детекция, сегментация, image retrieval и определение out of distribustion. Подход прост - учили разные комбинация на разных датасетах, а потом смотрели, где метрики лучше.
Итого:
Топ средних по размеру бекбоунов:
- supervised ConvNeXt-Base
- supervised SwinV2-Base trained using ImageNet-21k
- CLIP ViT-Base
Топ маленьких бекбоунов:
- ConvNeXt-Tiny
- SwinV2-Tiny
- DINO ViT-Small
Более подробный топ по каждой задаче на картинке.
Веса брали из библиотечки timm, поэтому использовать их должно быть легко.
Пару интересных выводов от авторов:
- CNN часто опережает ванильный ViT (а неванильные заимствуют идеи у CNN - например, swin)
- при одинаковом количестве данных self-supervised претрейн (типа SimCLR, DINO) оказывается лучше
Forwarded from Where is data, Lebowski (double_data_auto_bot)
Распараллель меня, если сможешь
.
TaskFlow и динамический маппинг тасок в AirFlow. Эти две возможности
также открыли для меня коллеги. Стоит отметить, что программирование дагов для меня
неPythonic way - странный синтаксис, странная логика, как будто неPython внутри Python🤷♂️
.
Две вышеобозначенные возможности не добавляют питонячности, хотя и можно найти какие-то сходства с
функциональным программированием.
.
TaskFlow - набор удобных декораторов для создания дагов, тасок, как Python-функций. Теперь, вместо:
Можно написать:
.
Красивый код получается, когда используются подходы в чистом виде: или классический или декораторы, когда классический стиль и TaskFlow смешиваются получается каша 🥣. TaskFlow даёт одно очевидное преимущество: TaskFlow сам заботиться о перемещении данных между input\output tasks, как если бы вы использовали обычные функции - это очень круто🤘 Пример ниже:
.
Второй интересный паттерн: динамический маппинг тасок. Сегодня у тебя 1 хост, а завтра 7. Сегодня нужно 3 таски за разные дни, а завтра 8. Чтобы на зависеть от неизвестных входящих параметров следует брать на заметку динамический маппинг. Реализуется он довольно просто: у каждого оператора (таска) есть методы, например,
1️⃣ Генерим несколько дат и выполняем etl за каждую
2️⃣ На s3 N файлов, нужно однотипно все обработать или просто загрузить
.
Ранее такое приходилось реализовывать через циклы, а начиная с версии 2.3 у нас есть удобная возможность - используйте💪
.
Самое интересное, что маппить можно не только 1 -> N, но и Nin -> Nout, то есть рельтута одного маппинга подавать на вход другого и работать это будет именно так как ожидается: не сначала N первых тасок, а после N последующих. Таски свяжутся в последовательные кусочки: N1 -> N1, N2 -> N2 и тд 🔥
Набросал небольшой пример, как можно работать с API при помощи динамического маппинга - покрутите, экспериментируйте.
🔗 Links:
- TaskFlow
- Dynamic Task Mapping
- Create dynamic Airflow tasks (astronomer)
#airflow #taskflow #mapping
.
TaskFlow и динамический маппинг тасок в AirFlow. Эти две возможности
также открыли для меня коллеги. Стоит отметить, что программирование дагов для меня
неPythonic way - странный синтаксис, странная логика, как будто неPython внутри Python🤷♂️
.
Две вышеобозначенные возможности не добавляют питонячности, хотя и можно найти какие-то сходства с
функциональным программированием.
.
TaskFlow - набор удобных декораторов для создания дагов, тасок, как Python-функций. Теперь, вместо:
def etl():
pass
with Dag(...) as dag:
etl = Python(task_id="etl", python_callable=etl, ...., da=dag)
Можно написать:
@dag(....)
def create_dag():
@task
def etl():
pass
create_dag()
.
Красивый код получается, когда используются подходы в чистом виде: или классический или декораторы, когда классический стиль и TaskFlow смешиваются получается каша 🥣. TaskFlow даёт одно очевидное преимущество: TaskFlow сам заботиться о перемещении данных между input\output tasks, как если бы вы использовали обычные функции - это очень круто🤘 Пример ниже:
@task
def get_data_from_api() -> List[]:
...
return data
api_data = get_data_from_api()
@task
def etl(data: List[]) -> None:
# transfrom and save data
...
etl = etl(data=api_data)
.
Второй интересный паттерн: динамический маппинг тасок. Сегодня у тебя 1 хост, а завтра 7. Сегодня нужно 3 таски за разные дни, а завтра 8. Чтобы на зависеть от неизвестных входящих параметров следует брать на заметку динамический маппинг. Реализуется он довольно просто: у каждого оператора (таска) есть методы, например,
partial, expand, что это нам дает:1️⃣ Генерим несколько дат и выполняем etl за каждую
@task
def get_dates() -> List[str]:
return ['2024-02-01', '2024-02-04', '2024-02-03']
@task
def etl(dated_at: str) -> None:
# some code, which required from dated_at
dates = get_dates()
# метод expand - позволяет вызвать экземпляр таски для каждого элемента списка
etl = etl.expand(dated_at=dates)
2️⃣ На s3 N файлов, нужно однотипно все обработать или просто загрузить
@task
def find_s3_files() -> List[str]:
return [{'filepath': 's3://file_0.parquet'},
{'filepath': 's3://file_1.parquet'},
{'filepath': 's3://file_2.parquet'}]
files = find_s3_files()
# используем partial для задания аргументов одинаковых для каждой таски
# выполняем загрузку каждого файла отдельной таской
load = ClickhouseOperator.partial(
task_id="load",
connection_id="conn_id",
sql="""INSERT INTO stg.table SELECT * FROM s3('{{ params.filepath }})'""",
).expand(params=files)
.
Ранее такое приходилось реализовывать через циклы, а начиная с версии 2.3 у нас есть удобная возможность - используйте💪
.
Самое интересное, что маппить можно не только 1 -> N, но и Nin -> Nout, то есть рельтута одного маппинга подавать на вход другого и работать это будет именно так как ожидается: не сначала N первых тасок, а после N последующих. Таски свяжутся в последовательные кусочки: N1 -> N1, N2 -> N2 и тд 🔥
Набросал небольшой пример, как можно работать с API при помощи динамического маппинга - покрутите, экспериментируйте.
🔗 Links:
- TaskFlow
- Dynamic Task Mapping
- Create dynamic Airflow tasks (astronomer)
#airflow #taskflow #mapping
Forwarded from эйай ньюз
Инженерные грейды в Big Tech (ч1)
Меня часто спрашиваю про грейды в Big Tech компаниях. В MAANG и прочих Биг-Техах существует четка иерархия инженерных уровней, которая определяет ваш карьерный рост и компенсацию. Чем выше ваш грейд, тем больший масштаб импакта от вас ожидается, и тем шире должно быть ваше влияние на коллег вокруг, то есть требуется больше лидерских качеств.
В этом посте поговорим только про инженеров (SWE) и иcследователей (RS), которые, как правило, прокачиваются по одной и той же лестнице грейдов.
Система уровней в Meta и в Google считается христоматийной - она у них почти идентичная. Ее мы и рассмотрим.
E3, Junior: Начальный уровень - это джун, которого наняли без опыта после бакалавра или магистратуры. От джуна ожидается выполнять назначенные таски без большой помощи извне и не бояться задавать вопросы, если застрял. В Мете дают 2 года, чтобы запромоутиться с E3 до E4, иначе на выход.
E4, Middle: Средний уровень, на который хайрят после 1-5 лет опыта либо свежих выпускников с PhD. Мидл берет на себя отдельные фичи в проекте (много тасок) и выполняет их с минимальным руководством извне. На этом уровне ставят жесткие рамки в 3 года, чтобы стать E5.
E5, Senior: Это независимая боевая единица в компании, эксперт в своей сфере. Синьор владеет целыми фичами или системами и успешно завершает свои проекты. Это терминальный уровень в том смысле, что на этом уровне можно оставаться до пенсии. Промоушен на E6 никто обещать не может, так как прыжок с E5 на E6 на порядок сложнее чем с E4 на E5.
Про E6+ расскажу в следующем посте.
#bigtechlevels #карьера
@ai_newz
Меня часто спрашиваю про грейды в Big Tech компаниях. В MAANG и прочих Биг-Техах существует четка иерархия инженерных уровней, которая определяет ваш карьерный рост и компенсацию. Чем выше ваш грейд, тем больший масштаб импакта от вас ожидается, и тем шире должно быть ваше влияние на коллег вокруг, то есть требуется больше лидерских качеств.
В этом посте поговорим только про инженеров (SWE) и иcследователей (RS), которые, как правило, прокачиваются по одной и той же лестнице грейдов.
Система уровней в Meta и в Google считается христоматийной - она у них почти идентичная. Ее мы и рассмотрим.
E3, Junior: Начальный уровень - это джун, которого наняли без опыта после бакалавра или магистратуры. От джуна ожидается выполнять назначенные таски без большой помощи извне и не бояться задавать вопросы, если застрял. В Мете дают 2 года, чтобы запромоутиться с E3 до E4, иначе на выход.
E4, Middle: Средний уровень, на который хайрят после 1-5 лет опыта либо свежих выпускников с PhD. Мидл берет на себя отдельные фичи в проекте (много тасок) и выполняет их с минимальным руководством извне. На этом уровне ставят жесткие рамки в 3 года, чтобы стать E5.
E5, Senior: Это независимая боевая единица в компании, эксперт в своей сфере. Синьор владеет целыми фичами или системами и успешно завершает свои проекты. Это терминальный уровень в том смысле, что на этом уровне можно оставаться до пенсии. Промоушен на E6 никто обещать не может, так как прыжок с E5 на E6 на порядок сложнее чем с E4 на E5.
Про E6+ расскажу в следующем посте.
#bigtechlevels #карьера
@ai_newz
Forwarded from эйай ньюз
Инженерные грейды в Big Tech (ч2)
Все инженеры глобально делятся на две категории: просто инженеры (E3-E5) и Стафф+ (E6+) инженеры. Тут под инженерами я также имею в виду и сайнтистов - их глобально не отделяют и грейды у них такие же.
Когда в компании говорят про "leadership" роли, то обычно подразумевают именно Стафф+. Количество E6+ инженеров и сайнтистов в компаниях всего примерно 10%-15% .
E6, Staff: С этого уровня начинается новая игра. Стафф обладает исключительным техническим мастерством, имплементирует самые сложные фичи, решает задачи, которые мало кто может решить. Кроме того от него ожидаются еще и серьезные коммуникативные и лидерские качества. Он сам предлагает новые проекты и лидит их, ставит цели своей команде и влияет на другие команды.
E7, Senior Staff: Тут ожидают все тоже самое, что и на E6, но с еще большим импактом и ценностью для организации. Синьор стафф драйвит идеи от появления до реализации, попутно правильно расставляя приоритеты, понимая стратегию и тренды на масштабе всей компании.
E8, Principal Engineer/RS: Ты признанный эксперт в одной или нескольких областях как внутри компании так и за ее пределами. Твои проекты и идеи имеют влияние на всю компанию, а также на людей из твоей сферы в индустрии. В случае с наукой — ты исключительный эксперт, статьи которого узнают на конференциях. Как пример — Kaiming He, автор ResNet, который был где-то на E8-E9, пока не ушел из Меты в MIT.
Сложность перехода на каждый следующий уровень после Синьора (E5) растет экспоненциально, и количество людей на каждом следующем уровне убывает тоже по экспоненте.
Начиная с E6 появляются архетипы инженеров, например "фиксер", "архитектор", "тех лид", "Coding Machine" и другие. Про это поговорим позже. Но если вам любопытно, то подробнее про E6+ можно почитать на staffeng.com, там собраны истории людей на E6+ из разных крупных компаний.
#bigtechlevels #карьера
@ai_newz
Все инженеры глобально делятся на две категории: просто инженеры (E3-E5) и Стафф+ (E6+) инженеры. Тут под инженерами я также имею в виду и сайнтистов - их глобально не отделяют и грейды у них такие же.
Когда в компании говорят про "leadership" роли, то обычно подразумевают именно Стафф+. Количество E6+ инженеров и сайнтистов в компаниях всего примерно 10%-15% .
E6, Staff: С этого уровня начинается новая игра. Стафф обладает исключительным техническим мастерством, имплементирует самые сложные фичи, решает задачи, которые мало кто может решить. Кроме того от него ожидаются еще и серьезные коммуникативные и лидерские качества. Он сам предлагает новые проекты и лидит их, ставит цели своей команде и влияет на другие команды.
E7, Senior Staff: Тут ожидают все тоже самое, что и на E6, но с еще большим импактом и ценностью для организации. Синьор стафф драйвит идеи от появления до реализации, попутно правильно расставляя приоритеты, понимая стратегию и тренды на масштабе всей компании.
E8, Principal Engineer/RS: Ты признанный эксперт в одной или нескольких областях как внутри компании так и за ее пределами. Твои проекты и идеи имеют влияние на всю компанию, а также на людей из твоей сферы в индустрии. В случае с наукой — ты исключительный эксперт, статьи которого узнают на конференциях. Как пример — Kaiming He, автор ResNet, который был где-то на E8-E9, пока не ушел из Меты в MIT.
Сложность перехода на каждый следующий уровень после Синьора (E5) растет экспоненциально, и количество людей на каждом следующем уровне убывает тоже по экспоненте.
Начиная с E6 появляются архетипы инженеров, например "фиксер", "архитектор", "тех лид", "Coding Machine" и другие. Про это поговорим позже. Но если вам любопытно, то подробнее про E6+ можно почитать на staffeng.com, там собраны истории людей на E6+ из разных крупных компаний.
#bigtechlevels #карьера
@ai_newz
Forwarded from Artem Ryblov’s Data Science Weekly
System Design
Learn how to design systems at scale and prepare for system design interviews
What is system design?
System design is the process of defining the architecture, interfaces, and data for a system that satisfies specific requirements. System design meets the needs of your business or organization through coherent and efficient systems. It requires a systematic approach to building and engineering systems. A good system design requires us to think about everything, from infrastructure all the way down to the data and how it's stored.
Table of contents
- Getting Started
What is system design?
- Chapter I
IP, OSI Model, TCP and UDP, Domain Name System (DNS), Load Balancing, Clustering, Caching, Content Delivery Network (CDN), Proxy, Availability, Scalability, Storage
- Chapter II
Databases and DBMS, SQL databases, NoSQL databases, SQL vs NoSQL databases, Database Replication, Indexes, Normalization and Denormalization, ACID and BASE consistency models, CAP theorem, PACELC Theorem, Transactions, Distributed Transactions, Sharding, Consistent Hashing, Database Federation
- Chapter III
N-tier architecture, Message Brokers, Message Queues, Publish-Subscribe, Enterprise Service Bus (ESB), Monoliths and Microservices, Event-Driven Architecture (EDA), Event Sourcing, Command and Query Responsibility Segregation (CQRS), API Gateway, REST, GraphQL, gRPC, Long polling, WebSockets, Server-Sent Events (SSE)
- Chapter IV
Geohashing and Quadtrees, Circuit breaker, Rate Limiting, Service Discovery, SLA, SLO, SLI, Disaster recovery, Virtual Machines (VMs) and Containers, OAuth 2.0 and OpenID Connect (OIDC), Single Sign-On (SSO), SSL, TLS, mTLS
- Chapter V
System Design Interviews, URL Shortener, WhatsApp, Twitter, Netflix, Uber
- Appendix
Next Steps, References
Links:
- Direct link to the site with the course
- Direct link to the repository for the course
- Content Guide link
- Topic Guide link
Navigational hashtags: #armknowledgesharing #armcourses
General hashtags: #systemdesign
@data_science_weekly
Learn how to design systems at scale and prepare for system design interviews
What is system design?
System design is the process of defining the architecture, interfaces, and data for a system that satisfies specific requirements. System design meets the needs of your business or organization through coherent and efficient systems. It requires a systematic approach to building and engineering systems. A good system design requires us to think about everything, from infrastructure all the way down to the data and how it's stored.
Table of contents
- Getting Started
What is system design?
- Chapter I
IP, OSI Model, TCP and UDP, Domain Name System (DNS), Load Balancing, Clustering, Caching, Content Delivery Network (CDN), Proxy, Availability, Scalability, Storage
- Chapter II
Databases and DBMS, SQL databases, NoSQL databases, SQL vs NoSQL databases, Database Replication, Indexes, Normalization and Denormalization, ACID and BASE consistency models, CAP theorem, PACELC Theorem, Transactions, Distributed Transactions, Sharding, Consistent Hashing, Database Federation
- Chapter III
N-tier architecture, Message Brokers, Message Queues, Publish-Subscribe, Enterprise Service Bus (ESB), Monoliths and Microservices, Event-Driven Architecture (EDA), Event Sourcing, Command and Query Responsibility Segregation (CQRS), API Gateway, REST, GraphQL, gRPC, Long polling, WebSockets, Server-Sent Events (SSE)
- Chapter IV
Geohashing and Quadtrees, Circuit breaker, Rate Limiting, Service Discovery, SLA, SLO, SLI, Disaster recovery, Virtual Machines (VMs) and Containers, OAuth 2.0 and OpenID Connect (OIDC), Single Sign-On (SSO), SSL, TLS, mTLS
- Chapter V
System Design Interviews, URL Shortener, WhatsApp, Twitter, Netflix, Uber
- Appendix
Next Steps, References
Links:
- Direct link to the site with the course
- Direct link to the repository for the course
- Content Guide link
- Topic Guide link
Navigational hashtags: #armknowledgesharing #armcourses
General hashtags: #systemdesign
@data_science_weekly
Forwarded from Dealer.AI
Балалайка, березка, Matryoshka.
Выпустили концептуальный гайд по эмбам матрехи на hf. Красивые картиносы матрех и схемы, концепты теории и примеры на sentence-transformers.
Ну че тут рассказывать? Все просто берем embs и вдоль dim нарезаем по нарастающей, сводим саб эмбы и эмбы в конвеере metric learning на нужной датке в NLI, STS или qa задачках. Хочешь сводишь все на одном и том же, хочешь каждому эмбу из нарезки сообщаешь свою таску.
В чем польза?
1. Меньше индекс - на поверхности.
2. Возможность строить быстрые каскадные пайпы ранжирования. Преранк, например, на full index с маленьким эмбом (так быстрее), далее сложные примеры на more big эмбах, итоговый реранк в топ1 на жирнючем.
Код в блоге присутствует. Поэтому дерзайте.
Выпустили концептуальный гайд по эмбам матрехи на hf. Красивые картиносы матрех и схемы, концепты теории и примеры на sentence-transformers.
Ну че тут рассказывать? Все просто берем embs и вдоль dim нарезаем по нарастающей, сводим саб эмбы и эмбы в конвеере metric learning на нужной датке в NLI, STS или qa задачках. Хочешь сводишь все на одном и том же, хочешь каждому эмбу из нарезки сообщаешь свою таску.
В чем польза?
1. Меньше индекс - на поверхности.
2. Возможность строить быстрые каскадные пайпы ранжирования. Преранк, например, на full index с маленьким эмбом (так быстрее), далее сложные примеры на more big эмбах, итоговый реранк в топ1 на жирнючем.
Код в блоге присутствует. Поэтому дерзайте.
huggingface.co
🪆 Introduction to Matryoshka Embedding Models
We’re on a journey to advance and democratize artificial intelligence through open source and open science.