en
Feedback
Книжный куб

Книжный куб

Open in Telegram

Рекомендации интересных книг, статей и выступлений от Александра Поломодова (@apolomodov), технического директора и эксперта в архитектуре (no ads in channel)

Show more

📈 Analytical overview of Telegram channel Книжный куб

Channel Книжный куб (@book_cube) in the Russian language segment is an active participant. Currently, the community unites 14 483 subscribers, ranking 2 558 in the Books category and 45 632 in the Russia region.

📊 Audience metrics and dynamics

Since its creation on невідомо, the project has demonstrated rapid growth, gathering an audience of 14 483 subscribers.

According to the latest data from 11 July, 2026, the channel demonstrates stable activity. Although there has been a change in the number of participants by 242 over the last 30 days and by -4 over the last 24 hours, overall reach remains high.

  • Verification status: Not verified
  • Engagement rate (ER): The average audience engagement rate is 17.58%. Within the first 24 hours after publication, content typically collects 9.68% reactions from the total number of subscribers.
  • Post reach: On average, each post receives 2 546 views. Within the first day, a publication typically gains 1 402 views.
  • Reactions and interaction: The audience actively supports content: the average number of reactions per post is 18.
  • Thematic interests: Content is focused on key topics such as engineering, native, devex, devops, leadership.

📝 Description and content policy

The author describes the resource as a platform for expressing subjective opinions:
Рекомендации интересных книг, статей и выступлений от Александра Поломодова (@apolomodov), технического директора и эксперта в архитектуре (no ads in channel)

Thanks to the high frequency of updates (latest data received on 12 July, 2026), the channel maintains relevance and a high level of publication reach. Analytics show that the audience actively interacts with content, making it an important point of influence in the Books category.

14 483
Subscribers
-424 hours
+67 days
+24230 days
Posts Archive
2 гига спуста - эпизод первый (Рубрика #News) Это первый выпуск подкаста с лайтовым обсуждением новостей двумя ведущими Суть в том, чтобы в научпоп формате обсуждать интересные IT новости и выпускать эпизоды раз в неделю. В этом мне помогает Антон Костерин, мой коллега, с которым мы вместе развиваем архитектурную функцию в Т-Банке. Антон входит в программный комитет "Teamlead Conf", а также уже много раз появлялся в моем канале: - Внешний подкаст с темой "Миграция в срок, реальность или миф?" - Подкаст "Code of Architecure" в первой серии по книге ван Стина и Таненбаума "Distributed Systems" - Третий выпуск Code of Architecture по книге "A Philosophy of Software Design" - Code of leadership #17 - Interview with Anton Kosterin about Architecture В первом выпуске мы обсудили темы 0) Vibe coding в обсуждении Y Combinator, где vibe coding становится новым подходом к программированию, позволяющим быстро создавать код с помощью ассистентов без необходимости глубокого изучения программирования, что особенно полезно для стартапов и домашних проектов. Оригинальное видео и мой краткий разбор 1) Forbes написали о том, что 95% объектов критической инфраструктуры используют зарубежные решения, включая Zabbix для мониторинга (85%), что поднимает вопросы импортозамещения 2) Ситибанк допустил серьезную ошибку, случайно переведя 81 триллион долларов вместо 280 тысяч, что подчеркивает необходимость многоуровневой защиты в финансовых системах. 3) C++ сталкивается не только с проблемами безопасности, но и с проблемами маркетинга, что может привести к его упадку, несмотря на то, что он остается стандартом де-факто в индустрии. Об этом рассказал сам создатель языка, Бьерн Страуструп 4) Равинд Шинивас, CEO Perplexity, поделился своим опытом создания компании, разрабатывающей AI поиск с использованием LLM моделей и успешно конкурирует с Google Search, Microsoft Bing и остальными. Оригинальное видео и мой разбор 5) Исследование показало, что внешность кандидата может влиять на успешность прохождения интервью, что поднимает этические вопросы при найме. Нейронные сети могут перенимать человеческие предубеждения из обучающих данных, что особенно проблематично в таких областях как медицина, где важна точность прогнозов. #Management #AI #Software #Engineering #Reliability #Processes #Productivity

[4/4 + Extra] What Improves Developer Productivity at Google? Code Quality. (Рубрика #DevEx) В этом посте приложены ключевые
+3
[4/4 + Extra] What Improves Developer Productivity at Google? Code Quality. (Рубрика #DevEx) В этом посте приложены ключевые иллюстрации из статьи, что разбиралась в четырех предыдущих частях обзора 1, 2, 3 и 4.

[4/4] What Improves Developer Productivity at Google? Code Quality. (Рубрика #DevEx) Закончим рассмотрение статьи про developer productivity (1, 2 и 3) и обсудим полученные авторами результаты. Топ пять факторов, что получились после анализа содержали следующие факторы - Project code quality (качество кода в проекте) - Hindrance of shifting priorities (препятствия в изменении приоритетов) - Technical debt in projects (технический долг в проектах) - Innovation of infrastructure & tools (инновации в инфраструктуре и инструментах) - Overall satisfaction with infra & tools (общая удовлетворенность инфраструктурой и инструментами) Дальше авторы применили панельный анализ с запаздыванием. Суть в том, что они получили корреляцию между продуктивностью инженеров и факторами, что приведены выше, а хотелось бы получить более сильные результаты и понять направление связи. Для этого они выдвинули две гипотезы 1) QaP: изменения в качестве кода в момент T-1 коррелирует с изменениями в продуктивности инженеров во времени T. В виде формулы это выглядело так: Δ𝑃𝑖𝑡 = 𝛼 + 𝛽Δ𝑄𝑖𝑡−1 + Δ𝜖𝑖𝑡 2) PaQ: изменения в продуктивность в момент T-1 коррелирует с изменениями в качестве кода в момент T. В виде формулы это выглядело так: Δ𝑄𝑖𝑡 = 𝛼 + 𝛽Δ𝑃𝑖𝑡−1 + Δ𝜖𝑖𝑡 Оказалось, что первая гипотеза о том, что рост качества кода связан с повышением производительности подтверждается со следующей силой
We found that a 100% increase of satisfaction rating with project code quality (i.e. going from a rating of ‘Very dissatisfied’ to ‘Very sat- isfied’) at time T-1 was associated with a 10% decrease of median active coding time per CL, a 12% decrease of median wall-clock time from creating to mailing a CL, and a 22% decrease of median wall-clock time from submitting to deploying a CL at time T.
А вот обратная гипотеза отвергается, так как она не подтверждена экспериментальными данными. Собственно, эти результаты и привели к названию статьи, а также к целой серии дальнейших исследований, что я упоминал в части 3 этого обзора. Отдельно надо рассказать про опасности для валидности этого эксперимента, которые описали авторы. Их всего 4 1) Content. Авторы измеряли продуктивность по ответу на один вопрос в проводимом EngSat опросе, что конечно не дает полной картины. Например, авторы отмечают, что этот вопрос был про индивидуальную продуктивность инженера, а не про эффективность команды. Примерно также не все факторы, что могут влиять на продуктивность были рассмотрены 2) Construct. Восприятие вопроса про продуктивность могло отличаться у респондентов. Например, кто-то мог думать о продуктивности в формате нафигачить быстро фичу, а кто-то учитывал разницу в качестве при создании фичи. Ну и там был еще ряд мест, где респонденты по разному могли воспринять сами вопросы 3) Internal. В этом исследовании авторы используют панельный анализ с запаздыванием, что эффективно предполагает, что эффекты на индивидуальных инженеров не зависят от времени. Например, у одного инженера сменился проект и команда, другому достался крутой ментов, у третьего что-то случилось в семье. Одновременно, могли бы быть проблемы, если какие-то категории инженеров систематически не участвовали в опросе, например, ветераны разработки или наоборот новички. Но авторы такие отклонения контролировали. 4) External. Весь эксперимент основывает только на опыте инженеров внутри Google, а значит может не иметь обобщающей силы на другие компании в индустрии. Несмотря на все потенциальные проблемы, мне понравилось это исследование не только итоговым ответом на вопрос про то, что улучшает developer productivity в Google, но и самой методологией проведения эксперимента. #Management #Leadership #Software #SoftwareDevelopment #Architecture #SoftwareArchitecture #Metrics #Devops #Processes

Вдруг что-то важное - Как учиться с помощью AI, развивать технические скиллы и причем тут адаптивность (Рубрика #SelfDevelopment) Появился выпуск подкаста "Вдруг что-то важное", куда я пришел в качестве гостя, чтобы поговорить про обучение и адаптивность. Ведущими эпизода были: - Андрей Смирнов, организатор конференции Soft Weekend и подкастер - Ульяна Батуева, тимлид PR-отдела в KODE А обсуждали мы тему постоянных изменений - вокруг меняется все: фреймворки, методологии, инструменты, тренды… Как писал Льюис Кэролл в своей Алисе "Нужно бежать со всех ног, чтобы только оставаться на месте, а чтобы куда-то попасть, надо бежать как минимум вдвое быстрее!". Но такая погоня легко может привести к выгоранию. В выпуске мы попробовали обсудить как найти баланс, как научиться адаптироваться к изменениям осознанно, без стресса и паники, как использовать AI для обучения и не утонуть в потоке информации. По-моему, выпуск получился достаточно интересным, хотя не уверен, что я сам знаю ответы на вопросы, представленные выше:) #Management #SelfDevelopment #Edu #AI #Leadership #Software

Обложка книги "Программирование. Математические основы, средства, теория"
Обложка книги "Программирование. Математические основы, средства, теория"

Программирование. Математические основы, средства, теория (Рубрика #Math) Сегодня я решил вспомнить книгу Святослава Сергеевича Лаврова 2001 года издания, которая была выпущена в качестве фундаментального учебника по программированию. Автор был ученым, член-корреспондентом АН СССР и одним из пионеров советского программирования. Эта книга стала его последней работой. Честно говоря, я ее купил себе на первом курсе больше 20 лет назад и она мне тогда показалось сложноватой, но я честно пытался ее прочесть. Сейчас, пересматривая этот учебник, я понял почему она тогда показалась мне такой - автор решил в одной книге на 300 страниц дать основы математики и программирования, чтобы показать фундаментальную связь между этими дисциплинами. Зацените список дисцплин, что излогает автор в первой части с математическими основами - Формальные языки и логические формальные теории - Propositional and predicate logic - Теория множеств, а заодно про графы и деревья - Вероятности, немного про измерение информации и случайные процессы - Теория вычислимости с lisp и Машиной Тьюринга Каждая из этих тем тянет на отдельный семестровый курс, а то и больше:) И теперь, когда я пролистывал эту книгу, то мне все кажется достаточно понятным, а 20+ лет назад все казалось не таким ясным Во второй части автор переходит к основным понятиям и конструкциям языков программирования, где все начинается с дружелюбного использования формы Бэкуса — Наура для описания синтаксиса языка, дальше продолжается описанием структур данных, структуры действий, работы с процедурами, а дальше новыми веяниями в виде объектно-ориентированного и функционального программирования. В третьей части речь идет про анализ свойств программ, где автор рассказывает про оценку сложности алгоритмов, доказательство свойств программ, формализацию семантики языков программирования и так далее. В общем, автор написал книгу, в которой программирование рассматривается с математической точки зрения, а не с инженерной. Это сильно отличается от доминирующего подхода в наше время, но имеет свое право на жизнь. Мне в свое время книга понравилась как раз своей математической составляющей, но программировать я решил учиться по другим книгам:) #Math #Engineering #Software

The Pragmatic Programmer: From Journeyman to Master (Программист-прагматик) (Рубрика #Engineering) Достал тут очередную древнюю книгу с полки, чтобы вспомнить былое и рассказать как начинался для меня IT в начале 2000х годов. В этот раз речь пойдет про влиятельную книгу того времени, написанную Эндрю Хантом и Дэвидом Томасом в 1999. Основная мысль книги была о том, что программист должен быть прагматичным профессионалом, который постоянно совершенствуется, мыслит критически и ответственно относится к своему труду. Сейчас я бы сказал, что авторы пропагандируют здоровый инженерный подход, а не просто программирование. Интересно, что я уже рассказывал про книгу, но тогда фокусировался на своих записях из 2000х годов, а теперь решил поговорить про pragmatic programmer , ключевого персонажа, которого описывают авторы и который - Заботится о качестве своего кода и принимает ответственность за свои решения (care about your craft) - ту есть отсылка к craft, а не engineering, в те времена были разные школы мысли о том, является ли программирование инженерной деятельностью или это скорее craftmanship (потом даже появился craftmanship manifesto для софта) - Применяет принцип DRY (don't repeat yourself), избегая дублирования кода - Использует автоматизацию для повышения эффективности разработки (automation) - Регулярно тестирует код и применяет подходы вроде TDD (test-driven development) - Постоянно обучается и адаптируется к изменениям технологий (по прошествии 25 лет я бы поставил этот пункт на первое место) - Использует системы контроля версий (Version Control) как обязательную часть рабочего процесса - Стремится к написанию понятного, легко поддерживаемого кода. - Применяет техники отладки (debugging), такие как разговор с уточкой (rubber duck debugging) - Следует принципам YAGNI ("You aren't gonna need it"), избегая излишней сложности - Применяет подходы рефакторинга для улучшения структуры кода В книге есть забавные истории про теорию разбитых окон ("broken windows theory"), о каменном супе ("stone soup") или супе из топора в русских сказках, а также метод отладки "резиновая уточка" ("rubber duck debugging"). Книга была издана чуть больше 25 лет назад и на тот момент она была чрезвычайно прогрессивной и новаторской - из описанного выше она ввела или популяризировала - Принципы DRY, принци ортогональности (orthogonality) для декомпозиции системы на независимые компоненты (decoupling), важность рефакторинга - Сфокусировала внимание на автоматизации процессов разработки и тестирования задолго до массового распространения CI/CD (Continuous Integration/Continuous Delivery) систем. Например, в то время многие компании не использовали даже VCS, не то что не писали тесты - Сделала акцент на личной ответственности программиста за качество своего продукта, что было новаторским подходом на фоне тогдашних более формализованных методологий - Предложила концепцию постоянного обучения и адаптации как неотъемлемой части профессионального роста разработчика задолго до того, как это стало общепринятым стандартом P.S. Интересно сравнивать то, что интересовало меня 20+ лет назад при прочтении книги и как я сейчас на нее смотрю с высоты опыта:) #SelfDevelopment #Engineering #Software #SoftwareDevelopment #Management #Leadership

Using Architectural Kata in Software Architecture Course: An Experience Report (Рубрика #Architecture) Эта статья вышла летом 2023 и в ней Usman Nasir из Blekinge Institute of Technology (Швеция) рассказывал о своем опыте обучения студентов software architecture с использованием кат. Этот опыт основан на одном семинаре с катами на 20 студентов в рамках продвинутого курса по архитектуре. И хоть ничего нового в описании нет, но мне нравится сама идея использовать архитектурные ката при обучении студентов. Семинар по архитектурным ката был интегрирован в курс обучения как групповое упражнение, где студенты совместно участвовали в мероприятии, направленном на проектирование, документирование и оценку получившейся архитектуры. В качестве задачек были взяты ката с сайта Ted Neward architecturalkatas.com, но были выбраны такие задачи, доменная область которых была легко понятна студентам, например, Check Your Work или Making The Grade. Сам семинар включал в себя - Discussion & design phase - на этой фазе студенты изучали проблему, определяли архитектурные драйверы (нефункциональные требования, ограничения), а также дизайн решения, которое удовлетворяет требованиям - Peer review & voting phase - на этой фазе студенты презентуют свои решения и оценивают работу друг друга, причем для оценок использовалась шкала -- Nailed it: все ключевые функциональные требования закрыты и атрибуты качества учтены, а получившееся решение достижимо в плане реализации (feasible) -- Missed a few things: в решении пропустили какие-то ключевые функциональные требованя или атрибуты качества -- Missed it, badly: врешение пропушены ключевые функциональные требованя, атрибуты качества или сделаны большие неверные предположения при дизайне После окончания курса преподаватель собрал отзывы и они показали положительный опыт студентов. Участники сообщили об улучшении не только технических навыков, связанных с проектированием и оценкой архитектуры, но и soft skills, таких как командная работа, коммуникация и критическое мышление. Студенты оценили практический характер семинара, который позволил им практиковать принятие архитектурных решений без давления, связанного с реальными проектами. В принципе, мне кажется, что проведение архитектурных ката - это хороший способ практического обучения - Для студентов в универах это можно совместить с реальной реализацией предложенного решения на протяжении всего семестра - Для инженеров в компаниях это можно совместить с воркшопом по проектированию спроектированного поверх возможностей, что есть в IDP (internal developer platform) #Architecture #SystemDesign #Management #Engineering #Software #SoftwareArchitecture #Edu #Whitepaper

Парк Львов "Земля Прайда" (Рубрика #Kids) Сегодня с детишками мы были в парке львов "Земля Прайда". Мы часто ездим загород по
+8
Парк Львов "Земля Прайда" (Рубрика #Kids) Сегодня с детишками мы были в парке львов "Земля Прайда". Мы часто ездим загород по выходным к родителям жены, а этот парк оказался всего в получасе езды от их дома. Поэтому мы проснулись сегодня утром, позавтракали, а дальше сели в машину и поехали в парк, где спокойно тусят львы, тигры, медведи и другие животные. Мы приехали почти к самому открытию парка, поэтому посетителей было немного и мы, прикупив ведерки с едой для животных, смогли пройтись по територии и потренироваться в метании мяса тиграм и львам, а также покормить с рук кроликов, уток и гусей, коз, овечек, верблюдов и осликов. Парк нам понравился - Многие животные были выкуплены из неволи и выхожены сотрудниками парка - видно, что они достаточно вольготно живут и хорошо питаются - На территории парка все сделано для животных и людей - вальеры для животных большие, тигры, мишки и львы живут на большой и огороженной территории, где ты поднимаешься по лестнице наверх и дальше смотришь не через прутья клетки, а как бы с высоты на зверей - В парке есть львиный прайд, который только просыпался в районе 10 часов - то есть бросать надо было точно иначе львы не особо горели желанием идти за мясом За час мы быстрым темпом обошли всех животных, потом взяли по капучино для взрослых и по мороженному для детей в кафешке, сели в машину и поехали обратно. В итоге, получился очень легкий и приятный выезд на природу - благо Солнышко и теплая погода сделали эту прогулку еще приятнее. #ForParents #ForKids #Family #Stories

Интервью с Глебом Михеевым про Individual Contributors, Site Reliability Engineering и надежность Летом прошлого года мы записали выпуск подкаста "Фичи Катятся" с Глебом Михеевым, автором канала "Уставший техдир" (@tired_glebmikheev). Примерно в это время Глеб поменял работу и занялся AI-ассистентом в Сбере, поэтому снятое отправилось на полку. А сегодня Глеб опубликовал эту запись, где мы с ним много общались про развитие инженеров, проектирование систем, обеспечение их надежности и безопасности. В общем, за час мы успели обсудить много интересных тем. Вообще, мы часто с Глебом встречаемся на разнообразных конференциях и часто такие разговоры получаются очень насыщенными. Рад, что в этот раз мы записали такое общение на камеру:) Сам выпуск доступен почти везде: ВК, Rutube, Spotify, Apple Podcast. #Engineering #Software #Reliability #Architecture #Management #Processes #Leadership

[3/4] What Improves Developer Productivity at Google? Code Quality. (Рубрика #DevEx) Продолжим рассмотрение статьи про developer productivity (1 и 2) обсуждение независимых переменных, а также построением самой модели. Независимые переменные Авторы взяли в качестве гипотезы 42 независимые переменные, которые по их мнению могли влиять на продуктивность. Эти 42 переменные схлопнулись до 39 после проверки на мультиколлинеарность. Эти данные были доступны из логов и результатов опросов. Все эти переменные были разбиты на 6 категорий 1) Code quality & technical debt - эти факторы связаны с качеством кода и техническим долгом, которые дальше разбираются в деталях. Кстати дальше авторы написали отдельные интересные статьи - "Developer productivity for Humans, Part 7: Software Quality" - статья про качество, которую я уже разбирал - "Defining, measuring and managing technical debt" - которую я разбирал с Димой Гаевским в подкасте Research Insights Made Simple, а также разбирал в отдельной статье 2) Infrastructure tools & support - здесь история про выбор инструментов, а также работу инфраструктуры. Часть из этих факторов были разобраны отдельно - "Build Latency, Predictability, and Developer Productivity" - статья про важность не просто build time, а его предсказуемости и как это влияет на продуктивность, о которой я уже рассказывал 3) Team communication - здесь авторы говорят про коммуникации, дистанцию от менеджеров, код ревью. Кое-что авторы из этого разобрали в дальнейших статьях - "Developer Productivity for Humans, Part 2: Hybrid Productivity" - это статья про то, как удаленная работа и удаленные коммуникации во время COVID повлияли на продуктивностьЯ рассказывал про нее раньше - "Developer Productivity for Humans, Part 5: Onboarding and Ramp-Up" - это статья про то, как работает процесс онбординга и как на него повлиял COVID. Я рассказывал про нее раньше 4) Goals & priorities - это про ясность целей и про изменение приоритетов 5) Interruptions - здесь авторы замеряют влияние встреч 6) Organizational & process factors - проблемы из-за процессов, реорганизации и перемещения людей Дальше авторы использовали квази-экспериментальный метод использования панельных данных для построения связи между воспринимаемой инженерами продуктивностью и независимыми переменными: 𝑦𝑖𝑡 =𝛼𝑖 +𝜆𝑡 +𝛽 * 𝐷𝑖𝑡 + 𝜖𝑖𝑡 Где - 𝑦 - это самооценка продуктивности для инженера i в момент t - 𝛼 - это независимые от времени необозреваемые параметры инженера, такие как образование или уровень навыков - 𝜆 - это независимые от инженера эффекты от времени, например, изменение политики на всю компанию или сезонные эффекты (как январские каникулы в России) - 𝐷𝑖𝑡 - это измеренные факторы продуктивности для инженера i в момент времени t - 𝛽 - это причинно-следственныые эффекты факторов продуктивности 𝐷𝑖𝑡 в момент времени t - 𝜖𝑖𝑡 - это ошибка во время t Дальше авторы берут производную и получают формулу Δ𝑦𝑖𝑡 = Δ𝜆𝑡 + 𝛽 * Δ𝐷𝑖𝑡 + Δ𝜖𝑖𝑡 , где - Δ𝜆𝑡 = 𝛾0 + 𝛾1 * 𝑇 и Δ означает разницу между соседними временными промежутками - T - это категорийная переменная, что означает разницу между периодами - после дифференцирования 𝛼𝑖 исчезает из уровнения, а Δ𝜆 можно явно контролировать, что говорит о том, что 𝛼𝑖 и 𝜆𝑡 не искажают результаты Дальше авторы берут метод Feasible Generalized Least Squares (FGLS) и строят корреляции между зависимой и независимыми переменными и оценивают абсолютный эффект и статистическую значимость. Про результаты и ограничения исследования будет в последней части обзора. #Management #Leadership #Software #SoftwareDevelopment #Architecture #SoftwareArchitecture #Metrics #Devops #Processes

How To Build The Future: Aravind Srinivas (Рубрика #AI) Интересное интервью CEO и ко-основателя Perplexity ребятам из Y Cominator. Я сам с большим удовольствием пользуюсь Perplexity как основным поисковым движком, а также ассистентом для размышлений. Именно поэтому мне было интересно глянуть историю о том, а как была создана компания, как она развивалась и куда идет сейчас. В итоге, основные идеи этого выступления примерно следующие 1) Происхождение Perplexity и путь основателя Аравинд начал свой путь в ИИ с обучения в Индии, после чего переехал в США, где стажировался в OpenAI под руководством Ильи Суцкевера. Именно Суцкевер указал ему на важность обучения без учителя и обучения с подкреплением. После работы в Беркли над неконтролируемыми и генеративными моделями и стажировки в Google, Аравинд пришел к идее, что создание компании с ИИ и разработка продукта неразрывно связаны. Идея Perplexity родилась из поста Дэниела Гросса о создании следующего Google и концепции улучшения формулировки запросов с помощью суффиксов. Первоначально команда экспериментировала с вертикальным поиском и базами данных, используя модели OpenAI Codex для создания SQL-запросов. Это был продукт b2b для поиска по базам данных внутри компаний-закачиков 2) Эволюция продукта Первый прототип Perplexity был создан за выходные и вдохновлен статьей WebGPT. Хотя изначально использовалась медленная модель 175 AGP, команда применила эвристический подход, выбирая первые k ссылок и краткие описания из кэша. Аравинд отмечает парадоксальный момент: "глупый подход сработал, когда модели стали лучше следовать инструкциям". Это позволило решить проблемы с задержкой в пользовательском интерфейсе, сократив время ответа с 7 секунд до приемлемого значения. Ключевым фактором успеха стала возможность задавать дополнительные вопросы, что удвоило время взаимодействия пользователей с продуктом. 3) Конкурентное преимущество и стратегия Аравинд не видел прямой конкуренции с Google из-за перегруженности их интерфейса, хотя запуск чата Bing от Microsoft вызвал некоторое беспокойство. В отличие от Google, Perplexity фокусируется на том, что "пользователь всегда прав", требуя уточнений от ИИ. Потребительские продукты, по мнению Аравинда, должны быть проще и удобнее для пользователей. 4) Корпоративная культура и подход к разработке Основной показатель эффективности компании — количество запросов в день. Еженедельные и ежемесячные данные помогают управлять командой без жесткой иерархии. Компания активно использует Twitter для общения с клиентами, ценя прямолинейную критику больше, чем комплименты. Аравинд подчеркивает важность "дотошных и одержимых людей в команде" и постоянной "борьбы с энтропией" для поддержания качества. 5) Будущее и видение Аравинд видит Perplexity как "более интеллектуальный поиск", чем Google, стремясь создать место для полного пользовательского опыта. Он планирует построить систему из небольших моделей и графов знаний, уделяя особое внимание управлению ИИ и новым моделям монетизации. В отличие от Google, компания позиционирует себя как организация, "заботящаяся о пользователях и продукте", способная быстро внедрять новейшие модели и обучать их. Это дает Perplexity преимущество в конкуренции с технологическими гигантами, которым сложнее интегрировать инновации из-за их размера и устоявшихся бизнес-моделей. #AI #Software #Engineering #Storytelling #ML #Architecture

[1/3] A Prompt Pattern Sequence Approach to Apply Generative AI in Assisting Software Architecture Decision-making (Рубрика #Architecture) В декабре 2024 года вышел whitepaper на тему использования Gen AI в архитектуре. Я заинтересовался этой темой и решил прочитать что же придумали ребята. Оказалось, что это некоторый co-pilot для архитекторов, который помогает правильные решения. Для этого авторы предлагают использовать паттерны промптинга, что объединяются в цепочку подготовки, анализа и принятия архитектурных решений. Основные паттерны здесь следующие - Software architect persona pattern - Architectural project context pattern - Quality attribute question pattern - Technical premises pattern - Uncertain requirement statement pattern - Prompt pattern sequence Эти паттерны авторы исследования опробовали на 3 компаниях - двух настоящих (leading automobile financing bank's technological portal и leading retail pharmacy network) и одной вымышленной компании, что по легенде делает cloud-based CRM. В самом начале авторы рассказывают как выглядит их подход к описанию указанных выше паттернов, куда входят как стандартные аттрибуты вида: Name, Context, Problem, Forces, Solution, Rationale и Consequences, а также расширенный список - Specializes: описывает, как текущий стандарт специализируется или расширяет существующие стандарты, уточняя их связь и адаптацию для решения конкретных задач или контекстов. - Statement template: предоставляет краткое описание или структурированное резюме стандарта, позволяя быстро понять его суть. - Concrete statement example: приводит реальный пример использования шаблона описания, демонстрируя его применение на практике. - Related patterns: содержит информацию о других паттернах, связанных с текущим, включая зависимости, предпосылки и рекомендации по совместному использованию (связанные паттерны вынесены в приложение к статье) - Usage example: приводит практический пример из реальной жизни, показывающий применение паттерна и его полезность в конкретной ситуации. - Known uses: представляет исторические или текущие примеры успешной реализации паттернов, подтверждая их эффективность и предоставляя ссылку на выполненный запрос для получения дополнительных деталей. Сам flow работы с паттернами и Gen AI инструментами по мнению авторов статьи выглядит так 1) Архитектор ищет подходящие паттерны из списка выше 2) Дальше он применяет их для своего конкретного проекта и получает подсказки и предложения 3) Дальше он принимает решения после анализа сгенерированных подсказок и своего знания проекта Все звучит достаточно понятно, но давайте перейдем к самим паттернам, а потом рассмотрим как авторы предлагают объединять их в цепочку промптов для ассистирования в анализе архитектуры проекта и принятии арх решений. Сами паттерны будут рассмотрены в следующем посте. #Architecture #GenAI #AI #ML #Software #Engineering #SystemDesign #DistributedSystems #Project

Что читают CTO? (Рубрика #Management) Недавно я поделился своим списком рекомендованных tg-каналов с ребятами из Holyweb (аут
+9
Что читают CTO? (Рубрика #Management) Недавно я поделился своим списком рекомендованных tg-каналов с ребятами из Holyweb (аутсорс/аутстафф компания) и South HUB (сообщество C-Level). Они совместно проводили опрос технических директоров о том, а какие книги и telegram каналы они читают. Про книжки у меня спрашивать не стали, а вот про каналы спросили. Я поделился списком, но все они на мою карточку не влезли:) Еще в этом опросе участвовали ребята из Делимобиля, Звука, МТС Travel и других компаний и все рассказывал о том, что помогает им управлять ресурсами, доносить идеи до команд и инвесторов, а также создавать эффективные и конкурентные IT-решения. Ниже представлены карточки с рекомендациями уважаемых людей, а мой полный список рекомендаций доступен здесь. #AI #Software #Engineering #Management

Vibe Coding Is The Future (Рубрика #AI) Интересное видео от Y Combinator с обсуждением vibe coding, подхода к программированию, который описал Андрей Карпаты, сооснователь OpenAI и бывший директор по ИИ в Tesla. В феврале 2025 года он опубликовал твит, описав личный опыт использования Cursor Composer с интеграцией Whisper для голосового управления. В итоге, ребята из Y Combinator решили разобрать насколько этот подход к разработке меняет правила игры. Основные моменты обсуждения следующие 1) Роль инженера в эпоху ИИ Согласно опросу YC, 25% основателей утверждают, что 95% их кодовой базы генерируется ИИ. Это не означает исчезновения технических навыков, но переопределяет приоритеты и ключевая компетенция смещается в сторону продуктового мышления - умения определять, что строить, а не как это кодировать. Интересно, что мы недавно именно это обсуждали с S0ER в подкасте Code of Leadership 2) Инструменты и рабочие процессы Cursor и Windsurf стали фаворитами благодаря интеграции с кодовой базой и автономному анализу файлов. Gemini выделяется длинным контекстным окном, позволяя загружать всю кодовую базу для исправления ошибок. Sonnet и Deepseek конкурируют в качестве движков для генерации, тогда как Devin пока ограничен простыми задачами. При этом отладка остаётся слабым звеном: ИИ часто неспособен исправить ошибки, требуя полной перегенерации кода. Основатели сравнивают это с перегенерацией изображений в Midjourney с тем же промптом - вместо точечных правок код переписывается с нуля. 3) Трансформация найма и образования Классические алгоритмические собеседования устаревают. Компании вроде Stripe и Gusto переходят к оценке практической продуктивности, например, созданию прототипа за 3 часа. Однако для масштабирования проектов критически важны системные архитекторы — специалисты, способные оптимизировать инфраструктуру под высокие нагрузки. Поколение Z, начинающее карьеру с ИИ-инструментами, демонстрирует уникальные преимущества. Обученные в «цифровой среде», они избегают классического синтаксического бремени, фокусируясь на логике и продуктивности. Однако без фундаментального понимания архитектуры (как в случае с Twitter и его проблемами масштабирования) даже генерируемый код рискует стать "техническим долгом". 4) Будущее разработки: Рекомендации и риски - Интеграция ИИ в образование: Учебные программы должны совмещать генерацию кода с глубоким пониманием системного дизайна. - Пересмотр метрик найма: Акцент на навыках отладки, код-ревью и продуктовом видении вместо алгоритмических головоломок. - Инвестиции в инструменты отладки: Текущие LLM слабы в анализе ошибок — это направление станет ключевым для следующих версий моделей. Все эти тезисы авторы подкаста подтверждают цитатами из общения с основателями стартапов, что входят в Y Combinator. #AI #Software #Engineering #Management #SystemDesign #ProductManagement #Productivity #Architecture

Clean Architecture (Чистая архитектура) (Рубрика #Architecture) Я прочитал эту книгу Дяди Боба (Роберта С. Мартина) шесть-семь лет назад и нашел концепции достаточно интересными, а по самым интересным частям я даже сделал подробные разборы: "Дизайн и архитектура, парадигмы программирования" и "Принципы дизайна модулей и разделения по компонентам", но все это было до старта этого канала. Поэтому сегодня я решил исправить это недоразумение и рассказать об этой книге, в которой Дядя Боб подчеркивает важность разделения ответственности и независимость от фреймворков, баз данных и пользовательских интерфейсов. Дядя Боб это делает очень ультимативно, что сильно подрывает веру в его подход. Ключевыми идеями являются следующие Правило зависимостей: зависимости исходного кода должны указывать только внутрь, в направлении высокоуровневых политик. Это создает систему, в которой бизнес-правила не зависят от технических деталей. Слоеность архитектуры: при реализации этого правила у нас появляются отдельные слои - Entities (cущности) - основные бизнес-объекты и корпоративные бизнес-правила - Use cases (варианты использования) - бизнес-правила конкретного приложения. Тут забавно, что этот термин взят из UML, где так называется один из видов диаграмм, про которые я рассказывал раньше - Interface adapters (адаптеры интерфейса) - контроллеры, презентеры и шлюзы - Framework & drivers (фреймворки и драйверы) - внешние инструменты, базы данных, UI-фреймворки Этот архитектурный подход близок к гексагональной архитектуре (hexagonal architecture) или порты и адаптеры и луковая архитектура (onion architecture). Она также активно включает принципы SOLID, особенно принцип инверсии зависимостей, на котором строится вся слоистость и правило зависимостей. Боб говорит о том, что архитектура должна "кричать" о своем назначении — при взгляде на структуру кодовой базы она должна отражать бизнес-домен, а не технические детали. С точки зрения применимости clean architecture наиболее полезна в следующих сценариях: - Сложные или долгоживущие приложения, где поддерживаемость является критически важной - Системы, где доменную модель решили выделить отдельно и использовать стиль DDD (domain driven design) - Проекты, требующие четкого разделения между бизнес-логикой и инфраструктурой Она помогает создавать системы, которые могут развиваться со временем в соответствии с изменяющимися бизнес-потребностями, и обеспечивает гибкость для замены фреймворков, баз данных или UI-технологий с минимальным влиянием на основную бизнес-логику. Но этот подход заслуженно критикуют за - Избыточную сложность для малых или простых проектов с прямолинейными требованиями - Чрезмерную слоистость и натыкивание интерфейсов без явных преимуществ, что приводит к "злоупотреблению интерфейсами" - Избыточный шаблонный код и абстракции, которые затрудняют понимание системы - Чрезмерно крутую кривую обучения для инженеров и строгую дисциплину для правильной реализации - Замедление начального развития проекта из-за предварительных усилий по проектированию - Низкую производительность итогового решения из-за чрезмерного количества абстракций Итого, я видел подходы к применению Clean Architecture для повышения качества кода в существующих проектах, но я уже активно не писал код сам, когда Uncle Bob явил свою концепцию миру. Именно поэтому я не могу оценить из первых рук насколько с ней получаются хорошие приложения:) Но мне кажется, что это как с любым подходом - можно сделать хорошо, а можно тяп-ляп ... Чистая архитектура тут не исключение. #Architecture #Software #Engineering #DistributedSystems #SystemDesign

Code of Leadership #31 - Hooked: how to build habit-forming products (Рубрика #Management) Новый эпизод подкаста посвящён обсуждению книги Нира Эяля «На крючке» и её модели создания продуктов, формирующих привычки. Для обсуждения книги пришел Евгений Сергеев (S0ER), который поделился опытом применения модели в разработке ПО, обсуждения её этических аспектов и влияния на пользователей. В общении мы затронули темы поведенческих триггеров, адаптации продуктов к привычкам пользователей, а также эволюции технологий, программирования и роли разработчиков. Особое внимание уделили важности обратной связи, доверия пользователей и интеграции продуктов в экосистемы. Евгений уже много лет публикует хорошие видео на Youtube на канале S0ER, а также у него есть каналы в tg (@softwareengineervlog и @soer_live). Он много рассказывает про хард скиллы в обще, а также про проектирование и архитектуру в частности. Выпуск подкаста доступен в Youtube, VK Video, Podster.fm, Ya Music. #Architecture #Software #Engineering #ProductManagement #Management #Economics

CTO Conf X и Teamlead Conf (Рубрика #Management) Я уже рассказывал раньше про конференцию CTO Conf X, которая пройдет этим летом, в программном комитете которой я состою. А программный комитет так устроен, что его участники ревьювят все заявки на конференцию и выбирают лучшие доклады. Сейчас у нас уже есть порядка 120 заявок на примерно 20 мест, то есть конкурс 6 к 1, что достаточно солидно. В итоге, нам приходится повышать требования по качеству и стараться искать доклады, которые принесут что-то новое и интересное нашей аудитории. И одним из критериев для меня является сравнение с тем, а как заявленную тему раньше раскрывали на другой конференции Онтико, которая идет уже давно и где обычно обсуждались темы менеджмента и эта конференция "Teamlead Conf". Я сам выступал на ней несколько раз, а также знаю многих спикеров и членов программного комитета, то есть конференция достойная. Теперь представьте, что ко мне попадает заявка про создание самой перформящей команды, которая мотивирована на достижение результата, причем именно такого что нужен бизнесу. Вроде звучит хорошо, но можно чекнуть, а что рассказывали на конференции Teamlead Conf про это, а дальше спросить у потенциального спикера, а что он хочет добавить к тому, что уже было рассказано. Такой вопрос сразу переводит общение в плоскость конкретики и можно начинать говорить не просто за все хорошее против всего плохого, а по сути:) Кстати, вот список докладов, что я нашел на Teamlead Conf, которые неплохо укладываются в заданную в качестве примера тему - Культура как основа для масштабирования команды х2 каждый год - Мотивация, делегирование и автоматизация: рецепт создания суперкоманды - Пошаговый алгоритм создания самоорганизующейся команды - Как вовлечь команды разработки в бизнес компании - Развиваем доверие в командах - Как внедрять инженерные практики в сопротивляющихся командах - Методы мотивации сотрудников. Способы выращивания сотрудников с нуля - Научный руководитель vs бизнес-менеджер: как управлять R&D В общем, рекомендую канал конференции Teamlead Conf - там есть много интересных выступлений. Ну а на конференции для CTO и тем, кто им сочувствует, мы как программный комитет соберем бомбическую программу в этом году - нам хватает потенциальных спикеров и хороших заявок, но кажется уже не хватает для них мест, так как половина программы уже собрана. В итоге, дело осталось за вами - приходите на конференцию 6 июня. #Management #Leadership #Strategy #PlatformEngineering #Engineering #Software #Architecture

AchDays 2024 "Архитектура в Т-Банке: вчера, сегодня, завтра" - Александр Поломодов (Рубрика #Architecture) Наконец-то появилась запись моего выступления про наши подходы к проектированию и построению архитектуры систем. Я в компании уже 8 лет и видел как эти процессы эволюционировали во времени, а также знаю к чему мы пришли. Я выделил следующие четыре стадии и объяснил как и почему они сменяли друг друга во времени 1. COTS (commercial of the shelf) 2. Свой собственный софт 3. Platform Engineering 4. Большие мегапроекты и governance Напоследок я рассказал про подходы корпораций и технологических компаний к должностям/ролям архитекторов, а также поделился своим видением того, как нам дальше стоит развиваться. У меня есть расшифровка этого выступления в отдельной статье #Architecture #Software #Evolution #Management #SystemDesign #Engineering

Large-Scale Automated Refactoring Using ClangMR (Рубрика #Architecture) В последнее время я много изучаю, как Gen AI помогает в SDLC. Но иногда надо вернуться на шаг назад и понять, а как мы жили до генеративного интеллекта и что делали для повышения эффективности рефакторинга. И если копнуть туда, то видно, что эти старые и проверенные подходы активно используются в современности для обеспечения предсказуемых результатов комбинации стохастических и детерминированных подходов. Собственно, именно так я дошел до чтения короткого whitepaper 2013 года ребят из Google. Здесь они рассказывали про крупномасштабный рефакторинг своей кодовой базы на C++, например, со старой версии стандарта на более новую. Интересно, что их масштаб кодовой базы потребовал сразу учитывать возможность распараллеливания работы, для чего они использовали Map Reduce (именно это означает MR в конце названия ClangMR). Но теперь пора перейти к основным идеям из этой статьи Собственно, суть в том, что фреймворк ClangMR решает проблему технического долга в крупных C++ кодовых базах через семантически безопасный рефакторинг, который хорошо параллелится. Ключевыми моментами подхода является - Использование AST (abstract syntax tree), абстрактных синтаксических деревьев. В отличие от regex-инструментов, это позволяет гораздо точнее описывать изменения ,например, легко можно различить методы с одинаковыми именами в разных классах - Масштабируемость. Распределенная обработка через MapReduce сокращает время рефакторинга с месяцев до часов. - Повторяемость. Поддержка инкрементных изменений, когда авторы использовали инструмент итеративно для рефакторинга десятков тысяч файлов частями Сама реализация ClangMR основана на трех китах - Indexing (индексация): компиляция кодовой базы в AST с хранением в распределенной БД (e.g., Google's Bigtable). - Node matching (сопоставление узлов): Разработчики определяют AST-шаблоны (например, memberExpr(hasName("OldMethod")) и коллбэки для генерации правок. Интересно, что эта часть состоит из описания паттерна для матчинга частей дерева, а также callback для применения изменений (причем callback может решить, что изменений не требуется) - Sorce code refactorer (применение изменений): Локальное применение правок с разрешением конфликтов и автоформатированием через ClangFormat. Эта статья и подход, описанный в ней, привели к нескольким последствиям - Развитие Clang/LLVM: Компоненты вроде AST matcher API стали основой для Clang-Tidy и Clang refactoring engine - Смена практик рефакторинга: Популяризация AST-подходов, повлиявшая на инструменты вроде Coccinelle для ядра Linux. - Эволюция стандартной библиотеки: Ускоренное внедрение современных возможностей создало давление на вендоров компиляторов. В общем, статья была очень интересной для 2013 года. Но если говорить про микс этого подхода с Gen AI, то можно посмотреть доклад ребят из Uber 2024 года "This Year in Uber’s AI-Driven Developer Productivity Revolution", в котором они рассказывали среди прочего про миграцию с Java на Kotlin, где активно использовался микс AST matcher, а также Gen AI, который помогал генерировать правила трансформации:) Подробнее можно почитать в моем обзоре этого доклада (1 и 2) #Architecture #Leadership #Software #SoftwareDevelopment #AI #Engineering