Latest posts

StringConcat - разработка без боли и сожалений
21 Sept, 08:44edited
А сегодня снова не совсем обычный пост (пока я занят написанием духоты). Знаю, что у многих подписчиков есть собственные каналы, а кто-то задумывается о том, чтобы изготовить из себя личный бренд. Поскольку мы занимаемся чем-то похожим и у нас есть опыт помощи другим, я решил оформить это в виде небольшого гайда, в течение которого буду всячески отговаривать вас заниматься подобными вещами. Если будет интересно, в следующем посте обсудим монетизацию.Как стать инфоцыганом. Личный бренд для ИТшникаА если вам нужно подушнее, то рекомендуем к ознакомлению: - Кто мы такие (открытый пост) - Полное руководство по Value Objects (открытый пост) - DDD в машинном обучении - опыт реального проекта - Как собрать команду мечты


StringConcat - разработка без боли и сожалений
18 Sept, 08:01edited
Сегодня необычный выпуск — подкаст с нашим старым бро Константином Могилевкиным.Константин — IT-предприниматель, в айтишечке с незапамятных времён, как и мы.Воздуханим 1ч 9 мин Разговариваем за бизнес, за жизнь, за то, как в нынешних непростых условиях оставаться на плаву, как немного лутануть бабосиков и причем тут ДэДэДэ.Смотреть: YouTube | ВКYouTubeГде брать деньги в IT в 2026? Подкаст с ИТ-предпринимателемПолезные материалы: 🎯 Разработка без боли и сожалений - https://t.me/stringconcat 🎯 Канал Константина - https://t.me/prezmog 🎯 Видео про теорию всего - https://www.youtube.com/watch?v=1pan4dalh3M Где брать деньги в IT в 2026? Разговор с Константином —…
StringConcat - разработка без боли и сожалений
15 Sept, 12:39
А теперь первый душный пост на нашем новом ресурсе. Выжимка из опыта — как собрать команду мечты. Внутри: - Почему команда мечты — это не 10 суперзвёзд, работающих по 16 часов (а суперзвезда вообще антипаттерн) - Каких людей надо гнать ссаными тряпками в
StringConcat - разработка без боли и сожалений
8 Sept, 11:51
Я на работе запилил такое правило — мы работаем с подходом Monolith First. Это когда мы сначала запиливаем монолит, а потом нарезаем его по мере необходимости. Тут даже не то чтобы правило, меня прям бомбить начинает от слова «микросервисы». А всё почему?
StringConcat - разработка без боли и сожалений
4 Sept, 09:51
Начинаем сезон видосиков с обзора карьерных путей (не переживайте, духота тоже будет, но попозже).Обозрел основные ветки развития на собственном опыте: успел поработать практически во всех ролях и рассказываю, как там дела, куда расти и чего вообще ждать.Смотреть YouTube | VKYouTubeЯ прошел путь от стажера до CTO чтобы вам не пришлось: деньги, технологии и проблемы с кукухойПосле Senior лестница заканчивается. Дальше уже не код, а выбор: люди или технологии, стабильность или потолок, свобода или влияние. Разбираю реальные пути — техлид, стаф, архитектор, тимлид, CTO, консалтинг и свой продукт — и что за каждым на самом деле:…
StringConcat - разработка без боли и сожалений
2 Sept, 10:19
В комментариях к предыдущему посту читатели оставили пару комментов. Они интересные, поэтому давайте разберём. Кратко передам суть первого:VO на практике бывает очень локальным, поэтому не всегда есть смысл их выделять в отдельные классы и можно вообще оставить.То, что логика локальная, — это не значит, что её необходимо оставлять как есть (иначе получатся анемичные объекты с логикой в агрегатах). Конкретно в моём случае эта логика постоянно переиспользовалась в разных местах, в том числе за пределами агрегата (для построения графиков, отчётиков и т. д.).Сам VO распространяется не на все контексты — ограничение таки есть (это сам контекст как раз). Также в тексте есть про общие типы, которые могут использоваться везде. Это как раз норм, так как логика 100% всегда одинаковая (email он и в Африке email), но там тоже есть оговорки (подробнее в статье).Второй комментарий придётсяTelegramStringConcat - разработка без боли и сожаленийNotebook → прод, метод на 1000 строк, цикл в цикле в цикле, никто не понимает что происходит - это классика от MLщиков. Мы применили DDD и чистую архитектуру к реальному ML-проекту. Value Objects, агрегаты, доменные сервисы, порты — на конкретных примерах…
StringConcat - разработка без боли и сожалений
31 Aug, 10:35
Знаем, что большинству удобнее читать текст, чем смотреть видосики, поэтому решили выложить в открытый доступ текстовую версию видосов про Value Objects.Внутри — примеры из реальных проектов с логикой чуть сложнее, чем просто валидация, а ещё разбор такого явления, как коллекции в виде VO.P.S. Если найдёте опечатку или какой-нибудь косяк — пишите прямо там, в комментах. Мы вроде всё вычитывали, но где-то на 35-й странице внимание начинает немного угасатьНу и ставьте лойсы и делитесь постом. Если такой формат зайдёт — будем делать больше текстовых материалов.
StringConcat - разработка без боли и сожалений
25 Aug, 07:03
Notebook → прод, метод на 1000 строк, цикл в цикле в цикле, никто не понимает что происходит - это классика от MLщиков. Мы применили DDD и чистую архитектуру к реальному ML-проекту. Value Objects, агрегаты, доменные сервисы, порты — на конкретных примерах кода (осторожно, петухон).Читать что получилось →


StringConcat - разработка без боли и сожалений
18 Aug, 10:32
Я на работе запилил такое правило — мы работаем с подходом Monolith First. Это когда мы сначала запиливаем монолит, а потом нарезаем его по мере необходимости. Тут даже не то чтобы правило, меня прям бомбить начинает от слова «микросервисы».А всё почему? Да потому что вы, наверное, помните офигительную историю про 80 микросервисов. Выяснилось, что, чтобы собрать эти 80 микросов, нам нужно 220(!) репозиториев. Ну а вендор, который продал это чудище, просто сказал: «У меня лапки, я не могу поддерживать это больше». Даже развернуть на новом стенде оказалось нереально.И тут хорошо видна ещё одна проблема с вендорами. Мы обычно думаем, что покупаем у них продукт, который потом будем несколько лет развивать и поддерживать. А вендор зачастую думает, что он делает проект. Есть набор задач, за который ему заплатили, — надо этот набор и закрыть. Что будет с системой через два года, когда еёmartinfowler.combliki: Monolith FirstGoing directly to a microservices architecture is risky, so consider building a monolithic system first. Split to microservices when, and if, you need it.
StringConcat - разработка без боли и сожалений
13 Aug, 07:05
Как ИИ превратил плохих менеджеров в плохих разработчиковНе знаю, как у вас, но у меня с появлением ИИ собеседования превратились в боль. Раньше плохих разработчиков можно было отсеять ещё на этапе тестового задания. Сейчас любое тестовое выполняют как минимум на «сойдёт»: — пользоваться ИИ не запретишь; — какое-никакое решение он всё-таки состряпает. Поэтому количество очных собеседований у нас выросло в разы.Но недавно я столкнулся с новым типом кандидатов: плохими менеджерами, которые с помощью ИИ переквалифицировались в плохих разработчиков. Попался мне один такой. Рассказываю. Читаю резюме — вроде всё нормально, но нет какого-то коннекта на уровне «свой — чужой». Чувствую подвох. Резюме слишком вылизано, в достижениях слишком много бизнесовых показателей. Разработчики обычно так не пишут. Открываю тестовое — и там тоже на первый взгляд всё хорошо. Но вместо Gradle вижу
StringConcat - разработка без боли и сожалений
11 Aug, 08:38
Тут опять произошло прекрасное.Исследователи из JFrog решили проверить, что там с найденными (как выяснилось, в основном ИИ) уязвимостями в SQLite, и оказалось, что из 55 зарегистрированных CVE реальной была всего одна, а остальные — обычные галлюцинации ИИ: тут и выдуманные методы, и несуществующие пути эксплуатации, и нерабочие эксплоиты, и прочие радости жизни. Самое фиговое, что эти уязвимости уже успели попасть в CVE. То есть в следующем релизе вполне возможно, что какой-нибудь сканер начнет сношать вам мозг относительно критической уязвимости, которой никогда не существовало.Можно подумать, что ИИ тут бесполезна. Но нет.На мой взгляд, ИИ сейчас довольно неплохо работает там, где есть четко сформулированные правила, которые можно проверить. Например, при разработке агрегатов и инвариантов к ним. Можно попросить ИИ оценить белые пятна: не нарушается ли владение объектами, неJfrogSQLite Critical CVEs or LLM Slop? | JFrogThe JFrog security research team recently identified a supply chain attack targeting the `xinference` package on PyPI. Versions 2.6.0, 2.6.1, and 2.6.2 were compromised and yanked by maintainers after users reported suspicious behavior. If you installed or…
StringConcat - разработка без боли и сожалений
6 Aug, 10:35

StringConcat - разработка без боли и сожалений
3 Aug, 09:52edited
Всем хорошего понедельника


StringConcat - разработка без боли и сожалений
30 Jul, 10:28edited
А теперь первый душный пост на нашем новом ресурсе. Выжимка из опыта — как собрать команду мечты.Внутри:- Почему команда мечты — это не 10 суперзвёзд, работающих по 16 часов (а суперзвезда вообще антипаттерн) - Каких людей надо гнать ссаными тряпками в первую очередь - Какие роли необходимы в команде - Почему собес почти ничего не решает - И как понять на нём, что перед вами хорошая команда, а не очередной филиал адаЧитать →


StringConcat - разработка без боли и сожалений
24 Jul, 10:28
Небольшой лайтовый пост про то кто мы такие и чему учим (считайте, что разбирался с редактором сайта). Следующий, с пониженым содержанием кислорода уже в работе.
StringConcat - разработка без боли и сожалений
10 Jul, 12:02
Magnum OpusИтак, ребята, немного новостей.1. Как вы знаете, мы занимаемся обучением, и у нас есть курс «Разработка без боли и сожалений». Написали мы его около 6 лет назад, и за это время он не потерял актуальности (а во времена ИИ стал даже актуальнее, ИМХО). Но пришла пора обновлений. За эти годы мы гораздо лучше поняли текущие потребности, накопилось большое количество материала и т.д. Что хочется сделать? Добавить больше практики: как самостоятельной, так и в формате разборов. Очень много вопросов из серии «а как вот это сделать?», поэтому решили, что проще показать и заставить вас повторить. Еще хочется добавить новые темы: немного ИИ, безопасности, производительности, миграций и т.д. Раньше этого не было в явном виде, но сейчас потребность уже есть.Мы уже приступили к обновлению, делаем это не спеша. Это не наша основная деятельность, над нами нет KPI, менеджерок, эйчарок и
StringConcat - разработка без боли и сожалений
2 Jul, 07:35
Про языки программирования в эпоху ИИ.Можно подумать, что сейчас уже не так важно, какой язык мы используем. Но не совсем. Скорее, подвергается инфляции сам навык кодинга (хотя фронтендеры еще с 2010-х должны были привыкнуть, что их навыки регулярно обесцениваются с выходом очередного фреймворка).Так вот, суть языка никуда не девается. Более того, если мы рассматриваем тру-инженерный подход, то нам нужно как-то валидировать выхлоп LLM. И тут очень кстати оказываются нормальная модульность, типы, статический анализ и прочие скучные вещи, которые почему-то снова становятся актуальными (опять ничего нового).Есть ощущение, что в эпоху ИИ язык все больше становится не только способом писать код, но и способом ограничивать пространство ошибок. Чем больше инвариантов и ограничений можно выразить средствами самого языка, тем меньше шансов, что модель сгенерирует что-то неожиданное (это


StringConcat - разработка без боли и сожалений
26 Jun, 13:04
Handbook: Как не быть уволенным когда все косячат с деплойментом? (продолжение, начало про деплоймент из закрытой комнаты)Как вы понимаете, при деплойменте из закрытой комнаты ни один деплоймент гладко не проходит.А если что-то пошло не так, нужен виноватый. И тут процесс поставлен на поток. Раз в полгода нанимается новый деплоймент-менеджер, который, офигевая, собирает все эти подписи.- Потом происходит деплоймент с неизменным факапом. - Виновным назначается деплоймент-менеджер. - Деплоймент-менеджер отправляется на февральский мороз. - Тут же открывается вакансия нового деплоймент-менеджера.Ну хоть тут процесс у банка отработан. И заметьте, для этого никому не надо запираться в той комнате с HR менеджером и камерой.Почему я не попал в тот банк?Когда мы торговались за зарплату, я неосмотрительно выдал: Я обмениваю международную компанию с хорошей репутацией на местный банк,TelegramStringConcat - разработка без боли и сожаленийВремя страшилок: деплоймент из закрытой комнаты. Когда меня уволили из Thoughtworks два года назад, я чуть не попал в местный банк BOU (название изменено). О его корпоративной культуре ходили легенды, которые ужасали даже китайцев. Недавно я познакомился…
StringConcat - разработка без боли и сожалений
17 Jun, 07:21
Помните, я рассказывал про софтину из 50 микросервисов? На прошлой неделе мне показали изделие уже из 80! В код я ещё не смотрел, но, зная, какие задачи оно решает и сколько у него пользователей, всё это выглядит как нечто избыточное.Я даже боюсь представить, сколько человекочасов там закопано в инфраструктуру, интеграции, деплои, мониторинг и прочую деятельность, которая никак не приближает никого к решению задач и какие последствия для отрасли в целом имеет такой подход.Чтобы не было недопонимания: мы не говорим что микросы не нужны. Проблема в том, что благодаря хайпу прошлого десятилетия (а точнее армии мутных татуированных типов, которые разбираются разве что в средствах для ухода за бородой своего парня) микросервисы впаривали направо и налево. Мы с Серёжей даже видели курс, где единственным обоснованием их применения было что-то вроде "куда же в 2k1x без микросервисов" (яTelegramStringConcat - разработка без боли и сожаленийМоя личная боль: Микросервис == Entity Третью неделю переносим одно «небольшое» приложение из примерно полусотни микросервисов (помогите) в новую инфру, со всеми пайплайнами, куберами, базами данными и прочим непотребством. И это настоящий музей антипаттернов.…
StringConcat - разработка без боли и сожалений
10 Jun, 09:23
Тут, оказывается, вышел OWASP Top 10 2025.Из интересного (на мой взгляд):Software Supply Chain Failures — теперь на 3-м месте. Если старый A06:2021 в основном смотрел на зависимости (поставил старую или уязвимую библиотеку — получил дыру уровня Log4Shell), то теперь речь идет уже обо всей цепочке поставки ПО: репозитории, CI/CD, IDE, механизмы обновлений. Атакуют не только сам пакет, но и весь путь его доставки. Например, через компрометацию мейнтейнера, взлом вендора с последующей поставкой зараженных зависимостей и библиотек и т.д. То есть неприятный сюрприз может приехать от вполне легитимного поставщика. Если раньше такие истории считались скорее экзотикой, то теперь они добрались до 3-го места (особенно с учетом возможностей ИИ).Mishandling of Exceptional Conditions — новый пункт. Суть в том, что приложение некорректно реагирует на сбои: неожиданный ввод, обрыв сети, нехватку
Related Channels
Other channels in the same section of the catalogue.
