Техлидошная | Golang Infra Dev | Project Leading
465 subscribers
21 photos
1 file
152 links
Про платформенную (инфраструктурную) разработку, golang, техлидерство проектов, профессиональному росту и всему остальному, что связано с IT.
Автор: Антон Губарев (https://antgubarev.tech/ru/) @antgubarev. Инеженер Авито PaaS, архитектор и техлид
Download Telegram
Решил сделать и свой скромный вклад в опенсорс. Открыл два проекта на симфе.
https://github.com/antgubarev/bizon-backend Этой мой пет прожект на который я потратил полгода примерно или больше. В итоге не смог затащить поскольку работа отняла все свободное время а конца и края проекта было не видно. Как-нибудь обязательно опишу эту историю подробнее. Если вкратце то это бэкенд для сервиса учета финансов в малом бизнесе.
https://github.com/antgubarev/crypt-backend Когда-то это был коммерческий проект, но не взлетел и теперь лежит пылится. Тоже на симфе. Агрегатор новостей из мира крипты.
Пример персонального блога, который написан по принципу портирования страниц из Notion в html статику https://github.com/kjk/blog Все мы знаем Notion и его удобнейший редактор.
Сам я много перебрал различных готовых инструментов (в итоге на hugo остановился), но ничего подобного не находил даже рядом.
https://habr.com/ru/company/ruvds/blog/501012/ Вот тут человек тоже пробовал решить аналогичную проблему и до конца так и не решил
В апреле прошлого года я находился в поиске работы, так как стартап в котором я работал не взлетел и медленно загибался. Я прошел несколько интервью в том числе одно из них в компанию OneFit. Это фитнес агрегатор. Покупаешь один абонемент и ходишь в один из нескольких сотен спорт-клубов. Удобно для крупных городов.

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

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

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

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

Через 2 недели я вышел на работу в Skyeng. Шли недели и потом уже месяцы и шансы на возврат долга все таяли. Меня кормили обещаниями, а потом и это закончилось. В итоге ЗП за полтора месяца работы я так и не получил а в декабре компания объявила себя банкротом.

[Об этой истории не так давно писали на vc.ru](https://vc.ru/offline/101723-bolshie-skidki-i-dolgi-pochti-na-5-mln-rubley-pochemu-zakrylsya-agregator-fitnes-klubov-onefit). Там чуть подробнее обо всем.

Какой вывод я сделал из всего. Идя работать в стартап:
1. Подумайте много раз перед тем как выбрать стартап

2. Подумайте еще много раз

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

4. Гуглите компанию и основателей.
5. Проверяйте компанию по доступным базам: налоговая, арбитраж и тд.

Успешных всех должностей!
Недавно обещал рассказать про свой незавершенный стартап. Как я примерно полгода пилил код. В конце расскажу какой профит я все же получил, и стоит ли оно того. Так же расскажу про ошибки, которые не стоит повторять.
https://www.youtube.com/watch?v=VII8099ekZo&t
Forwarded from Хабр
Лучшие практики bash-скриптов: краткое руководство по надёжным и производительным скриптам bash.

В статье автор делится тем, что узнал за последние несколько лет, а также некоторыми распространёнными ошибками, которые заставали его врасплох: http://amp.gs/FAis
https://habr.com/ru/company/lingualeo/blog/515530/ Интересный опыт. А интересен он в первую очередь даже не техническими решениями, а то как они принимаются и продвигаются. Это самое сложное в таких историях.
Убедить всех, что твое предложение принесет прибыль, а не убытки, это немалое количество затрат времени, сил и мыслетоплива. И главное готовность взять на себя ответственность, если что-то пойдет не так.
Я столкнулся с похожей проблемой когда пришел в Skyeng. Но мне было проще в том плане, что команду я собирал изначально с нуля (ее не существовало до меня) и не пришлось расставаться со старыми людьми. Мы выпиливались из очень старого монолита и не все прошло гладко (как это часто и бывает), но в итоге профит получили огромный. Мы работаем с сервисами, а не с монолитом. Команда затаскивает новые фичи довольно быстро и главное безболезненно как для себя так и для бизнеса. Выше в канале есть записи моих выступлений как именно это было сделано, но там скорее техническая сторона.
К чему я это все. К тому что автор статьи поступил абсолютно правильно, что не стал дальше работать с тем, что есть, а рискнул и выиграл. Сейчас во многих компаниях много подобного легаси, и много лидов и разработчиков, которые бояться или не хотят что-то менять. Причин может к этому может быть много. Но совершенно точно, что изменения нужны как бизнесу так и команде. Самое главное - реализовать процесс без ущерба для обеих сторон.
Сегодня был мой последний день в Skyeng. Это был очень увлекательный и интересный год с самой крутой командой, которой мне доводилось видеть. Огромное спасибо всем моим теперь уже бывшим коллегам. Впервые в жизни (и внезапно для себя) было настолько сложно принимать решение об уходе. Но жизнь на месте не стоит и пора двигаться дальше. Все же тимлид в skyeng это 95% менеджер, а я всегда был ближе к разработке. Завтра у меня первый рабочий день в компании ВсеИнструменты, и я уже в ожидании новых сложных, а значит интересных задач.
Что удалось сделать за прошедший год и один месяц:
1. Собрать крутейшую команду разработки. Уходя, я точно уверен что пока ищут нового тимлида, команда самостотельно справиться с задачами.
2. Причинить себе огромный управленческий опыт, в условиях очень крупного продукта (300+ репозиториев) и широкого штата IT (более 40 отдельных команд разработки).
3. Многому научиться у других тимлидов и разработчиков
В целом могу сказать что работа в Skyeng это вызов. Челендж, пройдя который, уже никогда его не забудешь.
Вот это действительно полезная вещь. Нечто подобное обязана иметь каждая компания
Я проработал тимлидом примерно 6 последних лет. В каждой компании и на каждом проекте эта должность понимается по-разному и сильно зависит как от особенностей самого проекта, так и от людей, которые его делают.
Я видел не раз как разработчики становились тимлидами и в скором времени уходили обратно в разработку. Это и не хорошо и не плохо, так как каждый сам для себя выбирает наиболее предпочительный путь. Самое важное и сложное в этом вопросе это как раз сделать тот самый правильный выбор.
На следующй неделе состоится митап https://www.youtube.com/watch?v=8I1PXAx1Uhg, на котором несколько бывшим тимлидов расскажут про свой путь «туда и обратно». Среди них в том числе и мой бывший коллега Олег Скляров, который после тимлидства оказался в нашей команде.
Послушать эти доклады будет очень полезно тем, кто сейчас думает о том, что устал лидить, или наоборот только еще планирует развиваться в эту сторону.
Наткнулся на сочинение, опубликованное Dmitriy Kiriyenko в группе #Безумный_Шляпник на Facebook. Прекрасный стеб над аджайл миром и теми, кто им управляет.
— Почему вы хотите работать палубным матросом именно на "Мести рекрутера Веры"?
Я вытянулся в струнку и заученно (в каждом порту работодатель обязательно задаёт этот вопрос) ответил:
— У вас прекрасная команда и корабль собран по последнему слову техники, это возможность получить полезный опыт и навыки, и я хочу быть частью вашей миссии своевременной доставки пассажиров по всему миру.
— Кем вы видите себя через пять лет?
"Кормом для рыб", хотелось ответить мне на второй набивший оскомину вопрос, но, увы, пришлось сказать, что я прежде всего хочу стать очень профессиональным палубным матросом, и уже потом смотреть, куда приведёт меня карьера — может, вперёдсмотрящим, а, может, и боцманом.
— Что ж, кажется, мы можем взять вас с испытательным сроком в качестве фулл-стек разработчика.
— Кого? — переспросил непонятное слово я.
— Палубного матроса. Вы же на эту должность обращались? Что за странная потеря слуха?
— Извините, послышалось что-то другое.

***
Корабль был... монументален. Борт вздымался над причалом на три десятка человеческих ростов. Поднявшись на него, я увидел боцмана, который пробурчав что-то непонятное, кивнул на доску, закреплённую на одном из бортов, сказал:
— Я там кинул тебе в спринт пробные задачи, осваивайся. Если что-то непонятно, спрашивай.
"Спринт?"
Непонятного было много. Почему задачи написаны на доске, а не выкрикиваются боцманом, почему на такой огромный корабль только одна мачта, почему я продолжаю слышать какие-то непонятные слова...

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

— А как мы будем держаться в шторм? — спросил я у боцмана как-то. — Ведь кораблики будут стукаться друг об друга, если там гибкое соединение, а жёсткое соединение вообще сломается. Схема, когда каждый гребец сидит в своей вынесенной за борт капсуле тоже не кажется мня такой уж надёжной.
— Не трусь, матрос! Мы постоянно проводим нагрузочное тестирование, и результаты обнадёживают.
Я уже привык к тому, что постоянно слышу какие-то непонятные слова, и не стал переспрашивать, догадываясь, что услышу, что они время от времени заводят наш корабль в специальный водоём, где за деньги тысяча индусов бьют по воде палками, имитируя шторм.
— Как там твоя задача по замене тросиков на двойные с автоматической проверкой, что трос привязан к нужному кораблю? Мы тут в следующем порту берём на борт первую группу пассажиров, пора бы доделать.
— Работаем!
— Обнови оценку в Джире, пожалуйста.
Это непонятное слово я уже точно ассоциировал с доской, где боцман и капитан записывали задачи.

***
Это была катастрофа.
Пользователи (тьфу, сам заговариваться начал, пассажиры) изменили осадку кораблей, и те совсем не так держались на воде. К тому же прыгать с корабля на корабль, когда палуба постоянно уходит из-под ног, оказалось очень сложно, а это приходилось делать постоянно, потому что столовая была вынесена на отдельную лодку, то же самое с туалетом, библиотекой (без которой многие пассажиры не мыслили дальнейшее плавание), и много ещё чем. А пассажиров было много...
Ветер дул беспощадно, море разыгралось не на шутку, многие жёсткие соединения треснули, а тросы угрожали разорваться. Вперёдсмотрящий не всегда мог докричаться до рулевого. Впервые за всю карьеру мне было страшно. Вместе с остальными джуниорами я затыкал пробоины в трюме. Капсулы с гребцами постоянно смывало за борт, капитан с криком "перезапустить сайдкик" дёргал рычаг, выпускались новые капсулы, гребцы прямо из воды забирались в них и начинали грести дальше.
Раздался страшный треск и выворотив пару досок на главном корабле упала мачта. С непонятной руганью про "настройки ДНС в Кубернетес" капитан поставил несколько механиков на плечи друг другу и сказал что-то вроде "девопсы, прописывайте айпи вручную, пока не разобрались", убежал в трюм грести лично. Мы полезли натягивать импровизированный парус из своих тельняшек на эту импровизированную мачту. Механики, которых капитан почему-то назвал "девопсами", старательно держались друг за друга и удерживали парус.


***
— Матрос, можешь откатить свою фичу с прода? — услышал я голос капитана из трюма.
Ситуация не располагала переспрашивать, и надо было соображать.
— Исполняю, капитан!
К тому моменту рядом с девопсами уже был поставлен вертикально выломанный борт, парус перенатянули на него, а девопсы-механики разбежались чинить рулевые плоскости.
На этот бортик я и закрепил место для вперёдсмотрящего, и попрыгал с корабля на корабль, разыскивая место, куда я вынес его два спринта назад. Там его почему-то не оказалось, и пришлось лезть по вантам на первую попавшуюся мачту, в надежде увидеть его. К счастью, он был всего лишь за два корабля отсюда, и мне удалось докричаться. Кивнув, он полез на старое место самостоятельно.


***
Над головой был белый потолок, вокруг — белые стенки, я был привязан, а за стеной кто-то обсуждал меня.
— Курс азалептина даёт неплохие результаты, и он уже начинает видеть реальный мир, — незнакомый голос продожил, — но всё же забирать его отсюда еще нельзя.
— Но он очень нужен в проекте! У нас не хватает рук, можно ли как-то ускорить выздоровление? — а вот этот голос я знал. Это был боцман.
Еще один шаг в сторону решения проблемы тормозов докера на маке https://docs.docker.com/docker-for-mac/mutagen/ Опробовал на себе и действительно заметная разница. Правда пришлось рискнуть и поставить edge версию, но оно того стоило.
Довольно давно подписан на https://github.com/vitalets/github-trending-repos
Кто еще не сталкивался его суть в том, чтобы автоматически собирать самые движовые репозитории на гитхабе за прошедшую неделю и оповещать о них.
Принцип работы простой: подписываешься на ишью с интересующей технологией и получаешь нотификации.
За время подписки открыл несколько интересных для себя инструментов. Например такую крутой реверс прокси как https://github.com/fatedier/frp Стал интерес в рамках расковырять его кишки полскольку делал другой РП для очень узкой задачки.
Рекомендую эту подписку для тех кто постоянно в поиске новых интересных тулзов. Ну и просто помогает быть в курсе и иногда вспоминать что давно потерянный в мире кубернетесов deployer оказывается жив и релизиться время от времени.
Интересный факт, но идея про модульный монолит развивается дальше. Напомню историю. В прошлой команде мы пришли к решению делать полностью независимые и изолированные модули внутри одного приложения (https://www.youtube.com/watch?v=WlAE6hVbmi4). Наступили на разные грабли, но в итоге получили профит и достигли цели. Немного позже, почти случайно, я узнаю, что в компании ISpring пошли очень похожим путем (https://www.youtube.com/watch?v=gna4Ynz1YNI&t=465s) и тоже получили профит и достигли своих целей. И сейчас в ВсеИнструменты такой подход вновь выглядит подходящим и эффективным решением. Но в этот раз уже в условиях огромной кодовой базы (довольно старой), нескольких команд, работающих с этим кодом, и высоких нагрузок.

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

Заходите https://t.me/arch_pain