BASCODE
139 subscribers
114 photos
5 videos
61 links
Судя по кругам под глазами, прод выжил!
Download Telegram
Как офисная культура адаптируется под редкую удаленку

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

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

Ответ оказался простым: дело не в процессах, а в людях. Коллеги подключили меня через Google Meet и вывели на тот же большой экран, вместо JIRA. В итоге я стоял в кругу вместе со всеми, просто через монитор. Полное ощущение присутствия в команде, как будто физически был рядом.

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

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

Спасибо ребята за то, что даже удаленная работа с вами ощущается естественно! 💙
❤1
"Spring разработчики" и нужно ли их бояться?

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

Свежий пример из жизни: соседняя команда неделю билась с проблемой - база данных неадекватно жрала CPU. Не могли понять в чём дело, попросили парня из моей команды помочь. Тот за полчаса локализовал проблему благодаря пониманию архитектуры БД и навыкам инцидент-менеджмента.

Моя позиция кардинально другая: а что здесь плохого? Проблема не в разработчиках, а в составе команды. Нет 1-2 сильных специалистов - вот и весь корень зла. Остальные пусть спокойно пишут бизнес-логику под контролем code review старших товарищей. Такие разработчики рынку тоже очень нужны. Бизнесу важна в первую очередь скорость для быстрого результата, а о эффективности и оптимизации продукта можно подумать потом. Ну или нанять дорогого, бородатого интроверта, пусть он думает.

Думаю, мы оба правы, просто смотрим на ситуацию с разных сторон. Это обычная эволюция профессии. Если ты не успеваешь развиваться - тебя заменят инструменты или те, кто успевают. К томуже AI уже дышит в спину некомпетентным «коллегам».
⚡1🔥1
Как не превратиться в упертого старика-разработчика 🧠

Года идут, и я заметил неприятную вещь: мозг начинает терять гибкость. То, что раньше осваивал за пару дней, теперь требует больше усилий. Чтобы не стать "тем самым" сеньором, который говорит "а вот раньше было лучше", я начал практиковать эксперименты.

Правило простое: один календарный месяц на любое изменение. Не важно, 28 дней или 31. После месяца честно оцениваю: оставляю или убираю.

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

Что не зашло:
❌ Белая тема системы. пробовал трижды, глаза до сих пор в шоке. Но не сдаюсь 😄

Главное понять, что пользу многих вещей понимаешь только спустя время. В первые дни работает правило "где заканчиваются силы, начинается характер". По этому стоит давать себе время на то чтобы привыкнуть.
🔥3👍1
Datomic база данных с философией

Недавно слушал подкаст, где обсуждали базу данных Datomic, якобы она рок-звезда среди всех БД со своей интересной философией. Мне стало настолько интересно, что последние дни провёл в теоретическом знакомстве, и остался в лёгком когнитивном шоке (в хорошем смысле).

Во-первых, она не удаляет данные. Никогда. Вообще! Каждая транзакция - это не просто "обновление", а добавление нового факта во временной поток. Получается встроенный time-travel: можно спросить у базы, как она выглядела на прошлой неделе в 17:42, и она честно ответит. Для задач с историей, аудитом и регуляторными требованиями - золото.

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

Datalog (язык запросов) тоже порадовал - что-то между SQL и Прологом, но ближе к логическому мышлению. Особенно хорошо ложится в проекты на Clojure. И вот тут начинаются минусы...
👉 В Go мире Datomic - как гость с другого континента. Нет нативной библиотеки, всё взаимодействие только через REST или EDN. То есть, хочешь использовать - ставь JVM, пиши прослойку, парси EDN. В общем, костыли.
👉 Datomic плохо подходит под высоконагруженные сценарии с частыми записями. Один транзактор = одна очередь. Не жужжит как Kafka, увы.
👉 И главный вопрос: а тебе точно нужна вечная история всех данных? Если да - это шанс. Если нет - может, стоит просто логировать изменения в Postgres.

💡 В целом, Datomic - как японская керамика: красиво, нестандартно, требует уважения к философии. Но чашку кофе в неё не нальёшь, если ты пишешь микросервисы на Go и хочешь всё просто.
Оставлю пока как архитектурную идею и источник вдохновения. А вдруг когда-нибудь соберусь на проект с Clojure и решу пожить немного вне времени 😉

P.S. Если интересно расскажу подробнее в следующих постах: про плюсы/минусы или как это всё сравнивается с Mongo и PostgreSQL?
🔥3
🎮 Clair Obscure: Expedition 33 - игра, о которой я чуть было не забыл рассказать.

Когда я только завёл этот канал, первой темой которую хотелось осветить была именно она. Но как это часто бывает, жизнь внесла свои коррективы, подкинув более срочные темы. Неделя прошла, потом другая… И вот сегодня утром поймал себя на мысли: или сейчас, или уже никогда. Тем более, что игра действительно заслуживает внимания!

Когда покупал Clair Obscure: Expedition 33, ожидания были завышены до предела. Про игру много говорили в подкастах: кто-то восторгался, а кто-то ворчал, мол, «слишком пафосно». Я всё-таки решил рискнуть, и вот мой вердикт: она превзошла даже мои, казалось бы, нереалистично высокие ожидания.

Clair Obscure - это просто визуальный, музыкальный и сюжетный экстаз! Причём не из разряда «вау, красиво», а именно гармоничный и выверенный до мелочей. Каждый кадр - отдельная картина, музыка идеально дополняет сюжет, а персонажи настолько колоритные и живые, что запоминаются сразу и надолго. Каждый уникален, причём именно с большой буквы.

Да, кто-то жаловался, что всё слишком серьёзно и театрально. Но лично я этого даже не почувствовал. Когда попадаешь в деревню жестралей, вся эта «театральность» мгновенно рассеивается. Ты просто сидишь, наблюдаешь за местными жителями, разговариваешь с ними, смеёшься вслух и совершенно не хочешь уходить. Хочется исследовать каждый уголок и погрузиться в эту атмосферу ещё глубже.

И главный инсайд напоследок:

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

Чтобы создать что-то великое, необязательно быть огромной студией. Достаточно просто сильно любить своё дело и действительно гореть идеей!

P.S. Я выбрал концовку Версо. На мой взгляд это было справедливо по отношению ко всем.
🔥4
Системный подход к проблеме энергии: тестирую гипотезы на себе

Четвертую неделю экспериментирую с утренними силовыми тренировками в 7 утра. Гипотеза простая: если начать день с физической нагрузки, энергии хватит до самого вечера.
Пока результаты впечатляют. К концу рабочего дня сохраняю почти утреннюю эффективность в коде и ревью (хотя с ревью по честному получается хуже). После обеда обычно "плыл", а сейчас остаюсь в тонусе.

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

А как вы боретесь с энергетическими провалами в течение дня? 💪
🔥5👍1
Критика - это опасность или сигнал роста?

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

Сегодняшний пример: на митинге предложил вывести задачи на экран для того чтобы был виден весь список выполненных задач и тех что предстоит сделать за оставшиеся 2 дня спринта. Идея была отклонена с обоснованием "так будет быстрее". Я не стал настаивать, дал ПМу провести встречу так как он считает нужным. В этом у него опыта больше чем у меня.

Результат: вместо ожидаемых 15 минут, митинг затянулся на час. После вопроса "Получилось сделать быстрее?" получил обвинение в токсичности.

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

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

P.S. Обложка поста: старая форма разрушается, давая рост новой жизни.
❤4⚡1
Как "очередное обучение" оказалось "особенным".

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

К нам приехал Вадим Перетокин - специалист из Швеции. С первых минут стало понятно, что это не "лектор", это гик в самом хорошем смысле. У человека Linux на ноутбуке, и не просто какой-нибудь Lenovo, а самостоятельно собранный Framework. Причем не ради фетиша, он реально коммитит в open source, продвигает FHIR по всему миру и живет этой идеей.
Интенсив прошел как на одном дыхании: мы не просто разобрали стандарт, а поняли, зачем он нужен и какие реальные проблемы решает.

Особенно порадовало, что Вадим постоянно выносил нас из теории в реалии: примеры, кейсы, и дальше несколько локальных шуток в квизах. Радует что пользу получили не только разработчики, но и люди далекие от разработки.
К середине недели стало ощущение, что мы не просто учимся, а участвуем в чем-то большем.
И тут случился вообще неожиданный момент. Вадим связался с самим Грэмом Гривом, создателем стандарта FHIR, и рассказал ему про наш прогресс. И… Грэм заинтересовался. Он реально выразил желание поддержать наш проект, а возможно и приехать.
А теперь просто вдумайтесь: Центральная Азия, Узбекистан, команда разработчиков и к нам едет один из самых влиятельных людей в digital healthcare.

Вот так скепсис превращается в мотивацию, а интенсив в шаг на мировую арену 👀 Может быть в следующем году мы даже выступим на DevDays и расскажем о своих успехах.
🔥5
Повышение, от которого стало тревожно.

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

Если тебе предложили подобное повышение, то это может вызывать тревогу. Особенно если ты впервые сталкиваешься с таким шагом. Ты вроде бы силён в своём деле, тебя ценят, а внутри мысли: «А если не справлюсь?», «А если выгорю?», «А если меня не будут слушать?».

Если ты в этом месте, запомни одну вещь: Бояться это нормально, но это не повод отказываться. Просто поговори с руководителем. Спроси, что от тебя ждут, какие задачи, где зона роста. После такого разговора будет проще понять твоё это или нет.

А вот если внутри нет страха, а просто скука и отторжение, вот тогда точно стоит задуматься. Я однажды согласился, хотя знал что это не мой путь. А когда понял, что зря, откат был тяжёлым. Снижение это почти всегда как шаг вниз. Часто часть обязанностей всё ещё за тобой, а команда не сразу «переключается» на новый режим.

Мой вывод простой:
- Если боишься - не бойся.
- Если не хочешь - откажись.

Ну и да, даже если сам пока не уверен знай, кто-то в тебя уже верит. Как минимум твой руководитель, ведь он не просто так предлагает тебе вырасти.
💯1
Прошло больше месяца с первого поста, пора подводить промежуточные итоги.

Всё началось 19 июня. Мы с женой отмечали годовщину, и она сделала подарок, который стал неожиданной отправной точкой: iPhone, Apple Watch и AirPods в один день. Я в шутку назвал это "корзиной яблок" 🍎

Тогда я приступил к настрайке экосистемы и впервые всерьез заглянул в приложение «Здоровье». Начал отслеживать сон, прием витаминов, активность. И вот этот банальный комфорт как будто что-то переключил. Хочется быть внимательнее к себе. Больше думать, лучше работать. Меньше плыть по течению.

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

Итог через месяц:
- Первые дни было тяжело - не знал, о чём писать
- Потом втянулся. Вошел в ритм и сейчас идеи появляются сами
- Писать стало легко. Это почти как зарядка по утрам

Понимаю, что сам блог пользы, скорее всего читателю, не приносит. Но у меня есть сильная потребность помогать другим. И после отпуска хочу сделать первый шаг: записать обучающее видео на YouTube. Думаю начать с простого: как поднять HTTP-сервер на Go, объясняя всё так, как объяснял бы другу, только вкатывающемуся в разработку. 🧠 Или есть идея получше? Готов выслушать.

Также готовится статья на habr.com о том как работает паттерн Chain of Responsibility и история как он помог нам в реальной разработке на текущем проекте.

P.S. На следующей неделе выхожу в отпуск. Так что возможно неделю в канале будет тишина.
❤1🔥1
Иногда хочется не просто писать код, а сделать что-то по-настоящему важное.

Два года назад у меня родился сын. И в тот же момент в голове появилась мысль: "А точно ли я хочу заниматься тем, чем занимаюсь?”. Хотелось сделать что-то, что останется навсегда (ну или хотябы оставит след в истории). Что-то, чем он мог бы гордиться.

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

Сейчас я в команде, которая реально вдохновляет. Тут не просто инженеры, а рок-звезды в своей области. И руководитель, который умеет слушать и даёт свободу. Это большая редкость. Мы делаем сложную штуку. И у нас получается. Потому что нам это важно. Потому что мы горим идеей. Потому что это - не просто работа.
Делать проект ради денег - это ок. Но когда проект цепляет тебя изнутри - это совсем другой уровень энергии 💡

P.S. На постере мои рок-звезды и какой-то лысый мужик.
P.P.S. Сегодня 23 день рождения UZINFOCOM. На ней тоже парень без волос. Не понимаю на что намек :-)
😁4
🏖 Отпуск заканчивается. Возвращаюсь с новыми силами.

Две недели отпуска: неделя на Иссык-Куле, неделя дома. И вот теперь, когда чемоданы убраны, мясо съедено, кальяны раскурены - время подытожить.
Скажу честно, я ожидал от Иссык-Куля чего-то в духе пост-перестроечного туризма. Санатории, кукуруза на пляже, кафешки с запахом и атмосферой 90-х. И в каком-то смысле это было правдой... но не там где отдыхали мы с семьей.

Это были современные, уютные домики с панорамными окнами, своей качелей, лужайкой и летней кухней. В домике было несколько спальн, душей, халаты, полотенца и быстрый WiFi. Уютно, чисто, цивильно.

А хозяин домика, узнав, что я люблю готовить мясо, подарил нам почти 5 кг стейков! Вот это щедрость. Говорят, узбеки гостеприимны, но киргизы тоже знают, как приятно удивить. Мясо, конечно, улетело в первый же вечер 😄

Ещё впечатлила погода. Днём - солнце, ночью - грозы и ливни. Причём утром ни одной лужи, будто ночью ничего и небыло.

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

После недели там, неделю дома. И вот сейчас действительно ощущаю, что отдохнул. Без желания "ещё один день", без усталости. Всё, пора в бой!

Надо же… отпуск с пониженным ожиданием оказался одним из лучших за последнее время.

Кстати. Скоро релиз Go 1.25! На днях опишу что меня больше всего в нём заинтересовало...
❤4👍1🥰1
Redisearch vs Elasticsearch

Недавно мне коллега сказал: "Смотри, есть реализация эластика на редисе". Я заинтригованно полез разбираться, и вот краткое сравнение.

🔹 Скорость - Redisearch живёт прямо в памяти Redis, поэтому поиск и фильтрация там работают в миллисекунды. На ограниченных объёмах данных (до пары миллионов документов) он часто быстрее Elasticsearch.

🔹 Масштаб - Elasticsearch изначально распределённый, работает с терабайтами данных и десятками узлов без костылей. Redisearch масштабировать сложнее, особенно в open-source варианте, и он упирается в доступную RAM.

🔹 Функциональность - у Redisearch есть полнотекст, фильтры, базовые агрегации, гео и даже векторный поиск. Но Elastic гибче: тонкие настройки анализа текста, сложные агрегации, nested-объекты и аналитика из коробки.

🔹 Интеграция в Go - Redisearch прост: подключил модуль к Redis и работаешь через лёгкий Go-клиент. Elastic требует поднять отдельный сервис и работать по REST, но возможностей у него больше.

Вывод: Redisearch это отличное решение, если нужен сверхбыстрый поиск по данным, которые уже в Redis, и объёмы укладываются в память. Но область применения узкая: для больших и сложных поисковых задач Elasticsearch остаётся более универсальным выбором. Однако сделано конечно интересно, для расширения кругозора думаю стоит изучить технологию.
❤4⚡2
Отпуск завершился.

Планы были амбициозные - сделал не всё, зато появился понятный проект для комьюнити.
Готовлю бесплатный курс по Go на YouTube. За 17 коротких уроков соберём веб-сервис по мотивам Тамагочи 90х 🐣. Начнем с простого CRUD и пойдем к продакшн уровню. Каждая серия должна закрыть реальную полезную тему, без воды.

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

Предварительный план уроков
1. Запуск базового REST сервера
2. Middleware
3. Подключение фреймворка chi
4. Конфигурация сервиса
5. Настройка REST клиента
6. Логирование
7. Сжатие запросов и ответов
8. Контекст
9. Рефакторинг говно-кода на слоистую архитектуру
10. Тестирование
11. Обработка ошибок
12. Подключение базы данных PostgreSQL
13. Метрики и мониторинг
14. gRPC
15. Трассировка
16. Профилирование и оптимизация
17. Кэширование

Чего может не хватать чтобы курс закрывал больше боевых кейсов в проде? Напишите свои идеи в комментариях, попробую добавить их в план курса.
⚡3🔥3❤1
🚀 Вышел Go 1.25!

Главное в обновлении: Go стал умнее в контейнерах. Теперь сам ограничивает потоки под лимиты CPU (больше никаких 20 goroutines на 0.5 CPU в Kubernetes 😅).

Завезли супер-быстрый JSON v2 (пока экспериментально). Обещают куда шустрое распарсивание JSON и новые удобные API для маршалинга.

Появился экспериментальный GC "Green Tea", который в тестах на 10-40% снижает накладные расходы сборщика мусора.

Из мелочей: добавили метод WaitGroup.Go (минус шаблон Add(1)+go+Done, ура удобству!), пакет testing/synctest для тестов с синтетическим временем (прощай time.Sleep в тестах 🎉), новый net/http-защитник от CSRF и пачку оптимизаций в crypto (прощай SHA-1).

Мне больше всего понравилась авто-настройка GOMAXPROCS и новый JSON - я уже побежали бенчмаркать его в своих сервисах.

А вот что немного раскритиковали - так это отсутствие шагов по сокращению шаблона if err != nil 🙈 (Go как был консервативен в error handling, так и остался).

Впрочем, релиз получился очень полезным: быстрее, безопаснее, удобнее. Лично мне не терпится включить JSON/v2 и "зелёный" GC в парочке проектов и посмотреть на результат.

Попробуйте и вы, поделитесь впечатлениями! 😉
🔥5
3️⃣5️⃣ Я снова родился

Кажется, уже совсем взрослый, хотя ощущается это не всегда 🙂

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


Коллеги в этом году порадовали подарком: майка CI/CD PIPELINE TO HELL. Разговаривали о ней почти полтора года и вот она у меня. На конвертах написано "Дорогому дедушке" и "Любимой Бабушке". Люблю свою команду. Креативные они у меня 😊

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

Может, и в этом году стоит выйти в свет?
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8🔥2🏆1💋1