Инжиниринг Данных – Telegram
Инжиниринг Данных
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
The core problem with working longer hours is that time is a finite resource. Energy is a different story. - цитата из статья HBR Manage Your Energy, Not Your Time

Совершенна другой угол обзора на насущную проблему - мы работаем много часов и устаем. Мы считаем часы. Но редко задумываемся про энергию. Возможно у вас есть моменты в истории, когда вы делали интересную работу 12 часов, а потом еще пошли вечером в барчик и утром с удовольствием брались за работу полны сил.

А может быть наоборот, после 6-8 часов "прокрастинации" вы как выжитый лимон. Важно понять, что дает вам энергию, что вас заряжает и драйвит. Делать упор на это, а что мешает убирать.

Как только будет четкое понимание, вы сможете заправляться правильной энергией. 🎢
👍304🔥2👏2
Если посмотреть ну путь развития инженера, то традиционно это путь в менеджера. Но если вам нравится "работать руками" (individual contributor). то для вас есть возможность расти в строну Staff/Principal Engineer. Своего рода team lead (устаревшее название позиции). Есть даже книга у O'Reilly - The Staff Engineer's Path.

For years, companies have rewarded their most effective engineers by suggesting they move to a management position. But treating management as the default (or only) path for an engineer with leadership ability doesn't serve the industry well. The staff engineer path allows you to contribute at a high level, with more free time to drive big projects, determine tech strategy, and raise everyone's skills.

With this in-depth book, author Tanya Reilly shows you ways to master strategic thinking, manage difficult projects, and set the standard for technical work. You'll learn how to be a leader without direct authority, how to plan ahead so that you're making the right technical decisions, and how to make everyone around you better, all while still leaving you time to grow as an expert in your domain.

In three parts, you'll explore the three pillars of an engineer's job:

- Big picture thinking: learn how to take a broad, strategic view when thinking about your work
- Project execution: dive into tactics and explore the practicalities of making projects succeed
- Being a positive influence: determine the standards for what "good engineering" means in your organization

PS Где-то в мае у меня был performance review в Microsoft, и там у нас разошлись мнения, мягко говоря. Как результат, моя "энергия" (как в посте выше) достаточно сильно иссякала. Приходилось ходить на собеседования внутри MS и снаружи, в итоге получил приглашение на того самого Staff DE, хотя просил Senior. Это публичная SaaS компания, не самая большая. Стек как я и хотел AWS+dbt+snowflake+airflow.
👏31👍232
Люди пришли к пониманию, что ценник за облачную аналитику все-таки имеет значение. Изначально казалось, что можно не заморачиваться с моделями данных, использовать большие таблицы, в которых было все сразу, и если возникали проблемы, то просто увеличивали размер и кол-во кластеров. Как результат - дорого и не эффективно.

Вот и товарищ говорит, что dba на самом деле все еще существуют и важно решать проблемы производительности.
👍292
Ооо пошли вопросы интересные по дата аналитике))

PS у меня давно идея была написать статью на хабре "Дресс код для ИТишника" но боюсь там у всех бомбить будет😱😅
😁106🔥21👍5🤬3
Новости из мира аналитики:

Несколько статей про Metrics Store:
How Airbnb Achieved Metric Consistency at Scale part 1
How Airbnb Standardized Metric Computation at Scale part 2
Metrics Layer & Metadata | Drew Banin (dbt Labs), Nick Handel (Transform) & Prukalpa Sankar (Atlan)
DBT: The Metrics System

Другие новости:
Measuring downstream impact on social networks by using an attribution framework - вообще Donwstream Impact - это очень мощная штука, мы учимся понимать какое влияние окажет конкретный канал или действие на весь путь клиенты, это уже серьезный анализ. Такой подход очень популярен в Амазон, действительно важная задача для серьезного Аналитика, который анализирует бизнес и принимает важные решения.

Про инструменты оркестарции:
Should You Use Apache Airflow?

Судя по отзывам неплохие и недорогие курсы на русском:
Apache Airflow 2.2: практический курс
Введение в Data Engineering: дата-пайплайны (про Luigi)


Про ML:
A Chat with Andrew on MLOps: From Model-centric to Data-centric AI

Инструменты:
Soda - CLI утилита для проверки данных
DataBathing - библиотека которая трансформирует SQL в Dataframe
SQL Fluff - linting для SQL, популярен для DBT
👍213
Financial times продолжают радовать нас красивой инфографикой
😁64🤔16👍3🎉1
Cheat sheet for data engineering ramp up in 2022.

🟢 SQL/data modeling

Install Postgres. Load dummy data with \copy
Understand ACID
Different consistency levels: Strict, Linearizable, Serializable, Eventual, Casual
Aggs with GROUP BY.
Joins: INNER, LEFT.
Filter records with WHERE. Filter groups with HAVING.
Aggs persisted to summary tables.
ORDER BY foo LIMIT n --> top n by foo.
Organize queries with CTEs and temp tables. Subselect sparingly
Window functions to look at trends within arbitrary partitions.
Unique constraints. Foreign key constraints.
Dimensions vs Fact tables. Star, snowflake schemas.
EXPLAIN <query>. Read the plan.
Add an index. How does the EXPLAIN change?
 
🟢 CompSci concepts you must know

Uniformly distributed hash functions.
Tuples vs Arrays.
Iterator design pattern. 
External Merge sort.
Bit vectors, HashMap. Sets.
Directed graphs.
Serialization 

🟢 Time representation

 ISO 8601 strings
 Prefer native date and timestamp objects.
 UTC.
  
🟢 Fundamentals of distributed data processing
Cap theorem.
Replication.
Horizontal vs Vertical scaling.
Sharding vs clustering.
Share-nothing principle.
Partitioning data at-rest.
Planning for fault tolerance and failure. 
Exponential back off retries.
Latency vs bandwidth.
How to code to iterators without the input fully buffered in memory. 

🟢 Spark

Dataframe and Dataset batch API.
Shuffle challenges. When to repartition().
Runtime partitioning by key.
Tuning: executors num, memory, cores. Num shuffle partitions.
Dataframe ops split up into composable driver functions.
Construct fixture Dataframes for unit tests.
Create temporary views as staging tables.
Data quality checks over staging views. Lots of logging.
Fail driver if checks fail.
Block any downstream dependencies until the checks pass.
Hive metastore for data lake catalog.

🟢 Common structured data formats

TSV, Tar, Zip, XLSX, Avro, Parquet, Protobufs, Delta
Splittable file format? 
Compression: Bz2. Gzip, Snappy, LZO.
Hadoop mergeUtils to help small files problem.

🟢 Cloud providers

Top players for distributed computing: AWS, GCP, Azure
S3/GCS object stores
Managed Airflow = pipelining
EMR/Dataproc = processing
Container registries. EKS/GKE for container execution
IAM access controls. As-needed access. No shared service creds.

🟢 Languages (1 - 10 goal proficiency)

SQL (10)
Python (8)
Java (7)
Scala (4)
Bash (4)

🟢 Metrics/monitoring/alerting

Statsd, Prometheus.
HTTP vs. UDP
Gauge vs increment vs histogram.
Measurement vs tag.
Visualize measurement time series: Grafana, Datadog.
Observe what normal is. Alert on abnormal thresholds.
Alert messaging clarity.
Runbooks for on-call.

🟢 Linux familiarity

tail -f
tmux
ps -ef, kill -9
vim
ssh, scp
cat, less, more, grep, find, echo, xargs, |, >, >>, <
sudo
 .bash_profile, EXPORT, unset,
$PATH

🟢 Containers

Linux cgroups.
Dockerfile. Docker Desktop.
docker-compose
Basic understanding of Kubernetes. Kubectl

Anything I leave out that's important?
👍48🔥18
Командная строка это важный инструмент для инженера и разработчика.

Я общался с некоторыми инженерами, кто использует командную строку (CLI) абсолютно для всего, включая редактирование текста и создания заметок, написание и выполнение SQL запросов, само собой разумеется любого другого кода. Даже вместо Excel они используют CLI и IPython/Pandas чтобы сделать CNTR+C в командную строку и создать Data Frame.

Вот такое вот искусство. Я тоже пытаюсь не отставать и делать больше задач в CLI, чем UI.

Обычно всех пугает VIM, ведь недаром это один из самых популярных вопросов - How do I exit Vim?

Аналог VIM это nano редактор, он проще, но и команд там меньше. Поэтому есть отличный tutorial для Vim - OpenVim.

Еще один важный элемент - внешний вид CLI. По умолчанию это просто черно/белый экран. Поэтому всем рекомендую использовать Oh-My-Shell плагин.

После азов командной строки, можно уже переходить к более интересным вещам, например создание шаблонов Terraform для инфраструктуры и выполнение команд в Makefile.

И потом все эти знанию пригодятся для создания CI/CD pipelines и других DevOps/Инфраструктурных вещей.
👍26🔥73😁3
Отличная картинка, все что нужно знать и понимать, про решения аналитики данных в современной организации
👍42
Очень хороший пост про повышение в Амазон. Оплачивают за результат, а повышают за ваше отношение к работе. То есть, допустим вы много работаете и закрываете задачи и проекты, за это вам платят и дают бонус условный, а чтобы перейти на следующий уровень вам необходимо уже фокусироваться на behaviour, взаимоотношениях с коллегами, engineering best practices. Часто человек может делать одно, но неочень делать второе (как я например), но стараюсь исправиться в будущем😇
👍50
Один в один мое первое рабочее место в Канаде в Виннипеге. Environment была там совсем не fast-paced. Но я этого не знал. После черногорского FinTech я бегал как ужаленный по этажам, полон идей и желанием все улучшить.

В один прекрасный зимний день, меня вызвал начальник и отправил домой, так как я был в пиджаке с темными джинсами, а в джинсах нельзя. Получилось, как в том анекдоте - "и плачу и смеюсь". В -40 пришлось на 2х автобусах сгонять домой переодеть штаны и обновить резюме.

Как говориться, "нет худа без добра". В итоге устроился в Амазон и переехал в British Columbia, где вообще нет зимы.
👍61😁11🔥3
Спустя несколько лет наконец-то получилось организовать offline user group для Tableau, как в старые добрые времена - pizza и drinks в хорошем офисе😜
🔥18🎉11👍71
Детский квест - проплыть 20 км на SUP и каяке с детьми и палаткой, собрать карту и найти клад.
👍53
Если вы работаете с AWS, то обычно все данные хранятся в S3 (cloud storage). Часто для локальной разработки или процесса CI/CD нам нужно проверять наш код, например Spark Jobs Unit Tests. Возможно без доступа к облаку, так как для доступа вам нужно использовать credentials.

Попалось очень хорошее решение для такой задачи - How to mock AWS services in local development?

То есть запускается сервис, который имитирует s3://
👍22
Новый игрок в BI был замечен на рынке после недавних инвестиций в 12млн от знающих толк в data людей

Most BI tools are thin applications with no г engine of their own, and only as fast as the database they sit atop. Rill, on the other hand, is a thick application that comes with its own embedded in-memory OLAP engine (DuckDB in Rill Developer, and Apache Druid in Rill Cloud). This is the not-so-secret reason why our dashboards offer incredibly high performance,” the company wrote in a blog post announcing the funding.


https://techcrunch-com.cdn.ampproject.org/c/s/techcrunch.com/2022/08/04/rill-wants-to-rethink-bi-dashboards-with-embedded-database-and-instant-ux/amp/

Посмотрим как пойдёт у них
👍9🔥2
FAANG компании отслеживают интересные метрики - Revenue per employee и Free cash flow per employee.

Согласно статье Why Mark Zuckerberg and Sundar Pichai Are Worried About Productivity эффективность труда падает, и как говорит Цукенберг Realistically, there are probably a bunch of people at the company who shouldn’t be here.

Как вам такой подход? Я знаю, что такой подход хорошо работает на уровень зарплаты (total compensation), и поэтому там такие высокие зарплаты, а вот наоборот, искать взаимосвязь между производительностью конкретного инженера и доходом компании это может обернуться "охотой на ведьм". Возможно причины в неудачных long term решениях.

А так то, кому сейчас легко?😆
🔥23👍8🤔4😁1
Пока вы учите Python, SQL, Airflow и другие полезные ништячки на работе, я прохожу sexual harassment тренинг с элементами сериала 90х.

Вот один из вопросов:
(google сделал перевод для вас)

Несколько сотрудниц офиса являются друзьями на Facebook. Однажды ночью дома одна из женщин публикует рейтинг «Лучших мужских задниц в моем офисе», зная, что она дружит на Facebook только с сотрудницами, которые не обидятся. Когда это видит друг друга друга, он чувствует себя униженным, потому что он занял последнее место. Он сообщает об этом как о сексуальных домогательствах.

Это сексуальные домогательства?

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

У меня был еще другой тренинг, но он мне оказался не по силам, я запутался в терминологии и цветах радуги.
😁85🤔24🤬14👍13😢3🔥1