Инжиниринг Данных
23.5K subscribers
1.98K photos
56 videos
192 files
3.2K links
Делюсь новостями из мира аналитики и карьерными советами.

15 лет в Аналитике и Инжиниринге Данных, 10 лет в MAANG

🛠️ dataengineer.ru | 🏄‍♂️ Surfalytics.com

№5017813306

Реклама:
https://almond-rule-130.notion.site/1199f595f76a8030ba1be1e607c9a8ce
Download Telegram
Собеседования тоже можно в бане проводить! Баня топчик!
❤‍🔥105
Forwarded from Невыно[Симов]
Сегодня первый раз побывал в общественном разряде бани.

Баня — это заебись! И вот почему:
♨️ Контекст максимально располагает к открытому и прямолинейному общению. Вместе с одеждой и аксессуарами спадает напускной флер, остается, так сказать, фактура. Это очень меняет ракурс восприятия себя самого и других людей;

♨️ Методичный алгоритм действий помогает переключиться и сосредоточиться на ощущениях, тело становится первостепенным, разум и рефлексия отходят на второй план;

♨️ Вокруг — разные, непохожие друг на друга люди, которым абсолютно все равно, кто ты за пределами этих стен.

💡Outcome на будущее: если хочешь получше узнать человека, сходи с ним в баню.
💯369🐳4
Еще один отзыв на Surfalytics/менторство.

Товарищ реально справился и смог себя мотивировать и как он правильно отметил - это «марафон», нужно терпение.

Впереди еще много работы, потому что на одну работу в Канаде особо не разгуляешься🤑

Как я искал работу в Канаде
Всем привет! Хочу поделиться историей сначала неуспеха, а потом успеха, к которому я шел почти год. Сейчас будет большое интро для контекста, но если это неинтересно, то можно сразу переходить к части про дата инженера.

Я переехал в Канаду год назад и почти сразу занялся поиском работы. Одновременно с этим я продолжал работать на компанию в Москве и работал по ночам из-за разницы во времени. Я работал риск-аналитиком уже 10 лет на тот момент и понял, что устал от рисков и решил, что переезд в другую страну это отличная возможность сменить профессию. Как же я ошибался.

Я стал искать работу дата аналитиком, откликнулся на 220 вакансий, прошел 16 интервью, но везде получал отказы. Потом я уволился из московской компании и решил искать работу в рисках.

Статистика стала намного лучше.

Откликнулся на 35 вакансий, прошел 7 интервью, в двух компаниях дошел до последнего этапа, но все равно везде получил отказы. Вообще работа в банковской сфере и особенно в рисках сильно отличается от рынка в России, так как крупных банков всего 5 и все главные офисы в Торонто.

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

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

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

По большому счету вопросы повторяются из раза в раз, просто нужно понять перед собеседованием основные боли интервьюера и рассказывать об этом.

В итоге за 3 месяца я откликнулся на 45 вакансий, прошел 8 интервью и наконец-то получил заветный оффер. Получилась статистика по поиску как в рисках, но деньги и перспективы гораздо выше, т.к. уровень зарплат у Дата инженеров примерно как у менеджеров и директоров в рисках, а количество таких вакансий очень ограничено по сравнению с инженерными позициями.

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

Главное не опускать руки, все отказы превращать в преимущество на следующем собеседовании, анализировать ошибки (в этом очень помогает запись интервью) и постоянно улучшать свои навыки.


#testimmonial
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥61🐳26💯54👨‍💻2
Как работать с SQL запросами 🛠

Сделали небольшой коллаб с Димой Аношиным (Surfalytics) про работы с SQL. Дима как супер эксперт по дата инжинирингу рассказал про более правильную работу с SQL с точки зрения хранения и обработки кода. Так что много про версионирование, гит и качество данных. А от меня немного про форматирование SQL запросов для лучшей читабельности.

- Часть 1: версионирование, гит и первый pull request
- Часть 2: документация, code review и sql стайлгайд
❤‍🔥6822🗿6
fundamentals-of-data-engineering.pdf
7.6 MB
Наверно уже все и так скачали книгу Fundamentals of Data Engineering, но вот есть легальная ссылка на скачку.

Я сам прочитал только 3 главы. На каждую тему в книге у меня мысли были примерно такие - “ага, знаю”, “так, все правильно”, “точно, согласен” и тп.

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

А вы читали?
❤‍🔥50
Media is too big
VIEW IN TELEGRAM
Сегодня был интересный опыт - Vancouver Career Fair, поделился инсайтами🍿
Please open Telegram to view this post
VIEW IN TELEGRAM
32💯6🗿3❤‍🔥1🙉1
Тут возможно самый полный сборник всего, что есть по DE или около того. https://github.com/DataExpert-io/data-engineer-handbook

Забавно получается, чем больше материалов, ссылок, книг, курсов в одно месте, тем сложнее в этом разобраться. 🙌
Please open Telegram to view this post
VIEW IN TELEGRAM
39❤‍🔥238🐳2😭2
Какие технологии видятся мне перспективными из тех, с которыми я не работал или работал немного? У меня есть общее представление, но я глубоко не погружался, и надеюсь найдется время, чтобы исправить это.


- Apache Arrow
- Apache Iceberg ( я работал уже с готовыми решениями, но не строил с 0)
- DuckDB
- Polars
- Rust/Golang языки программирования для задач дата инжиниринга
- Ray (spark)
- Protobuf (использую по факту, обычно в связки с event и streams)
- Apache XTable

Из старого но важного:
- Kubernetes
- Apache Kafka
- Apache Flink
- Fast API

У меня список своеобразный конечно. Что еще есть интересного?
❤‍🔥24💯83🍾1🙈1
Вебинар: ➡️Мигрируем аналитическую отчетность с SAP BW на импортонезависимый стек. Показываем вживую

На вебинаре команда Sapiens solutions поделится техническими деталями реализации проектов миграции.

📅Дата вебинара: 01.10.2024
⌚️Время начала: 11:00 Мск

Регистрация обязательна

❗️Ключевые моменты вебинара:

1️⃣ Загрузка данных из SAP ERP с помощью OData в Greenplum
2️⃣ Фреймворк управления загрузками и расчетами Proplum
3️⃣ Внедрение современного хранилища данных.
4️⃣ Демонстрация процесса доставки данных - от создания документа в ERP до отображения в отчете
5️⃣ Apache Superset как фронт BI: соответствие объектов SAP BW/BO и Superset, разработанный функционал форка

Вебинар будет полезен, даже если вы не используете SAP. Мы рассмотрим технологические аспекты работы с Arena DB и Superset, а также дополнительные компоненты, которые дают возможность ADB быть чуть более "low code". Для Superset покажем расширения для сводных таблиц и другие компоненты.

До встречи на вебинаре!
❤‍🔥64
Сегодня разбирали архитектуру большой американской компании, которая собирает данные клиентов с мобильных телефонов.

Решение на AWS, куча Kinesis стримов, которые пишут в S3 (json), дальше lambda их обрабатывает и пишет в другой S3. Есть еще DynamoDB с клиентской информации, которая делает ежедневные snapshots в S3. В конце с помощью Athena таблицы и запросы.

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

Выгрузка происходит раз в час, когда Glue Python Shell запускает запросы Athena и делает unload в S3. С помощью вспомогательных запросов отслеживается качество данных и результат пишется в Cloud Watch и там всевозможные алерты на отклонения качества данных.

Решение будет переделано на Databricks и Delta.
❤‍🔥26👨‍💻85😭4🙈21🙊1
Иногда кажется чем больше rejection rate, тем лучше для HR и они наверно еще бонусы получают и хвастаются у кого больше rejection и что вообще можно все автоматизировать и оно само будет делать screening и rejection.


Позабыты хлопоты, остановлен бег, Вкалывают роботы, а не человек!

До чего дошел прогресс! Было времени в обрез, А теперь гуляй по свету - хочешь, с песней, хочешь, без!
38
В Surfalytics мы делаем типичные Data Engineering проекты нетипичным образом. Обычно цель любого end-to-end проекта — это использование стандартных настроек и минимальной конфигурации.

Практически любой проект на Youtube это будет набор команд и шагов. Часто человек может даже не понимать как работает, но с покер фейсом нас учить, как делать Copy-Paste и строить решение. На выходе, у нас много pet проектов и 0 релевантного опыта и главное вообще не понятно как это применять в реальных условиях.

Сегодня Максим проводил проект по созданию end-to-end решения для работы с API (job posting сайт) с использованием стека AWS, включая такие сервисы, как Lambda, Step Functions, Redshift и другие.

Но вместо того, чтобы слепо следовать шагам, мы его мучаем вопросами на каждом этапе. Например:

1. Почему Lambda?
2. Почему Python 3.11?
3. Что такое API rate limit и как его избежать?
4. Какие есть альтернативы Lambda в AWS?
5. В чем разница между IAM role и IAM user? Что лучше и почему?
6. Что такое VPC и subnet, почему используется default VPC?
7. Какие есть соображения по безопасности? Где найти лучшие практики AWS (подсказка: AWS Well-Architected Framework)?
8. Как проверить работу AWS Lambda function?
9. Какова стоимость?
10. Почему Redshift? Почему Serverless? Какие плюсы и минусы у Redshift Serverless?
11. Почему не использовать Glue + Athena вместо Redshift?
12. Какова стоимость за запуск/в день?

И так далее. Некоторые вопросы даже мне сложно ответить.

Другими словами, в Surfalytics мы не гонимся за количеством pet projects. Мы сосредоточены на том, чтобы превратить ваш pet project в реальный проект и по-настоящему понять разницу. Мы не принимаем ничего на веру и считаем, что все может быть неправильно.

В результате, на выполнение 1/3 проекта у нас ушло более 3 часов, хотя при простом копировании и запуске кода это заняло бы всего 60 минут.

В каждом проекте мы детально разберемся, почему так, что стоит за капотом, и убедимся, что вы будете готовы ответить на вопросы hiring manager.

Хотелось бы конечно больше проектов и чаще делать, но пока основное время занимает работа.

PS другой интересный аспект - это персональный бренд. Этот пунктик очень важен в Surfalytics. Например, пост Максима набрал 162 лайка про этот проект! Это дает уверенность и Максиму и нанимающему менеджеру и вообще делать свой бренд в Linkedin прежде всего это про выйти из зоны комфорта.

PPS Ссылки:
Все проекты Surfalytics: https://github.com/surfalytics/data-projects (у нас еще много проетов в разработке включая Kubernetes, Open Source stack и тп)
Проект Максима: From API to Dashboard: Building an End-to-End ETL Pipeline with AWS
❤‍🔥4512🎄1🗿1
Так это выглядит на практике. Осталось в Twitch стримить. Заодно практика английского.
❤‍🔥332🐳2🍾2
В интересное время живем🔫🙌
Please open Telegram to view this post
VIEW IN TELEGRAM
62😭15🙉8🙊6🍾3❤‍🔥1🌚1🌭1🗿1🦄1
Точно интересное время☀️
Please open Telegram to view this post
VIEW IN TELEGRAM
🌚20🦄7❤‍🔥3🐳3😭21💯1
Amazon Hybrid work policy 😛
57🙈2311😭4🐳1
Реально работа с датами и часовыми поясами всегда боль. Кто как решает для себя эту проблему?

А какой стандарт по timestamp?
💯63🙈24❤‍🔥98🗿2
Как у вас получается бороться с tech debt?

Замечательная статья - Paying down tech debt
И еще одна - Tech Debt and the Pragmatic Middle Ground

What is tech debt?

I define tech debt as any problem in the codebase that affects programmers by making it harder to make necessary changes. As a programmer, I wanted to fix such issues because they slowed me down. But as a manager, I had to ensure the team delivered value to stakeholders.


Я определяю технический долг как любую проблему в кодовой базе, которая мешает программистам вносить необходимые изменения. Как программист, я хотел исправить такие проблемы, потому что они замедляли мою работу. Но будучи менеджером, я должен был убедиться, что команда приносит ценность заинтересованным сторонам.
❤‍🔥71
В маленьких компаниях (командах) все просто, если что-то сломалось - взяли и починили. Авось никто и не заметит.

А вот в больших командах и организациях все по-другому.

Как правило, аналитическое решение (хранилище данных) это не business critical и может не работать целый день, пользователи потерпят.

Но если ломается часто, то уже нужно что-то с этим делать, и самая лучшая стратегия пофиксить все начать использовать процессы для работы с инцидентами, прям как на картинке.

Обычно используют уже готовое решение от back-end/devops, такие как PagerDuty и другие, сразу появляется новая обязанность - on-call, нужно писать сообщение бизнес пользователям о поломках и обещать, что однажды все будет лучше.

Можно все автоматизировать, и примерно будет так работать:
1. Alert о падение data pipelines или отклонении показателя (качество данных)
2. Заводится новый инцидент, создается Slack канал с номер инцидента и туда добавляются инженеры
3. Обсуждается проблема и решение
4. Ответственный пишет в другой slack канал пользователям (бизнес) о проблеме и estimation когда ее починят
5. Команда все чинит, деплоит фикс, перезапускает data pipelines и вроде к обеду уже можно открывать BI дашборды.

Это уже зрелая организация. У всех компаний есть с этим проблемы, кто-то раньше, кто-то позже к этому приходит, а потом еще SLA внедрят для надежности (спокойствия бизнес пользователей).

Главное отличие от backend/devops - вы все это делаете в рабочие часы, а не ночью (хотя помню в Lamoda мне в 4 утра могли звонить, что отчет поверх backend Postgres для склада в SAP BO не показывает свежие данные).

Одна из причин, почему DevOps, SRE позиции не очень полезны для здоровья long term, и обычно никто не компенсирует ночные часы.



Картинку взял из The Madness of Data Incident Management

А как в РФ с этим? Какие сервисы используются для коммуникации, инцидентов и тп?
23❤‍🔥12💯7
Data Engineering tool box выходного дня.

Сегодня будет выступление - Richard Dawkins, чтобы лучше информация воспринималась))
🍾15💯10❤‍🔥4