Инжиниринг Данных
21.3K subscribers
1.6K photos
36 videos
176 files
2.89K links
Делюсь новостями из мира аналитики и карьерными советами;)

9 лет в FAANG, инвестиции в недвижимость, компании и акции, solo entrepreneur🏄‍♂️

Реклама:
https://almond-rule-130.notion.site/1199f595f76a8030ba1be1e607c9a8ce
Download Telegram
6 секунд на проверку резюме? Чтобы лучше понимать как откликаться, нужно смотреть как работают рекрутеры:)

Рекрутеры, если вы тут, напишите в комментах, как вы смотрите резюме!
Последние время удалось потрогать множество проектов по инжинирингу данных. Все проекты и задачи я могу разделить на две большие категории. Одна категория это классический DE, такой вот, почти как pet проекты по инструкции:
- Слой хранения данных - Snowflake (или его ближайший аналог)
- Слой трансформации данных - dbt (аналогов вот нет, чтобы так просто и в SQL)
- Слой загрузки данных в слой в слой хранения (Fivetran, Airbyte, или просто Python)
- Система оркестрации данными – Airflow, Azure Data Factory
- Слой визуализации и отчетности – Looker, Tableau, Power BI и другие

Сами инструменты могут быть разными и хоститься на разных публичных облаках. Может быть полегче – SaaS, PaaS (это cloud service models, основа основ облачных вычислений, надо знать термины), а может быть посложней с использованием контейнеров. Так же всегда есть выбор – ковырять открытое ПО или использовать коммерческий продукт.

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

А есть другая категория проектов, которые прям «каждый раз, как в первый раз». Ранжироваться может от ML до Software Engineering, от DevOps до Backend Engineer. Ну в смысле вообще не предсказуемо. И тут вам уже не поможет, ни ChatGPT, ни google. Потому что в такие вещи за 5 минут не въехать. Покрайней мере мне не удается это делать быстро.

Например, задачка – добавить новые продуктовые события в отчет. Казалось бы, как просто. Разбираемся. Откуда приходят данные? Данные пишет Kafka в S3. Схема JSON описана в protobuf. Данные изначально генерятся в backend, который написан на Node JS. То есть, когда случается событие, создается payload и отправляется в Kafka topic, там он как-то пересекается с protobuf, потом еще данные маскируются и все это дело уже складывается в S3. Вроде звучит просто, но у меня заняло время это понять, и еще займет много времени, прежде чем я смогу добавить два новых поля в backend.

Другой пример – event driven озеро данных на EMR+Spark. И часть джобов уже использует EMR Serverless (что дешевле и быстрей, традиционного, EMR. Надеюсь, у отечественных облаков уже тоже все сервисы доступны как Serverless). Для этого написал большой фреймворк на Python с множеством конфигурационных файлов в YAML. Задача у меня была обновить JDBC jars (драйвера) для Snowflake и Spark. Система настолько громоздкая и неповоротливая, что вообще не понятно где подступить.

Я не хочу вдаваться в подробности своих задачек, что как и почему. Мой поинт заключается в том, что есть два типа задачек, простые и не очень. Все программы обучения заточены на простые сценарии, отличаются лишь набором инструментов. И действительно в 80% случаях этого будет достаточно, чтобы найти работу. Я это уже проверил много раз на сообществе Surfalytics. И сам ни раз отдавал свои реальные задачи ребятам из сообщества, где они могли на реальных примерах что-то поковырять. А вот, чтобы решить остальные 20% задач уже нужны годы опыта. Тут уже мало что поможет.
Вчера был интересный разговор с менеджером в Microsoft, он мне рассказал, что у него есть открытые позиции, но берут в Индии, потому что за цену одного инженера в США можно взять 3х индусов.

Прошлым летом уже писал про глобальное расширение компаний. То есть компании не косты режут, а просто вот решили в индии офис открыть.

А когда-то Vancouver был cheap engineering. Хотя вот сегодня увидел, что «Европа это новая Мексика для США».
В моем списке нетехнических книг, которые я хотел бы прочитать есть The Engineering Executive’s path, которую написал Will Larson. Я уже писал про его другую книгу - Staff Engineer, которая очень релевантна для Senior инженеров, кому нравится оставаться в роли контрибьютера и дальше писать код и развивать технические направления. Не всем же руководить людьми.

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

As an engineering manager, you almost always have someone in your company to turn to for advice: a peer on another team, your manager, or even the head of engineering. But who do you turn to if you're the head of engineering? Engineering executives have a challenging learning curve, and many folks excitedly start their first executive role only to leave frustrated within the first 18 months.

In this book, author Will Larson shows you ways to obtain your first executive job and quickly ramp up to meet the challenges you may not have encountered in non-executive roles: measuring engineering for both engineers and the CEO, company-scoped headcount planning, communicating successfully across a growing organization, and figuring out what people actually mean when they keep asking for a "technology strategy."


Совсем недавно увидел обзор книги в канале Книжный Клуб от Александра Поломодова, где он вкратце рассказывает про каждую главу:

Главы 1 - 4
Главы 5 - 6

Про Staff Engineer там тоже есть обзор 2х книг:
- Обзор книги "The Staff Engineer's Path", Tanya Reilly
- Обзор книги “Staff Engineer”, Will Larson

Несмотря на то, что книги про Staff изначально написано для Software Engineering, они идеально подходят и для Data Engineering, потому что на уровне Staff уже нужны другие компетенции.
Новое видео на Data Learn - ОБЗОР РФ ВАКАНСИЙ DATA ENGINEER/BI РАЗРАБОТЧИК/АНАЛИКИ ДАННЫХ/ETL РАЗРАБОТЧИК (YouTube) | RuTube

Вот исправленный текст с устранением грамматических ошибок:

В этом видео я изучил отечественный рынок вакансий на позиции:

📈Аналитик данных
📊BI-разработчик
🧰 Инженер данных
🔨 ETL-разработчик
🔩 DWH-разработчик

Краткое резюме:

• Зарплаты варьируются от 250 тыс. до 450 тыс. рублей для специалистов по данным. Конечно, есть предложения и от 100 тыс. рублей, но в целом средний диапазон — это 250–300 тыс. рублей. Если у вас меньше, вы знаете, к чему стремиться и что нужно делать. В целом зарплаты распределены равномерно.

• Для всех аналитиков требуется знание SQL, Python, часто A/B-тесты и один BI-инструмент (Power BI, Qlik, Datalens, Fine). Часто хотят аналитика, а в описании Data Scientist (если вообще такую роль уместно использовать).

• Для BI-разработчика Python не обязателен, но требуется взаимодействие с хранилищем данных (DWH), администрирование BI и, возможно, выполнение ETL.

• ETL-разработчик, Data Engineer и DWH-разработчик — теперь это одно и то же. Требования очень похожи у всех: Greenplum, Clickhouse, Airflow, Python, SQL. Если упоминается Hadoop (еще пугают Java/Scala), то это HDFS, Hive, Spark, Trino. Иногда встречается наш любимый dbt (любимый, потому что простой и эффективный). Думаю, задачи очень однотипные. Вакансии действительно похожи по требованиям (наверное, копируют друг у друга).

• Практически все вакансии требуют навыков в CI/CD, DevOps, контейнерах, системах контроля версий (Git) и командной строке — это важный навык, за который я давно ратую.

• Есть вакансии с западным стеком: Azure, AWS, GCP, Tableau. Как я понимаю, они предполагают удаленную работу или релокацию.

• Если перевести 350 тыс. рублей в доллары США, то это будет примерно 3 620 $. За границей на такую сумму не разгуляешься, а вот в России на 350 тыс., как я понимаю, можно жить очень комфортно.

• Среди компаний много крупных и небольших интеграторов (консалтинг).


Если взять текущий data learn, то в нем не хватает:
- dbt
- CI/CD для data pipelines
- контейнеров (Docker, Kubernetes)
- Airflow
- Trino, Hive
- Greenplum, Clickhouse

Со всем из списка (кроме последних 2х), я работаю каждый день и в планах добавить контент на русском и на английском.

Кстати, пока делал обзор не увидел про:
- DuckDB (возможная замена Clickhouse)
- Iceberg Lakehouse (если Hadoop и BigData)
Поговорим про деньги в IT?

Приглашаем опытных IT-специалистов пройти небольшой опрос про зарплаты и бенефиты в технологических компаниях. Это займёт не более 7 минут — а ваше мнение поможет одному крупному российскому работодателю делать актуальные оферы.

Пройти опрос можно здесь
Недавно мне попались какие-то рилсы про ИТ на русском, там столько новых слов узнал и решил поискать побольше про модные термины:

В российском ИТ-сленге есть много интересных терминов, которые часто встречаются среди разработчиков, аналитиков и администраторов. Вот некоторые из самых популярных и их значения, какие-то привычные, а какие-то совсем неожиданные, например “плов” 😞

Я обратился к коллеге ChatGPT и вот что он мне поведал:

1. Балалайка — чаще всего так называют сложные или плохо настроенные системы или проекты, которые работают, но требуют постоянного внимания и доработок. “Балалайка” передаёт идею “неуправляемости”.
2. Плов — термин, который действительно часто используют для обозначения Apache Airflow, популярного инструмента для организации пайплайнов данных.
3. Пингвин — обозначение для операционной системы Linux. Название идёт от талисмана Linux — Tux, изображающего пингвина.
4. Креветка — процесс с высокой нагрузкой на ресурсы, которые “жрут” процессор и память. Иногда говорят про тяжёлый сервис или приложение, нагружающее сервер.
5. Мок — сокращение от английского слова mock, используется для обозначения имитации реальных данных или функций при тестировании, так называемые “заглушки”.
6. Прод или продакшен — сокращение от “production”, т.е. рабочая среда, где работают реальные пользователи и данные.
7. Тачка — означает компьютер или сервер, обычно в контексте “рабочей машины”.
8. Фрейм — термин, который часто применяется в контексте фреймворков (frameworks) и реже как укороченное название для экранных кадров (frames), например, в веб-разработке или создании интерфейсов.
9. Геморрой/гемор — проблемная задача, часто используемая в контексте особенно сложных багов или неудачных решений, которые сложно реализовать.
10. Костыль — временное решение или workaround, которое исправляет проблему, но не решает её полностью и может создавать новые сложности в будущем.
11. Забить гвоздь — закоммитить небольшой правку или выполнить быстрый фикс, даже если он временный.
12. Хомяк — junior-специалист или стажёр, который только учится и делает простые задачи, иногда с не самыми эффективными решениями.
13. Джавасруль или JavaScript — шутливые названия для JavaScript, часто встречаются среди тех, кто с иронией относится к этому языку.
14. Зоопарк — среда, где собрано много различных технологий и фреймворков, создающих сложный ландшафт, который сложно поддерживать.
15. Снегирь — разработчик, предпочитающий фронтенд-разработку, т.е. создание пользовательских интерфейсов и визуальных элементов.
16. Кликер — человек или скрипт, создающий большое количество нажатий, например, в аналитике для искусственного увеличения показателей.
17. Девопсить — заниматься задачами, связанными с DevOps, обеспечением автоматизации, развертыванием и поддержкой инфраструктуры.
18. Лапша — плохо написанный или очень сложный код, который сложно читать или поддерживать (аналог “spaghetti code” в английском).
19. Огурец — Cucumber, популярный инструмент для тестирования, особенно для BDD-тестов.
20. Залипуха — запутанная ситуация или особенно сложная задача, которая требует много времени на разбор.
21. Накатить — значит применить обновления, изменения или новую версию кода на систему, которая уже работает. Это может быть как разовая установка, так и регулярные патчи. Например, “накатить новый релиз” означает применить новую версию приложения или системы.
22. Раскатать — обычно означает развернуть или разослать обновление, начиная с тестовой среды до полного внедрения на продакшен. Часто под раскаткой подразумевают постепенное развёртывание на несколько серверов или регионов. Это снижает риски, поскольку если где-то что-то пойдёт не так, можно откатить изменения на отдельных частях системы.
23. Бьютифай — делать данные или визуализацию “красивыми” и удобными для восприятия. Это может включать корректировку графиков, выбор цветовой схемы и общую стилизацию отчётов и дашбордов.
24. Растрескать данные — разделить большой массив данных на несколько частей для параллельной обработки или более удобного анализа.
Please open Telegram to view this post
VIEW IN TELEGRAM
Даже пример мне выдал:

Пришлось откатить гипотезу, когда мы попытались накрутить костыльные метрики, а в итоге утопили данные и чуть не сломали дашборд, пиленный всю ночь — теперь сидим, клеим таблицы, санитизируем прокси-фичи и мечтаем, чтобы холодный старт не поджёг нашу балалайку.

Кто в теме, расскажите какие еще термины используете каждый день?
Еще один мощный отзыв про Datalearn/Surfalytics. С человеком даже виделся в New York весной.

Когда я приехала в США в конце 2019 года, я знала, что найти работу по специальности будет непросто. Обновила LinkedIn, но не имела полного представления о том, как вообще искать работу на западном рынке. Рекрутеры иногда писали и звонили мне в LinkedIn, но обычно всё заканчивалось после первого контакта. Отсутствие разрешения на работу только добавляло проблем.

Не помню, как именно наткнулась на сообщество Datalearn, но вступила туда и почувствовала себя в окружении единомышленников. Смотря назад, думаю, почему же я тогда не делала всё, что рекомендовал Дима?! Я смотрела бесплатные видеоуроки на YouTube, которые другие продавали бы за огромные деньги — они помогли мне прокачать и систематизировать навыки. Но, если честно, я не так активно использовала весь потенциал, который Datalearn предлагал на тот момент.

Время шло, и по совету школьной подруги я поступила в магистратуру в 2021 году. Помимо местного диплома, университет предоставлял разрешение на работу во время учёбы (CPT). Потом в 2022 году мне повезло получить свой первый офер в США. Рекрутер нашла меня в LinkedIn, и после трёх этапов интервью, где в основном спрашивали о моём опыте и задавали поведенческие вопросы, мне сделали предложение. На тот момент рынок труда был более доступным — не было ни лайв-кодинга, ни семи этапов собеседований, как сейчас. Думаю, мне повезло, так как я не искала работу активно и не отправляла по 200-300 заявок.
К сожалению, в декабре 2023 года мне пришлось покинуть компанию, так как истёк срок действия моего разрешения на работу(СРТ). Я планировала вернуться в январе с новым пермитом, но компания объявила о банкротстве и заморозила найм. Я снова оказалась без работы и, честно говоря, немного потерялась. Первые три месяца я ничего не предпринимала и деградировала, но в марте 2024 года узнала, что Дима запустил англоязычное сообщество Surfalytics.

Surfalytics оказался настоящей находкой. Это сообщество с доступом к Discord-каналу за символическую подписку, в котором собрались профессионалы со всего мира. Здесь есть разные каналы по темам, клубы для целей “200-300-500” и множество практик — от мок-интервью с лайв-кодингом до живых проектов. На практике SQL мок-интервью я осознала, что стрессовая обстановка влияет на меня сильнее, чем я думала. Решать задачи перед интервьюером — это совсем не то же самое, что делать это в одиночку! Но наблюдая за другими, я поняла, что это навык, который можно улучшать.

Все видеоуроки на YouTube — бесплатные. Лично я после урока Just Enough GitHub на канале Surfalytics отлично разобралась с Git и GitHub, а асинхронные пет-проекты помогли закрепить знания. Я, конечно, не самый активный участник и не довела все проекты до конца, еще есть чему учиться.

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


Каждую неделю каждый пишет о своём прогрессе в поиске работы, многие делятся вопросами из интервью, рассказывают, что изучают и какие у них планы на неделю. Такая среда амбициозных людей держит тебя в тонусе и не даёт расслабляться. Я, конечно, довольно пассивный участник и редко пишу о своём прогрессе 🙂

Surfalytics — это не просто база знаний. Это сообщество, где любой вопрос находит ответ, а поддержка помогает расти как профессионально, так и лично. Спасибо, Дима, за то, что собрал всех нас и делишься своим опытом. Моя карьера меняется и продолжает расти благодаря Surfalytics! Используя минимум того, что даёт это сообщество, я смогла войти в клуб “200-300-500”, где гросс-доход составляет от 200к
$ до 300к$.

Ну и вкратце, из точки 0 до 200k$-300к$ с помощью Surfalytics. Дальше — больше!

#testimmonial
Уже 2ой раз вижу похожую новость - misused денег, которые дают сотруднику на покупку еды, обустройства home office. В Facebook чувак купил на свои купоны, что-то не то.

Вот другая похожая новость - Fidelity fires more than 200 over alleged misuse of reimbursement programs

Так что поаккуратней там с expenses.
Стать сотрудником Яндекса быстрее и проще, чем кажется. Участвуйте в днях быстрого найма: решите тестовое, пройдите несколько секций собеседования и получите офер за несколько дней.

Ближайшее мероприятие:

• 9-11 ноября — для продуктовых и аналитиков данных, офер за 3 дня в команды Финтеха и Яндекс Практикума.

Зарегистрироваться
Билл Инмон один из отцов основателей хранилищ данных все еще пишет посты в Linkedin, время от времени. Его последний пост был посвящен книге от Snowflake – Облачное Хранилище для Чайников (Cloud Data Warehousing for Dummies). Довольно известная серия, у меня даже в детстве были такие книги про Microsoft Office.

Как обычно Билл категоричен – “They should have renamed the book Data warehouse by dummies, not for dummies”.

Он назвал две причины:

1. Отсутствие информации об интеграции данных: Интеграция данных — это суть любого хранилища данных, составляющая 90% работы над проектом. Однако в книге, по его словам, этот аспект либо проигнорирован, либо упомянут без должного внимания.
2. Отсутствие текста как данных: Текстовые данные играют важную роль в современных хранилищах данных, зачастую не менее значимую, чем структурированные данные. Он критикует авторов за недостаток понимания того, как включать, хранить и использовать текстовую информацию в хранилище данных.

Для меня эти причины не показались настолько весомыми. Я понимаю, что цель книги было прорекламировать Snowflake, поэтому книга бесплатно распространяется. В ней много маркетинга и воды, но и аргументы Билла об использовании текста тоже не очень понятны. Я знаю, что он раньше работал над решением для хранения и обработки текста – Text Analytics Simplified.

Может он сам тут рекламируют свои идеи?

Я бы лучше почитал Ральфа Кимбала по теме хранилищ данных, его Dimensional Modelling как-то ближе и родней.
Перед тем, как вернуться к дальнейшему разбору многосерийной саги «Как быть и что делать с рынком состояния хуже некуда» , предлагаю стряхнуть пыль со своего ютуба , ведь уже завтра мы встретимся с
Димой Аношиным - экспертом по дата инжинирингу, ex-Amazon и Microsoft , а также автором DataLearn и Surfalytics.

Начнем эфир завтра, 31 октября в 21:00 по московскому времени на моем канале. Что обсудим:
- опыт в FAANG и как там оказаться
- ужасы текущего рынка и какие навыки в ходу
- поговорим о забуграх и что делать, чтобы преуспеть
- свои проекты VS найм и сподвигли ли свои проекты по-новому взглянуть на рынок кандидатов
- чему учить и чему учиться 📚

Ваши вопросы в комментариях категорически приветствуются !

До встречи 👋
Please open Telegram to view this post
VIEW IN TELEGRAM
Статистику AppMetrica теперь можно получить за пару кликов

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

1. Зарегистрируйтесь в AppMetrica под своим логином в РСЯ или Adfox.
2. Заполните профиль и свяжите с AppMetrica приложения, которые монетизируются через РСЯ.
3. Подтвердите свое согласие на передачу данных.

Таким образом клиенты РСЯ и AdFox смогут получить расширенные данные сервиса

Если вы уже работали с AppMetrica, то вас достаточно добавить в интерфейсе сервиса связь с приложение Yandex Mobile Ads в «Синхронизации Ads SDK».
Очень классный мини сериал про качество продукта

What is quality? It seems hard to describe and even harder to measure, but you can feel it when it’s there. You know it when you experience it. This is a series of conversations with those who seek to create products of this undefinable quality. And an attempt to answer the central question: How do things of quality get built?


Про качество вам расскажут топовые CEO, Founders и Product Managers.
Pro tip: поставьте рабочую почту и Slack (или аналог) на Mute. Удалите с телефона рабочие аккаунты — и будет вам счастье. Так работаю уже последние лет пять.

99% коммуникации — это FYI. Почту можно проверять раз в день. Очень часто срочность у нас в голове, и нам кажется, что, если мы не ответим на сообщение, то про нас подумают, что мы не работаем.

Исключение — это алерты о сбоях production. Здесь, наоборот, важно не пропустить. И, конечно, важно не пропускать встречи, но, как правило, для IC-ролей расписание встреч +/- устоявшееся.

Данный tip подходят для разработчиков и инженеров;)
Еще одна причина менять работу раз в 1-2 года — «технический долг» (первая причина — рост зарплаты и карьерный рост).

Этот совет подходит для разработчиков уровня от junior до senior, потому что у сеньоров могут возникнуть другие проблемы: выгорание (burnout), проблемы с психическим здоровьем (mental health issues) и другие трудности, связанные с нереализованными мечтами, карьерными планами и ограничениями в компенсации.
Media is too big
VIEW IN TELEGRAM
Попался сервис Unstuck AI - позволяет по ссылке в YouTube получить Summary, Key points.
Media is too big
VIEW IN TELEGRAM
Самое время вмешиваться в американские выборы хайповать и строить интерактивные визуализации!

Этот пример был создан на Power BI. Есть и на Tableau и других инструментах. И не забудьте отдать свой голос за правильного кандидата! 😎
Please open Telegram to view this post
VIEW IN TELEGRAM