it пингвин | data engineer – Telegram
it пингвин | data engineer
1.72K subscribers
48 photos
8 videos
1 file
60 links
Канал главного разработчика Data Lake крупного банка.
База знаний для джунов, разбор собесов, задачи (jun/mid/sen) с решениями, полезные материалы, обзоры технологий и архитектур.

По вопросам и менторству писать @it_pengwin
Download Telegram
Обзор собеседований

Должность: Sql-разработчик
Компания: ics-it
Тип собеса: #тех_собес
Грейд: #Middle
Вилка: 150-200к
Вакансия: https://hh.ru/vacancy/118564648

Краткий обзор собеседования:
• Как оптимизировать запросы?
• На что ориентируешься при создании индекса, когда лучше его создавать?
• Что такое BTree? В чем именно скорость поиска?

• Задачка про джоины
• Задачка вывести третью по велечине зп

• В чем смысл транзакции и для чего они нужны?
• Что такое изоляция в ACID?
• Уровни изоляции в транзакции?
• Вопрос про DEADLOCK?
• Backup как сделать?



Должность: Data Engineer
Компания: ООО РСХБ-Интех
Тип собеса: #тех_собес
Грейд: #middle #senior
Вилка: 300к
Вакансия: https://hh.ru/vacancy/119266338

Краткий обзор собеседования:
• Как устроен классический DWH?

Задачи:
1)SELECT Year(Date) as date_year
FROM Balance
GROUP BY date_year
WHERE date_year >= 2024

В чем ошибка?

2) Как в sql запросе выбрать при пересечении A и B множества выбрать только множество A без пересекающейся части. Перечислить разные варианты.

3) Есть таблица с id sum date.
Вывести нарастающий итог. Вывести только первые записи по каждому клиенту.

4) Задача про вывод записей, которые вставлены задним числом (нарушена последовательность id)



Присылайте свои обзоры собесов. Нарабатываем базу 🤝

it пингвин | data engineer 🐧
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥169👍421
Не спешите отвечать на письма, если в получателях/копии письма указано много людей 🤝

#МыслиВслух
Please open Telegram to view this post
VIEW IN TELEGRAM
😁47🤝117👍1🔥11
День рождения 🎉

Друзья, всем привет!
У меня сегодня др. Исполнилось 26 лет.
И хотелось бы взять за традицию подведение итогов. Потом будет прикольно перечитывать😁
Сейчас времени совсем мало, пишу пост с первого раза, особо без правок, так что будет не оч структурно и с ошибками)

За прошедший год в моей карьере произошло много событий. Осень 2024 и зиму 2025 я работал в красном банке через консалтинг.
В консалтинге я работал 2,5 года и последний год хотел уволиться. Проходил много собесов, погружался в DE, смотрел что происходит на рынке.
В компании в целом мне нравилось - условия работы и отношение были топ (только зп особо не хотели поднимать), но сами проекты были скучны.
В марте я уволился. Было тяжело и грустно, так как коллектив мне очень нравился. Особенно запомнил корпораты и тимбилдинги 😢💔

Устроился напрямую в другой большой банк. В трудовой написано - главный разработчик озера данных. "Вау, круто" - думал я 🤡
По сути я там ничего сложного не делал. Писал простенькие одинаковые запросы в hive. Забирал данные с разных СУБД и складывал в Hadoop.
Первые 1,5 месяца у меня вообще не было работы, тк до сих все доступы мне не могли выдать. Ужасная бюрократия.

И 20 марта я решил создать тг канал.
Почему решил создать? Было свободное время, осталось много задокументированных собесов, материала для подготовки к собесам, различные задачи и просто хотелось высказывать мысли.
Также меня очень вдохновили каналы Реджектика, Вовы инженерообязанного и Жени.
Создал канал и прям от души делал посты. Это очень классный опыт. Перед работой час, полтора делал заготовки постов. Потом нравилось получать фидбэк.

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

Решил вести канал анонимно, так как могу более открыто говорить об индустрии и меньше переживать о последствиях. Например, моим коллегам и руководителям явно бы не нравилось, что я прохожу кучу собесов и говорю как я чилю на работе.
ТГ канал реально моя отдушина. Кто сомневается в создании - начните, а дальше пойдет. Позже сделаю пост со своими мыслями о ведении тг канала (вообще не претендую на экспертное мнение).

И при создании тг канала я думал о каком-то заработке. Немного денег есть с рекламы. Но главное сразу понимал, что можно раскручивать свое менторство.
Менторить я начал еще в консалтинге - около года собесил стажеров, поднимал базу знаний де/аналитиков и выводил их на проекты ТОП банков. Около 10 стажеров вывел на проекты, некоторых продали даже как мидлов (темная история) 😈
И еще был репетитором с объявлением на авито. И школьников обучал sql/python, сессии помогал проходить студентам (почти всей группе из ВШЭ зимой делал лабы), помогал перекатываться из других ит направлений в DE. В общем, опыт уже был.

Продолжил менторить с появлением тг канала с более серьёзным подходом. Особо это пока что не афиширую. Но люди приходят. Есть уже прям большие успехи. Когда-нибудь расскажу о результатах.

В июле подумал, что надо быть на одной волне со своими менти и посмотреть что там ны рынке (+ контентик для канала). Надо попроходить собесы.
Прошел собесы, получил несколько офферов и решил уйти 😎

Я выбирал между двумя офферами:
1- Жирный оффер в другой банк и скорее всего снова бюрократия и скучная работа
2 - Доставка, деньги такие же как были и оч интересная работа

Выбрал 2 вариант. Даже пошел на даунгрейд по должности.
Был главный разраб озера (сеньор) -> Инженер по обработке данных (мидл). А сейчас вообще чувствую себя джуном 🤡

И вот с понедельника я снова в новой компании. Надеюсь это надолго😊
Стек очень крутой, команда очень сильная. По сути это стартап внутри большой компании. Работать буду на всех слоях хранилища. Куча разных технологий и большие планы.
Сейчас впервые я буду переживать за испыталку.
О смене работы и новом стеке тоже сделаю пост 🫡

Рассказываю только про карьеру, другое наверно особо не интересно читать.

Спасибо, дорогие подписчики, за внимание и поддержку ❤️
Please open Telegram to view this post
VIEW IN TELEGRAM
1477🔥38👍19😱42😁1
Обзор собеседования

Должность: Data Engineer
Компания: Газпромбанк
Тип собеса:#тех_собес #livecoding
Грейд: #middle #senior
Вилка: 350к
Вакансия: https://hh.ru/vacancy/112316856

Краткий обзор собеседования:
• Зачем нужна нормализация и денормализация, что и когда используется?
• Привести примеры кейсов, где нужна нормализация, а где денормализация

• MapReduce и Spark сравнить их верхнеуровнево
• Что такое Map, что такое Reduce

• Назвать концепции ООП и объяснить что они означают

• Что такое алгоритм и алгоритмическая сложность?
• Как отсортировать массив размером 32 ГБ, если в оперативке 8ГБ


Задачи:

• Python
Задача 1
У нас есть два списка а и b, каждый длиной от 0 до 1000 включительно.
Требуется написать функцию, которая вернет список res, содержащий чередующиеся элементы [a1,b1,a2,b2,…], начиная с первого элемента первого списка.

Пример 1:
a = [1,7,3,5,8,3,4]
b = [5,6,7]
res = [1,5,7,6,3,7,5,8,3,4]

Задача 2
Написать функцию, которая находит самый длинный палиндром в списке чисел.
Если таких несколько, возвращаем все. Если самый большой палиндром имеет длину 2 и меньше,то возвращаем -1.

Пример 1
Вход: [3,4,2,1,6,7,8,7,6]
Выход: [6,7,8,7,6]

Пример 2
Вход: [1,2,2,3,4,5]
Выход: -1



• SQL

Имеем таблицу транзакций transactions следующего вида:

id_tr | id_client | date_time | status
1 | 1 |2025-01-01 12:34:56 | Success
2 | 1 |2025-01-02 01:23:45 | Failed
3 | 2 |2025-01-01 10:23:54 | Success
...
123 | 12 |2025-01-01 11:24:55 | Success

Примечание: Пары id_client, date_time - уникальные, т.е. у клиента не может быть 2 и более транзакции в одну дату/время

1.1 Посчитать общее количество транзакций за последние 7 дней
1.2 Посчитать долю успешных транзакций за последние 30 дней
1.3 Посчитать количество клиентов, ушедших в отток

*Определение оттока: у клиента не менее 1 транзакции в период [t-90,t-30), и ни одной транзакции в период [t-30,t]
t - сегодня


Как вам собес?🤔
Мне кажется, достаточно сложный.

it пингвин | data engineer 🐧
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥1996👍4🫡32
Может это не синдром, а ты и правда самозванец.
#МыслиВслух
😭41😁173👍3🔥1😱1😢1
С началом рабочей недели!

Друзья, хочу вам рассказать о новом канале DB developers channel

Мне поступило интересное предложение стать дружественными каналами и обменяться ссылками для взаимной поддержки. Я с огромным энтузиазмом поддержу эту инициативу, ведь такие шаги помогают укреплять связи и делиться ценными знаниями в нашей области!🫡
На канале делятся "интересными задачами, примерами, обсуждениями без воды".
Автор выделяется своей адекватностью, балансируя глубокие знания с практическими советами, всегда оставаясь надежным и уравновешенным профессионалом.

По классике, я бы привел в пример несколько его интересных постов, но к сожалению, у меня перестал открываться его канал 😭
Можете сами зайти убедиться в качестве контента и поставить положительные реакции!

Поддержим начинающего блогера!
Подписываемся!
🤣44🙈6😁5🤡3💅3👍1
Как вы знаете, я уволился из банка (это был РСХБ) и перед уходом поговорил с начальником по душам. Он меня понял и был согласен, что мне лучше уволиться. Я начал сильно тонуть в бюрократии и он тоже побоялся, что в банке огонь в глазах может потухнуть.
После разговора, я спокойно отработал 2 недели и наконец-то без какого-либо угрызения совести уволился.

Еще мне очень понравилась его аналогия, что дата инженеры в it - это грузчики. Просто занимаешься перекладкой данных с одного места в другое. Забавно 😁
😁47🔥1573👍3
Сколько часов в день ты работаешь?
Anonymous Poll
8%
1-2
16%
3-4
16%
5-6
24%
7-8
14%
8-10
5%
10-12
4%
12+
14%
весь день чилю 🦦
🤣2
29 сентября новый поток программы Data Engineer от New Professions Lab

🔴ВАЖНОЕ обращение!

Ко мне пришли ребята из New Professions Lab. *Я о них получал хорошие отзывы и даже на канале как-то выкладывал их материалы.
Изначально было предложение - просто сделать рекламу нового потока (это 17-ый поток 😱). Но я предложил другой формат:

Я буду сам проходить этот курс от начала и до конца и делать посты с обзорами материала.
Мне очень понравилась их программа и самому полезно будет пройти курс. Например, у меня есть темы, в которых я слаб - на новой работе сейчас много dbt, скоро начну работать с nifi и в ближайшем будущем будет flink, знания по докеру и куберу тоже нужно подтянуть.
Я сам по себе самоучка и надеюсь закрою пробелы в знаниях. Заранее с New Professions Lab обговорили, что обзор буду делать честный, критика тоже возможна.
Постараюсь оценивать со стороны новичка и со стороны инженера с опытом.

Это будет мой первый настоящий курс, который я пройду. Я закладываю время на обучение, как указано, в рекомендации ~ 15 часов в неделю.

Так что, друзья, предупреждаю - в ближайшее несколько месяцев периодически будут посты с обзором программы. Следите за новостями и делитесь мнением. Ну и залетайте со мной на курс😁🤝


Формат: 10 недель (29 сент - 5 дек)| 30 занятий в Zoom | 8 практических лаб в облачном кластере | Поддержка менторов

Обучение подойдет junior- и middle- дата-инженерам, аналитикам данных, бэкенд-разработчикам, техлидам и менеджерам, работающим с дата-командой.

Программа систематизирует твои знания, даст практический опыт работы с Apache Spark, Kafka и другими продвинутыми инструментами, что ускорит твой рост до уровня Senior Data Engineer.

Что конкретно прокачаешь:
System Design - проектирование архитектуры для высоконагруженных проектов
Современный стек - Airflow (оркестрация), Kafka (стриминг), ClickHouse (аналитика)
Масштабируемость - пайплайны, которые устойчивы к росту данных и нагрузки

Понравилась их цитата:
Эта программа – глубокое погружение в практику. Наша цель — научить вас решать задачи из реальной жизни, а не покрыть список тем. Теория — это инструмент, необходимый для решения задач, а не самоцель


🎯 Пройдите интерактивный квиз и получите рекомендации о пользе программы в зависимости от вашей роли + персональный промокод от пингвина со скидкой 16%
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8👍3🤣2💅21😱1🙈1
Кто разбирается в сборке пк, подскажите норм видюха? Киберпанк на максималках потянет?🤔
Please open Telegram to view this post
VIEW IN TELEGRAM
😁19😱5🤣3🔥21😭11
Начисление зп😱😱😱
Как я мог это пропустить..
😁42🔥66🤣3😱2😭2
Обзор собеседования

Должность: Data Engineer
Компания: Сбер для экспертов
Тип собеса:#тех_собес #livecoding
Грейд: #middle #senior
Вилка: 350к
Вакансия: https://hh.ru/vacancy/118243077

Краткий обзор собеседования:
• Как устроен hadoop, компоненты его?
• В чем основная суть YARN?
• Заменим ли YARN?
• В чем преимущество YARN перед Кубером?
• Из каких компонентов состоит YARN?
• Как выделяются ресурсы в YARN?
• Как устроено и зачем нужно кэширование в SPARK?
• Какие ограничения есть у UDF функций?

• Для чего нужны CTE?
• В чем разница между Delete и Trancate, DROP?
• Как устроено шардирование?
• Виды ключей?

• Разница между мультипроцессорностью и мультипоточностью?
• Изменяемые и неизменяемые типы данных?
• Что такое декоратор?
• Можно ли закидывать в декоратор элементы?

#предложка

Как вам собесик? Вроде несложный🤔
Особенно вопросы по sql и python, чисто самые популярные.

*у кого есть обзоры собесов, пишите в личку🙏

it пингвин | data engineer 🐧
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥175👍4🤷‍♂1😭11
СБЕР сокращает Айтишников 😱

Друзья, может кто-то не видел инфу и кому-то она поможет.
Источник - https://news.1rj.ru/str/cyberfreek/18046
Please open Telegram to view this post
VIEW IN TELEGRAM
😱9🔥6🤣2😁1
Редфлаг 🚩

Как-то я устроился в новую компанию.. Подключаюсь на первый статус.
У руководителя включен микрофон и он ест. Сидит и чавкает🥲
Ок, бывает, ничего страшного.
Самое херовое, что нас на созвоне сидит человек 15 и все молчат. Руководитель чавкает 5 минут и сотрудники боятся сказать или им похер, что включен микрофон.
Позже эта ситуация часто повторялась.

пум-пум-пум..

Вроде это мелочь, но вот уже много времени прошло. А я это до сих помню😅
Для меня это был первый звоночек, позже было еще очень много странностей. И больше полу года я там не проработал.

А какие у вас были стремные/странные ситуации на работе. Или может на собесе?))🤔⬇️
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣26😁76🔥2😭2👍1💅11
Изоляция

На этой недели добиваем серию постов про A C I D

🔤Isolation (изоляция) гарантирует, что одновременно выполняемые транзакции не будут мешать промежуточным состояниям друг друга.

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

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

Аномалии параллелизма

Чтобы понять, как работает изоляция, полезно рассмотреть, что может пойти не так без надлежащей изоляции. К распространённым аномалиям параллелизма относятся:

1. Dirty Read (грязное чтение)

• Транзакция A считывает данные, которые транзакция B изменила, но еще не зафиксировала.

• Если транзакция B затем откатывается, транзакция A в конечном итоге содержит недействительное или «грязное» значение, которое на самом деле никогда не существовало в зафиксированном состоянии.

2. Non-Repeatable Read (неповторяемое чтение)

• Транзакция A считывает одни и те же строки несколько раз во время своего выполнения, но видит разные данные, поскольку другая транзакция обновила или удалила эти строки между чтениями A.

3. Phantom Read (фантомное чтение)

• Транзакция A выполняет запрос, возвращающий набор строк. Другая транзакция вставляет, обновляет или удаляет строки, соответствующие условиям запроса A.

• Если A повторно выполнит тот же запрос, он увидит другой набор строк («фантомов»).

Уровни изоляции

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

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

Давайте рассмотрим четыре распространенных уровня изоляции:

1. Read Uncommitted

• Позволяет выполнять «грязное» чтение; транзакции могут видеть незафиксированные изменения.

• Используется редко, так как может привести к серьезным аномалиям.

2. Read Committed

• Транзакция видит только те данные, которые были зафиксированы на момент чтения.

• Предотвращает «грязное» чтение, но неповторяющиеся чтения и фантомные чтения все еще могут возникать.


3. Repeatable Read

• Гарантирует, что при многократном чтении одних и тех же строк в рамках транзакции вы получите одни и те же значения.

• Предотвращает грязное чтение и неповторяющееся чтение, но фантомное чтение все равно может происходить (в зависимости от ядра базы данных).


4. Serializable

• Самый высокий уровень изоляции, при котором все транзакции происходят последовательно, по одной за раз.

• Предотвращает грязное чтение, неповторяющееся чтение и фантомное чтение.

• Самый затратный с точки зрения производительности и параллелизма вариант, поскольку может потребовать больше блокировок или проверок конфликтов.


Как базы данных обеспечивают изоляцию

1. Блокировка
• Пессимистический контроль параллелизма

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

2. MVCC (управление многоверсионным параллелизмом)

• Оптимистическое управление параллелизмом

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

3. Изоляция моментального снимка

• Форма MVCC, при которой каждая транзакция видит данные такими, какими они были в начале (или в определенной точке) транзакции.
• Предотвращает неповторяющиеся и «грязные» чтения. Фантомные чтения могут возникать, если уровень изоляции не является полностью сериализуемым.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1366🤔2😭2🔥11
This media is not supported in your browser
VIEW IN TELEGRAM
Работа в хранилище банка🥲:
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣22😁10👍52🔥2💅2😭1
Поздравляю с окончанием рабочей недели!

Хорошенько потрудились, а теперь можно и нужно хорошенько отдохнуть!🥳
Или нужно выполнить все дела, которые не успеваешь в будние дни..? 😔

Рассказывайте как вы проводите выходные ⬇️

🍾- полный чилл
😭 - выполнение кучи домашних дел..
Please open Telegram to view this post
VIEW IN TELEGRAM
40🍾248😭2💅2