Немного фоточек (и видечек) из велотрипов)
🔥27❤4👍3
Повысили зарплату. Потом догнали и ещё повысили.
Сначала немного экономического контекста. Инфляция в 2022 году в Швеции 8.4%, что много по сравнению с бывшими на протяжении двадцати лет 0-2% (не считая 21 года). Валюта упала на ~10% к евро. В общем, экономический фон грустный, впрочем, как и в большинстве стран неподалёку. Чтобы не разгонять инфляцию, профсоюзы договорились о рекомендуемой индексации зарплаты на 4% в этом и 3% — в следующем году. Эх.
В прошлом году я вовсе не рассчитывал на инексацию — ведь я присоединился к компании только в августе. Известие об индексации на 8% было приятным сюрпризом, ведь я не не ожидал её от слова совсем 🙂
В этом году напротив я очень ждал этого момента — ведь я проработал уже полный год, сильно прокачался, собрал хорошую обратную связь от коллег и руководителей. И... «Поздравляю Иван, 6%, ты счастлив?». Ну как бы вам сказать...
Раньше я всегда соглашался с тем, что дают, даже если озвученное меня расстраивало. Проблема только в том, что потом внутреннее недовольство, как далеко его не запихивай, нагоняло, съедало мотивацию, энергию, довольство компанией, и я сначала мысленно, а потом и физически уходил в другую.
Но с Фишбрейном у меня впервые была ситауция, когда мне настолько нравится работа в компании, что я решил переступить свою невротическую скромность и дерзнуть. Тем более, что я был уверен в своём профессионализме и в том, что рынок предлагает больше. И что немаловажно, я подготовился к разговору: подумал, какая сумма меня устроит, какая нет, и что я буду делать, если не получу желаемого.
Я прямо ответил, что я расстроен увеличением. Продолжил с хорошего: что мне очень нравится работать в компании, её культура, моя роль, менеджеры, коллеги и что единственное, что меня расстраивает — это зарплата, и очень не хотелось бы однажды уйти из компании только из-за неё. Затем зашёл со стороны компании, ведь для неё это тоже нерационально, мы оба знаем, как тяжело найти хорошего специалиста, что нанять его займёт полгода, затем минимум полгода он будет выходить на нормальную производительность. И что в итоге ему заплатят рыночную зарплату, которую я и просил, но время будет потеряно! Сказал про рынок, предлагающий больше и мои навыки и ценность, увеличившуюся за прошедший год.
И получилось! Нет, я не получил столько, сколько просил, но по крайней мере 6% превратились в 10%, и это уже была приемлемая для меня сумма. Но самое приятное — что я смог наконец прямо и экологично скоммуницировать своё недовольство, и что оно было услышано. И в этом, конечно, большая заслуга Фишбрейн: я доверяю людям здесь и чувствую, что меня слушают и слышат.
Надеюсь, в следующем году будет больше 😀️️️️️️
Сначала немного экономического контекста. Инфляция в 2022 году в Швеции 8.4%, что много по сравнению с бывшими на протяжении двадцати лет 0-2% (не считая 21 года). Валюта упала на ~10% к евро. В общем, экономический фон грустный, впрочем, как и в большинстве стран неподалёку. Чтобы не разгонять инфляцию, профсоюзы договорились о рекомендуемой индексации зарплаты на 4% в этом и 3% — в следующем году. Эх.
В прошлом году я вовсе не рассчитывал на инексацию — ведь я присоединился к компании только в августе. Известие об индексации на 8% было приятным сюрпризом, ведь я не не ожидал её от слова совсем 🙂
В этом году напротив я очень ждал этого момента — ведь я проработал уже полный год, сильно прокачался, собрал хорошую обратную связь от коллег и руководителей. И... «Поздравляю Иван, 6%, ты счастлив?». Ну как бы вам сказать...
Раньше я всегда соглашался с тем, что дают, даже если озвученное меня расстраивало. Проблема только в том, что потом внутреннее недовольство, как далеко его не запихивай, нагоняло, съедало мотивацию, энергию, довольство компанией, и я сначала мысленно, а потом и физически уходил в другую.
Но с Фишбрейном у меня впервые была ситауция, когда мне настолько нравится работа в компании, что я решил переступить свою невротическую скромность и дерзнуть. Тем более, что я был уверен в своём профессионализме и в том, что рынок предлагает больше. И что немаловажно, я подготовился к разговору: подумал, какая сумма меня устроит, какая нет, и что я буду делать, если не получу желаемого.
Я прямо ответил, что я расстроен увеличением. Продолжил с хорошего: что мне очень нравится работать в компании, её культура, моя роль, менеджеры, коллеги и что единственное, что меня расстраивает — это зарплата, и очень не хотелось бы однажды уйти из компании только из-за неё. Затем зашёл со стороны компании, ведь для неё это тоже нерационально, мы оба знаем, как тяжело найти хорошего специалиста, что нанять его займёт полгода, затем минимум полгода он будет выходить на нормальную производительность. И что в итоге ему заплатят рыночную зарплату, которую я и просил, но время будет потеряно! Сказал про рынок, предлагающий больше и мои навыки и ценность, увеличившуюся за прошедший год.
И получилось! Нет, я не получил столько, сколько просил, но по крайней мере 6% превратились в 10%, и это уже была приемлемая для меня сумма. Но самое приятное — что я смог наконец прямо и экологично скоммуницировать своё недовольство, и что оно было услышано. И в этом, конечно, большая заслуга Фишбрейн: я доверяю людям здесь и чувствую, что меня слушают и слышат.
Надеюсь, в следующем году будет больше 😀️️️️️️
👏60❤20🎉10👍4🔥3⚡1😁1
Крипта
Переводы за рубеж или обратно
Всё это время в вопросах крипты я чувствовал себя дедом, просящим скачать ему интернетов на дискету. Люди уже лет пять как вкатились в крипту, купили себе две бэхи и квартиру в центре Торжка, а я даже аккаунт на бинансе не завёл.
И вот, в самый разгар моих раздумий на тему «Как перевести деньги из России на счёт в Швеции, чтобы мой банк не забанил меня за грязные русские деньги», один парень в шведском чатике вдохновил меня словами «а я вывел деньги из РФ криптой и даже задекларировал их в шведской налоговой и без проблем ваще». Тут я понял — пора.
Дальше я пропал из семьи на месяц, заводя десятки аккаунтов на разных криптобиржах, заказывая криптокарты и исследуя маршруты переводов денег, чтобы найти тот самый простой и экономичный способ.
Букв по меркам поста в тележку получилось много, потому что мне хотелось не просто написать пошаговый гайд, но и объяснить, что вообще происходит. Буду рад любым вопросам и уточнениям — они помогут сделать гайд ещё лучше :)
Читайте 👇
skatromb.github.io/sweden-migrant-guide/crypto/transfer.html
Переводы за рубеж или обратно
Всё это время в вопросах крипты я чувствовал себя дедом, просящим скачать ему интернетов на дискету. Люди уже лет пять как вкатились в крипту, купили себе две бэхи и квартиру в центре Торжка, а я даже аккаунт на бинансе не завёл.
И вот, в самый разгар моих раздумий на тему «Как перевести деньги из России на счёт в Швеции, чтобы мой банк не забанил меня за грязные русские деньги», один парень в шведском чатике вдохновил меня словами «а я вывел деньги из РФ криптой и даже задекларировал их в шведской налоговой и без проблем ваще». Тут я понял — пора.
Дальше я пропал из семьи на месяц, заводя десятки аккаунтов на разных криптобиржах, заказывая криптокарты и исследуя маршруты переводов денег, чтобы найти тот самый простой и экономичный способ.
Букв по меркам поста в тележку получилось много, потому что мне хотелось не просто написать пошаговый гайд, но и объяснить, что вообще происходит. Буду рад любым вопросам и уточнениям — они помогут сделать гайд ещё лучше :)
Читайте 👇
skatromb.github.io/sweden-migrant-guide/crypto/transfer.html
sweden-migrant-guide
Переводы рублей в евро криптой
Guide for those, who is planning to or already moved to Sweden
❤28👍13🔥8
Чё писать?
Последние месяцы у меня парадоксальная ситуация с бложиком: в загашнике много тем, про что написать, при этом«руки никак не доходят» приоритеты всё время другие. Вроде и написать пост дело не такое долгое, но чувствую, что чего-то не хватает.
Так как обычно меня больше всего прёт, когда написанное оказывается кому-то полезным, хочу спросить в этот раз у вас.
Напишите в коммент к посту, про что вам было бы интересно прочитать в канале? Это может быть и что-то конкретное, а может быть и просто широкой темой, типа «про айти», «про миграцию», или просто чтобы я поделился великими мыслями великих людей.
И раз уж пошла такая пьянка: вопросы можно не только написать, но и заделать в виде телего-кружочка, чтобы я увидел ваши прекраные лица и услышал голоса :) Это будет вообще 🔥
Последние месяцы у меня парадоксальная ситуация с бложиком: в загашнике много тем, про что написать, при этом
Так как обычно меня больше всего прёт, когда написанное оказывается кому-то полезным, хочу спросить в этот раз у вас.
Напишите в коммент к посту, про что вам было бы интересно прочитать в канале? Это может быть и что-то конкретное, а может быть и просто широкой темой, типа «про айти», «про миграцию», или просто чтобы я поделился великими мыслями великих людей.
И раз уж пошла такая пьянка: вопросы можно не только написать, но и заделать в виде телего-кружочка, чтобы я увидел ваши прекраные лица и услышал голоса :) Это будет вообще 🔥
👍7❤3👏1
Шо за биг дата?
Александр Сайков — мой коллега по дата инженерному цеху, выступил с презентацией про биг дату — что это вообще такое, чем там занимаются, на кой нужон дата инженер и вот это вот всё.
Если тема интересует, а маркетинговые видосы с баззвордами надоели — смотрите запись его годного выступления на ютубе!
Александр Сайков — мой коллега по дата инженерному цеху, выступил с презентацией про биг дату — что это вообще такое, чем там занимаются, на кой нужон дата инженер и вот это вот всё.
Если тема интересует, а маркетинговые видосы с баззвордами надоели — смотрите запись его годного выступления на ютубе!
YouTube
Mad Stream: Укрощение больших данных: Hadoop, Spark, Databricks. Александр Сайков
ML Community х Mad Stream! 🤘
В эпоху больших данных для любого бизнеса важно понимать важность и умение управлять большим количеством информации. Наше ML Community в Mad Devs готовы поделиться своей экспертизой и помочь разобраться в этой объемной теме.…
В эпоху больших данных для любого бизнеса важно понимать важность и умение управлять большим количеством информации. Наше ML Community в Mad Devs готовы поделиться своей экспертизой и помочь разобраться в этой объемной теме.…
👍16❤5
Девелоперский туллсет для Python
Наткнулся на классную подборку тулов для разработки на Python, которая дарует с небес приятный и автоматизированный Developer Experience. Из списка я использую всё кроме Nox (я не тестирую на работе код под разные версии питона), и недавно поставил под сомнение авто форматтер black, который иногда уродует списки (но пока не отказался от него).
А если вам мало и хочется настоящего хардкора, предлагаю попробовать лютый линтер wemake-python-styleguide. Его написал крутейший русский питонист-опенсорсер Никита Соболев, мейнтейнер статического тайпчекера mypy, автор курсов по тестированию и типизации в Python. Линтер wps — это по сути огромная коллекция линтеров, усложняющая процесс написания кода до уровня дьяблы на сложности Hell. Как говорится, suffer, bitch 😈.
Если вы продержитесь несколько дней, впитаете с потом и кровью способность писать ультимативно лаконичный код.
Наткнулся на классную подборку тулов для разработки на Python, которая дарует с небес приятный и автоматизированный Developer Experience. Из списка я использую всё кроме Nox (я не тестирую на работе код под разные версии питона), и недавно поставил под сомнение авто форматтер black, который иногда уродует списки (но пока не отказался от него).
А если вам мало и хочется настоящего хардкора, предлагаю попробовать лютый линтер wemake-python-styleguide. Его написал крутейший русский питонист-опенсорсер Никита Соболев, мейнтейнер статического тайпчекера mypy, автор курсов по тестированию и типизации в Python. Линтер wps — это по сути огромная коллекция линтеров, усложняющая процесс написания кода до уровня дьяблы на сложности Hell. Как говорится, suffer, bitch 😈.
Если вы продержитесь несколько дней, впитаете с потом и кровью способность писать ультимативно лаконичный код.
DEV Community
Creating a great Python DevX
Create an enjoyable and meaningful Python Developer eXperience. I have recently created a trivial...
🔥13😈4❤1
И напоследок совет по внедрению, как не попасть в бездну анального угнетения с линтерами. Внедряйте итерационно: по одному линтеру, проверяя по одному модулю за раз, начните с самых простых. Любой из линтеров выдаст вам 10 ошибок на 100 строк кода, и вам во всём этом разбираться и фиксить. Берегите себя ❤️
Начните с black — он единственный полностью автоматический, все проблемы фиксит сам.
Начните с black — он единственный полностью автоматический, все проблемы фиксит сам.
👍5🔥1🙏1
Вебинар по DevEx
Забавно, но через день после предыдущего поста про тулзы в питоне для кайфового Developer Experience, мне пришла рассылка от любимой Школы Сильных Программистов Феди и Марьяны с двухчасовым вебинаром ровно об этом 😄 Чесслово, я был не в курсе об их планах, но теперь сам хочу пойти)
Обещают рассказать как должны выглядеть:
- разработка здорового человека (жду, что там будет про линтеры, организацию репозиториев и документации в коде, и всё-as-a-code)
- коммуникации (ну типа как тасочки в жиру ставить, что спрашивать при получении задачи и т.д.)
- документацию (главное, зачем она вообще нужна, конечно, и какзаставить себя полюбить её писать)
Для тех кто не в курсе — Федя Борщёв один из крутейших российских питонистов и джангистов, руководит собственным аутсорсом, а вместе с Марьяной они делают крутые курсы по разным айтишным, преимущественно софт-скилльным темам. Я проходил половину их курсов, и они все по-своему круты.
Особенно мне зашёл в своё время «Стать тимлидом» за то, что он даёт сразу несколько точек зрения на происходящее с сотрудником в компании. Но это уже отдельная история, пишите в комменты, если интересно — расскажу подробнее.
По промокоду
P.S. Есть ненулевая вероятность, что оригинальное название вебинара было «Без хуйни»)
Забавно, но через день после предыдущего поста про тулзы в питоне для кайфового Developer Experience, мне пришла рассылка от любимой Школы Сильных Программистов Феди и Марьяны с двухчасовым вебинаром ровно об этом 😄 Чесслово, я был не в курсе об их планах, но теперь сам хочу пойти)
Обещают рассказать как должны выглядеть:
- разработка здорового человека (жду, что там будет про линтеры, организацию репозиториев и документации в коде, и всё-as-a-code)
- коммуникации (ну типа как тасочки в жиру ставить, что спрашивать при получении задачи и т.д.)
- документацию (главное, зачем она вообще нужна, конечно, и как
Для тех кто не в курсе — Федя Борщёв один из крутейших российских питонистов и джангистов, руководит собственным аутсорсом, а вместе с Марьяной они делают крутые курсы по разным айтишным, преимущественно софт-скилльным темам. Я проходил половину их курсов, и они все по-своему круты.
Особенно мне зашёл в своё время «Стать тимлидом» за то, что он даёт сразу несколько точек зрения на происходящее с сотрудником в компании. Но это уже отдельная история, пишите в комменты, если интересно — расскажу подробнее.
По промокоду
KOTIK10 самостоятельный тариф стоит ₽4500, тариф в тусовке с чатиком — ₽6750.P.S. Есть ненулевая вероятность, что оригинальное название вебинара было «Без хуйни»)
tough-dev.school
Без ерунды — Курс о Developer Experience
Developer Experience (DevEx) — это концепция, которая помогает разработчикам, избавляться от препятствий к продуктивности. Как UX-дизайнеры проходят путь пользователя, устраняя барьеры к покупке, так же DevEx-специалисты выкидывают ерунду из работы.
❤6💅4🔥2
Python Developers Survey 2022
JetBrains показали результаты здоровенного опроса питонистов за 2022 год. В качестве источника использованы данные Python Software Foundation, так что там нет перекоса в сторону пайчармистов (с перевесом в пару процентов лидирует VS Code). Большая часть программистов из опроса — из США и Индии (19 и 11 процентов соответственно).
Там много интересных деталей, позволяющих свериться с трендами и средней температурой по больнице: какие веб-фреймворки в ходу, используют ли venv и docker, как деплоят в облако, чем билдят приложения и куда отгружают. А так же кек, что второй питон до сих пор используют 7% (!) разработчиков.
Рекомендую как способ проверить, не пропускаешь ли чего важного в питоне и погуглить слова, о которых вообще не имеешь представления — возможно, они как раз решат твою текущую боль.
JetBrains показали результаты здоровенного опроса питонистов за 2022 год. В качестве источника использованы данные Python Software Foundation, так что там нет перекоса в сторону пайчармистов (с перевесом в пару процентов лидирует VS Code). Большая часть программистов из опроса — из США и Индии (19 и 11 процентов соответственно).
Там много интересных деталей, позволяющих свериться с трендами и средней температурой по больнице: какие веб-фреймворки в ходу, используют ли venv и docker, как деплоят в облако, чем билдят приложения и куда отгружают. А так же кек, что второй питон до сих пор используют 7% (!) разработчиков.
Рекомендую как способ проверить, не пропускаешь ли чего важного в питоне и погуглить слова, о которых вообще не имеешь представления — возможно, они как раз решат твою текущую боль.
JetBrains: Developer Tools for Professionals and Teams
Python Developers Survey 2022 Results
Official Python Developers Survey 2022 Results by Python Software Foundation and JetBrains: more than 23k responses from almost 200 countries.
👍10🔥4
Тоска по России
Я долго откладывал этот пост: не потому, что сказать было нечего, а потому что это вызывает сложные чувства в душе, которые неосознанно хочется проскочить, с которыми сложно оставаться наедине. Но несколько человек в комментах интересовались, тоскую ли я по России, так что я собрался и вот, пишу. Фух, поехали.
Если говорить о стереотипной «тоске по берёзкам», то её нет — природа здесь очень похожа на подмосковную, только с добавлением скал, мха и просторных лесных опушек вечнозелёной черники 😍. В этом плане наоборот, мне очень нравится местная природа, я тащусь. Снежной зимы нет, но да ладно, зато велик круглый год.
Нет у меня и тоски по русскому языку: то ли я достаточно интроверт, то ли мне хватает семьи, чатиков и созвонов с друзьями, чтобы даже не задумываться об этом.
Тоски по России как стране у меня тоже особой нет: в каком-то смысле я себя ощущаю «чужим среди своих, своим среди чужих», когда шведская культура общения и образ жизни ощущаются мне ближе российских.
О чем же я тоскую больше всего?
О связи с родителями. Раньше мы виделись раз в 1-2 недели, отвозили сына к ним погостить, могли вживую пообщаться, обняться, поесть за общим столом, услышать живые голоса. Теперь же это сузилось до видео-звонков и редких встреч с мамой на территориях нейтральных стран во время тщательно спланированных совместных отпусков.
То же самое и с семьёй брата, живущими сейчас в Грузии. До войны мы играли с братом панк-рок в одной группе, сегодня это стало невозможным. Группу размазало по России, Армении, Грузии и Швеции. Хоть бы пара музыкантов в одну страну уехала!
То же самое, но в меньшей степени с друзьями. В меньшей, потому что с ними я и раньше нечасто виделся вживую, обычно мы общались и продолжаем общаться в чатиках. Но пивасика вместе не попить, половое созревание (или уже теперь перезревание) не обсудить.
И последнее — тоска по родному городу. Хочется просто приехать, побыть там, увидеть знакомые места. Не знаю зачем, почему, но тянет. Всё-таки первые 20 лет жизни прошли там. Сублимирую жизнью в городке в Швеции аналогичного размера, хех 🥲.
Жалею ли я об отъезде в Швецию? Нет, по-прежнему я считаю, что эта страна сейчас мне ближе по ценностям.
Хочу ли я вернуться? Возможно, когда этот угнетающий воинствующий режим уйдёт. Но я и раньше-то не строил долгосрочных планов, а уж теперь и подавно. Так что живём моментом, остаёмся в Швеции до завтра, и так каждый день.
Настроение: Ignite — Place Called Home.
Spotify, YouTube Music,
Я долго откладывал этот пост: не потому, что сказать было нечего, а потому что это вызывает сложные чувства в душе, которые неосознанно хочется проскочить, с которыми сложно оставаться наедине. Но несколько человек в комментах интересовались, тоскую ли я по России, так что я собрался и вот, пишу. Фух, поехали.
Если говорить о стереотипной «тоске по берёзкам», то её нет — природа здесь очень похожа на подмосковную, только с добавлением скал, мха и просторных лесных опушек вечнозелёной черники 😍. В этом плане наоборот, мне очень нравится местная природа, я тащусь. Снежной зимы нет, но да ладно, зато велик круглый год.
Нет у меня и тоски по русскому языку: то ли я достаточно интроверт, то ли мне хватает семьи, чатиков и созвонов с друзьями, чтобы даже не задумываться об этом.
Тоски по России как стране у меня тоже особой нет: в каком-то смысле я себя ощущаю «чужим среди своих, своим среди чужих», когда шведская культура общения и образ жизни ощущаются мне ближе российских.
О чем же я тоскую больше всего?
О связи с родителями. Раньше мы виделись раз в 1-2 недели, отвозили сына к ним погостить, могли вживую пообщаться, обняться, поесть за общим столом, услышать живые голоса. Теперь же это сузилось до видео-звонков и редких встреч с мамой на территориях нейтральных стран во время тщательно спланированных совместных отпусков.
То же самое и с семьёй брата, живущими сейчас в Грузии. До войны мы играли с братом панк-рок в одной группе, сегодня это стало невозможным. Группу размазало по России, Армении, Грузии и Швеции. Хоть бы пара музыкантов в одну страну уехала!
То же самое, но в меньшей степени с друзьями. В меньшей, потому что с ними я и раньше нечасто виделся вживую, обычно мы общались и продолжаем общаться в чатиках. Но пивасика вместе не попить, половое созревание (или уже теперь перезревание) не обсудить.
И последнее — тоска по родному городу. Хочется просто приехать, побыть там, увидеть знакомые места. Не знаю зачем, почему, но тянет. Всё-таки первые 20 лет жизни прошли там. Сублимирую жизнью в городке в Швеции аналогичного размера, хех 🥲.
Жалею ли я об отъезде в Швецию? Нет, по-прежнему я считаю, что эта страна сейчас мне ближе по ценностям.
Хочу ли я вернуться? Возможно, когда этот угнетающий воинствующий режим уйдёт. Но я и раньше-то не строил долгосрочных планов, а уж теперь и подавно. Так что живём моментом, остаёмся в Швеции до завтра, и так каждый день.
Настроение: Ignite — Place Called Home.
Spotify, YouTube Music,
Spotify
Place Called Home
Ignite · A Place Called Home · Song · 2000
❤41💔17👍4🤔3😁2😭2🙏1
Постгрес воскрес 🐘!
Сорян, но я не мог упустить такого удобного случая покаламбурить 😋)
Короче, бэкендеры и платформисты в Fishbrain — титаны. В бэкенде приложения, которому 10 лет они отважились сделать ЭТО — смигрировать базу с MySQL на Postgres. Кто хоть раз пытался переписать что-то с одного языка или бекенда на другой, понимает, какая это может быть глубокая кроличья нора. А они сделали это: во-первых бесшовно (после выката в прод поколбасило с лагучими запросами всего пару дней), а во-вторых — меньше чем за полгода. Браво пацанам, хоть они этого и не прочитают!
Всё это время я с завистью и почтением наблюдал за их самоотверженностью и прокрастинировал собственную подготовку к миграции, из-за чего нашу data поколбасило несколько дней (хотя у нас количество изменений было в сотню раз меньше)
Однако, это был ценный опыт: я в очередной раз ощутил ценность тестов. Дело не только в надёжности, количестве багов, роллбэков, скорости релиза и т.д. Это качественный и культурный скачок. Когда у тебя вся важная функциональность покрыта тестами — ты обретаешь смелость решиться на такие страшные и масштабные проекты. Не было бы тестов — не думаю, что кто-либо всерьёз даже заговорил об этом проекте.
Но ребята пошли дальше и сделали всё вообще по красоте:
1. Тесты. В первый день проекта упало 4к из 11к тестов. Именно они и дают уверенность, что всё будет более-менее хорошо, когда загорятся зелёненьким.
2. Бэкапы. Ну тут ноу-комментс, это абсолютный мастхэв на случай полного апокалипсиса.
3. Staging среда. Мастхэв для таких проектов, чтобы потыкаться в приложение на приближенной к проду среде, и проверить, что всё работает нормально.
4. Rollback. Единственное, что было сделано специально для этой миграции. Рядом поставили две базы: продовый MySQL и Postgres-реплика с непрерывной синхронизацией друг с другом и возожностью передачи master друг-другу. Если бы внезапно после деплоя всё пошло сильно не так — в один деплой они бы откатили всё обратно без потери данных.
Сорян, но я не мог упустить такого удобного случая покаламбурить 😋)
Короче, бэкендеры и платформисты в Fishbrain — титаны. В бэкенде приложения, которому 10 лет они отважились сделать ЭТО — смигрировать базу с MySQL на Postgres. Кто хоть раз пытался переписать что-то с одного языка или бекенда на другой, понимает, какая это может быть глубокая кроличья нора. А они сделали это: во-первых бесшовно (после выката в прод поколбасило с лагучими запросами всего пару дней), а во-вторых — меньше чем за полгода. Браво пацанам, хоть они этого и не прочитают!
Всё это время я с завистью и почтением наблюдал за их самоотверженностью и прокрастинировал собственную подготовку к миграции, из-за чего нашу data поколбасило несколько дней (хотя у нас количество изменений было в сотню раз меньше)
Однако, это был ценный опыт: я в очередной раз ощутил ценность тестов. Дело не только в надёжности, количестве багов, роллбэков, скорости релиза и т.д. Это качественный и культурный скачок. Когда у тебя вся важная функциональность покрыта тестами — ты обретаешь смелость решиться на такие страшные и масштабные проекты. Не было бы тестов — не думаю, что кто-либо всерьёз даже заговорил об этом проекте.
Но ребята пошли дальше и сделали всё вообще по красоте:
1. Тесты. В первый день проекта упало 4к из 11к тестов. Именно они и дают уверенность, что всё будет более-менее хорошо, когда загорятся зелёненьким.
2. Бэкапы. Ну тут ноу-комментс, это абсолютный мастхэв на случай полного апокалипсиса.
3. Staging среда. Мастхэв для таких проектов, чтобы потыкаться в приложение на приближенной к проду среде, и проверить, что всё работает нормально.
4. Rollback. Единственное, что было сделано специально для этой миграции. Рядом поставили две базы: продовый MySQL и Postgres-реплика с непрерывной синхронизацией друг с другом и возожностью передачи master друг-другу. Если бы внезапно после деплоя всё пошло сильно не так — в один деплой они бы откатили всё обратно без потери данных.
👍18👏6❤3😁2🔥1
Мой первый опенсорс
Я всегда смотрел с завистью на разработчиков, которые пишут собственные библиотеки или контрибьютят в чужой опенсорс. Этот факт сразу поднимал их в моих глазах до недостижимого уровня мастерства, до которого мне никогда не суждено было подняться.
И, конечно же, всегда хотелось уподобиться им и написать что-то своё. Но всякий раз, когда в мою голову приходила гениальная идея, оказывалось, что её уже реализовали, и накрутили ещё на несколько шагов вперёд. Так что в какой-то момент я смирился, что это не мой удел.
И вот недавно я пилил на работе тасочку, где нужно было переложить несколько десятков тысяч JSON из API в наше хранилище (ну чем ещё все эти погромисты занимаются). Нужна была только часть полей из этого API, при том, что некоторые из них были вложены на 2-4 уровня вглубь других. Разумеется, первым делом я полез искать готовые библиотеки под Python:
- pandas.json_normalize. Умеет из вложенного джейсона сделать плоский. Но боже мой, тащить этого гиганта в код только чтобы попарсить джейсон выглядело оверкиллом. Да и недолюбливаю я пандас, честно говоря.
- flatten_json. Делает тоже самое, отдельная лёгкая библиотечка, вроде самое то. Но посмотрев в историю релизов и увидев, что они случаются раз в два года, решил не брать.
- jsonpath-ng. Казалось бы, вот оно. Регулярно релизится, умеет доставать нужные поля по запросу, не реструктурируя весь dict, даже в Airflow используется. На практике же оказалось, штука эта пригодна лишь для того, чтобы вытащить пару значений — когда я запустил с ней перегрузку и стал доставать из каждого JSON-а 30 полей, она увеличила время работы джобы с 30 минут (преимущественно сетевого ожидания ответа API) до 2-х часов, что было неприемлемо много, тем более для таких смешных объёмов данных.
Штош, пришлось написать свой nested-value-extractor. Это был классный опыт: япострадал поигрался с линтером wps, чтобы пощекотать очко потренироваться в изящном питоне, освоил (наконец-то) pytest и написал пачку тестов, оформил понятные (надеюсь) README и Makefile, чтобы любому контрибьютору со стороны было легко вкатиться и дописать библиотеку, научился заливать пакеты в питоновский репозиторий PyPI (тот самый, откуда мы все делаем
Судя по количеству звёздочек за прошедшие пару месяцев, никому особо эта библиотека пока не нужна, но это классный первый опыт 😄 Впрочем, если её докрутить до уровня xjsonpath парсера, который будет работать быстро... Но на это нужно совсем другое количество времени)
Я всегда смотрел с завистью на разработчиков, которые пишут собственные библиотеки или контрибьютят в чужой опенсорс. Этот факт сразу поднимал их в моих глазах до недостижимого уровня мастерства, до которого мне никогда не суждено было подняться.
И, конечно же, всегда хотелось уподобиться им и написать что-то своё. Но всякий раз, когда в мою голову приходила гениальная идея, оказывалось, что её уже реализовали, и накрутили ещё на несколько шагов вперёд. Так что в какой-то момент я смирился, что это не мой удел.
И вот недавно я пилил на работе тасочку, где нужно было переложить несколько десятков тысяч JSON из API в наше хранилище (ну чем ещё все эти погромисты занимаются). Нужна была только часть полей из этого API, при том, что некоторые из них были вложены на 2-4 уровня вглубь других. Разумеется, первым делом я полез искать готовые библиотеки под Python:
- pandas.json_normalize. Умеет из вложенного джейсона сделать плоский. Но боже мой, тащить этого гиганта в код только чтобы попарсить джейсон выглядело оверкиллом. Да и недолюбливаю я пандас, честно говоря.
- flatten_json. Делает тоже самое, отдельная лёгкая библиотечка, вроде самое то. Но посмотрев в историю релизов и увидев, что они случаются раз в два года, решил не брать.
- jsonpath-ng. Казалось бы, вот оно. Регулярно релизится, умеет доставать нужные поля по запросу, не реструктурируя весь dict, даже в Airflow используется. На практике же оказалось, штука эта пригодна лишь для того, чтобы вытащить пару значений — когда я запустил с ней перегрузку и стал доставать из каждого JSON-а 30 полей, она увеличила время работы джобы с 30 минут (преимущественно сетевого ожидания ответа API) до 2-х часов, что было неприемлемо много, тем более для таких смешных объёмов данных.
Штош, пришлось написать свой nested-value-extractor. Это был классный опыт: я
pip install). Разве что CI/CD не запилил, но на этапе 100 строк кода оно выглядит как явный оверкилл.Судя по количеству звёздочек за прошедшие пару месяцев, никому особо эта библиотека пока не нужна, но это классный первый опыт 😄 Впрочем, если её докрутить до уровня xjsonpath парсера, который будет работать быстро... Но на это нужно совсем другое количество времени)
GitHub
GitHub - skatromb/nested-value-extractor: Derive nested value from dict by providing sequence of keys
Derive nested value from dict by providing sequence of keys - skatromb/nested-value-extractor
🔥53❤2😁1
PyCharm VS Code
Я пайчармист с пятилетним стажем и нежно его люблю. В то же время, многие уважаемые мной разработчики сидят на VS Code и саркастически хихикают над такими как я. Я решил попробовать VS Code, а спустя месяц понял, что мне есть о чём рассказать.
Так вот... PyCharm это как макбук по сравнению с Linux laptop. VS Code местами оставляет впечатление кривенько слепленного опенсорса, который надо конфигурить под себя. Для кого-то это плюс, но я люблю, чтобы просто работало.
По пунктам:
- Докер интерпретатор в PyCharm работает нормально из коробки. Не надо ковыряться в джисоне, искать, что там не примаунтилось, прописывать нужный сервис в двух файлах, вручную подчищать за вскодом прошлый неубитый контейнер, из-за которого он теперь не может запустить новый и валится с ошибками — всё это в пайчарме просто работает за пять кликов.
- pre-commit хуки. Теперь я понимаю, почему VS Codeры их так не любят 😀. В пайчарме хуки даже с докер интерпретатором запускаются локально вне контейнера и просто работают. В VS Code нужно докручивать свой контейнер, дописывать в него
- REPL, она же питоновская консоль. Ну, её просто нет в VS Code. Типа да, можно в терминале набрать
- Божественный git GUI. Да, да, я знаю, настоящие пацаны работают с гитом из консоли. И я не против, если вы уже выучили все эти команды, почему бы нет? Но в PyCharm я, зная только базовые git clone, commit, push, мог сразу полноценно с ним работать. Хочешь дифф с веткой мастера? Пожалуйста. Хочешь сквошь коммитов? Выделил мышкой нужные и сделал. Undo, revert, cherry pick, git history, stage выбранных частей кода — всё это легко сделать в PyCharm. Вероятно, что-то из этого решается плагинами в VS Code (Git History?), но опять же, надо тратить время, искать, настраивать. В VS Code спустя пару недель у меня пропала кнопка создания PR, потому что что-то там у экстеншна
- SQL интерфейс. Опять же, в PyCharm он из коробки, к любой базе. В VS Code для обычных баз ставишь SQL Tools. Упс, он не работает с BigQuery — ставь отдельный плагин для него.
А теперь, о плюсах VS Code:
- Он бесплатный.
- Он быстрый. Грузится раза в три быстрее, сама IDE заметно легче, даже текст словно печатается быстрее!
- Охрененная поддержка dbt. Это просто боль и стыд PyCharm'а. Как только в твоём .sql скрипте встречается jinja тэг (который есть в каждой dbt модели) — всё, PyCharm подчёркивает его красненьким и больше не раскрашивает код. В VS Code есть роскошный плагин, который и синтаксис понимает, и parent-child модели подсказывает, и связанные с моделью тесты показывает 🔥.
- Хороший GUI препятствует автоматизации. Очень странный пункт, но знаете, именно «благодаря» PyCharm я ленился осваивать юнит-тесты. Всегда же можно написать простыню и потом в питоновской консоли погонять код! Используя VS Code, у меня просто нет выбора — я вынужден писать маленькие надёжные функции и тесты, чтобы убедиться в их работоспособности. И это те рамки и ограничения, которые оказываются в итоге благотворными.
Ещё я так и не попробовал дебаг — в PyCharm он был хорош, тут опять же надо его настроить, чтобы он заработал.
В итоге я решил продолжать эксперимент: вполне допускаю, что какие-то из недостатков являются следствием привычек или моего незнания возможнстей VS Code — поживём увидим.
P.S. Тем временем, JetBrains пилит Fleet, который хочет стать лучшей версией VS Code и выглядит очень приятно и минималистично, но пока мне не подходит из-за отсутствия SQL интерфейса. Но если интересно о нём услышать — пишите, может напишу и о нём :)
Я пайчармист с пятилетним стажем и нежно его люблю. В то же время, многие уважаемые мной разработчики сидят на VS Code и саркастически хихикают над такими как я. Я решил попробовать VS Code, а спустя месяц понял, что мне есть о чём рассказать.
Так вот... PyCharm это как макбук по сравнению с Linux laptop. VS Code местами оставляет впечатление кривенько слепленного опенсорса, который надо конфигурить под себя. Для кого-то это плюс, но я люблю, чтобы просто работало.
По пунктам:
- Докер интерпретатор в PyCharm работает нормально из коробки. Не надо ковыряться в джисоне, искать, что там не примаунтилось, прописывать нужный сервис в двух файлах, вручную подчищать за вскодом прошлый неубитый контейнер, из-за которого он теперь не может запустить новый и валится с ошибками — всё это в пайчарме просто работает за пять кликов.
- pre-commit хуки. Теперь я понимаю, почему VS Codeры их так не любят 😀. В пайчарме хуки даже с докер интерпретатором запускаются локально вне контейнера и просто работают. В VS Code нужно докручивать свой контейнер, дописывать в него
postCreate команды для установки пре-коммит хуков. Но есть и плюс в VS Code: они устанавливаются в контейнер, так что удалил контейнер — удалились и все хуки из кэша.- REPL, она же питоновская консоль. Ну, её просто нет в VS Code. Типа да, можно в терминале набрать
python, но боже мой, это вообще не то же самое, что в PyCharm, где ты мог копи-пастнуть весь свой код туда, пользовать полноценный автокомплит, подглядеть докстрингу и потестить ± а-ля Jupyter Notebook. В твоих функциях встречаются пропуски строк в дефинишне? Всё, значит функция кончилась. Страдай.- Божественный git GUI. Да, да, я знаю, настоящие пацаны работают с гитом из консоли. И я не против, если вы уже выучили все эти команды, почему бы нет? Но в PyCharm я, зная только базовые git clone, commit, push, мог сразу полноценно с ним работать. Хочешь дифф с веткой мастера? Пожалуйста. Хочешь сквошь коммитов? Выделил мышкой нужные и сделал. Undo, revert, cherry pick, git history, stage выбранных частей кода — всё это легко сделать в PyCharm. Вероятно, что-то из этого решается плагинами в VS Code (Git History?), но опять же, надо тратить время, искать, настраивать. В VS Code спустя пару недель у меня пропала кнопка создания PR, потому что что-то там у экстеншна
Http Error. Давай, Иван, иди разберайся, как это вылечить, не надо тебе писать код.- SQL интерфейс. Опять же, в PyCharm он из коробки, к любой базе. В VS Code для обычных баз ставишь SQL Tools. Упс, он не работает с BigQuery — ставь отдельный плагин для него.
А теперь, о плюсах VS Code:
- Он бесплатный.
- Он быстрый. Грузится раза в три быстрее, сама IDE заметно легче, даже текст словно печатается быстрее!
- Охрененная поддержка dbt. Это просто боль и стыд PyCharm'а. Как только в твоём .sql скрипте встречается jinja тэг (который есть в каждой dbt модели) — всё, PyCharm подчёркивает его красненьким и больше не раскрашивает код. В VS Code есть роскошный плагин, который и синтаксис понимает, и parent-child модели подсказывает, и связанные с моделью тесты показывает 🔥.
- Хороший GUI препятствует автоматизации. Очень странный пункт, но знаете, именно «благодаря» PyCharm я ленился осваивать юнит-тесты. Всегда же можно написать простыню и потом в питоновской консоли погонять код! Используя VS Code, у меня просто нет выбора — я вынужден писать маленькие надёжные функции и тесты, чтобы убедиться в их работоспособности. И это те рамки и ограничения, которые оказываются в итоге благотворными.
Ещё я так и не попробовал дебаг — в PyCharm он был хорош, тут опять же надо его настроить, чтобы он заработал.
В итоге я решил продолжать эксперимент: вполне допускаю, что какие-то из недостатков являются следствием привычек или моего незнания возможнстей VS Code — поживём увидим.
P.S. Тем временем, JetBrains пилит Fleet, который хочет стать лучшей версией VS Code и выглядит очень приятно и минималистично, но пока мне не подходит из-за отсутствия SQL интерфейса. Но если интересно о нём услышать — пишите, может напишу и о нём :)
🔥23👍5
Обновил криптогайд
Добавил в криптогайд абзац о том, что крипту можно купить в Revolut и telegram wallet, добавил несколько сервисов с криптокартами (включая те, что годятся для резидентов РФ), а также как потихоньку переводить крупные суммы из РФ в Европу с помощью криптокарты.
Бонусом идёт добавление криптокарты в Apple Pay с помощью curve.com
Добавил в криптогайд абзац о том, что крипту можно купить в Revolut и telegram wallet, добавил несколько сервисов с криптокартами (включая те, что годятся для резидентов РФ), а также как потихоньку переводить крупные суммы из РФ в Европу с помощью криптокарты.
Бонусом идёт добавление криптокарты в Apple Pay с помощью curve.com
sweden-migrant-guide
Переводы рублей в евро криптой
Guide for those, who is planning to or already moved to Sweden
❤25👍3❤🔥2
*.new в браузере
Оказывается, Гугл не только купил домен первого уровня
А то, что можно набрать в адресной строке браузера название гугловского сервиса
- meet.new новый созвон в Google Meets (также работает meets.google.com/new)
- slide.new или slides.new — презентацию в Google Slides
- doc.new или docs.new — гуглодок
- sheet.new — гуглоэксель
А ещё есть excel.new с майкрософтовским онлайн экселем. Также методом случайного тыкинга обнаружил какой-то проект из гугловского инкубатора — Tables Google 😀
Поделитесь, если знаете какие-нибудь похожие шорткаты)
Оказывается, Гугл не только купил домен первого уровня
google (смотри, например, sre.google), но и множество поддоменов в new. И что, спросите вы? А то, что можно набрать в адресной строке браузера название гугловского сервиса
.new и вы создадите:- meet.new новый созвон в Google Meets (также работает meets.google.com/new)
- slide.new или slides.new — презентацию в Google Slides
- doc.new или docs.new — гуглодок
- sheet.new — гуглоэксель
А ещё есть excel.new с майкрософтовским онлайн экселем. Также методом случайного тыкинга обнаружил какой-то проект из гугловского инкубатора — Tables Google 😀
Поделитесь, если знаете какие-нибудь похожие шорткаты)
🔥29👍2