Data Engineering в разных компаниях. Конкретно в этот раз в Ayden
https://medium.com/adyen/data-engineering-at-adyen-ccded12a6eb
Возможно, кто-то помнит, что какое-то время назад я выступал на конференции с докладом про то, насколько разные бывают задачи у Data Engineers и насколько разные это позиции. Проводя найм сейчас себе в команду, заметил закономерность: на рынке Израиля, например, DE это подавляющее количество задач на SQL и какой-то моделлинг данных, и при этом мало программирования на Python или любом другом языке.
Поэтому это очень важно смотреть и узнавать, а как работают DE в других компаниях, какие бывают задачи и требования, чтобы ваши знания и навыки оставались актуальными. Например, Ayden c болот, это финтех-конкурент Stripe. По ссылке выше - общее описание того, как они работают и мне в глаза бросилось 2 вещи
- data engineers are developers first -> 70% времени ребята все-таки пишут код
- we do not write ‘raw’ SQL in our day to day job -> почти все трансформации отданы на откуп PySpark
- we do not have to ensure there are enough airflow workers, or that we need to ingest raw data from event streams -> есть отдельная команда, которая поддерживает платформу (Airflow и все остальные тулзы) и вставку сырых данных
@ohmydataengineer
https://medium.com/adyen/data-engineering-at-adyen-ccded12a6eb
Возможно, кто-то помнит, что какое-то время назад я выступал на конференции с докладом про то, насколько разные бывают задачи у Data Engineers и насколько разные это позиции. Проводя найм сейчас себе в команду, заметил закономерность: на рынке Израиля, например, DE это подавляющее количество задач на SQL и какой-то моделлинг данных, и при этом мало программирования на Python или любом другом языке.
Поэтому это очень важно смотреть и узнавать, а как работают DE в других компаниях, какие бывают задачи и требования, чтобы ваши знания и навыки оставались актуальными. Например, Ayden c болот, это финтех-конкурент Stripe. По ссылке выше - общее описание того, как они работают и мне в глаза бросилось 2 вещи
- data engineers are developers first -> 70% времени ребята все-таки пишут код
- we do not write ‘raw’ SQL in our day to day job -> почти все трансформации отданы на откуп PySpark
- we do not have to ensure there are enough airflow workers, or that we need to ingest raw data from event streams -> есть отдельная команда, которая поддерживает платформу (Airflow и все остальные тулзы) и вставку сырых данных
@ohmydataengineer
Medium
Data Engineering at Adyen
Engineered for High Quality Data
👍8❤1
Рефакторинг по возможности
https://martinfowler.com/bliki/OpportunisticRefactoring.html
Статья - древняя (почти 12 лет), но до сих пор актуальная (как и большея часть книг Мартина Фаулера). Рефакторинг по возможности, это когда вы делали один тикет, заметили какую-то небольшую ерунду в коде, которую можно быстро поправить - взяли и прибрались. Как у скаутов: “Всегда оставляй место после себя чуть чище, чем оно было до тебя”.
Очень клевый подход, я его разделяю, но у него есть две проблемы, о которых автор упоминает
- Как не провалится в кроличью нору, когда ты, прибираясь в коде, видишь ерунду за ерундой, и ты просто теряешься в этом рефакторинге
- Это требует хорошего покрытия тестами (дабы не поломать что-то случайно) и культуру разработки и подходы в код ревью, в которой такое поведение будут поддерживать, а не ругаться, что у вас в одном PR все намешано.
@ohmydataengineer
https://martinfowler.com/bliki/OpportunisticRefactoring.html
Статья - древняя (почти 12 лет), но до сих пор актуальная (как и большея часть книг Мартина Фаулера). Рефакторинг по возможности, это когда вы делали один тикет, заметили какую-то небольшую ерунду в коде, которую можно быстро поправить - взяли и прибрались. Как у скаутов: “Всегда оставляй место после себя чуть чище, чем оно было до тебя”.
Очень клевый подход, я его разделяю, но у него есть две проблемы, о которых автор упоминает
- Как не провалится в кроличью нору, когда ты, прибираясь в коде, видишь ерунду за ерундой, и ты просто теряешься в этом рефакторинге
- Это требует хорошего покрытия тестами (дабы не поломать что-то случайно) и культуру разработки и подходы в код ревью, в которой такое поведение будут поддерживать, а не ругаться, что у вас в одном PR все намешано.
@ohmydataengineer
martinfowler.com
bliki: Opportunistic Refactoring
Refactoring does not need to be planned out, mostly it is done opportunistically, to fix problems while working on another task.
👍6❤2
Что там с modern data stack?
https://mattpalmer.io/posts/hot-takes/
Ох уж сколько мне этих статей попадалось и продолжает попадаться! Кто-то продолжает восхвалять, а кто-то начинает ругать уже все подряд. Очередной взгляд на вещи, короткая выдержка оттуда
- у dbt нет некоторой функциональности, например column level lineage, которое ей не позволяет стать лучшим инструментом
- Редшифт скатился и больше не конкурент
- DWH все также сложно
- Airflow - окаменелое устарелое💩 . А Airbyte - еще хуже. Поэтому пользуйтесь Mage (https://www.mage.ai/). Его активно форсит пара известных блоггеров, якобы это замена Airflow. Кто-нибудь пробовал?
В общем, как всегда, полезно узнать мнения в других пузырях, но свое лучше формировать опытом.
@ohmydataengineer
https://mattpalmer.io/posts/hot-takes/
Ох уж сколько мне этих статей попадалось и продолжает попадаться! Кто-то продолжает восхвалять, а кто-то начинает ругать уже все подряд. Очередной взгляд на вещи, короткая выдержка оттуда
- у dbt нет некоторой функциональности, например column level lineage, которое ей не позволяет стать лучшим инструментом
- Редшифт скатился и больше не конкурент
- DWH все также сложно
- Airflow - окаменелое устарелое
В общем, как всегда, полезно узнать мнения в других пузырях, но свое лучше формировать опытом.
@ohmydataengineer
Please open Telegram to view this post
VIEW IN TELEGRAM
Matt's Website
Home
Matt is having fun
👍3
Про базовые концепции тестирования в данных
https://www.datafold.com/blog/the-state-of-data-testing
Если вы находитесь на начальной стадии принятия и внедрения тестирования ваших данных, самые базовые концепции и примеры - это то, что вам нужно: Data Accuracy, Data Completeness, Data Consistency, Data Integrity.
Это скорее базовый уровень, но для начала хватит. А еще можно тыкнуть в твиты автора и посмотреть, а что же другие делают для тестирования данных. Например, клевый ответ “Метод пристального взгляда” (мы так уравнения в 7 классе решали по математике: внимательно смотришь на пример и видишь ответ). Так и тут, скролишь всю табличку, видишь какую-нибудь фигню, значит что-то не то.
@ohmydataengineer
https://www.datafold.com/blog/the-state-of-data-testing
Если вы находитесь на начальной стадии принятия и внедрения тестирования ваших данных, самые базовые концепции и примеры - это то, что вам нужно: Data Accuracy, Data Completeness, Data Consistency, Data Integrity.
Это скорее базовый уровень, но для начала хватит. А еще можно тыкнуть в твиты автора и посмотреть, а что же другие делают для тестирования данных. Например, клевый ответ “Метод пристального взгляда” (мы так уравнения в 7 классе решали по математике: внимательно смотришь на пример и видишь ответ). Так и тут, скролишь всю табличку, видишь какую-нибудь фигню, значит что-то не то.
@ohmydataengineer
Datafold
The State of Data Testing
The current state of data testing for analytics and data engineering teams involves a lot of manual work. This is worrisome given how integral data testing is to the development and deployment workflow; catching bugs and data quality issues before they hit…
👍9
Шо там по зарплатам?
https://medium.com/@mikldd/europe-data-salary-benchmark-2023-b68cea57923d
Для тех, кто планирует релокацию в Европу (если что, это не про “большие бабки”), полезно знать какие-то ориентиры на рынке, даже не смотря на то, что рынок очень динамичный, разный, вот это все. Очередное исследование рынка и вот забаный момент из него (графички тоже внутри есть по ссылке):
В Германии платят в среднем меньше, например 75% перцентиль в Амстердаме, Лондоне и Дублине платит на 50% больше, чем в Германии. Правда, Амстердам и так большой хаб, Лондон просто жутко дорогой, а Дублин, кажется, сильно перекошен зарплатами Амазона.
Ну а так:
Junior: Медиана $70k и только в бигтехе переваливает за $100k
Mid: Медиана $86k и у 25% больше $100k
Senior: Медиана $113k и у 25% больше $150k
Единственное, не пойму, почему опрос про Европу, но з/п в долларах. Ну и, конечно, это gross.
@ohmydataengineer
https://medium.com/@mikldd/europe-data-salary-benchmark-2023-b68cea57923d
Для тех, кто планирует релокацию в Европу (если что, это не про “большие бабки”), полезно знать какие-то ориентиры на рынке, даже не смотря на то, что рынок очень динамичный, разный, вот это все. Очередное исследование рынка и вот забаный момент из него (графички тоже внутри есть по ссылке):
В Германии платят в среднем меньше, например 75% перцентиль в Амстердаме, Лондоне и Дублине платит на 50% больше, чем в Германии. Правда, Амстердам и так большой хаб, Лондон просто жутко дорогой, а Дублин, кажется, сильно перекошен зарплатами Амазона.
Ну а так:
Junior: Медиана $70k и только в бигтехе переваливает за $100k
Mid: Медиана $86k и у 25% больше $100k
Senior: Медиана $113k и у 25% больше $150k
Единственное, не пойму, почему опрос про Европу, но з/п в долларах. Ну и, конечно, это gross.
@ohmydataengineer
Medium
Europe data salary benchmark 2023
A pay benchmark for data analysts, data scientists, analytics engineers and data engineers across hundreds of companies
👍13
ChatGPT прям в IDE
На деле, конечно, было уже пару десятков плагинов, которые встраивали функциональность ChatGPT в IDE, но я решил не пользоваться ими, довольствуясь лишь GitHub Copilot. Очень хорошо ускоряет разработку, особенно если ты понимаешь, что ты делаешь 🤪
Относительно недавно Github аннонсировали Copilot X с функцией подключения и общения с ChatGPT прямо в IDE. Прям в IDE тыкаешь в строчки кода и говоришь “Помоги мне поправить это дерьмо” и тебе рефактор предложат, сверху тестов накатят…
Осталось только ChatGPT для коммандной строки и все будет шикардос… oh, wait! Это уже тоже есть тут!
Короче, залезть в бету продвинутой версии - вот тут https://github.com/features/preview/copilot-x
P.S. Не пихайте никакую чувствительную информацию в чат-гопоту и гигачад. Только обезличенные кусочки кода. И в копайлоте можете поставить галочку что ваш код не должен учавствовать в улучшении модели, если пока внутри компании не решили, что с этим делать. Следуйте здравому смыслу.
@ohmydataengineer
На деле, конечно, было уже пару десятков плагинов, которые встраивали функциональность ChatGPT в IDE, но я решил не пользоваться ими, довольствуясь лишь GitHub Copilot. Очень хорошо ускоряет разработку, особенно если ты понимаешь, что ты делаешь 🤪
Относительно недавно Github аннонсировали Copilot X с функцией подключения и общения с ChatGPT прямо в IDE. Прям в IDE тыкаешь в строчки кода и говоришь “Помоги мне поправить это дерьмо” и тебе рефактор предложат, сверху тестов накатят…
Осталось только ChatGPT для коммандной строки и все будет шикардос… oh, wait! Это уже тоже есть тут!
Короче, залезть в бету продвинутой версии - вот тут https://github.com/features/preview/copilot-x
P.S. Не пихайте никакую чувствительную информацию в чат-гопоту и гигачад. Только обезличенные кусочки кода. И в копайлоте можете поставить галочку что ваш код не должен учавствовать в улучшении модели, если пока внутри компании не решили, что с этим делать. Следуйте здравому смыслу.
@ohmydataengineer
🔥17👍2❤1
Alerts Fatigue в качестве данных
https://www.youtube.com/watch?v=hxvVhmhWRJA&
Неплохое видео с последнего(?) Coalece: про то, что тестируют в данных. Assumption (предположение что мы ожидаем увидеть) или Assertion (что мы зафорсили в коде). Неплохой рассказ про то, как у людей устроено DQ и как они задолбались получать уведомления о плохом качестве данных.
Для себя подсмотрел интересную штуку, которая называется Elementary - OOS Data Observability поверх dbt.
@ohmydataengineer
https://www.youtube.com/watch?v=hxvVhmhWRJA&
Неплохое видео с последнего(?) Coalece: про то, что тестируют в данных. Assumption (предположение что мы ожидаем увидеть) или Assertion (что мы зафорсили в коде). Неплохой рассказ про то, как у людей устроено DQ и как они задолбались получать уведомления о плохом качестве данных.
Для себя подсмотрел интересную штуку, которая называется Elementary - OOS Data Observability поверх dbt.
@ohmydataengineer
YouTube
Testing: Our assertions vs. reality
Testing data models is sometimes like trying to form a bust from clay made of cornstarch and water. Right when you think you've got it into the right shape and set it on a shelf, it completely melts into a puddle of mush. Our practice of testing transformations…
👍4🔥1
Еще немного бубнежа про Modern Data Stack
https://www.rudderstack.com/assets/the-data-maturity-guide.pdf
Продолжая разговор про modern data stack, у ребят из Rudderstack (rudderstack.com, cloud data platrofm) на своем сайте рассказывают, насколько этот ваш MDS сложная концептуальная штука, ничего не понятно и очень много всяких иконок, в том числе их самих. Ключевая цитата там звучит вот так:
Let’s be honest. The modern data stack is an ambiguous concept. It’s confusing and impractical. What we need is a real-world roadmap to help us progressively build more mature data functions. So we developed a practical four-stage framework to guide you along your journey to data maturity.
Поэтому за емейл они предлагают свой гайд по тому, как оценивать свои хотелки и что вам действительно нужно в текущей ситуации из DE инструментов. Сам гайд на 80 страниц, если вам предстоит самим строить какое-то хранилище или вы на пороге того, что надо все нафиг переписать - довольно неплохо описаны всякие подходы и концепции. Ссылок на конкретные инструменты не заметил, а вот примеры типичных проблем и pain points описания - мне понравилось.
Вообще, Data Maturity - головная боль последних моих недель, ибо нужно решить вопросики по всяким стратегиям, подходам и инструментам, а это непросто дается.
@ohmydataengineer
https://www.rudderstack.com/assets/the-data-maturity-guide.pdf
Продолжая разговор про modern data stack, у ребят из Rudderstack (rudderstack.com, cloud data platrofm) на своем сайте рассказывают, насколько этот ваш MDS сложная концептуальная штука, ничего не понятно и очень много всяких иконок, в том числе их самих. Ключевая цитата там звучит вот так:
Let’s be honest. The modern data stack is an ambiguous concept. It’s confusing and impractical. What we need is a real-world roadmap to help us progressively build more mature data functions. So we developed a practical four-stage framework to guide you along your journey to data maturity.
Поэтому за емейл они предлагают свой гайд по тому, как оценивать свои хотелки и что вам действительно нужно в текущей ситуации из DE инструментов. Сам гайд на 80 страниц, если вам предстоит самим строить какое-то хранилище или вы на пороге того, что надо все нафиг переписать - довольно неплохо описаны всякие подходы и концепции. Ссылок на конкретные инструменты не заметил, а вот примеры типичных проблем и pain points описания - мне понравилось.
Вообще, Data Maturity - головная боль последних моих недель, ибо нужно решить вопросики по всяким стратегиям, подходам и инструментам, а это непросто дается.
@ohmydataengineer
👍13
Сокращения, что, опять?
https://www.getdbt.com/blog/dbt-labs-update-a-message-from-ceo-tristan-handy/
Я почти и не писал про сокращения, но это произошло в релевантной компании: в этот раз 15% сокращает dbt, задело всех, и инженеров тоже.
Из примечательного, в 2020 году компания была 20 человек, в 2021 - 50, а в 2023 - почти 400.
@ohmydataengineer
https://www.getdbt.com/blog/dbt-labs-update-a-message-from-ceo-tristan-handy/
Я почти и не писал про сокращения, но это произошло в релевантной компании: в этот раз 15% сокращает dbt, задело всех, и инженеров тоже.
Из примечательного, в 2020 году компания была 20 человек, в 2021 - 50, а в 2023 - почти 400.
@ohmydataengineer
dbt Labs
dbt Labs Update: a Message from CEO Tristan Handy | dbt Labs
dbt is a data transformation tool that enables data analysts and engineers to transform, test and document data in the cloud data warehouse.
👍3❤2👎1
Про дальнейшее развитие
https://www.youtube.com/watch?v=wB0ulHmvU7E
Классический вопрос, который мне задавали нескольких последних карьерных консультациях: а что дальше то делать? Куда дальше идти? Куда движется индустрия?
Типичная проблема: IC (расти в техлиды, стаффы, принципалы) или менеджеры (тимлиды, ЕМ и вот это все).
На деле, конечно, выбор между “индивидуал контрибутер” и “личинкой манагера” это огромная отдельная тема, требующая индивидуально проработки и все, что в общих фразах я могу сказать это “Делайте то, что хотите, а что хотите - не делайте”.
Но вот касательно конкретно IC мне очень понравился доклад и статья с Coalesce “Excel at nothing”. Личное ощущение, что в целом, у generalist больше возможностей, влияния и $$$, чем у “специалистов”. В золотые времена компании могли себе позволить нанимать узкоспециализированных профессионалов для “fine-tuning JVM model at deminishig return levels”, а сейчас бОльшая часть компаний смотрит на финансы и на кадры, которые нанимает, поэтому если человек может больше и может это за пределами своего стека технологий (а это еще и софт-скиллы сюда), приоритет будет ему.
По крайней мере, по личному опыту вижу, что именно так и происходит.
(Самое забавное, что я помню как сам задавал этот же вопрос на консультации, правда она была за банкой пива и ребрышками 🤪)
@ohmydataengineer
https://www.youtube.com/watch?v=wB0ulHmvU7E
Классический вопрос, который мне задавали нескольких последних карьерных консультациях: а что дальше то делать? Куда дальше идти? Куда движется индустрия?
Типичная проблема: IC (расти в техлиды, стаффы, принципалы) или менеджеры (тимлиды, ЕМ и вот это все).
На деле, конечно, выбор между “индивидуал контрибутер” и “личинкой манагера” это огромная отдельная тема, требующая индивидуально проработки и все, что в общих фразах я могу сказать это “Делайте то, что хотите, а что хотите - не делайте”.
Но вот касательно конкретно IC мне очень понравился доклад и статья с Coalesce “Excel at nothing”. Личное ощущение, что в целом, у generalist больше возможностей, влияния и $$$, чем у “специалистов”. В золотые времена компании могли себе позволить нанимать узкоспециализированных профессионалов для “fine-tuning JVM model at deminishig return levels”, а сейчас бОльшая часть компаний смотрит на финансы и на кадры, которые нанимает, поэтому если человек может больше и может это за пределами своего стека технологий (а это еще и софт-скиллы сюда), приоритет будет ему.
По крайней мере, по личному опыту вижу, что именно так и происходит.
(Самое забавное, что я помню как сам задавал этот же вопрос на консультации, правда она была за банкой пива и ребрышками 🤪)
@ohmydataengineer
YouTube
Excel at nothing: How to be an effective generalist
"They’re looking for someone technical, but business-oriented.” Says the newly minted analytics engineer—quietly content in her ability to be everything to everyone. But "purple" work can still be perilous: roadmap uncertainty, stakeholder confusion, an unending…
👍11🔥2
А ты шо, теперь деврел?
Расходился я тут по подкастам, это второй за последний год и, скорее всего, не последний, но ребята из Подлодки пока реагируют как типичный работодатель: мое отклик, прочитали, но не ответили 🤪
С Евгением из @general_it_talks “Тимлид Очевидность” мы знакомы давно, поэтому когда он предложил пообщаться за интересную тему - с удовольствием пришел. Евгений и Виктор ведут подкаст “Кода кода” и мы говорили про “Плохой Код VS Чистая Архитектура”. Вышло очень хорошо.
Кстати, в эту же тему дров подкинул Кирил Мокенвин (создатель Hexlet.io) - https://habr.com/ru/articles/508876/ - Вероятно, хватит рекомендовать «Чистый код». Да, на Хабре, но большей РФ площадки для IT статей нет.
🎧 Слушайте подкаст «Кода кода» в Яндекс музыке, Apple podcasts, VK и много ещё где по ссылке https://kodakoda.mave.digital/ep-49
@ohmydataengineer
Расходился я тут по подкастам, это второй за последний год и, скорее всего, не последний, но ребята из Подлодки пока реагируют как типичный работодатель: мое отклик, прочитали, но не ответили 🤪
С Евгением из @general_it_talks “Тимлид Очевидность” мы знакомы давно, поэтому когда он предложил пообщаться за интересную тему - с удовольствием пришел. Евгений и Виктор ведут подкаст “Кода кода” и мы говорили про “Плохой Код VS Чистая Архитектура”. Вышло очень хорошо.
Кстати, в эту же тему дров подкинул Кирил Мокенвин (создатель Hexlet.io) - https://habr.com/ru/articles/508876/ - Вероятно, хватит рекомендовать «Чистый код». Да, на Хабре, но большей РФ площадки для IT статей нет.
🎧 Слушайте подкаст «Кода кода» в Яндекс музыке, Apple podcasts, VK и много ещё где по ссылке https://kodakoda.mave.digital/ep-49
@ohmydataengineer
👍11💩4
https://github.com/modularml/mojo
Говорят, тут у Rust и Python случился ребенок в виде нового, хайпового языка программирования под названием Mojo. То есть там концепции и скорость Rust, а еще можно спокойно притаскивать модули Python:
Мгновенно ютуб начал подсовывать видосы про то, что это будущее DE, сразу вспомнил Хрыча, который всех хотел на Rust пересадить. Но посмотрев на документацию и на примеры - не, не судьба. Все очень жиденько, все так себе, а проблемы, которые пытается решить язык - в Python решаются сторонними модулями и культурой программирования.
Ну а про “Python” медленный уже столько копий сломано….
Короче, не стоит тратить свое время, обычный hype train
@ohmydataengineer
Говорят, тут у Rust и Python случился ребенок в виде нового, хайпового языка программирования под названием Mojo. То есть там концепции и скорость Rust, а еще можно спокойно притаскивать модули Python:
You can import and write normal Python modules/packages and code.
It looks and feels like Python.
Mojo wants to bring “systems programming” to Python.
Mojo adds `let` and `var` function declarations to give immutability, or not.
Mojo adds those famous `structs`.
The ability to have static typing/checks at compile is available.
Addition of `fn`s instead of `def`s for more immutable, static, and generally stricter methods.
Mojo brings the concepts of borrowing and ownership to immutable `fn`s, in a Rustacian sort of twist into Python.
Мгновенно ютуб начал подсовывать видосы про то, что это будущее DE, сразу вспомнил Хрыча, который всех хотел на Rust пересадить. Но посмотрев на документацию и на примеры - не, не судьба. Все очень жиденько, все так себе, а проблемы, которые пытается решить язык - в Python решаются сторонними модулями и культурой программирования.
Ну а про “Python” медленный уже столько копий сломано….
Короче, не стоит тратить свое время, обычный hype train
@ohmydataengineer
GitHub
GitHub - modular/modular: The Modular Platform (includes MAX & Mojo)
The Modular Platform (includes MAX & Mojo). Contribute to modular/modular development by creating an account on GitHub.
👍7❤4
Все очень любят опросы и обзоры
https://state-of-data.com/
Почему? Потому что это собирает больше всего просмотров.
Сначала я хотел написать свои наблюдения по поводу этого State of Data 2023 отчета, но потом увидел, что Дима уже сделал это, а дублировать контент ради контента мне не особо хочется.
Ничего нового, ничего необычного, “ходуб умер”.
Если очень хочется потратить время, то результаты можно посмотреть.
Ладно, одно наблюдение. Ты можешь быть класным инженером, но сделать так, чтобы графики были читаемыми и с них можно было считать легко информацию - это отдельный навык.
Тут у ребят такая мешанина с осями и цветами, что становится очень больно.
@ohmydataengineer
https://state-of-data.com/
Почему? Потому что это собирает больше всего просмотров.
Сначала я хотел написать свои наблюдения по поводу этого State of Data 2023 отчета, но потом увидел, что Дима уже сделал это, а дублировать контент ради контента мне не особо хочется.
Ничего нового, ничего необычного, “ходуб умер”.
Если очень хочется потратить время, то результаты можно посмотреть.
Ладно, одно наблюдение. Ты можешь быть класным инженером, но сделать так, чтобы графики были читаемыми и с них можно было считать легко информацию - это отдельный навык.
Тут у ребят такая мешанина с осями и цветами, что становится очень больно.
@ohmydataengineer
👍5💩4🔥1