Разработка, команда, софт-скилы
155 subscribers
31 photos
1 video
3 files
3 links
Статьи, кейсы, мемасики и байки из кровавого энтерпрайза и разработки.

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

Ведет @andrey_bulov
Download Telegram
Не экономь на архитекторах

Есть API, который создаёт заказ. В случае успеха - возвращает его ID и эхо-ответ. Вопрос: что должен вернуть сервис в случае ошибки?

Варианты ответа:
1. Нормальный ответ со специфицированной ошибкой и нормальным HTTP кодом
2. Пустое тело с id = 0
3. Эхо-ответ без id
4. Ошибку текстом (типа стектрейса или General Error без описания)
5. Отвалиться с таймаутом

Правильные ответы - 2-5. Причем, конкретный вариант зависит от данных. Писала её скрум команда мотивированных профессионалов, все на собеседовании решали задачки по кодированию. Поэтому и техлиды/архитекторы не нужны, всё просто же, зачем нам проектирование.

В итоге, вместо пары дней разработки с тестами, я страстно занимался интеграцией где-то недели три. Если не учитывать мои нервы, это стоило много денег заказчику за работу + стори, которые я не делал (упущенная выгода). А всего-то надо было взять архитектора для написания спеки ДО или сделать архитектурный надзор в процессе/после. Да, жаба давит отдавать даже кусочек ставки на дорогого специалиста, но это окупится потом многократно.
2👍2🤣1
На волне оптимизации расходов ФОТ (увольнения айтишников на мороз), коллеги вокруг стали спрашивать про то, как сохранить тёплое место и большую премию.

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

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

Что является хорошим фактажом?
1. Факты с Performance Review
2. JIRA - количество тикетов, стори поинтов, часов
3. Выполненные цели (квартала/года/окры или еще что)
4. Обычный 360 (отзывы коллег)
5. NPS (отзывы от заказчика)
6. Участие в активностях (хакатоны, выступления)

Собственно, если ты нормально работаешь работу на работе и делаешь трекинг своей активности, то выгнать или лишить премии тебя будет тяжело (но не невозможно). Но может быть побочный эффект - по результатам трекинга ты увидишь, что нифига полезного в проекте и не делаешь :-)
👍8
Я тут всё за правильное observability выступаю, вот и решил сделать цикл статей про то, как я делаю у себя. Сложность пойдёт по нарастающей. Любые неточности я себе заранее прощаю 😌

https://bulov.org/tpost/6nbpv5ty41-pro-pravilnoe-observability-chast-1-corr
👍4
Про нейросети и увольнения

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

Нейронки - это отличный инструмент избавления от рутины и увеличения производительности. Условный Copilot умеет и тесты написать и в коде подсказать что и посочувствовать. Экономит это от 20-40% времени (зависит от контекста), которое можно потратить на фичи.

Вот мне нужно будет выкопать котлован под погреб на даче. Зачем мне платить толпе копателей с лопатами, если я могу в два раза дешевле нанять экскаватор на половину смены? Так и с кодерами.

А если ты боишься, что тебя может заменить "умный code completion", то пора идти учиться...
🔥3👍2😢1
Forwarded from Мэмы
😁8🔥3
Сейчас 10 минут спорил с тестировщиком про правила сортировки в базах. Она утверждала, что символ '(' должен идти после букв - т.е. '(ABC)' должно быть после 'ABC'. Отсылки к таблице UTF-8 и кодовым точкам не помогли, она твёрдо стояла на том, что так неправильно. Пришлось отравить её разбираться к бизнесу.

Упорство и уверенность в себе - это хорошие качества для тестировщика, они помогают делать отличные продукты! Главное при найме не перепутать их со слабоумием и отвагой...
😭4
В начале недели подсмотрел баг на проде у коллег. Я был в рассылке и повёлся на кликбейтный заголовок письма. Пошел искать в графану медь, а нашел золото... На микросервисном ландшафте без оркестрации (там подобие хореографии) есть бизнес-транзакция. Если что-то падает во время выполнения, то шлётся сообщение в error handler microservice и он уже делает рассылку каждому микросервису для отката транзакции.

Оказалось, что:
- не обрабатывается состояние, когда сам error handler упал с ошибкой
- нет самодиагностики по проверке состояния текущих процессов (что кому и когда мы послали и на каком этапе находимся). И если моргнёт условный rabbit или k8s, то rollback не произойдёт
- запрос на откат шлётся в одну сторону и нет гарантии отката в принципе
В результате, через годик мы получим n неконсистентных баз или постоянные ручные откаты. Смотря на это системно, делаю вывод, что коллеги не понимают базовые принципы конечных автоматов.

Когда я в 12 лет учился писать на турбо паскале и сях, нас перед кодированием заставляли рисовать блок-схему и таблицу переходов на бумаге. Потом её надо было защитить. Бомбило у меня жутко, ибо иногда я до кода не доходил вообще(!), а занимался два часа черчением. По прошествии лет 10 я понял, что именно это рисование из меня архитектора и сделало. Ибо алгоритм/транзакция/взаимодействие внутри микросервисов должно иметь состояние на входе и выходе. Никаких подвисших веток быть не должно!

В программе нынешних вайтишных курсов про алгоритмы говорят на первом занятии минут 30, потому что это скучно и вообще NPS будет низкий. А без этой базы получаются вот такие пользователи языков, которые всплывают рано или поздно до сениоров....
👍9
Ворвался на мой любимый STL Conf, выступил с презентацией. Скоро довыложу доп. материалы
👏5🔥2
Вайбкодинг - строго для сениоров

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

1. Grok, младшие GPT, Gemini пишут лютейшую пятикратно переваренный индусский код в самом худшем понимании. Для бытовых вещей, виртуальных коучеров и раскладов натальных карт ChatGPT великолепен, для кодинга - категорически нет.

2. Claude Sonnet - единственная адекватная модель, которая может в UI и бэк (хотя, в Котлине, всё же, слабовата). Да, она стоит дорого, но я даже был готов из своих заплатить, когда она кончилась.

3. ИИшечки не умеют делать поддерживаемую и развиваемую архитектуру приложения. Либо контекста не хватает, либо учились где-то не там. Причём даже Sonnet писал такую лютейшую дичь, что я бы его уволил нафиг, будь он живым девелопером. Но если эту структуру сделать, они отлично ее используют.

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

5. Модель базы/доменную модель делают все ИИшечки крайне плохо. Получается какая-то мешанина из enum'ов, странных малых объектов и строк.

6. UI генерить нейронкой сплошное удовольствие. Если дать копилоту скриншот из Figma + описание модели (с бека или просто JSON), то он напишет почти pixel perfect интерфейс.

7. ИИшечка расхолаживает и немного отупляет. Я всё чаще выделяю код и пишу fix this, что мозги не тренирует.

Резюме: нейронка - это как гениальный джуниор кодер с которым ты сидишь и делаешь pair programming. Если ты молодец, то и код будет хороший и приложение классное. А если ты сам джун, то получится "два дебила - это сила". Поэтому никогда, никогда не отдавай писать ИИшке то, что не можешь написать сам.
🔥8💯32
Обсуждали дня сего с камрадом интересную мысль. Если нанять принципал разработчика с навыками архитектора, дать ему в пару грамотного аналитика и платную нейронку без лимита на токены, то такая связка легко заменить среднюю команду в 4-6 человек. И это будет не вайб-кодинг, а нечто осмысленное и поддерживаемое (условный микросервис или жирный модуль или среднее приложение). Бизнесу это (вроде) супервыгодно: уменьшается ФОТ, сокращаются издержки на поддержку (пипл менеджмент, поиск сотрудников, администрирование, техника, лицензии).

Но есть нюансы:
1. За такую экономию хорошо бы платить разработчику хотя бы x2, но ведь никто это делать не будет (Иди, иди. Шуруй, шуруй. Начальнику - премия, рабочему ...).
2. Менеджмент по старой привычке любит хедкаунт (количество голов). Де как больше народа - выше производительность (это не так). Да и ранг выше, если у тебя людей больше.
3. Менеджеры боятся бас-фактора - уйдёт звезда и всё, встала разработка.
4. А давайте нашей команде дадим подписку на хорошую нейронку и они каааак заперформят (нет, будет куча нейрослопа).

Так что пока у начальства не поменяется майндсет, будет работа у джунов и сениоров.
🤗6🎉1
Про личный брэнд

Тут прочитал в дружественном канале про рыночек и личный бренд. Де как если этот самый бренд есть, то тебя будут везде брать. А если ты ноунейм, то рекрутер даже на твоё резюме не кликнет.
Тут всегда вставал вопрос - а где на это взять время и ресурс, если ты работаешь в полную силу (как профессионал), учишься (постоянно нужно, если ты профессионал) и соблюдаешь ворк-лайф бэланс?

1. Нормальный доклад - 40-60 часов времени.
Под нормальным я понимаю: личный опыт, отрепетированное выступление, высокий уровень знаний и контента в докладе, отсутствие чата гпт. Я не говорю сейчас про коучеров/тренеров, для кого это один из каналов для привлечения лидов, там другая история.

2. Годная статья - часов 8 минимум. Ибо нужны примеры, базовая вычитка, переделки. У меня лежит куча болванок, но где примеров нет хороших, где шлифануть надо. Но времени тупо не хватает.

3. Если ты профессионал (работаешь с отдачей свои 5-8 часов), то мыслетоплива остаётся к концу дня только на каточку в Доте или час-другой поучиться. Когда статьи строчить?

В сухом остатке - либо ты лучезарный выступатель и статей писец, но слабый работник, либо профессионал, но без бренда (либо известен в ооочень узкой среде). Как соблюсти баланс? Напишу как-нибудь (после других обещанных постов).
💯164👍1👏1😁1💔1
Подгорел вчера, зайдя в бложик одного технаря. Начал потреблять контент и почувствовал какой-то мерзкий вкус нейрослопа во рту. Вчитался - да, всё так. Зачем? Чтобы что?

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

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

PSS: закину на днях крафтовую статью про проведение 1:1
👍9🔥52🌭1💯1
😁141🌭1💯1
Я сразу вспомнил как мы в 2012 году писали De-Mail - точно такую же платную Национальную Электрическую Пошту для Германии.
Немцы, с которыми мы ее писали, сами ржали над мертворожденной концепцией. Естественно, никто в здравом уме не стал ей пользоваться и Телеком ее закрыл в 2022 году.

Но какие были классные командировки в Дрезден! До сих пор вспоминаю мою любимую команду Гуёвых, пляски вокруг Гейтвея, Weiße Gasse, Вацке Баллхаус, поездки в Прагу...
😁104
SaintTeamLead2026.pdf
4.3 MB
Преза с доклада на SaintTeamLeadConf 2026 про Алгоритм создания и приоритезации тех беклога
🔥72👀1
Преза с TLT. Давно так не кайфовал от выступления ☺️
👏122😈1
Про факапы на выступления

Перед докладом поболтали с ведущей, для разминки рассказал ей пару самых ярких моментов на своих выступлениях. Не про то как я входил в топ-3/топ-5 тимлидконфа (это нафиг никому не интересно), а про фейлы. Сообразительный читатель сделает выводы!

Первый раз
Самое первое моё выступление было в моей любимой Джава Школе. Первый урок первой школы. Готовился я достаточно серьезно, репетировал перед слайдами за компьютером и делал всякие живые демонстрации. Естественно, весь материал я забыл и рассказал все заикаясь за 20 минут. Благо, то были студенты, а не злобные сениоры и сениориты на какой-нибудь конференции..
Выводы:
- репетиция перед монитором и рассказ перед залом - разный опыт, прогоны делай только стоя, воображая людей перед собой.
- сначала тренируйся на кошках

Шит хаппендс
На EAR или AgileDays в середине выступления просто выключился проектор. Минуты три мальчик показывал руками что его зовут Хуан я просто ... рассказывал. Слайды включили, я продолжил. Естественно, пошутил и когда слайды пропали и когда вернулись.

На следующий год там же. Я скинул новую версию презы вечером перед выступлением. Отличалась она начиная с 10 слайда и там была ну совсем другая структура и мысль. Естественно, включили старую версию. Доклад вышел гибридным, публика не особо чего-то заметила.
Выводы:
- продумай все возможные варианты факапов и как ты будешь выкручиваться: забыл текст наглухо, не работает преза, облился кофе, опоздал на выступление, народ уходит из зала, упал на сцене, прилетели инопланетяне.
- проверяй слайды до конца(!). И носи флешку с ними
- минимум один прогон без слайдов. Я обычно это в машине делал - в пробке успеваешь один блок рассказать регистратору

Сам дурак
На последнем СантТимлидКонфе 2026 было. Я сделал слайды с кучей CLD диаграмм, весьма мелких. Вхожу в зал и думаю про себя: Пиз О Боже мой! Вместо проектора - два телевизора. Каждый размером как мой монитор. А зал вытянут в колбаску и ничегошеньки не видно уже ряда с третьего. Пришлось вернуться к истокам и рассказать всё за 15 минут. Потому что проговаривать 20 элементов схемы со стрелками было бы нарушением конвенции о пытках.
Вывод:
- проверяй зал заранее (надо было просто кликнуть на ссылку зала!)
- не делай презу с диаграммами. Либо текст, либо мемасики.

Несмотря на всякий шитхаппендс, выступать все равно весело.
6🦄1
Автотестеры не нужны

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

А верстать на таблицах/диванах/блоках умело полтора человека из всей конторы. Поэтому верстак отдавал фронтендеру макет, а тот уже вставлял его в JSP или JSF. К слову, в дикие времена IE6/Firefox/Chrome это было тем еще развлечением.

Сейчас же Клауде автотестирует и верстает лучше и быстрее. Год назад приходила внутренняя тест-фактори в проект, продавали тесты на селениуме (мы не купили). Сейчас я посчитал экономику - за 10 часть стоимости той команды, агент напишет классные и актуальные тесты.

В интересные времена живем...
🤔4🔥2