TGViewer
Channel Public Channel
Аналитический джаз

Аналитический джаз

@jazzlitics

Моя личка для любых вопросов: @AnnaDenis

ex-Head of Analytics, ex-netmonet, Avito, Ozon. Сейчас работаю на американскую компанию Nim. 7+ лет опыта в product и data-аналитике, за 2 года выросла с джуна до лида. Веду курсы, консультации и менторство :)
Subscribers
2.96K
Photos
314
Videos
5
Links
63
Recent Posts 11 shown
Post #393 874
✈️ Почему я решила переезжать? ✈️

Продолжу пока выходные свой рассказ про релокацию, а дальше уже буду накидывать снова полезности ❤️

Сразу дам дисклеймер - срачей про политос не будет, у меня все гораздо более прозаично)


🤖 Меня сильно парят технические ограничения

У россиян в среднем нет доступа к нейронкам вроде Claude / ChatGPT без впн, а даже если доступ есть, то для оплаты нужна иностранная карта. И в моих глазах это прям БЕДА 😭

Я смотрела разницу в перфомансе между DeepSeek и Claude Opus, и это небо и земля. Мы сейчас для джаза пилим курс по нейронкам (ждите анонса!), и отдельным модулем будем записывать, как обходить все эти ограничения, чтобы получить доступ к лучшим инструментам 💪

Но сам факт, что этим приходится заниматься - это не ок... 🙃

У меня есть 3 VPN'а, 4 иностранных карты, 3 иностранных симки и 5 разных нейронок, которые я регулярно использую! 😬

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

И мне не нравится жонглировать ими, чтобы получить доступ к какому-то сервису, к которому любой человек вне РФ подключится за секунды. Это сильно меня выматывает и съедает много личного времени 🌧

А что еще хуже - с каждым годом это усиливает технологический разрыв, потому что маленькие компании в РФ тупо живут без ИИ, чтобы не париться с доступами.

Для вас-то мы, конечно, это решим нашим опупенным курсом, но сама ситуация не айс 🤑😘


💰 Я хочу зафиксировать зарплату в иностранной валюте

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

И дополнительно у меня нет каких-то простых инструментов защиты вроде инвестиций в S&P 500, как сейчас делают многие мои друзья за рубежом 🤩

Даже с экономическим образованием, я тот еще мамкин инвестор, и мои способы защиты от инфляции довольно сомнительные.

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


🇪🇺 Я хочу создать свою историю за рубежом

Возможно, я стану дядюшкой Скруджем через 3-5 лет, но это довольно маловероятный сценарий 💰

А это значит, что мне скорее всего придется брать ипотеку 🤓 И есть инфа, что это сильно проще делать с зарплатной историей.

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

И так как я в принципе рассматриваю ЕС как вариант для ПМЖ, чем раньше я займусь созданием своей истории там, тем лучше.


😎 Я хочу стать круче как ментор

Я стараюсь постоянно расширять свой кругозор, смотреть, как работают разные команды на рынке, добавлять наш курс какие-то новые практики и учить менти не просто искать работу, а становиться крутыми аналитиками 🥰

И я думаю, что все или почти все, кто со мной работали, могут это подтвердить 🤩

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


🌐 Я хочу иметь время на поиск локации, если решу ехать на ПМЖ

Я сейчас живу в Москве, и Москва - топ по очень многим показателям. И чтобы вообще думать о том, что выбрать в качестве альтернативы, нужна насмотренность 👀

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

Попал мужик в рай. Ходит там: тишина, благодать, ангелы, но скукотища — делать совершенно нечего. Приезжает в ад, а там — музыка, казино, красивые женщины и сплошной праздник.

Приходит мужик к Богу: «Господи, а переведи меня в ад!» Бог попытался отговорить, но делать нечего — подписал перевод.

Прибывает мужик в ад, а черти его на сковородку! Мужик орет от боли: «Вы чего?! Где музыка, пиво, девчонки?!» А чёрт ухмыляется: «Эй, гражданин, не путай туризм с эмиграцией!»


Ставим 🔥🔥🔥за прекрасную юмореску, и готова ответить на любые вопросы ✈️
  • 🔥 74
  • ❤‍🔥 7
  • ❤ 4
  • 😁 3
  • 😈 1
  • 🙊 1
Post #392 1.13K
🇪🇺 Про поиск работы в Европе 🇪🇺

Мы с МЧ еще в марте стали активно думать о релокации, и этот процесс окончательно подходит к концу в октябре. Куда меня жизнь занесет дальше - тема для отдельных постов, пока оставлю это в тайне ✈️

А пока мы с нашей красоткой хр решаем, завершаю ли я работу в эту пятницу или в следующую, поделюсь с вами моими заметками о поиске работы 🤩


➡️ Рынок жив!

Сейчас вообще много паники на тему того, что работы нет, но если вы Middle+, да и тем более Senior+, то вакансий в Европе для вас будет много.

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


➡️ LinkedIn и связь с HR - это работа вдолгую

2/4 кор компаний, которые мне интересны, вернулись ко мне сами по старым заявкам. Ко мне пришел Revolut, у которого не было в прошлый раз Lead+ позиций, и я была приятно удивлена, что они меня не потеряли ❤️

И ко мне пришел Playrix, которым я раньше не подходила по профилю, но у них нашлось для меня предложение в сентябре 💪

С обоими компании мы в прошлый раз разошлись на HR-этапе, но договорились остаться на связи, и я была очень рада, что все рекрутеры помнят, это прям в сердечко 🔥👍

Остальные 2/4 кор компаний пришли с LinkedIn как закрытые вакансии от рекрутеров. Сама я тоже откликалась, но варианты для открытого отклика были сильно менее интересные, чем теплый аутрич.

Кстати, все интересные заявки пришли в августе или позже. До этого с мая сезонно LinkedIn, как и HH, были мертвые.


➡️ Техничка << Бизнес

Я вообще для тонуса и понимания рынка часто прохожу различные собесы (и на РФ, и на зарубежку), и этот заход в Европу в очередной раз напомнил мне, насколько же их собесы приятнее, чем в России 🥰

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


➡️ Очень приятные интервьюеры

Вообще это рандом, но мне со всеми интервьюерами очень повезло. Действительно было видно, что ребята хотят, чтобы этот процесс и для меня, и для них прошел комфортно, и это прям  🔥🔥🔥

Перед каждым этапом подробно говорят, к чему готовиться, есть возможность созвониться с HR ненадолго для уточнений - суперкайф


➡️ Появилась тема с Assessment Day

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

И для меня это был один из самых стрессовых собесов в жизни 😭

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

Я слышала про похожий формат в bol, но именно в формате AD столкнулась впервые.


➡️ Очень важно с ходу уточнять возможности релока

Первый подход к релокации мы делали в апреле-мае и смотрели вакансии в UK, и часть компаний не готова перевозить специалистов, особенно без опыта работы в UK.

В Европе с релоком сильно проще, но многие компании перевозят через испанского номада. Вы начинаете работать в Армении/Грузии, и только через 2-3 месяца перебираетесь в Испанию как цифровой кочевник.

Учитывайте это, особенно если вы с животными!!


➡️ Всегда делайте корректировку зп на уровень жизни и часы работы

Ваша зарплата - это не 100к / мес, а 100к / 160 часов. Поэтому если вы идете в компанию, где перерабатывают, учитывайте, что ваша зарплата в час может и упасть 🤓

Помимо этого, в городах вроде Амстердама и Лондона стоимость жизни выше, поэтому всегда меряйте это не просто в рублях, а в каких-нибудь местных чизбургерах после аренды. Так честнее 🍔

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

Поэтому давайте так - жду ваших 🔥🔥🔥 + отвечу на любые ваши вопросы 🦄

🦄 - Почему хочешь переезжать?
❤️ - Почему решила увольняться?
👍 - Как сейчас обстановка на рынке РФ?
🔥 - Побольше про Assessment Day и аналогичные форматы
🍾 - Про зарплату в час и как ее увеличивать
  • 🦄 51
  • ❤ 40
  • 👍 36
  • 🔥 25
  • 🍾 22
  • 🎄 1
Post #391 1.46K
Разбор задачек с собеседований vol. 12 🍏

Сегодня у нас бородатая статистика, но я не я, если упущу такой разбор 🐙

На консультациях я часто отсылаю к задачке про осьминога Пауля, чтобы напомнить ребятам про то, как работают бернулли + биномиальное и p-value. Настало время сделать под это свой материал ❤️

Задачка мега-старая, с интервью в Avito 🛍 Она была даже у меня на собесе (а это 2022!). Условие:

Осьминог Пауль делает прогнозы на футбольные матчи. Из n матчей он угадал победителя k раз (для определенности - 14 из 15). Какова вероятность, что результат неслучайный?



🍍 Первым делом переводим "случайность" на язык статистики

Тут ключевое - узнать в условии проверку гипотез:

➡️ H₀ (нулевая): Пауль предсказывает наугад. Тогда каждый матч - честная монетка, вероятность угадать p = 0.5.
➡️ H₁ (альтернативная): у Пауля дар, он угадывает лучше, чем 50/50, а p > 0.5.

По умолчанию мы "верим" в H₀ (это просто везение) и пытаемся понять: достаточно ли данных, чтобы ее отвергнуть.


🍍 Почему тест односторонний?

Для "сверхспособности угадывать" логичен именно односторонний тест (p > 0.5). Потому что нас интересует движение параметра p именно в (+). Лучше этот момент сразу проговорить вслух 😎


🍍 Какое распределение будем использовать?

Смотрим на структуру задачи. У нас есть:

✔️ n независимых испытаний (матчей)
✔️ каждое с двумя исходами (угадал / не угадал)
✔️ вероятность успеха в каждом одна и та же (при H₀ это p = 0.5)

Количество угаданных Паулем матчей - по сути, "сумма успехов в схеме Бернулли". Это по определению Биномиальное (см. нашу шпаргалку по Бернулли и Биномиальному).

Поэтому число угаданных матчей X при верной H₀ распределено как X ~ Binomial(n, p), где n=15, а p=0.5.

Вероятность угадать ровно k из n:

P(X = k) = C(n, k) · 0.5ⁿ

Класс, довели до биномиального, это уже половина ответа ✌️


🍍 Как мы можем отвергнуть H₀ ?

Мы можем посчитать p-value! p-value по определению - это вероятность получить наше значение или более критическое при условии что нулевая гипотеза верна.

И для этого у нас все есть! Мы знаем, что P(X = k) = C(n, k) · 0.5ⁿ, и n=15. Нам надо посчитать:

P(X = 14) + P(X = 15) = (C(15, 14) + C(15, 15)) · 0.5¹⁵ = (15 + 1) · 0.5¹⁵ ≈ 0.000488

- А что с альфочкой?

❗️ p-value не используется в абстракции, мы сравниваем его с альфой, и после этого делаем вывод о том, следует ли отвергать нулевую гипотезу.

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


🍍 "А сами-то вы в это верите?"

Это стандартный вопрос, который шел после кейса. Ну и тут логично, что намек на "нет" 🤓

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

➡️ p-value отвергает конкретную H₀, но не доказывает именно "сверхъестественный дар"

Осьминог мог тянуться к более яркой кормушке или флажкам, да и везение тут никто не отменял.

Маленькое p-value говорит "это не похоже на честную монетку", а не "это магия".

➡️ Это выброс из распределения осьминогов

Если по миру предсказывает много осьминожек, то у кого-то экстремальный результат случится просто по теории вероятностей.

Мы замечаем Пауля именно потому, что он угадал, а про тысячи неугадавших осьминогов никто не пишет - это ошибка выжившего 🐙

➡️ Надо проверять на бОльшей выборке

Гипотеза "осьминог нарушает физику и видит будущее" априори настолько маловероятна, что 15 матчей ее не перевесят.

———
Ну в общем все тлен, и в магию мы тут не верим. Зато повторили работу с гипотезами 🙃

Как обычно, жду ваших 🔥🔥🔥

Олды, колитесь, кто попадался на осьминога Пауля? Классика классик 🥰

———
Предыдущие выпуски:

vol. 2 | vol. 3 | vol. 4 | vol. 5 | vol. 6
vol. 7 | vol. 8 | vol. 9 | vol. 10 | vol. 11
  • 🔥 35
  • ❤ 9
  • 👍 3
  • 🦄 1
Post #390 1.39K
Правильный ответ, который может стоить вам собеса

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

Представьте, что вы долго готовились к собесу по статистике. Зубрили наизусть всю матчасть. Нарисовали несчастный график нулевой и альтернативной гипотезы...

И после этого готовые процентов на 70 (как это по-честному бывает у большинства 😭) пришли на собес. И у вас состоится следующий тарантиновский диалог 😏

- А вот как бы вы считали статзначимость для ratio-метрик?
- Ну вот бутстрап, линеаризация, дельта-метод!
- А что такое линеаризация?
- ...


А еще так бывает:

- А вот вы упомянули поправки, какие вы вообще поправки знаете?
- Ну вот Бонферони, BH!
- А в чем разница гипотез для них?
- ...


Или есть еще такие моменты:

➡️ В резюме написан регрессионный анализ, но кандидат не может ответить на базовый вопрос про регрессии

➡️ В резюме курсы по ML / sklearn, но кандидат не понимает основ и не знает, зачем fit/predict

➡️ Кандидат сказал, что оптимизировал SQL запросы, но не умеет работать с партициями и индексами

————————————————————————
🤔 Что же общего у этих моментов? 🤔
————————————————————————

❗️ Вас спрашивают по той теме, которую вы сами же затронули

Это гипер-важное правило собесов. Уверенно использовать какой-то термин, если вы не понимаете, в чем его смысл, - опасно! 😐

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

- Анька, ну как же, тогда ничего не отвечать?


Нет! У вас тут есть два путя ниндзя 😎


1️⃣ Вы сразу даете дисклеймер, что не работали с этими методами

➕ Душнила-собеседующий больше вас не мучает
➖ Вас могут оценить ниже по грейду

Тут лучше использовать формулировки формата:

• "Учил в универе, смогу вспомнить при случае, но сейчас не воспроизведу"

• "Изучал в качестве теории на курсах, но не приходилось использовать на практике, поэтому подробнее рассказать смогу только в общих чертах"

Короче делайте вид, что знаете. И желательно действительно знать хотя бы в общих чертах, если вы не хотите попасть на ➖. Я так делала с Бонферони и BH в свое время, полет нормальный ✈️


2️⃣ Вы не даете дисклеймер и надеятесь, что вас не спросят

➕ С вероятностью 75% чилл
➖ Если вас поймает собеседующий-душнила, может быть негатив

Ну тоже вариант, не осуждаю. Моя главная цель донести тут до вас, что

➡️ Каждый кандидат не знает хотя бы одну душную формулировку
➡️ С вероятностью ~1/4 у вас будет душный собеседующий, который спросит все

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

Часто если вас один раз ловят на том, что вы говорите "умные слова", которые не знаете, то вас начинают проверять на каждом слове 🤓

Под самую жесткую раздачу на моей памяти попадает открытое вранье в резюме. Не то что вы приукрасили (это ок), а если вы прям не знаете метод, который сами же там написали. Так что аккуратнее с этим ❤️


🍍 Дополнительный совет

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

• то, что ожидается от вашего направления + грейда
• ИЛИ что-то дополнительное

Если идут вопросы про ML, хотя это не предполагается в вакансии, выворачивайте это в вашу пользу!

Говорите, что это не вы "не знаете" или "недоучили", а это вы проактивно, в свое личное не-рабочее время из глубокой любви к аналитике сели поучить основы ML 💪💪💪

Тогда, выбирая стратегию "дисклеймера сразу" вы не просто закроете на берегу все вопросы, но еще и покажете себя как проактивного и интересующегося товарища ❤️

TL;DR
• Все, что вы скажете, может быть использовано против вас
• => Аккуратнее с употреблением терминов, которые вы не знаете
• Если это вне основного скилл-сета - оборачивайте в вашу пользу
• Если это основной скилл-сет - выбирайте одну из двух стратегий выше


Что ж, кто еще попадался на душнил?

🔥 - Дааа, гоняли по терминам и в хвост и в гриву
❤️ - Не попадался на душнил, везет
👍 - Давно не бывал на собесах
  • 👍 17
  • ❤ 14
  • 🔥 14
Post #381 1.41K
Шпаргалка по EXISTS и NOT EXISTS

Какое-то время назад разбирала (NOT) EXISTS на лекции по SQL, и поняла, что штука многим незнакомая ❤️

Кроме того, синтаксис а-ля join on внутри where и коррелированные подзапросы многим ломают голову, и вникнуть становится трудно 😭

Поэтому !!

➡️ Показываю, как выглядит синтаксис и для каких задач это нужно

➡️ Показываю, как заменить (NOT) EXISTS на JOIN, чтобы не потеряться на собесе

➡️ Разбираю, в каком формате это вообще может вам попасться

Жду ваших 🔥🔥🔥

Тема сложная, но надеюсь, что смогла сделать для вас ее понимание чуть проще 🤩

Одна из главных мыслей поста

Не выучили / не знаете / не поняли / забыли NOT (EXISTS) - фигачьте джойны. Всегда можно придумать без них. Но на конкретных задачах с ними (экзистами) удобнее.
  • 🔥 25
  • ❤‍🔥 14
  • 👍 8
  • ❤ 3
  • 🦄 1
Post #380 1.87K
Топ-5 ошибок, чтобы завалить кейс-интервью

Сколько занимаюсь с людьми и провожу интервью сама, из раза в раз вижу одни и те же ошибки. Причем неважно, какой именно вы грейд - интерн или сеньор+, ошибки абсолютно одинаковые 🙃

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

Это системные пробелы в подходе, которые надо исправлять не только на кейс-интервью. И сейчас мы поймем, куда смотреть 💪


5️⃣ Нет шпаргалок

Где 🔫: кейсы, техничка

На собесах в компании (особенно! в РФ) любят задавать вопросы теоретического характера.

• Что делает эта оконная функция?
• Что такое ошибки 1 и 2 рода?
• Дайте определение доверительного интервала?

И я крайне рекомендую иметь набор чемпиона в виде 1-2 односторонних А4 под рукой с ответами на эти вопросы 😎

Что-нибудь такое, но под себя:

➡️ Для SQL - выписали синтаксис оконки
➡️ Для Python - пример группировки в pandas
➡️ Для тервера - распределения и ЦПТ
➡️ Для статистики - мощность, MDE, ошибки 1 и 2 рода
➡️ Для кейсов - потенциальные вопросы / структура ответа

Когда вы на стрессе (а это 80-90% кандидатов), вы не вспомните о том, что на стандартном кейсе "метрика упала" надо выстраивать структуру как мы делали тут. Лучше иметь это под рукой.


4️⃣ Кандидат не фиксирует что говорит

Где 🔫: тут именно кейсы

Это мое любимое, и я сама пару раз даже попадалась. Как словить этот баг:

- Вас просят "накидать гипотез" (или метрик)
- Вы радостно "накидываете" штук 10 подряд
- Потом вас просят выбрать что-то, во что вы больше верите
- А вы ни одну из 10 не записали и ничего не помните


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


3️⃣ Нет подготовки под компанию

Где 🔫: все этапы

Подробно про это рассказывала здесь, так что напишу вкратце 🦝

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

Ее CJM. Ее бизнес-особенности. Ее структура маркетинга и продаж.

Потому что в кейсе вам с вероятностью 80/20 дадут что-то специфическое этой компании, и будет грустно, если вы не в контексте 🌧

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

❗️ Потому что вы не изучили, что для компании реально важно и как она функционирует

Так что если вы реально заинтересованы в позиции, я бы это не теряла.


2️⃣ Кандидат не задает вопросы

Где 🔫: все этапы

На курсе я начинаю одну из своих лекций по кейсам с того, что вот тот листочек А4 (про который мы говорили выше) должен начинаться с капса ЗАДАВАЙТЕ ВОПРОСЫ.

Когда я проходила кейс-интервью в Револют, они прислали памятку, что одна из вещей, которые они проверяют, - это Business Knowledge. Определяют они его так:

Business Knowledge: Умеете ли вы задавать правильные вопросы и добираться до самой сути потребностей бизнеса?


❗️ Вопросы - это часть задания. Не упускайте ее.

Почему это и про другие этапы: обычно не задавать вопросы =
• или кандидат жеска стрессует,
• или он думает, что и сам все знает,
• или ему неинтересно, и он на всех этапах не будет задавать вопросы

Ни один пункт не в вашу пользу.


1️⃣ Отсутствие структуры ответа

Где 🔫: все этапы

Многие ставят на топ-1 отсутствие вопросов, но про это уже настолько отовсюду трындят, что кандидаты учатся (красавчики!) 😘

Поэтому на топ-1 ставлю именно структуру. Бывает, кандидаты задают вопросы, но в остальном ведут словоблудие = вы уходите то в одну сторону, то в другую, водя за собой интервьюера и задавая то вопросы по теме, то не по теме.

❗️Перед ответом очень важно выписать ваши мысли на листочек и структурировать

Попросите время на подумать, структурируйте метрики, идеи и гипотезы и только потом стартуйте. Брать время на подумать - нормально!! Зато так вы глазами на листочке увидите, если что-то упустили ✌️

Иначе вы скорее пытаетесь "угадать ответ", а не подойти к решению системно.

———
Соцопрос ❤️
За свою практику собесов допускал(а):

🦄 - 0-1 ошибку
❤️ - 2-3 ошибки
👍 - 4-5 ошибок
  • 👍 31
  • ❤ 14
  • 🔥 5
  • 🦄 3
Post #378 1.69K
Выступила на концерте!!

Вообще я уже больше года занимаюсь вокалом, но в плане того чтобы выложить я довольно стесняшка ❤️

Так что, как говорится, не судите строго. Хочу поделиться с вами немного личной жизнью. Не все ж только аналитику постить)

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

Результатом я довольна, но еще, конечно, работать и работать 😎
  • ❤‍🔥 53
  • ❤ 19
  • 🔥 17
  • 👍 9
  • 😁 1
Post #377 1.69K
Разбор задачек с собеседований vol. 11 🍏

Сегодня у нас SQL с интервью в Revolut ❤️ Мне эту задачку зарепортили уже три человека, так что все для вас - свежак с полей 🌾

Схема БД большая, целых три таблицы, поэтому я упаковала ее в картинку (см комменты). Но сразу оговорюсь про главный подвох!!

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


Условие:

Найти пользователей, у которых суммарный объем транзакций по продукту CRYPTO составил не меньше £100 за первые 7 дней с момента регистрации.


По классике - внимательно читаем условие и вылавливаем связки. Нам надо понять, что от нас хотят и через какие таблицы это тащить.

Мы хотим найти:
• Инфу по продукту CRYPTO
• Инфу по сумме и дате транзакций
• Инфу по дате регистрации пользователя


➡️ Связка 1: Где вообще живет CRYPTO и сам факт покупки?

users знает только кто и когда зарегался. Факт "пользователь что-то сделал с продуктом CRYPTO" лежит в activity (там есть product и type). А покупка это type = 'CONVERSION' (см. описание).

То есть маршрут начинается так: users → activity (фильтруем product = 'CRYPTO' и type = 'CONVERSION').


➡️ Связка 2: Где сумма транзакции?

В activity суммы нет. Но у строки с CONVERSION есть transaction_id, который ведет в transactions, а вот там уже amount_gbp. Значит, тянем дальше: activity → transactions по transaction_id.

Тут, кстати, надо спросить у проверяющего, какие транзакции нас интересуют:
• IN/OUT?
• COMPLETED/DECLINED?

Базовый ответ с собеседования - интересуют и IN, и OUT, но нужно фильтровать по COMPLETED.


➡️ Связка 3: "за первые 7 дней с регистрации"

Первые 7 дней отсчитываются от users.created_date (дата регистрации), а сама транзакция это transactions.created_date. Мы так и вели это от таблички users к табличке transactions, так что ничего не потеряли.


🔥 Решение


SELECT
a.user_id,
SUM(CASE WHEN c.created_date >= a.created_date
AND c.created_date::date <= a.created_date::date + 7
THEN c.amount_gbp ELSE 0 END) AS amount_first_7_days
FROM users a
JOIN activity b
ON a.user_id = b.user_id
AND b.type = 'CONVERSION'
AND b.product = 'CRYPTO'
JOIN transactions c
ON b.transaction_id = c.transaction_id
AND c.state = 'COMPLETED'
GROUP BY a.user_id
HAVING SUM(CASE WHEN c.created_date >= a.created_date
AND c.created_date::date <= a.created_date::date + 7
THEN c.amount_gbp ELSE 0 END) >= 100;


1️⃣ Почему везде JOIN, а не LEFT JOIN?

Нас интересуют ТОЛЬКО пользователи, реально совершившие крипто-покупку на £100+. Если у пользователя нет ни одной CONVERSION-активности по CRYPTO - он нам не нужен. Если у активности нет успешной транзакции - она тоже не должна попадать в сумму.


2️⃣ Почему фильтры в ON, а не в WHERE?

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


3️⃣ Пара мелочей касательно дат

• ::date - это приведение к дате (обрезаем время). Нужно, чтобы 7 дней считались по календарным дням, а не по точным timestamp с часами и минутами. Иначе транзакция на 7-й день, но парой часов позже момента регистрации, могла бы не попасть.

• Всегда проговаривайте с собеседующим, "первые 7 дней" - это включительно или нет, иначе есть риск ошибиться на единицу


————
Ну шо, колитесь, смогли бы сориентироваться, если бы не было схемы? 🤑

По стандарту - жду ваших 🔥🔥🔥
Это греет мне душу, когда я пишу новые разборы 😘

Предыдущие выпуски:

vol. 1 | vol. 2 | vol. 3 | vol. 4 | vol. 5
vol. 6 | vol. 7 | vol. 8 | vol. 9 | vol. 10
  • 🔥 29
  • ❤‍🔥 18
  • ❤ 2
  • 👍 1
  • 🤔 1
Post #376 1.55K
Автор немного приболел…

… но я уже готовлю для вас новый пост и видос 🎧

А пока держите фотку красивого шабаки, чтобы вы не скучали тут без меня 🥰
  • ❤ 38
  • 🔥 13
  • ❤‍🔥 7
  • 💔 5
Post #375 2.03K
Лайфхак по поиску валютной удаленки

Нам с Алишером на вебе задали вопрос, который, на мой взгляд, достоин отдельного поста. А именно - есть ли у нас какие-то советы по поиску валютной удаленки? 💪

И у меня, на самом деле, есть небольшой лайфхак по этой теме, которым я советую пользоваться тем, кто ищет себе валютную удаленку ❤️

Лайфхак очень простой, но очень эффективный. Следите за руками 👐

Если вы хотите работать на валютной удаленке, у вас есть два путя - EoR (считай, пропал 🔫) и CoR (считай женился 💍 кто не знает - гуглите анекдот 🤓)

➡️ EoR (Employee of Record) проще всего нашему русскому человеку интерпретировать как трудоустройство по ТК, а

➡️ CoR (Contractor of Record) - как ГПХ или, если еще точнее, работу как ИП.

На EoR вас обычно берут, когда вы приезжаете работать on-site и если вам надо оформить рабочую визу. Без официального трудоустройства на вас не будут всерьез смотреть в визовом центре.

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

Если вы хотите перебраться в ЕС (Испания / Португалия) или другие страны, которые поддерживают программу - CoR вам ок 🇪🇸🇵🇹

Для компаний есть риски, если они имеют больше CoR сотрудников, чем EoR. Так как это отражает "скрытую трудовую занятость". В России работа с ИП, который на самом деле "скрытый трудоустроенный", - это уход от налогов. И за рубежом это не исключение. Поэтому CoR вакансий не то чтобы жопой жуй, но (!)

➡️ Их все еще очень много
➡️ Для сотрудника рисков нет
➡️ И у нас есть связанный с этим лайфхак

Теперь, когда мы прошли всю матчасть, к лайфхаку 😘

Если вы CoR, вам скорее всего будут платить не напрямую с карты на карту или черным налом. Вам будут платить через специальный сервис - deel, kleos, 4dev или аналогичные.

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

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

Ставим 🔥🔥🔥, если было полезно

И смотрим другие классные советы на нашем вебе и YouTube канале 📺
  • 🔥 42
  • ❤ 10
  • ❤‍🔥 3
  • 🦄 2
Post #374 1.58K
КАК БЫТЬ ВОСТРЕБОВАННЫМ В РФ И ЗА РУБЕЖОМ

Наш вебинар уже доступен на YouTube!! ❤️

Теперь вы можете послушать крутейшие советы Алишера в записи, а также узнать про его проекты и как можно с нами поработать 💪

Напоминаю, что если вы хотите получить подарок вебинара, то вам нужно написать @kusmalina до вечера субботы и ответить на вопрос про эфир. Иначе карета превратится в тыкву!

📱 Смотреть на YouTube
  • ❤‍🔥 11
  • ❤ 4
  • 🔥 4
  • 🥰 2
Older posts →

About this channel

How can I read @jazzlitics without a Telegram account?
TGViewer shows the public web preview Telegram publishes for Аналитический джаз: recent posts, photos, videos and the subscriber count, with no app, login or account.
How many subscribers does Аналитический джаз have?
Аналитический джаз (@jazzlitics) has 2.96K subscribers on Telegram, refreshed roughly every 30 minutes.
Does Аналитический джаз know I viewed it here?
No. Public channel previews carry no viewer identity, and TGViewer has no accounts or tracking of what you look up.
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →