В августе 2012 года я впервые в жизни уехал из родного Ростова-на-Дону в Москву, получив офер от Инновы. Это было, по сути, начало и моей карьеры, и всей серьёзной взрослой жизни. Сегодня, почти ровно 10 лет спустя, осилив очередной переезд, начинаю достаточно символическую для меня рефлексию — и дата круглая, и решений принято было много, и выводов тоже накопилось предостаточно.
Первая заметка из серии посвящена трём годам фриланса, которые в итоге не только сделали переезд возможным (т.к. накопился полезный для компаний опыт), но и сильно меня к нему подтолкнули. Вспоминаю, как это было: что я думал и чего хотел, чему научился, а что продолбал. Особенно любопытно и полезно должно быть тем, кто находится в начале карьеры.
PS Да, картинки-превьюшки ужасные, конечно. Попробую научиться делать что-то более симпатичное, а то кажется, что только из-за картинок CTR моих ссылок раза в 2 ниже, чем мог бы быть 🤣
https://gromov.com/en/career-freelance-ups-downs
Первая заметка из серии посвящена трём годам фриланса, которые в итоге не только сделали переезд возможным (т.к. накопился полезный для компаний опыт), но и сильно меня к нему подтолкнули. Вспоминаю, как это было: что я думал и чего хотел, чему научился, а что продолбал. Особенно любопытно и полезно должно быть тем, кто находится в начале карьеры.
PS Да, картинки-превьюшки ужасные, конечно. Попробую научиться делать что-то более симпатичное, а то кажется, что только из-за картинок CTR моих ссылок раза в 2 ниже, чем мог бы быть 🤣
https://gromov.com/en/career-freelance-ups-downs
Gromov
Career Reflections: Freelance Ups and Downs — Gromov
As a freelancer, I made my first money, became independent, learnt quite a bit, and committed a few of what now feels like major mistakes. Sharing the lessons I have learnt.
Всем привет!
Напоминаю, что в 19–30 по Москве болтаем с Витей про UK: визы, переезд, жизнь.
Приходите послушать и поспрашивать 😁
https://www.youtube.com/watch?v=-2ZtfhuDzKk
Напоминаю, что в 19–30 по Москве болтаем с Витей про UK: визы, переезд, жизнь.
Приходите послушать и поспрашивать 😁
https://www.youtube.com/watch?v=-2ZtfhuDzKk
YouTube
Виктор и Олег обсуждают визы, переезд и жизнь в UK @algoseekee
Разговорный стрим c Олегом Громовым:
- https://t.me/gromov_com
- https://twitter.com/oleggromov/
1:00 Как вообще поживаешь?
7:10 Почему переехал?
19:10 Олег рассказывает почему именно Лондон
25:17 Виктор рассказывает про skilled worker визу
36:10 Олег рассказывает…
- https://t.me/gromov_com
- https://twitter.com/oleggromov/
1:00 Как вообще поживаешь?
7:10 Почему переехал?
19:10 Олег рассказывает почему именно Лондон
25:17 Виктор рассказывает про skilled worker визу
36:10 Олег рассказывает…
Карьера разработчика 🤩
Этот канал начинался как своего рода дневник моего профессионального пути.
Я работал в Яндексе 3 года, ездил в Штаты поучить английский и отдохнуть, уехал в Швецию на ~полгода, вернулся работать удалённо в Toptal, потом переехал в Лондон в первый раз, устроившись в Фейсбук, ушёл в стартап Hook, вернулся назад в Россию и устроился в Sourcegraph опять же удалённо на "американскую" зарплату. Сейчас снова в Лондоне уже на классной визе, которая не привязывает меня к работодателю.
Повидал всякого, так сказать 😁 При этом мне хотелось и хочется делиться полезной информацией, опытом, ошибками, наблюдениями и выводами.
Те, кто читает меня давно, знают, что я достаточно скептически отношусь к nine-to-five работе, корпорациям и performance reviews, узкой специализации, работе "на дядю" и зарплате как единственному источнику доходов.
Но, что бы я ни думал на эту тему, карьера в программировании — это один из немногих существующих (и известных мне) способов вырваться из бедности и серости, рассчитывая только на себя, свои мозги и навыки. Чтобы стать программистом, не нужно образование и капитал, только интерес к профессии, усердие и несколько лет практики.
Чтобы устроиться на хорошую работу с большой зарплатой, хорошей командой и интересными проектами, нужно всё то же: интерес к работе, несколько лет опыта, а также умение продавать себя, проходить собеседования и торговаться.
Воскрешая эту тему, напоминаю, что я публиковал несколько статей на эту тему, получивших хороший отклик. Они собрали ~120 тысяч просмотров и больше 100 комментариев:
- Как найти удалённую работу за доллары
- Удалёнка за доллары: а меня возьмут?
- Как пройти собеседования на удалёнку за рубеж
- Как торговаться на собеседованиях
Очевидно, что за несколько лет они устарели. Но, если вы планируете или уже проходите собеседования в компании за границей, посмотрите — наверняка найдётся что-то полезное. Плюс есть ещё полный список того, что я публиковал в интернете на русском языке.
Если найдёте что-то полезное, пишите комментарии, будем обсуждать!
Всем добра ❤️
Этот канал начинался как своего рода дневник моего профессионального пути.
Я работал в Яндексе 3 года, ездил в Штаты поучить английский и отдохнуть, уехал в Швецию на ~полгода, вернулся работать удалённо в Toptal, потом переехал в Лондон в первый раз, устроившись в Фейсбук, ушёл в стартап Hook, вернулся назад в Россию и устроился в Sourcegraph опять же удалённо на "американскую" зарплату. Сейчас снова в Лондоне уже на классной визе, которая не привязывает меня к работодателю.
Повидал всякого, так сказать 😁 При этом мне хотелось и хочется делиться полезной информацией, опытом, ошибками, наблюдениями и выводами.
Те, кто читает меня давно, знают, что я достаточно скептически отношусь к nine-to-five работе, корпорациям и performance reviews, узкой специализации, работе "на дядю" и зарплате как единственному источнику доходов.
Но, что бы я ни думал на эту тему, карьера в программировании — это один из немногих существующих (и известных мне) способов вырваться из бедности и серости, рассчитывая только на себя, свои мозги и навыки. Чтобы стать программистом, не нужно образование и капитал, только интерес к профессии, усердие и несколько лет практики.
Чтобы устроиться на хорошую работу с большой зарплатой, хорошей командой и интересными проектами, нужно всё то же: интерес к работе, несколько лет опыта, а также умение продавать себя, проходить собеседования и торговаться.
Воскрешая эту тему, напоминаю, что я публиковал несколько статей на эту тему, получивших хороший отклик. Они собрали ~120 тысяч просмотров и больше 100 комментариев:
- Как найти удалённую работу за доллары
- Удалёнка за доллары: а меня возьмут?
- Как пройти собеседования на удалёнку за рубеж
- Как торговаться на собеседованиях
Очевидно, что за несколько лет они устарели. Но, если вы планируете или уже проходите собеседования в компании за границей, посмотрите — наверняка найдётся что-то полезное. Плюс есть ещё полный список того, что я публиковал в интернете на русском языке.
Если найдёте что-то полезное, пишите комментарии, будем обсуждать!
Всем добра ❤️
vc.ru
Как разработчику найти удалённую работу за доллары, часть первая — Карьера на vc.ru
После отклика на 50 вакансий и практически ежедневных собеседований в течение месяца мне сделали 3 оффера, один из которых я принял — преимущественно из-за зарплаты и рекомендаций.
Ищете работу за границей?
Anonymous Poll
21%
Уже уехал и нашёл 😎
7%
В процессе — почти нашёл/уехал 😴
21%
Ещё не уехал и ищу 🤗
20%
Не хочу уезжать, хочу удалёночку 🤑
12%
Нас и тут неплохо кормят! 🤔
19%
🍿
Привет, читатели!
Скоро я планирую начать писать текстов не меньше, а может даже больше, чем кода. И мне очень пригодятся ваши комментарии, но на этот раз ещё до публикации заметок в интернете.
Тексты будут в 99% случаев на английском, посвящённые карьере и технологиям, реже сайд-проектам, стартапам и предпринимательству. Например, ближайшая статья будет на тему фриланса, под рабочим названием The Vicious Cycles of Freelance.
Если готовы читать и комментировать черновики, запишитесь через форму.
Все записавшиеся будут первыми получать мои самые интересные заметки, а за лучшие комментарии и вопросы я буду вас благодарить в опубликованных статьях.
Спасибо! 🤩
Скоро я планирую начать писать текстов не меньше, а может даже больше, чем кода. И мне очень пригодятся ваши комментарии, но на этот раз ещё до публикации заметок в интернете.
Тексты будут в 99% случаев на английском, посвящённые карьере и технологиям, реже сайд-проектам, стартапам и предпринимательству. Например, ближайшая статья будет на тему фриланса, под рабочим названием The Vicious Cycles of Freelance.
Если готовы читать и комментировать черновики, запишитесь через форму.
Все записавшиеся будут первыми получать мои самые интересные заметки, а за лучшие комментарии и вопросы я буду вас благодарить в опубликованных статьях.
Спасибо! 🤩
Google Docs
Gromov's Writing Feedback Group
Hello dear reader,
I am actively working on ramping up my writing skills to provide more value to my readers.
Ultimately, I aim at helping you to accelerate your career growth, increase life satisfaction, and boost your overall understanding of the tech…
I am actively working on ramping up my writing skills to provide more value to my readers.
Ultimately, I aim at helping you to accelerate your career growth, increase life satisfaction, and boost your overall understanding of the tech…
Be ruthless during offer negotiation, then stick around for a while.
This will ensure you're compensated fairly AND have enough time to learn, build something valuable, and stand out.
#careerbites — the advice I wish I got when I was younger
twitter.com/oleggromov
This will ensure you're compensated fairly AND have enough time to learn, build something valuable, and stand out.
#careerbites — the advice I wish I got when I was younger
twitter.com/oleggromov
How much is a year of your life?
It must be priceless, right? So thought I, until I realised I've been putting money first for over a decade.
In 2022, a year of my life is $200k. It was about $110k in 2021, $175k in 2020, $90k in 2019.
Here's a brief story of my life 👇
twitter.com/oleggromov
It must be priceless, right? So thought I, until I realised I've been putting money first for over a decade.
In 2022, a year of my life is $200k. It was about $110k in 2021, $175k in 2020, $90k in 2019.
Here's a brief story of my life 👇
twitter.com/oleggromov
Почему твитер?
Многие до сих пор удивляются, зачем/почему я полез в твитер. Основных причины две.
1. Англоязычная тех-тусовочка в основном в твитере
Есть ещё стримеры на твиче, ютуберы, само собой, но это видео, другой формат.
Я давно для себя решил, что я — человек мира. Хочу учиться-делиться-творить пусть и для небольшого пузырька единомышленников, но всё-таки с возможностью роста в большой мир.
Русскоговорящим предпринимателям и "криейторам" (прости господи!) телега заменила email-рассылки, которые в остальном мире растут и даже привлекают инвестиции.
А вот для англоговорящей аудитории телега — это какая-то маргинальная помойка, тут никого нет, да и не придут, даже если звать.
2. В телеграме нет органики
Канал ужасно тяжело растить. Как круто ты ни пиши, никто никогда этого не увидит без рекламы/продвижения где-то ещё.
Ну ладно, будет рост +5 человек в месяц, если писать что-то настолько крутое, что оно будет расходиться по интернету через пересылку сообщений.
Все мои подписчики пришли с других платформ: статей про карьеру на VC и Хабре, разных интервью, кросс-постов в каналах друзей.
Это всё здорово, но ужасно сложно и утомительно.
А что твитер?
А в твитере есть рекомендации, есть лайки и репосты, там принято делиться тредами (нравится нам это или нет).
Твой контент реально видят новые люди.
Поэтому и твитер, поэтому на английском.
Кстати, есть прикольное предположение, что старые аккаунты в твитере растить сильно сложнее, чем новые.
Свой аккаунт я зарегистрировал в 2009 году. 13 лет — тринадцать, Карл! — он был полудохлым, с ±200 подписчиками.
И тут в июне я начал активно туда писать. За последние 28 дней у меня:
- 159k показов твитов
- 40к визитов профиля
- рост на 94 подписчика
Это ужасно мало, 0.2% конверсия из просмотра профиля в подписчика.
Может, конечно, профиль так себе — я пока ещё экспериментирую и с тем, о чём писать, и с тем, как это выглядит. Но так или иначе, за 2 месяца я настрочил кучу контента, а привлёк всего 200 человек. Мало.
Так что зарегал новый профиль и пробую начать сначала 🤩
Многие до сих пор удивляются, зачем/почему я полез в твитер. Основных причины две.
1. Англоязычная тех-тусовочка в основном в твитере
Есть ещё стримеры на твиче, ютуберы, само собой, но это видео, другой формат.
Я давно для себя решил, что я — человек мира. Хочу учиться-делиться-творить пусть и для небольшого пузырька единомышленников, но всё-таки с возможностью роста в большой мир.
Русскоговорящим предпринимателям и "криейторам" (прости господи!) телега заменила email-рассылки, которые в остальном мире растут и даже привлекают инвестиции.
А вот для англоговорящей аудитории телега — это какая-то маргинальная помойка, тут никого нет, да и не придут, даже если звать.
2. В телеграме нет органики
Канал ужасно тяжело растить. Как круто ты ни пиши, никто никогда этого не увидит без рекламы/продвижения где-то ещё.
Ну ладно, будет рост +5 человек в месяц, если писать что-то настолько крутое, что оно будет расходиться по интернету через пересылку сообщений.
Все мои подписчики пришли с других платформ: статей про карьеру на VC и Хабре, разных интервью, кросс-постов в каналах друзей.
Это всё здорово, но ужасно сложно и утомительно.
А что твитер?
А в твитере есть рекомендации, есть лайки и репосты, там принято делиться тредами (нравится нам это или нет).
Твой контент реально видят новые люди.
Поэтому и твитер, поэтому на английском.
Кстати, есть прикольное предположение, что старые аккаунты в твитере растить сильно сложнее, чем новые.
Свой аккаунт я зарегистрировал в 2009 году. 13 лет — тринадцать, Карл! — он был полудохлым, с ±200 подписчиками.
И тут в июне я начал активно туда писать. За последние 28 дней у меня:
- 159k показов твитов
- 40к визитов профиля
- рост на 94 подписчика
Это ужасно мало, 0.2% конверсия из просмотра профиля в подписчика.
Может, конечно, профиль так себе — я пока ещё экспериментирую и с тем, о чём писать, и с тем, как это выглядит. Но так или иначе, за 2 месяца я настрочил кучу контента, а привлёк всего 200 человек. Мало.
Так что зарегал новый профиль и пробую начать сначала 🤩
Ушёл в никуда
Ну что, наконец-то настоящие новости подвезли: я ушёл из Sourcegraph.
Сегодня был последний день. Выкупил рабочие компы, закрыл последний PR (без мёржа, ха-ха), попрощался с командой и всё — адиос!
Почему?
Потому что, во-первых, наконец-то могу. Виза позволяет не работать, а благодаря моей скупости деньги на жизнь есть и без работы.
Разумеется, чтобы наконец попробовать себя в свободном полёте. Даже не то чтобы обязательно запилить гениальный стартап в первый же месяц, а просто понаблюдать за собой.
Чего хочется, о чём думаю, как себя чувствую. Что волнует, что интересно, чего не хватает.
Это роскошь, конечно.
Наконец, ну дико я задолбался за этот 2022-й и конец 2021-го года. Сначала мы переехали в Россию, только обустроились — ***. Удрали в Турцию, там почти полгода на чемоданах.
Сейчас переехали в UK — и только через несколько недель, наконец, переедем в постоянное жильё. И это же тоже только начало!
Конечно, это время меня многому научило. Например, тому, что ко всему не подготовишься. Нужно принять неизвестность и идти вперёд несмотря ни на что. Очень по-предпринимательски. Но утомительно.
И на работу сил (да и желания, если быть честным) практически не осталось. Надо отдыхать.
Что дальше?
Тут сложнее.
Конечно, у меня есть сотни записанных идей. Без преувеличения. В основном какие-то мелочи, но есть и большие штуки, которые звучат многообещающе.
Но честно говоря, я пока не знаю. Даже не пытаюсь что-то решить.
Я хотел было написать книгу про карьеру, чтобы помочь обычным ребятам устроиться в big tech. Платят же много, мозги делают (в среднем) меньше, чем во всяких галерах. Работа бывает интересная.
Но я не уверен, что ROI у книги за авторством фактически ноунейма подберётся близко к желаемому.
Допустим, пишу я её три месяца. Обойдётся это мне, условно в £15,000. Значит, если книжка стоит £25, продать нужно 600 копий, чтобы её окупить. Кажется, что немного, но если считать средней конверсию в 1% от размера аудитории — нужно 60,000 подписчиков.
Нереалистично.
Но, как бы то ни было, аудиторию в твитере я собирать продолжу. Без людей, которым интересно, что ты можешь сказать, далеко не уедешь.
Все эти stealth-стартапы по полгода в чулане пилить — ну это для наивных.
Самое главное сейчас — дошлифовать позиционирование. Зачем кому-то вообще на меня подписываться? Какую пользу ожидать?
Вот вы мне можете очень помочь, если расскажете, почему подписались (и не отписались).
А про эмоции от ухода с работы, неожиданные, я тоже в твитере написал.
👋
Ну что, наконец-то настоящие новости подвезли: я ушёл из Sourcegraph.
Сегодня был последний день. Выкупил рабочие компы, закрыл последний PR (без мёржа, ха-ха), попрощался с командой и всё — адиос!
Почему?
Потому что, во-первых, наконец-то могу. Виза позволяет не работать, а благодаря моей скупости деньги на жизнь есть и без работы.
Разумеется, чтобы наконец попробовать себя в свободном полёте. Даже не то чтобы обязательно запилить гениальный стартап в первый же месяц, а просто понаблюдать за собой.
Чего хочется, о чём думаю, как себя чувствую. Что волнует, что интересно, чего не хватает.
Это роскошь, конечно.
Наконец, ну дико я задолбался за этот 2022-й и конец 2021-го года. Сначала мы переехали в Россию, только обустроились — ***. Удрали в Турцию, там почти полгода на чемоданах.
Сейчас переехали в UK — и только через несколько недель, наконец, переедем в постоянное жильё. И это же тоже только начало!
Конечно, это время меня многому научило. Например, тому, что ко всему не подготовишься. Нужно принять неизвестность и идти вперёд несмотря ни на что. Очень по-предпринимательски. Но утомительно.
И на работу сил (да и желания, если быть честным) практически не осталось. Надо отдыхать.
Что дальше?
Тут сложнее.
Конечно, у меня есть сотни записанных идей. Без преувеличения. В основном какие-то мелочи, но есть и большие штуки, которые звучат многообещающе.
Но честно говоря, я пока не знаю. Даже не пытаюсь что-то решить.
Я хотел было написать книгу про карьеру, чтобы помочь обычным ребятам устроиться в big tech. Платят же много, мозги делают (в среднем) меньше, чем во всяких галерах. Работа бывает интересная.
Но я не уверен, что ROI у книги за авторством фактически ноунейма подберётся близко к желаемому.
Допустим, пишу я её три месяца. Обойдётся это мне, условно в £15,000. Значит, если книжка стоит £25, продать нужно 600 копий, чтобы её окупить. Кажется, что немного, но если считать средней конверсию в 1% от размера аудитории — нужно 60,000 подписчиков.
Нереалистично.
Но, как бы то ни было, аудиторию в твитере я собирать продолжу. Без людей, которым интересно, что ты можешь сказать, далеко не уедешь.
Все эти stealth-стартапы по полгода в чулане пилить — ну это для наивных.
Самое главное сейчас — дошлифовать позиционирование. Зачем кому-то вообще на меня подписываться? Какую пользу ожидать?
Вот вы мне можете очень помочь, если расскажете, почему подписались (и не отписались).
А про эмоции от ухода с работы, неожиданные, я тоже в твитере написал.
👋
Книга о карьере
Решил, что всё-такибуду писать книгу . И все это будет в популярном сейчас формате building in public.
Буду рассказывать и про процесс, и про сами идеи, которые кажутся важными и которыми хочется поделиться. И большую часть всего этого — вы уже догадались? — постить в твитер.
В канале тоже будут обновления, но не такие регулярные и атомарные, а чуть более завершённые, потому что формат всё-таки другой.
Следующий пост будет про цели и немного о том, для кого она.
А пока показываю новую шапку профиля. Как вам?
twitter.com/oleggromov
Решил, что всё-таки
Буду рассказывать и про процесс, и про сами идеи, которые кажутся важными и которыми хочется поделиться. И большую часть всего этого — вы уже догадались? — постить в твитер.
В канале тоже будут обновления, но не такие регулярные и атомарные, а чуть более завершённые, потому что формат всё-таки другой.
Следующий пост будет про цели и немного о том, для кого она.
А пока показываю новую шапку профиля. Как вам?
twitter.com/oleggromov
Media is too big
VIEW IN TELEGRAM
Альфа-версия обложки для книги 🤩
To build a great career, focus on building great things. You’ll have fun, learn a ton, and the right people may notice your results.
Focusing on raises and promotions only breeds indifference to work.
#careerbites — the advice for software engineers that are after more money
twitter.com/oleggromov
Focusing on raises and promotions only breeds indifference to work.
#careerbites — the advice for software engineers that are after more money
twitter.com/oleggromov
Всем привет! Давно ничего не писал вам, слишком сильный откат словил после полугода на адреналине и в неизвестности.
***, переезды, очередной новый дом, домашние и семейные дела, свои и чужие удавшиеся и неудачные проекты и идеи... Но пора возвращаться в строй - и день рождения у меня скоро, и вообще, много всякого накопилось, чем хочется поделиться 🙂 Но начну с важного, с обновления темы канала и с подводки к тому, откуда новое название взялось.
Недавно сидим болтаем с Соней и Витей. Рассказываю им, что не вполне понятно, о чём и для кого писать - слишком плохо мне даётся делать что-то одно, чтобы была понятная тема, которая интересна одной аудитории. Вот у Вити есть канал про задачки и алгоритмы, он хорошо и достаточно органически растёт. Соня по моде и стилю угорает, занимается этим дни напролёт. Классно же.
А мне скучно так, по расписанию и на заданную тему. Что я самый настоящий jack of all trades, master of none, а кому это вообще может быть интересно - не ясно.
И тут Соня выдаёт:
- Это понятно, ты же углубился слишком сильно, начал что-то про коды, не коды свои рассказывать...
Я как заржу! Ведь точно, "коды - не коды" - это отличное определение моей профессиональной деятельности. То я пишу коды, то не пишу, то пишу про коды, то пишу про некоды, то вообще не пишу.
Поржал и решил: канал теперь будет называться коды некоды.
Заодно и серьёзности щщей поубавится, а то тяжко с такой публичной миной жить. Вечно надо смысл и пользу выдавать, но я же не фабрика смыслов! Скорее уж конвейер по производству неудачных попыток и невыполненных обещаний. А уж обещаний-то с таким названием можно вообще не давать. Разве что пообещаю ничего не обещать - и тут же сам себя опровергну, вполне в моём духе, как вы любите.
Короче, встречайте: канал про преувеличения и прописные глупости от почётного обладателя синдрома самозванца с обширным опытом в индустрии 🤡
Рассказать вам, что я делал полгода? А вы мне тогда расскажите в комментариях, как у вас дела и чем занимались.
Обнимаю ❤️
***, переезды, очередной новый дом, домашние и семейные дела, свои и чужие удавшиеся и неудачные проекты и идеи... Но пора возвращаться в строй - и день рождения у меня скоро, и вообще, много всякого накопилось, чем хочется поделиться 🙂 Но начну с важного, с обновления темы канала и с подводки к тому, откуда новое название взялось.
Недавно сидим болтаем с Соней и Витей. Рассказываю им, что не вполне понятно, о чём и для кого писать - слишком плохо мне даётся делать что-то одно, чтобы была понятная тема, которая интересна одной аудитории. Вот у Вити есть канал про задачки и алгоритмы, он хорошо и достаточно органически растёт. Соня по моде и стилю угорает, занимается этим дни напролёт. Классно же.
А мне скучно так, по расписанию и на заданную тему. Что я самый настоящий jack of all trades, master of none, а кому это вообще может быть интересно - не ясно.
И тут Соня выдаёт:
- Это понятно, ты же углубился слишком сильно, начал что-то про коды, не коды свои рассказывать...
Я как заржу! Ведь точно, "коды - не коды" - это отличное определение моей профессиональной деятельности. То я пишу коды, то не пишу, то пишу про коды, то пишу про некоды, то вообще не пишу.
Поржал и решил: канал теперь будет называться коды некоды.
Заодно и серьёзности щщей поубавится, а то тяжко с такой публичной миной жить. Вечно надо смысл и пользу выдавать, но я же не фабрика смыслов! Скорее уж конвейер по производству неудачных попыток и невыполненных обещаний. А уж обещаний-то с таким названием можно вообще не давать. Разве что пообещаю ничего не обещать - и тут же сам себя опровергну, вполне в моём духе, как вы любите.
Короче, встречайте: канал про преувеличения и прописные глупости от почётного обладателя синдрома самозванца с обширным опытом в индустрии 🤡
Рассказать вам, что я делал полгода? А вы мне тогда расскажите в комментариях, как у вас дела и чем занимались.
Обнимаю ❤️
Ну конечно же, в последнюю ночь перед запуском, когда всё на свете проверено и работает, как задумано - и оставалось только переключить домены и базы в проде, что-то всё-таки умудрилось сломаться!
Думаете, это мои коды? Кастомная аутентификация через одноразовые пароли, куча логики в боте для обеспечения работы клуба, интеграция со страйпом или сервисом рассылки email?
Как бы не так! Это сраная админка джанги сломалась. Да, я не шучу. Да, "баг в компиляторе". И, хотя баг в компиляторе куда менее вероятен, чем ошибка в коде админки какой-то там CMS, выглядит всё равно нереалистично. Может я где-то накосячил? Наверняка. Но пятисотит именно админка, а не продакшен-урлы.
Надеюсь воспроизвести хотя бы, потому что пока что пара отладочных деплоев ошибку куда-то запрятали 🤦🏻♂️
Думаете, это мои коды? Кастомная аутентификация через одноразовые пароли, куча логики в боте для обеспечения работы клуба, интеграция со страйпом или сервисом рассылки email?
Как бы не так! Это сраная админка джанги сломалась. Да, я не шучу. Да, "баг в компиляторе". И, хотя баг в компиляторе куда менее вероятен, чем ошибка в коде админки какой-то там CMS, выглядит всё равно нереалистично. Может я где-то накосячил? Наверняка. Но пятисотит именно админка, а не продакшен-урлы.
Надеюсь воспроизвести хотя бы, потому что пока что пара отладочных деплоев ошибку куда-то запрятали 🤦🏻♂️
Ошибка оказалась тривиальной и, в некотором смысле, виноват был почти что мой код/настройки.
Я давно уже использую managed posgtres от DigitalOcean, чтобы не возиться хотя бы с настройками и обновлением БД. Так вот оказалось, что там не включён по-умолчанию connection pooling, и 500-я ошибка была потому что БД обрубала лишние соединения 🤷♂️ Хорошо хоть всё важное сыпется не в постгрес, а в редис.
PS В комментариях спрашивали, настроено ли всё это опять вручную - нет. На этот раз я решил, что не хочу возиться хотя бы с деплоями и начал использовать DigitalOcean App Platform. В итоге стоимость прода выросла в 2-3 раза, относительно удобно стало деплоить через докер, появились бесшовные деплои (кайф) и куча всякой фигни вроде "изменил env-переменную - тригенрну тебе полный ребилд" (ладно, с кешем).
Я давно уже использую managed posgtres от DigitalOcean, чтобы не возиться хотя бы с настройками и обновлением БД. Так вот оказалось, что там не включён по-умолчанию connection pooling, и 500-я ошибка была потому что БД обрубала лишние соединения 🤷♂️ Хорошо хоть всё важное сыпется не в постгрес, а в редис.
PS В комментариях спрашивали, настроено ли всё это опять вручную - нет. На этот раз я решил, что не хочу возиться хотя бы с деплоями и начал использовать DigitalOcean App Platform. В итоге стоимость прода выросла в 2-3 раза, относительно удобно стало деплоить через докер, появились бесшовные деплои (кайф) и куча всякой фигни вроде "изменил env-переменную - тригенрну тебе полный ребилд" (ладно, с кешем).
Надо немного контекста добавить, конечно. Пару месяцев назад Соня решила запустить свой Модный клуб. Это такой закрытый платный чат с кучей полезного контента для любительниц шоппинга и моды. Сразу же продала 30+ мест. Я поглядел, как лихо девушки друг у друга покупают разные штучки, и взялся помогать фултайм.
С контентом и фотографиями, программированием, дизайном, настройкой всего на свете, включая рекламу. Конечно, почти сразу сел коды писать. Чего там делать, всего-то бота простенького написать.
Но есть нюансы. Бот в телеграме не может узнать, что сообщение из канала/чата было удалено. Нельзя получить список пользователей канала, даже если бот админ. Сообщение с 2-10 фото/видео - это не одно сообщение, а 2-10 сообщений, объединённые одним media_group_id. Отправляются они по-отдельности, а потом уже клиентами объединяются в как бы одно сообщение. Поэтому и пересылать их дико неудобно даже человеку. А представьте, каково боту.
Дальше, запретить просмотр истории сообщений до входа в чат можно только в чате. А в канале нельзя - присоединился, даже к приватному, и будешь видеть всё. Ну и так далее. В любом случае, нам абы как не надо, а надо офигенно 😎
Пришлось держать свои списки пользователей, учить бота пересылать сообщения из основного чата в чат-обсуждение (как канал + комментарии), хранить всю информацию о сообщениях, чтобы редактировать репост, когда отредактирован оригинал. Копить медиагруппы, потому что они приходят разными сообщениями (прям сквозит через это поведение наша любимая обратная совместимость).
Вместо чуть усложнённого echo-скриптика поверх API получилась какая-то конина лютая со своим стейтом сразу в двух местах. В которой нужно думать про race conditons, иначе воркеры друг с другом подерутся. Простенький бот на поверку оказался не таким уж простеньким.
А потом регистрация и оплаты, подписки и отписки, непрошедшие платежи. Это вообще отдельная вселенная, где накосячить в десять раз проще, чем не накосячить. Когда время пришло, всех клиентов проверить на наличие подписки, кому-то напомнить, кого-то отписать, кому-то сделать исключение по промокоду/whitelist-у. И даже когда всё сделано более-менее по уму, клиентам всё равно сложно.
Кто-то увидел, что надо ввести e-mail для регистрации - и забил. Кто-то отвалился на вводе одноразового пароля. У кого-то не сработал apple pay на странице оплаты из-за отсутствия billing address, и она, как раньше, сделала перевод (а не оформила подписку 😬). Кто-то не понял формулировку про карту зарубежного банка. Все эти дополнительные клики и вопросики конверсии рубят жестоко, конечно.
И вот сижу я, третью (или четвертую?) неделю всё это добро кручу-верчу и думаю одну и ту же банальную мысль. Всё это программирование и автоматизация нужны только на больших объёмах/частотах. Пользователей, транзакций, событий, ручных действий. Принять оплаты от 30 человек и добавить их в чат можно и руками. Справиться с парой сотен сложнее. С тысячей невозможно без отдельного человека, администрирующего процесс на фултайме.
В то время как отдельные храбрецы умудряются стартапы пилить годами, когда нет ни одного платежа! 🤯
Короче, доделываю и переделываю всё, надеясь и предвкушая, как наш Клуб вырастет с нескольких десятков до хотя бы нескольких сотен человек, а лучше до нескольких тысяч. Тогда все эти edge- и corner-кейсы, над которыми я голову ломаю, окажутся нужными, и кто-то на себе почувствует (но скорее не заметит) количество усилий, приложенных к простым штукам.
Чтобы эти простые штуки хотя бы работали как положено, а лучше работали хорошо и помогали, а не бесили 😍
С контентом и фотографиями, программированием, дизайном, настройкой всего на свете, включая рекламу. Конечно, почти сразу сел коды писать. Чего там делать, всего-то бота простенького написать.
Но есть нюансы. Бот в телеграме не может узнать, что сообщение из канала/чата было удалено. Нельзя получить список пользователей канала, даже если бот админ. Сообщение с 2-10 фото/видео - это не одно сообщение, а 2-10 сообщений, объединённые одним media_group_id. Отправляются они по-отдельности, а потом уже клиентами объединяются в как бы одно сообщение. Поэтому и пересылать их дико неудобно даже человеку. А представьте, каково боту.
Дальше, запретить просмотр истории сообщений до входа в чат можно только в чате. А в канале нельзя - присоединился, даже к приватному, и будешь видеть всё. Ну и так далее. В любом случае, нам абы как не надо, а надо офигенно 😎
Пришлось держать свои списки пользователей, учить бота пересылать сообщения из основного чата в чат-обсуждение (как канал + комментарии), хранить всю информацию о сообщениях, чтобы редактировать репост, когда отредактирован оригинал. Копить медиагруппы, потому что они приходят разными сообщениями (прям сквозит через это поведение наша любимая обратная совместимость).
Вместо чуть усложнённого echo-скриптика поверх API получилась какая-то конина лютая со своим стейтом сразу в двух местах. В которой нужно думать про race conditons, иначе воркеры друг с другом подерутся. Простенький бот на поверку оказался не таким уж простеньким.
А потом регистрация и оплаты, подписки и отписки, непрошедшие платежи. Это вообще отдельная вселенная, где накосячить в десять раз проще, чем не накосячить. Когда время пришло, всех клиентов проверить на наличие подписки, кому-то напомнить, кого-то отписать, кому-то сделать исключение по промокоду/whitelist-у. И даже когда всё сделано более-менее по уму, клиентам всё равно сложно.
Кто-то увидел, что надо ввести e-mail для регистрации - и забил. Кто-то отвалился на вводе одноразового пароля. У кого-то не сработал apple pay на странице оплаты из-за отсутствия billing address, и она, как раньше, сделала перевод (а не оформила подписку 😬). Кто-то не понял формулировку про карту зарубежного банка. Все эти дополнительные клики и вопросики конверсии рубят жестоко, конечно.
И вот сижу я, третью (или четвертую?) неделю всё это добро кручу-верчу и думаю одну и ту же банальную мысль. Всё это программирование и автоматизация нужны только на больших объёмах/частотах. Пользователей, транзакций, событий, ручных действий. Принять оплаты от 30 человек и добавить их в чат можно и руками. Справиться с парой сотен сложнее. С тысячей невозможно без отдельного человека, администрирующего процесс на фултайме.
В то время как отдельные храбрецы умудряются стартапы пилить годами, когда нет ни одного платежа! 🤯
Короче, доделываю и переделываю всё, надеясь и предвкушая, как наш Клуб вырастет с нескольких десятков до хотя бы нескольких сотен человек, а лучше до нескольких тысяч. Тогда все эти edge- и corner-кейсы, над которыми я голову ломаю, окажутся нужными, и кто-то на себе почувствует (но скорее не заметит) количество усилий, приложенных к простым штукам.
Чтобы эти простые штуки хотя бы работали как положено, а лучше работали хорошо и помогали, а не бесили 😍
Не понимаю в пубернетисах
Только хотел хвалить деплои в PaaS, в моем случае digital ocean app platform, как заметил, что пубернетисы-то ломаются. Не могут не ломаться 🥰
Разумеется, таинственно и без логов, ведь это платформа - все уже не продумано за тебя!
Во время supposedly zero downtime деплоев какое-то время не отвечают ручки приложения, и даже говорят 504 bad gateway. А ведь, по идее, до успешного прохождения health check-ов трафик должен по-прежнему идти в инстансы предыдущей версии.
Если в своей дремучей, конфигурируемой руками убунте без всяких докеров я могу сделать что угодно, хоть полчаса кэши прогревать до переключения трафика, то тут кто-то как-то уже сделал. И никому не сказал.
Сделал так, что пятисотящий пубернетис мне продавать мешает 🤬 Ну ладно, пока не мешает, но может помешать, есть я буду недостаточно аккуратным или достаточно успешным.
Причем, из-за отсутствия конфигов и логов, я даже не уверен, кто именно в цепочке cloudflare -> nginx (?) -> gunicorn/uvicorn -> django -> мой говнокод косячит и дропает соединения.
Точнее, я уверен, что это не мой гениальный код и не джанга с единорогами. Потому что там-то логи есть, и я в них ничего не вижу 🧐
Скорее всего оборванные соединения случаются именно в момент переключения трафика, но что происходит с уже висящими в очереди и ждущими обработки запросами? Ставлю на то, что отлетают именно они. Но не уверен.
Какие вообще в DO настройки reverse proxy, где их посмотреть, что на них влияет? Сколько соединений может удержать один воркер в app platform? В моем представлении edge-сервер должен держать не больше стандартных линуксовых тыщи-двух и не меньше настроенного в nginx. Одно соединение жрет памяти... ну не знаю, сотню килобайт + payload? Да если не меньше даже. Памяти там пара гигов, а значит не пару сотен уж точно хватить должно.
Вопрос в зал: куды бечь, чтобы разобраться?
Только хотел хвалить деплои в PaaS, в моем случае digital ocean app platform, как заметил, что пубернетисы-то ломаются. Не могут не ломаться 🥰
Разумеется, таинственно и без логов, ведь это платформа - все уже не продумано за тебя!
Во время supposedly zero downtime деплоев какое-то время не отвечают ручки приложения, и даже говорят 504 bad gateway. А ведь, по идее, до успешного прохождения health check-ов трафик должен по-прежнему идти в инстансы предыдущей версии.
Если в своей дремучей, конфигурируемой руками убунте без всяких докеров я могу сделать что угодно, хоть полчаса кэши прогревать до переключения трафика, то тут кто-то как-то уже сделал. И никому не сказал.
Сделал так, что пятисотящий пубернетис мне продавать мешает 🤬 Ну ладно, пока не мешает, но может помешать, есть я буду недостаточно аккуратным или достаточно успешным.
Причем, из-за отсутствия конфигов и логов, я даже не уверен, кто именно в цепочке cloudflare -> nginx (?) -> gunicorn/uvicorn -> django -> мой говнокод косячит и дропает соединения.
Точнее, я уверен, что это не мой гениальный код и не джанга с единорогами. Потому что там-то логи есть, и я в них ничего не вижу 🧐
Скорее всего оборванные соединения случаются именно в момент переключения трафика, но что происходит с уже висящими в очереди и ждущими обработки запросами? Ставлю на то, что отлетают именно они. Но не уверен.
Какие вообще в DO настройки reverse proxy, где их посмотреть, что на них влияет? Сколько соединений может удержать один воркер в app platform? В моем представлении edge-сервер должен держать не больше стандартных линуксовых тыщи-двух и не меньше настроенного в nginx. Одно соединение жрет памяти... ну не знаю, сотню килобайт + payload? Да если не меньше даже. Памяти там пара гигов, а значит не пару сотен уж точно хватить должно.
Вопрос в зал: куды бечь, чтобы разобраться?