{"description":"Тысяча фичей — подкаст о технологиях, программировании и разработке. Ведёт Александр Пахомов (apkhmv). Новые выпуски каждые две недели.","feed_url":"https://apkhmv.xyz/podcast/feed.json","home_page_url":"https://apkhmv.xyz/podcast/","items":[{"attachments":[{"duration_in_seconds":8617,"mime_type":"audio/mpeg","url":"https://traffic.libsyn.com/secure/173caf0e-b8e8-4056-8a73-2d60d94118ef/72_New_IDEA.mp3"}],"content_text":"Александр Пахомов и Антон Архипов — Developer Advocate в JetBrains, Java Champion, в прошлом разработчик JRebel — разбирают вопрос, который Антон задал Java-сеньорам на анконференции JCrete: нужна ли вообще IDE, если код пишут агенты? Все ответили «нужна», но объяснить зачем смогли только крайние случаи: Клифф Клик открывает IDE, чтобы дебажить, Питер Лори переписывает сгенерированный код руками. Отсюда разговор идёт к тому, что узкое место переехало из написания кода в code review, инструменты ревью не менялись пятнадцать лет, а люди превращаются в «клей между двумя Клодами». Во второй половине собеседники придумывают IDE будущего — завод по переработке задач с наблюдаемым пайплайном, бюджетами токенов и доказательствами на выходе, — спорят, что из этого сожрут OpenAI и Anthropic и почему LSP, скиллы и другие надстройки обнуляет каждая новая модель, и заканчивают ответственностью за код, который никто не читал, и ответом Антона на вопрос «нужна ли IDE в августе 2026».","date_modified":"2026-09-16T11:54:17+03:00","date_published":"2026-09-11T00:00:00Z","id":"https://apkhmv.xyz/podcast/episode-72/","tags":["IDE","IntelliJ IDEA","ИИ-агенты","Claude Code","Codex","код-ревью","инструменты разработчика","экономика токенов"],"title":"#72: Зачем IDEA в 2026","url":"https://apkhmv.xyz/podcast/episode-72/"},{"attachments":[{"duration_in_seconds":10274,"mime_type":"audio/mpeg","url":"https://traffic.libsyn.com/secure/173caf0e-b8e8-4056-8a73-2d60d94118ef/71_IMDG_Apache_Ignite.mp3"}],"content_text":"Александр Пахомов и Станислав Лукьянов разбирают in-memory data grid снизу вверх: от локальной HashMap до распределённого хранилища с логическими шардами, репликами, консенсусом и SQL. На примере Apache Ignite они показывают, как коллокация данных и вычислений убирает сетевые пересылки, зачем Java-системы ушли в off-heap и где остаются проблемы GC, JIT, безопасности и эксплуатации. В финале формулируют критерии выбора такой технологии и обсуждают её возможное будущее в памяти агентов и LLM KV-кэшах.","date_modified":"2026-09-16T11:54:17+03:00","date_published":"2026-09-03T00:00:00Z","id":"https://apkhmv.xyz/podcast/episode-71/","tags":["Apache Ignite","in-memory data grid","распределённые системы","шардирование","консистентность","распределённый SQL","JVM","off-heap"],"title":"#71: Как работает IMDG Apache Ignite","url":"https://apkhmv.xyz/podcast/episode-71/"},{"attachments":[{"duration_in_seconds":8941,"mime_type":"audio/mpeg","url":"https://traffic.libsyn.com/secure/173caf0e-b8e8-4056-8a73-2d60d94118ef/22__v4.mp3"}],"content_text":"Александр Пахомов и Станислав Лукьянов — коммитер Apache Ignite, инженер GridGain (теперь часть MariaDB), ранее Java Platform в Oracle, последние годы живёт в Нью-Йорке — записывают незапланированный выпуск: интро к разговору про in-memory data grid переросло в двухчасовую беседу о том, как AI меняет работу инженера. Обсуждают 9-9-6 и тревожность по ту сторону океана, поколение AI-native фаундеров, которые не читают код, и то, во что вкладываться сейчас: системное мышление, математику, системное программирование и семантический слой для агента. Вторая половина — про экономику и про себя: токены как новый ресурс и бюджеты, которые растут вместе с грейдом, три грани ответственности, массовая слежка за сессиями и этика чужих промптов, FOMO пятичасового окна, сон, спорт и легализация отдыха на 24 часа без компьютера.","date_modified":"2026-09-16T11:54:17+03:00","date_published":"2026-08-14T00:00:00Z","id":"https://apkhmv.xyz/podcast/episode-70/","tags":["ИИ-агенты","Claude Code","контекст-менеджмент","карьера инженера","продуктивность","экономика токенов","системное программирование"],"title":"#70: Режим 9-9-6 для Claude","url":"https://apkhmv.xyz/podcast/episode-70/"},{"attachments":[{"duration_in_seconds":5397,"mime_type":"audio/mpeg","url":"https://traffic.libsyn.com/secure/173caf0e-b8e8-4056-8a73-2d60d94118ef/69_Freud.mp3"}],"content_text":"Александр Пахомов и Александр Орлов — сооснователь Школы менеджмента «Стратоплан», ранее Sun Microsystems и Intel, психолог по второму образованию — разбирают работу инженера как психологическую. Почему поток так трудно поймать и удержать, что происходит с командой в фазах форминга и шторминга по Такману и почему спор о скобке в code style на самом деле спор об иерархии и уважении. Обсуждают эго-состояния по Берну, три способа реагировать на неустраивающую ситуацию (изменить, принять, выйти) и четвёртый, худший — терпеть; ресурсы, которые определяют вашу раздражительность на код-ревью; visibility через уровень как механику карьеры. В финале — как агентская разработка поднимает когнитивную нагрузку до потолка и почему soft skills дорожают именно сейчас.","date_modified":"2026-09-16T11:54:17+03:00","date_published":"2026-07-29T00:00:00Z","id":"https://apkhmv.xyz/podcast/episode-69/","tags":["психология инженера","soft skills","командная динамика","поток","карьера инженера","тимлид","выгорание"],"title":"#69: Психология инженера с Александром Орловым","url":"https://apkhmv.xyz/podcast/episode-69/"},{"attachments":[{"duration_in_seconds":8363,"mime_type":"audio/mpeg","url":"https://traffic.libsyn.com/secure/173caf0e-b8e8-4056-8a73-2d60d94118ef/20__Alex.mp3"}],"content_text":"Александр Пахомов и Владимир Ситников — мейнтейнер PostgreSQL JDBC-драйвера (pgjdbc) и Apache JMeter, около двадцати лет в Java и производительности SQL-систем — разбирают агентскую разработку на конкретных артефактах: тридцать тысяч строк подсистемы кодеков, которые невозможно отревьюить глазами, кросс-ревью тремя моделями, скилл технического английского, появившийся после того, как правки в документацию отклонили как AI-слоп. Обсуждают, что идёт в скилл, а что в CLAUDE.md, APM как пакетный менеджер для агентских конфигов, орду ревьюеров-персон, профилировщик и фаззинг как обязательные гейты агентского SDLC, комментарии, которые описывают прошлое, и декомпиляцию вместо чтения исходников. В финале — где проходят границы моделей и человека и на что инженеру сейчас тратить время.","date_modified":"2026-09-16T11:54:17+03:00","date_published":"2026-07-12T00:00:00Z","id":"https://apkhmv.xyz/podcast/episode-68/","tags":["ИИ-агенты","Claude Code","Java","PostgreSQL","код-ревью","фаззинг","производительность","контекст-менеджмент"],"title":"#68: Исследуем границы современных моделей вместе Владимиром Ситниковым","url":"https://apkhmv.xyz/podcast/episode-68/"},{"attachments":[{"duration_in_seconds":8726,"mime_type":"audio/mpeg","url":"https://traffic.libsyn.com/secure/173caf0e-b8e8-4056-8a73-2d60d94118ef/alex_podcast_19.mp3"}],"content_text":"Александр Пахомов и Миша Поливаха — практикующий Java-разработчик, стоявший у истоков сообщества Spring.io, — разбирают, на чём держится Java в 2026-м. Почему энтерпрайз не переписывает и не апгрейдит (патчинг CVE для Java 6 как живой бизнес), как Spring выиграл у Java EE на скорости эволюции и правильных продуктовых решениях Рода Джонсона и команды Spring Boot, чем занят Project Leyden и почему AppCDS отбирает у Quarkus его главное преимущество. Вторая половина — спор двух подходов: для гостя тулинг это IDE, стартеры и dev mode, для ведущего, который код руками не пишет, — quality gates, которыми обкладывают агента; отсюда претензии к Java-экосистеме на фоне `clippy --fix`, история отказа OpenJDK принимать сгенерированные PR и финальное расхождение о том, можно ли нарастить экспертизу, не написав код руками.","date_modified":"2026-09-16T11:54:17+03:00","date_published":"2026-06-16T00:00:00Z","id":"https://apkhmv.xyz/podcast/episode-67/","tags":["Java","Spring","JVM","ИИ-агенты","инструментарий разработчика","экспертиза инженера","код-ревью"],"title":"#67: Java и Spring в 2026","url":"https://apkhmv.xyz/podcast/episode-67/"},{"attachments":[{"duration_in_seconds":8799,"mime_type":"audio/mpeg","url":"https://traffic.libsyn.com/secure/173caf0e-b8e8-4056-8a73-2d60d94118ef/18_alex_podcast.mp3"}],"content_text":"Александр Пахомов и Михаил Костицын (разработчик кодинг-агента veai, IDE-native агента для JetBrains IDE) по шагам «собирают» кодинг-агента: от ассистента-чата к агенту с инструментами — терминалом, чтением/записью файлов, поиском — и разбирают ключевой трейд-офф между свободой (один универсальный терминал) и контролем (набор узких, надёжных тулов), а также контекст-менеджмент как главный ресурс. Отталкиваясь от IntelliJ-платформы, они показывают, что даёт агенту IDE поверх терминала — LSP и PSI, инспекции, декомпиляцию, дебаггер и «формальные методы» (инструментация байткода, анализ моргающих тестов, символьное исполнение, SAST), — и обсуждают enterprise-спрос на локальные модели, бенчмарк-систему veai с верифайерами и LLM-судьёй, проблему бенчмаксинга и dogfooding.","date_modified":"2026-09-16T11:54:17+03:00","date_published":"2026-06-03T00:00:00Z","id":"https://apkhmv.xyz/podcast/episode-66/","tags":["кодинг-агенты","ИИ-агенты","IntelliJ платформа","инструменты для LLM","контекст-менеджмент","локальные модели"],"title":"#66: Veai: БАЗА ПО КОДИНГ АГЕНТАМ","url":"https://apkhmv.xyz/podcast/episode-66/"},{"attachments":[{"duration_in_seconds":6909,"mime_type":"audio/mpeg","url":"https://traffic.libsyn.com/secure/173caf0e-b8e8-4056-8a73-2d60d94118ef/65_AI_.mp3"}],"content_text":"Александр Пахомов и Дмитрий (Kisa) — автор канала о нейросетях, пришедший в вайб-кодинг из криптоиндустрии, — разбирают, как генеративный AI меняет работу автора и инженера: где проходит граница между авторским контентом и «нейрослопом», как через `Claude Code` и `Remotion` собираются YouTube-ролики, и почему картиночная ниша (включая 18+) держится на китайских open-source-моделях и локальных `ComfyUI`-воркфлоу, а не на зацензуренных фронтир-моделях. Во второй половине — теория «мёртвого интернета», выгорание от скорости агентов, деградация моделей (`4.6` против `4.7`, кодекс) и большой мотивационный разговор про ответственность и «эпоху эгоистов».","date_modified":"2026-09-16T11:54:17+03:00","date_published":"2026-05-19T00:00:00Z","id":"https://apkhmv.xyz/podcast/episode-65/","tags":["вайб-кодинг","генеративный AI","нейрослоп и авторство","генерация изображений","мёртвый интернет"],"title":"#65: AI-кисы: нейрослоп против авторского контента","url":"https://apkhmv.xyz/podcast/episode-65/"},{"attachments":[{"duration_in_seconds":9296,"mime_type":"audio/mpeg","url":"https://traffic.libsyn.com/secure/173caf0e-b8e8-4056-8a73-2d60d94118ef/64_Alexey_Lebedev.mp3"}],"content_text":"Александр Пахомов и Алексей Лебедев — инженер систем низкой задержки, создатель стриминговой платформы AlgoX2 («убийца Kafka») и открытого фреймворка кодогенерации OpenACR — разбирают, как строить большие системы из простых, доказуемо корректных частей. Первые два часа сознательно исключают «агентную разработку»: single entry / single exit и single static action, программа как вложенные циклы и глобальная in-memory база данных, отказ от исключений и многопоточности в пользу однопоточных процессов, общающихся сообщениями (CSP, RDMA/InfiniBand, scale-out). На этом фундаменте построена AlgoX2 — «файловая система из стримов», где всё есть append-only-стрим и управление идёт через тот же стриминг; она обгоняет Kafka по latency в 10–100 раз. Ядро системы генерируется из SSIM-описаний генератором, который на 95% состоит из собственного сгенерированного кода. В финале — как Claude Code усиливает такой подход и какой навык остаётся ключевым для инженера.","date_modified":"2026-09-16T11:54:17+03:00","date_published":"2026-04-20T00:00:00Z","id":"https://apkhmv.xyz/podcast/episode-64/","tags":["распределённые системы","кодогенерация","низкая задержка","Kafka и стриминг","вайб-кодинг"],"title":"#64: Быстрее Кафки на два порядка: Алексей Лебедев про то как строить сложные системы","url":"https://apkhmv.xyz/podcast/episode-64/"},{"attachments":[{"duration_in_seconds":6855,"mime_type":"audio/mpeg","url":"https://traffic.libsyn.com/secure/173caf0e-b8e8-4056-8a73-2d60d94118ef/63_FPF.mp3"}],"content_text":"Александр Пахомов и Иван Закутний (инженер и engineering manager, ученик мастерской инженеров-менеджеров Анатолия Левенчука) разбирают, как остаться востребованным инженером в 2026 году, когда `Claude Code` и агенты обесценили «перекладывание JSON». Их ответ — системное мышление и `First Principles Framework` (FPF) Левенчука: спецификация на ~800 тысяч токенов, которая через RAG заставляет LLM рассуждать по ADI-циклу (abduction–deduction–induction), формализовать уровни доверия L0/L1/L2 и оставлять за собой decision records. По пути — почему галлюцинируют и люди, и модели, чем задача отличается от проблемы, зачем нужно «мышление письмом» и экзокортекс, и как не свалиться в дофаминовую яму от четырёх параллельных агентов.","date_modified":"2026-09-16T11:54:17+03:00","date_published":"2026-03-20T00:00:00Z","id":"https://apkhmv.xyz/podcast/episode-63/","tags":["системное мышление","вайб-кодинг","ИИ-агенты","инженерный менеджмент","промпт-инжиниринг"],"title":"#63: Системное мышление для инженера","url":"https://apkhmv.xyz/podcast/episode-63/"},{"attachments":[{"duration_in_seconds":4550,"mime_type":"audio/mpeg","url":"https://traffic.libsyn.com/secure/173caf0e-b8e8-4056-8a73-2d60d94118ef/AI_in_Enterprise.mp3"}],"content_text":"Александр Пахомов и Иван Чернов (системный архитектор в Островке) разбирают, как выглядит внедрение ИИ не в демках, а в реальном энтерпрайзе. Иван рассказывает про свой путь от GitHub Copilot к Cursor и Claude Code, про безопасную среду на базе LiteLLM и OpenWebUI, три риска информационной безопасности (персданные, коммерческая тайна, и почему код сам по себе ничего не стоит), токеномику и лимиты для пользователей, дообученную локальную модель для переводов, ИИ-ревьюера за 8 центов и Bitter Lesson как рамку для техно-оптимизма. Александр держит контрапункт от лица индивидуального контрибьютора, который просто заливает задачи Opus 4.5 напрямую.","date_modified":"2026-09-16T11:54:17+03:00","date_published":"2026-03-09T00:00:00Z","id":"https://apkhmv.xyz/podcast/episode-62/","tags":["ИИ в энтерпрайзе","Claude Code","локальные модели","информационная безопасность","токеномика LLM"],"title":"#62: AI в Энтерпрайзе","url":"https://apkhmv.xyz/podcast/episode-62/"},{"attachments":[{"duration_in_seconds":10177,"mime_type":"audio/mpeg","url":"https://traffic.libsyn.com/secure/173caf0e-b8e8-4056-8a73-2d60d94118ef/61_GC_Java_Go.mp3"}],"content_text":"Александр Пахомов и Александр «Саша» Ланцов (Java-разработчик в финтехе, Мир Plat.Form) на примере двух рантаймов — HotSpot JVM и Go — прослеживают всю эволюцию сборщиков мусора: от фундаментальных алгоритмов (reference counting, mark-and-sweep, mark-compact, копирующий) и трёхцветной маркировки до `Serial`/`Parallel`, `CMS`, `G1`, `Shenandoah`, `ZGC` и нового `Green Tea` в Go. По пути — гипотеза о поколениях и почему её нет в Go, card table и GC-барьеры, фрагментация и спаны, указатели Брукса, цветные указатели и трюк с виртуальной памятью, спираль смерти. В финале — как осознанно выбрать GC под latency, пропускную способность и размер хипа.","date_modified":"2026-09-16T11:54:17+03:00","date_published":"2026-02-10T00:00:00Z","id":"https://apkhmv.xyz/podcast/episode-61/","tags":["сборка мусора","JVM","Go runtime","производительность","низкая задержка"],"title":"#61: Лучший GC: Java и Go","url":"https://apkhmv.xyz/podcast/episode-61/"},{"attachments":[{"duration_in_seconds":4509,"mime_type":"audio/mpeg","url":"https://traffic.libsyn.com/secure/173caf0e-b8e8-4056-8a73-2d60d94118ef/60_Engineering_AI.mp3"}],"content_text":"Александр Пахомов и Дмитрий Рожков (менеджер и автор YouTube-канала «Senior Software Vlogger») разбирают, как `Claude Code` меняет работу инженера: Дмитрий, будучи менеджером и не Swift-программистом, полностью написал моделями Mac-приложение `Summit AI Notes` и продаёт его в App Store. Отсюда разговор уходит к главному тезису выпуска — «инженерной ответственности»: за код, который сгенерировала модель, отвечает не Anthropic, а инженер. По пути — почему важен строгий `harness` вокруг модели, чем `Opus 4.5` лучше `Sonnet 4`, почему классическое код-ревью упирается в бутылочное горлышко по Голдратту и как программирование с LLM превращается в менеджмент.","date_modified":"2026-09-16T11:54:17+03:00","date_published":"2026-01-28T00:00:00Z","id":"https://apkhmv.xyz/podcast/episode-60/","tags":["вайб-кодинг","Claude Code","инженерная ответственность","код-ревью","ИИ-агенты"],"title":"#60: Claude Code и инженерная ответственность с Senior Software Vlogger","url":"https://apkhmv.xyz/podcast/episode-60/"},{"attachments":[{"duration_in_seconds":5566,"mime_type":"audio/mpeg","url":"https://traffic.libsyn.com/secure/173caf0e-b8e8-4056-8a73-2d60d94118ef/59_podcast.mp3"}],"content_text":"Александр Пахомов и Дима Королёв (инженер, несколько лет в Web3) разбирают блокчейн и Ethereum инженерным языком — без маркетингового буллшита. Как биткоин Сатоши стал первым leaderless-леджером с инвариантом no double spend через `proof of work`; почему у биткоина нет финалити, а балансы — это derived-вьюха поверх лога блоков; как Ethereum добавил EVM, смарт-контракты и `ERC-20`, а `proof of stake`, валидаторы со стейком и L2-шардинг сделали транзакции дешёвыми. Попутно — MEV-атаки, мосты и `WBTC`, CAP-теорема через partial order и аналогию с Kafka, DEX против CEX, и как идеи Web3 (доказуемые гарантии, secure chip, confidential compute) просачиваются в Web2.","date_modified":"2026-09-16T11:54:17+03:00","date_published":"2026-01-06T00:00:00Z","id":"https://apkhmv.xyz/podcast/episode-59/","tags":["Web3","блокчейн","Ethereum","смарт-контракты","распределённые системы"],"title":"#59: Основы Web3: Blockchain и Ether","url":"https://apkhmv.xyz/podcast/episode-59/"},{"attachments":[{"duration_in_seconds":8891,"mime_type":"audio/mpeg","url":"https://traffic.libsyn.com/secure/173caf0e-b8e8-4056-8a73-2d60d94118ef/58_Cassandra_Read.mp3"}],"content_text":"Заключительная, третья часть разбора Apache Cassandra: Александр Пахомов и Дмитрий Константинов (коммитер Apache Cassandra) прослеживают путь запроса на чтение от координатора до диска. По дороге — какие чтения Cassandra делает эффективно (по `partition`- и префиксу `clustering`-ключа) и почему это OLTP-, а не аналитическая база; кворумная математика `R + W \u003e N` и `strong consistency`; выбор реплик через `Snitch`, спекулятивные ретраи и оптимизация «данные с одной реплики, digest с остальных»; `read-repair` и пагинация без `OFFSET`; а на нижнем уровне — `Bloom filter`, `primary index` с `index summary`, `key cache`, блочное сжатие с `compression metadata`, вынос метаданных в off-heap и, наконец, боль tombstones при чтении «очередей».","date_modified":"2026-09-16T11:54:17+03:00","date_published":"2025-12-16T00:00:00Z","id":"https://apkhmv.xyz/podcast/episode-58/","tags":["Apache Cassandra","распределённые базы данных","консистентность и кворумы","LSM-деревья","Bloom filter"],"title":"#58: Apache Cassandra, часть 3: читаем данные","url":"https://apkhmv.xyz/podcast/episode-58/"},{"attachments":[{"duration_in_seconds":9193,"mime_type":"audio/mpeg","url":"https://traffic.libsyn.com/secure/173caf0e-b8e8-4056-8a73-2d60d94118ef/57_Cassandra.mp3"}],"content_text":"Вторая часть разбора Apache Cassandra: Александр Пахомов и Дмитрий Константинов (коммитер Apache Cassandra) прослеживают путь одной операции записи от серверного сокета до диска. По дороге — серверный `Netty` с нативным `epoll`, flow control через TCP backpressure, аутентификация и авторизация, consistent hashing с виртуальными нодами, consistency level и кворумы, gossip-протокол и hinted handoff, а затем локальная запись: `commit log`, трёхуровневый memtable (`ConcurrentSkipListMap`/trie над `B-tree`), «last write wins» по таймстемпам, сброс в `SSTable`, компакция и, наконец, удаления через tombstones.","date_modified":"2026-09-16T11:54:17+03:00","date_published":"2025-12-01T00:00:00Z","id":"https://apkhmv.xyz/podcast/episode-57/","tags":["Apache Cassandra","распределённые базы данных","LSM-деревья","consistent hashing","репликация и консистентность"],"title":"#57: Apache Cassandra, часть 2: как работает запись","url":"https://apkhmv.xyz/podcast/episode-57/"},{"attachments":[{"duration_in_seconds":9972,"mime_type":"audio/mpeg","url":"https://traffic.libsyn.com/secure/173caf0e-b8e8-4056-8a73-2d60d94118ef/56_Cassandra_podcast_1.mp3"}],"content_text":"Александр Пахомов и Дмитрий Константинов (коммитер Apache Cassandra) проходят путь запроса end-to-end со стороны клиента: как устроен драйвер Cassandra и как, поняв его, написать собственный. Разбирают contact points и service discovery, равноправные ноды и rolling upgrade, CQL и модель данных (keyspace, partition/clustering ключи, upsert без чтения), prepared statement с кэшем на сервере, кодеки-сериализацию, выбор ноды и локальность дата-центров, а на нижнем уровне — бинарный протокол поверх Netty: нарезку TCP-потока на фреймы, корреляцию ответов через stream id, таймауты на hash wheel timer, идемпотентные и спекулятивные ретраи, backpressure. Это первая часть трилогии; серверная сторона — в следующих выпусках.","date_modified":"2026-09-16T11:54:17+03:00","date_published":"2025-11-06T00:00:00Z","id":"https://apkhmv.xyz/podcast/episode-56/","tags":["Apache Cassandra","распределённые базы данных","клиент-серверная архитектура","сетевые протоколы","Java"],"title":"#56: Apache Cassandra, часть 1: клиент, сервер","url":"https://apkhmv.xyz/podcast/episode-56/"},{"attachments":[{"duration_in_seconds":5602,"mime_type":"audio/mpeg","url":"https://traffic.libsyn.com/secure/173caf0e-b8e8-4056-8a73-2d60d94118ef/55_Business_Vova.mp3"}],"content_text":"Александр Пахомов и Вова — основатель компании Unison и продукта yuchat, с которым Александр работает больше четырёх лет, — разбирают, как мыслит предприниматель: почему работа должна давать не только «плюшки», но и рост, зачем нанимать «под человека», а не «под вакансию», и что такое ламповый «социум», который плохо масштабируется. Во второй половине — про инструменты для живого удалённого общения (спонтанная коммуникация как в open space, возможность догнать пропущенный созвон на скорости), про вкус и креатив в профессии и про новую реальность, в которой всё труднее доверять коду и контенту, сгенерированному ИИ.","date_modified":"2026-09-16T11:54:17+03:00","date_published":"2025-09-02T00:00:00Z","id":"https://apkhmv.xyz/podcast/episode-55/","tags":["предпринимательство","мотивация","корпоративная культура","удалённая работа","ИИ-инструменты"],"title":"#55: Как мыслит предприниматель","url":"https://apkhmv.xyz/podcast/episode-55/"},{"attachments":[{"duration_in_seconds":3384,"mime_type":"audio/mpeg","url":"https://traffic.libsyn.com/secure/173caf0e-b8e8-4056-8a73-2d60d94118ef/54_Vibe.mp3"}],"content_text":"Александр Пахомов и Иван Ямщиков (сооснователь Pleias, профессор THWS) разбирают, как генеративные модели и «вайб-кодинг» меняют работу инженера в середине 2025 года: где модели реально полезны (быстрое прототипирование) и где буксуют (тестирование, валидация и дебаг сгенерированного кода). По пути — как из «восстановления пропусков в тексте» вырос reasoning, почему модель в чате не дообучается на вашем фидбэке, чем маленькие модели и RAG интересны бизнесу с чувствительными данными, и какой навык остаётся за человеком: придумывать тесты и удерживать «вкус» к задаче.","date_modified":"2026-09-16T11:54:17+03:00","date_published":"2025-07-28T00:00:00Z","id":"https://apkhmv.xyz/podcast/episode-54/","tags":["вайб-кодинг","ИИ-агенты","языковые модели","reasoning","RAG","тестирование"],"title":"#54: Вайбим с Иваном Ямщиковым","url":"https://apkhmv.xyz/podcast/episode-54/"},{"attachments":[{"duration_in_seconds":5372,"mime_type":"audio/mpeg","url":"https://traffic.libsyn.com/secure/173caf0e-b8e8-4056-8a73-2d60d94118ef/53_Datomic.mp3"}],"content_text":"Александр Пахомов и Никита Прокопов (Nikitonsky — автор Fira Code, DataScript и телеграм-канала «Стой под стрелой») разбирают Datomic — базу данных, которая идёт против течения индустрии. Начав с боли, когда оптимизатор `Postgres` внезапно замедляет запрос в сто раз, они переходят к устройству Datomic: модель `Entity-Attribute-Value` вместо таблиц, язык запросов `Datalog` вместо `SQL`, разделение чтения и записи, однопоточный транзактор и иммутабельная база с путешествием во времени. Отдельная линия разговора — как маленькая команда за счёт радикальной простоты решает те же задачи минимальными средствами.","date_modified":"2026-09-16T11:54:17+03:00","date_published":"2025-07-05T00:00:00Z","id":"https://apkhmv.xyz/podcast/episode-53/","tags":["Datomic","базы данных","Clojure","Datalog","PostgreSQL"],"title":"#53: Datomic: самая рок-н-рольная БД","url":"https://apkhmv.xyz/podcast/episode-53/"},{"attachments":[{"duration_in_seconds":8779,"mime_type":"audio/mpeg","url":"https://traffic.libsyn.com/secure/173caf0e-b8e8-4056-8a73-2d60d94118ef/podcast_17_v4_1.mp3"}],"content_text":"Александр Пахомов и Андрей Володин (сооснователь и CTO стартапа Gracia, ex-founding engineer Prisma и сооснователь NetMonet) разбирают, как вайб-кодинг и AI-агенты меняют профессию разработчика в середине 2025 года. Отправной точкой служит кейс Андрея: не будучи фронтендером, он с нуля собрал в Cursor комплексную админку (backend-driven UI, three.js, парсинг COLMAP) за ноль строк ручного кода. Отсюда — почему «попсовые» стеки (React, TypeScript) под наибольшим давлением, а low-level, робототехника и diptech пока «тихая гавань»; зачем разработчику смещаться в сторону бизнеса; и как экономическая конъюнктура (конец ZIRP, стагнация рынка смартфонов) переопределяет ценность кода — от «читабельности» к «нераспространению говнокода».","date_modified":"2026-09-16T11:54:17+03:00","date_published":"2025-06-09T00:00:00Z","id":"https://apkhmv.xyz/podcast/episode-52/","tags":["вайб-кодинг","AI-агенты","профессия разработчика","рынок труда в IT","языки программирования"],"title":"#52: Трансформация профессии разработчика в 2025","url":"https://apkhmv.xyz/podcast/episode-52/"},{"attachments":[{"duration_in_seconds":5382,"mime_type":"audio/mpeg","url":"https://traffic.libsyn.com/secure/173caf0e-b8e8-4056-8a73-2d60d94118ef/51_code_review_Clickhouse.mp3"}],"content_text":"Александр Пахомов и коммитер ClickHouse Максим Кита разбирают, как в большом open-source-проекте устроено код-ревью: почему оно неотделимо от мощного CI, от которого зависит, сколько ответственности можно снять с ревьюера, и от того, как сами контрибьюторы готовят свой код. По пути — какие тесты и санитайзеры гоняет ClickHouse, почему `code coverage` как хардстоп чаще вредит, какие пул-реквесты страшнее всего ревьюить (вероятностные алгоритмы), как «запал» автора и человеческая психология определяют судьбу PR, и почему изоляция кода через `factory`-паттерн и принцип open-closed так важна для контрибьютабельности.","date_modified":"2026-09-16T11:54:17+03:00","date_published":"2025-04-12T00:00:00Z","id":"https://apkhmv.xyz/podcast/episode-51/","tags":["код-ревью","ClickHouse","open source","C++","тестирование"],"title":"#51: Код ревью в Clickhouse","url":"https://apkhmv.xyz/podcast/episode-51/"},{"attachments":[{"duration_in_seconds":4797,"mime_type":"audio/mpeg","url":"https://traffic.libsyn.com/secure/173caf0e-b8e8-4056-8a73-2d60d94118ef/50_productivity.mp3"}],"content_text":"Сольный, юбилейный 50-й выпуск: Александр Пахомов возвращается к формату монолога и разбирает, что за год ощутимо подняло его продуктивность как программиста. Разговор идёт по четырём слоям — эргономика рабочего места (кресло `ErgoHuman`, кронштейн для ноутбука, ортолинейная сплит-клавиатура), софт (`Ghostty` + `tmux` + `Neovim` как единая среда, `fish`, единая тема во всех программах), пет-проект «база данных на Rust» и его влияние на уверенность в языке, и, наконец, здоровье — отказ от соцсетей и новостных каналов ради «свободного места в голове» плюс спорт как способ прокачать не тело, а майндсет времени и дисциплины.","date_modified":"2026-09-16T11:54:17+03:00","date_published":"2025-01-24T00:00:00Z","id":"https://apkhmv.xyz/podcast/episode-50/","tags":["продуктивность","эргономика","рабочее место","Rust","цифровой детокс"],"title":"#50: Как я повысил свою продуктивность за этот год","url":"https://apkhmv.xyz/podcast/episode-50/"},{"attachments":[{"duration_in_seconds":9869,"mime_type":"audio/mpeg","url":"https://traffic.libsyn.com/secure/173caf0e-b8e8-4056-8a73-2d60d94118ef/49_Neon_Database.mp3"}],"content_text":"Александр Пахомов и Стас Кельвич (сооснователь Neon, где он сделал storage layer) разбирают внутреннее устройство serverless-Postgres. Как Neon отделяет compute от storage: `compute` — это чуть подхаченный Postgres, у которого чтение с диска заменено на чтение по сети, а `storage` — свои сервисы на Rust (Safekeeper — консенсусный `WAL` на модифицированном Raft/DiskPaxos, и PageServer — партиционированное LSM-дерево поверх S3). По пути — процессы Postgres-комьюнити (commit-fest'ы, пятилетние патчи, `TLA+`), branching через copy-on-write и запросы к истории по `LSN`, live-миграция виртуалок ради вертикального скейлинга без разрыва соединений, авторизация по `HTTP` для V8-isolate'ов, а также будущее многопоточного Postgres. Это вторая, глубоко техническая часть; обзорная — в выпуске 48.","date_modified":"2026-09-16T11:54:17+03:00","date_published":"2024-12-25T00:00:00Z","id":"https://apkhmv.xyz/podcast/episode-49/","tags":["serverless Postgres","распределённые системы","консенсус и Paxos","storage-движки","облачные базы данных"],"title":"#49: Serverless Postgres: как работает Neon Database","url":"https://apkhmv.xyz/podcast/episode-49/"},{"attachments":[{"duration_in_seconds":6971,"mime_type":"audio/mpeg","url":"https://traffic.libsyn.com/secure/173caf0e-b8e8-4056-8a73-2d60d94118ef/48_databases_overview.mp3"}],"content_text":"Александр Пахомов и Стас Кельвич (сооснователь Neon — serverless Postgres as a service, где он сделал storage layer) с высоты птичьего полёта осматривают весь ландшафт баз данных: почему `SQL` пережил полвека и все попытки его заменить, что осталось от волны `NoSQL`, зачем Neon отдаёт Postgres по `HTTP` для edge-воркеров на V8, и где заканчивается один сервер. По пути — «константы скорости света» для пропускной способности (30–40k транзакций в секунду в одно соединение), инженерия шардирования и shuffle join, а также распределённые транзакции: двухфазный и трёхфазный коммит, Paxos Commit и подходы к изоляции. Это первая, обзорная часть; технические кишки Neon — в следующем выпуске.","date_modified":"2026-09-16T11:54:17+03:00","date_published":"2024-11-22T00:00:00Z","id":"https://apkhmv.xyz/podcast/episode-48/","tags":["базы данных","SQL и NoSQL","распределённые системы","шардирование","распределённые транзакции","Postgres"],"title":"#48: Реплицируем RDBMS с ко-фаундером Neon","url":"https://apkhmv.xyz/podcast/episode-48/"},{"attachments":[{"duration_in_seconds":7785,"mime_type":"audio/mpeg","url":"https://traffic.libsyn.com/secure/173caf0e-b8e8-4056-8a73-2d60d94118ef/47_fleet.mp3"}],"content_text":"Александр Пахомов и Андрей Зайцев (инженер JetBrains, архитектор редактора Fleet) разбирают внутреннее устройство Fleet как одновременно редактора кода и мутабельной базы данных. Разговор идёт от трёх исходных челленджей (remote development, коллаборация, полиглотность) через `React`-подобный UI, чистые функции и персистентные структуры данных к главной идее — распределённым оптимистичным транзакциям на механике «переписывания истории» в духе git-rebase, где всё состояние редактора это одно значение. По пути — параллели с `Datomic` и `MVCC`, детектор конфликтов на хэшах, нативный рендеринг через `Skia` и бюджет кадра при 120 FPS, а также роль garbage collector в функциональном коде.","date_modified":"2026-09-16T11:54:17+03:00","date_published":"2024-11-01T00:00:00Z","id":"https://apkhmv.xyz/podcast/episode-47/","tags":["редакторы кода","функциональное программирование","распределённые транзакции","рендеринг UI","базы данных"],"title":"#47: Fleet: редактор с оптимистичными транзакциями","url":"https://apkhmv.xyz/podcast/episode-47/"},{"attachments":[{"duration_in_seconds":6332,"mime_type":"audio/mpeg","url":"https://traffic.libsyn.com/secure/173caf0e-b8e8-4056-8a73-2d60d94118ef/46_nikitonsky.mp3"}],"content_text":"Александр Пахомов и Никита Прокопов (tonsky) — автор шрифта Fira Code, библиотеки DataScript и блога «Стой под стрелой» — разбирают, каким должен быть современный редактор кода. От эргономики (сплит-клавиатуры, home row, стрелки на `EJKL`) через спор о Vim, терминале и модальности к расширяемости и «шумности» IntelliJ IDEA. Никита объясняет, почему он много лет сидит в Sublime Text, почему «умный» редактор делает тебя тупее, и как маленькая команда без денег на nice-to-have фичи выигрывает у раздутых IDE.","date_modified":"2026-09-16T11:54:17+03:00","date_published":"2024-09-30T00:00:00Z","id":"https://apkhmv.xyz/podcast/episode-46/","tags":["редакторы кода","Vim и Neovim","эргономика клавиатуры","инструменты разработчика","Sublime Text"],"title":"#46: Nikitonsky про современные редакторы кода","url":"https://apkhmv.xyz/podcast/episode-46/"},{"attachments":[{"duration_in_seconds":6587,"mime_type":"audio/mpeg","url":"https://traffic.libsyn.com/secure/173caf0e-b8e8-4056-8a73-2d60d94118ef/1724936820522_45_TigerBeetle_matklad.mp3"}],"content_text":"Александр Пахомов и Алексей Кладов (matklad — автор IntelliJ Rust и rust-analyzer, теперь разработчик TigerBeetle) подробно разбирают, чем TigerBeetle не похож на остальные СУБД: написана на `Zig`, без `SQL`-интерфейса, со статической аллокацией памяти и жёстко зашитой доменной моделью из аккаунтов и трансферов. По ходу — почему `OLTP` стоит вернуть к процессингу именно финансовых транзакций (а `SQL` назвать `OLGP`), как реплицированная state machine на консенсусе `VSR` переживает ненадёжные сеть и диск, как устроены чек-суммы, суперблок, батчинг и детерминированный компакшн `LSM`-деревьев, и почему системное программирование на самом деле простое — надо просто брать и писать код.","date_modified":"2026-09-16T11:54:17+03:00","date_published":"2024-08-29T00:00:00Z","id":"https://apkhmv.xyz/podcast/episode-45/","tags":["базы данных","распределённые системы","Zig","консенсус","системное программирование"],"title":"#45: TigerBeetle: база данных не похожа на остальные","url":"https://apkhmv.xyz/podcast/episode-45/"},{"attachments":[{"duration_in_seconds":7761,"mime_type":"audio/mpeg","url":"https://traffic.libsyn.com/secure/173caf0e-b8e8-4056-8a73-2d60d94118ef/44_SIMD.mp3"}],"content_text":"Александр Пахомов и коммитер ClickHouse Максим Кита разбирают процессоры глазами системного инженера — от иерархии кэшей, стека и prefetch до суперскалярности, спекулятивного выполнения и протокола когерентности `MESI`. Во второй половине разговор уходит в модели памяти (`happens-before`, relaxed / acquire-release / sequential consistency), false sharing и лок-фри-примитивы, а затем — в главную тему: `SIMD`, автовекторизацию, `CPU dispatch` и хитрые SIMD-алгоритмы вроде гугловой Swiss-хеш-таблицы, которыми ClickHouse ускоряет обработку данных.","date_modified":"2026-09-16T11:54:17+03:00","date_published":"2024-07-29T00:00:00Z","id":"https://apkhmv.xyz/podcast/episode-44/","tags":["процессоры","SIMD","модели памяти","кэши","ClickHouse"],"title":"#44: SIMD в базах данных","url":"https://apkhmv.xyz/podcast/episode-44/"},{"attachments":[{"duration_in_seconds":7765,"mime_type":"audio/mpeg","url":"https://traffic.libsyn.com/secure/173caf0e-b8e8-4056-8a73-2d60d94118ef/43_JIT.mp3"}],"content_text":"Александр Пахомов и Максим Кита (ментейнер LLVM, коммитер ClickHouse) разбирают Just-In-Time-компиляцию: сначала на классическом примере JVM, где JIT девиртуализирует вызовы, инлайнит `get` у `ArrayList` и убирает bound-check, а потом — как тот же приём работает в базах данных. На примере ClickHouse, Postgres и YDB они показывают, как выполнение выражений над `union`-типами компилируется в одну плотную функцию через `LLVM IR`, чем OLAP-компиляция отличается от OLTP и почему `JIT` — это ещё и постоянный источник проблем с безопасностью и падениями.","date_modified":"2026-09-16T11:54:17+03:00","date_published":"2024-07-15T00:00:00Z","id":"https://apkhmv.xyz/podcast/episode-43/","tags":["JIT","компиляторы","LLVM","базы данных","ClickHouse"],"title":"#43: Как работает JIT в базах данных","url":"https://apkhmv.xyz/podcast/episode-43/"},{"attachments":[{"duration_in_seconds":5572,"mime_type":"audio/mpeg","url":"https://traffic.libsyn.com/secure/173caf0e-b8e8-4056-8a73-2d60d94118ef/42_Cybersec.mp3"}],"content_text":"Александр Пахомов и Мекан Байрыев (специалист по безопасности веб-приложений в Mad Devs, автор YouTube-канала MrCyberSec) проходят путь атакующего от IP-адреса до `root`: сканирование портов `nmap`, перебор директорий и API-эндпоинтов, SQL-инъекции, хранение паролей и хеширование, reverse shell и эскалацию привилегий через SUID-биты, capabilities и cron. По ходу — типовые кейсы (утечка данных через незащищённую ручку, побайтовое чтение `id_rsa` через хеш-оракул, бэкдор в цепочке поставок и история с `xz`), подборка ресурсов для обучения (Hack The Box, TryHackMe, CTF) и чек-лист гигиены для бэкенд-разработчика, сводящийся к принципу минимальных привилегий.","date_modified":"2026-09-16T11:54:17+03:00","date_published":"2024-06-14T00:00:00Z","id":"https://apkhmv.xyz/podcast/episode-42/","tags":["кибербезопасность","SQL-инъекции","reverse shell","хеширование паролей","эскалация привилегий"],"title":"#42: MrCyberSec: что нужно знать про безопасность","url":"https://apkhmv.xyz/podcast/episode-42/"},{"attachments":[{"duration_in_seconds":9678,"mime_type":"audio/mpeg","url":"https://traffic.libsyn.com/secure/173caf0e-b8e8-4056-8a73-2d60d94118ef/41_Qdrant.mp3"}],"content_text":"Александр Пахомов и Андрей Васнецов (CTO и сооснователь Qdrant) разбирают, как устроен векторный поиск и почему Qdrant — это поисковый движок, а не «векторная база данных». По пути: откуда берутся эмбеддинги (word2vec, BERT, ONNX) и какими свойствами обладают векторы; почему точный индекс не работает в размерности полторы тысячи и как вместо него применяется приближённый `HNSW`; в чём киллер-фича Qdrant — фильтруемый `HNSW` со вторичными индексами; как всё это шардируется и реплицируется поверх `RAFT`; и большой финальный блок про Rust — от безопасного рефакторинга и `cargo` до вставок на ассемблере, квантизации и `io_uring`.","date_modified":"2026-09-16T11:54:17+03:00","date_published":"2024-05-29T00:00:00Z","id":"https://apkhmv.xyz/podcast/episode-41/","tags":["векторный поиск","базы данных","Rust","HNSW и эмбеддинги","распределённые системы"],"title":"#41: Qdrant: Векторная база данных на Rust","url":"https://apkhmv.xyz/podcast/episode-41/"},{"attachments":[{"duration_in_seconds":6928,"mime_type":"audio/mpeg","url":"https://traffic.libsyn.com/secure/173caf0e-b8e8-4056-8a73-2d60d94118ef/neovim_offline.m4a"}],"content_text":"Первый оффлайн-выпуск «Тысячи фичей»: в гостях у Александра Пахомова — Илья Ильиных, автор YouTube-канала «Куда войти?». Почти два часа они разбирают эргономику рабочего места (посадка, монитор, сплит-клавиатуры, механические свитчи, слепая печать), путь от IntelliJ IDEA через Emacs к `NeoVim` и то, почему модальность и Unix-философия редактора заставляют программиста по-настоящему познакомиться со своими инструментами. Во второй половине — большой разговор про TDD как способ проектирования и «обуздания» легаси, про моки и интеграционные тесты и про то, стоит ли программировать по выходным.","date_modified":"2026-09-16T11:54:17+03:00","date_published":"2024-04-21T00:00:00Z","id":"https://apkhmv.xyz/podcast/episode-40/","tags":["эргономика","NeoVim","TDD","слепая печать","тестирование"],"title":"#40: Спэшл: Эргономика, NeoVim и TDD","url":"https://apkhmv.xyz/podcast/episode-40/"},{"attachments":[{"duration_in_seconds":5610,"mime_type":"audio/mpeg","url":"https://traffic.libsyn.com/secure/173caf0e-b8e8-4056-8a73-2d60d94118ef/39_LLMs_Science_Education.mp3"}],"content_text":"Александр Пахомов и Иван Ямщиков (профессор ИИ в THWS, Вюрцбург) уходят от техники в сторону науки и образования: как устроена академическая карьера в Европе (аспирантура — постдок — профессура) и почему письмо незнакомому учёному способно изменить траекторию. Через эмпирический принцип POSIWID («смысл системы в том, что она делает») Иван разбирает, чему на самом деле учит школа, а в финале выводит систему профессионального роста программиста: любопытство джуна, пет-проекты мидла и менторство сеньора.","date_modified":"2026-09-16T11:54:17+03:00","date_published":"2024-04-15T00:00:00Z","id":"https://apkhmv.xyz/podcast/episode-39/","tags":["образование","академическая карьера","профессиональный рост","генеративные модели","лайфхаки обучения"],"title":"#39: Иван Ямщиков: Наука, Образование и лайфхаки","url":"https://apkhmv.xyz/podcast/episode-39/"},{"attachments":[{"duration_in_seconds":9361,"mime_type":"audio/mpeg","url":"https://traffic.libsyn.com/secure/173caf0e-b8e8-4056-8a73-2d60d94118ef/38_Clickhouse.mp3"}],"content_text":"Александр Пахомов и коммитер ClickHouse Максим Кита разбирают, почему самая популярная аналитическая база данных не тормозит: от разницы OLAP и OLTP и колоночного хранения до движков семейства `MergeTree`, агрегатных функций, проекций и `FINAL`. Во второй половине — инженерная культура ClickHouse: stateless-тесты вместо моков, фаззинг, Jepsen и `TLA+`, интроспекция и профилирование запросов через flame graph, а также разбор инцидента с высокой конкурентностью у одного крупного клиента, где глобальный mutex в контексте заменили на read-write.","date_modified":"2026-09-16T11:54:17+03:00","date_published":"2024-04-01T00:00:00Z","id":"https://apkhmv.xyz/podcast/episode-38/","tags":["ClickHouse","базы данных","OLAP","производительность","тестирование"],"title":"#38: Почему ClickHouse не тормозит","url":"https://apkhmv.xyz/podcast/episode-38/"},{"attachments":[{"duration_in_seconds":6467,"mime_type":"audio/mpeg","url":"https://traffic.libsyn.com/secure/173caf0e-b8e8-4056-8a73-2d60d94118ef/37_CEO_OF_HTMX.mp3"}],"content_text":"Александр Пахомов зовёт в гости Вастрика (vas3k) — технологического блогера и основателя Вастрик-клуба — чтобы разобрать, на каком стеке живут его pet-проекты и почему инженерная простота — это не тупость, а опыт. Гость рассказывает, как из ЖЖ вырос блог на `Django` с `Postgres` в `Docker`, деплоем по `SSH` и одной машиной на Hetzner под `Cloudflare`, и объясняет главный тезис: код для себя и код на работе решают противоположные задачи. Финал — манифест против SPA и ода `HTMX` как «расширенному HTML» для бэкендеров.","date_modified":"2026-09-16T11:54:17+03:00","date_published":"2024-02-16T00:00:00Z","id":"https://apkhmv.xyz/podcast/episode-37/","tags":["инди-хакинг","веб-разработка","HTMX","pet-проекты","деплой"],"title":"#37: vas3k: CEO OF HTMX","url":"https://apkhmv.xyz/podcast/episode-37/"},{"attachments":[{"duration_in_seconds":6832,"mime_type":"audio/mpeg","url":"https://traffic.libsyn.com/secure/173caf0e-b8e8-4056-8a73-2d60d94118ef/36_Rust_C_LLVM_Clickhouse.mp3"}],"content_text":"Первый «хардкорный» выпуск: Александр Пахомов и Максим Кита (разработчик ClickHouse, контрибьютор компилятора Swift, коммитер LLVM) разбирают, как устроен современный компилятор — фронтенд, middle-end и бэкенд, `LLVM IR` в `SSA`-форме, basic-блоки и phi-ноды. По пути — почему на C++ тяжело писать без санитайзеров и `clang-tidy`, чем силён `borrow checker` в Rust, что такое compile-time-полиморфизм и `if constexpr`, как деление превращается в умножение, и как реально законтрибьютить в LLVM и компилятор Swift.","date_modified":"2026-09-16T11:54:17+03:00","date_published":"2023-12-29T00:00:00Z","id":"https://apkhmv.xyz/podcast/episode-36/","tags":["LLVM","компиляторы","Rust","C++","open source"],"title":"#36: LLVM: Rust, современный C++, как законтрибьютить","url":"https://apkhmv.xyz/podcast/episode-36/"},{"attachments":[{"duration_in_seconds":3293,"mime_type":"audio/mpeg","url":"https://traffic.libsyn.com/secure/173caf0e-b8e8-4056-8a73-2d60d94118ef/35_IntelliJ_IDEA_ep.mp3"}],"content_text":"Специальный выпуск про устройство IntelliJ IDEA: Александр Пахомов расспрашивает разработчика JetBrains Даниила Овчинникова о том, из чего собран IDE изнутри. Разбирают разделение на платформу и плагины (поддержка Java — тоже плагин), `PSI` как абстрактное синтаксическое дерево «на стероидах» и пайплайн его построения (`Lexer` → парсер → `AST` → `PSI`), устройство автодополнения через вставку скрытого идентификатора `IntelliJ IDEA RULES`, модель экшенов и гетерогенный контекст, инкрементальный репарсинг, многослойное тестирование (парсинг, инспекции, quick fix, completion, property-тесты на `JetCheck`), а также вечный спор о форматах конфигурации (`XML` против `JSON`/`YAML`/`HOCON`) и планы вынести UI на Compose Multiplatform.","date_modified":"2026-09-16T11:54:17+03:00","date_published":"2023-12-19T00:00:00Z","id":"https://apkhmv.xyz/podcast/episode-35/","tags":["IntelliJ IDEA","устройство IDE","парсеры и PSI","тестирование","разработка плагинов"],"title":"#35: IntelliJ IDEA: самый популярный редактор для Java","url":"https://apkhmv.xyz/podcast/episode-35/"},{"attachments":[{"duration_in_seconds":6508,"mime_type":"audio/mpeg","url":"https://traffic.libsyn.com/secure/173caf0e-b8e8-4056-8a73-2d60d94118ef/FAANG_Interview.mp3"}],"content_text":"Большой «спэшл» с гостем — Дмитрием Волыхиным, ведущим подкаста Java Swag и лидером комьюнити FAANG Talks, который получил оффер в Meta. Вместе с Александром они подробно разбирают весь путь подготовки к интервью в big tech: почему это лотерея и стоит ли платить за буткемпы, как устроены три части собеседования (алгоритмы, system design, behavioral), сколько готовиться и как выбрать между «спринтом» и «марафоном». Отдельно — про моки, про 7 шагов system design, про метод STAR, про грейды и деньги (`levels.fyi`), релокацию и главный инсайт: подготовка к FAANG делает тебя сильнее как инженера здесь и сейчас.","date_modified":"2026-09-16T11:54:17+03:00","date_published":"2023-11-07T00:00:00Z","id":"https://apkhmv.xyz/podcast/episode-34/","tags":["FAANG","собеседования","алгоритмы","system design","карьера в IT"],"title":"#34: Спэшл: Подготовка к FAANG и важность алгоритмов","url":"https://apkhmv.xyz/podcast/episode-34/"},{"attachments":[{"duration_in_seconds":2810,"mime_type":"audio/mpeg","url":"https://traffic.libsyn.com/secure/173caf0e-b8e8-4056-8a73-2d60d94118ef/33_Query_Optimizations.mp3"}],"content_text":"Финал второго сезона про базы данных. Александр Пахомов разбирает один из самых сложных компонентов СУБД — оптимизатор запросов: как выглядит план запроса и как по нему текут данные, три модели обработки (итератор, материализация, векторизация), методы доступа к данным (`sequential scan` с его оптимизациями и `index scan`), Halloween Problem и JIT-компиляцию выражений. Вторая половина — параллелизм: модели воркеров (процесс на воркер, тред на воркер, embedded), горизонтальное распараллеливание плана и место самого оптимизатора в конвейере от парсера до физического плана, где он применяет эвристики и cost-based-оптимизации на основе статистик.","date_modified":"2026-09-16T11:54:17+03:00","date_published":"2023-09-04T00:00:00Z","id":"https://apkhmv.xyz/podcast/episode-33/","tags":["оптимизация запросов","план запроса","оптимизатор запросов","параллелизм в базах данных","cost-based оптимизация"],"title":"#33: Query optimizations: эвристики и cost-based","url":"https://apkhmv.xyz/podcast/episode-33/"},{"attachments":[{"duration_in_seconds":1834,"mime_type":"audio/mpeg","url":"https://traffic.libsyn.com/secure/173caf0e-b8e8-4056-8a73-2d60d94118ef/32_Joins.mp3"}],"content_text":"Продолжение сезона про базы данных. Александр Пахомов разбирает, как СУБД сортируют и соединяют таблицы, когда данные не влезают в оперативную память. Сначала — алгоритмы сортировки (`quicksort`, top-N heap sort, external merge sort) и их оптимизации (early/late materialization, prefetch, кодогенерация под типы, сравнение бинарных префиксов), затем hash aggregate для `GROUP BY`, и наконец три способа соединения таблиц — nested loop join, sort-merge join и hash join — с выводом, почему hash join обычно самый эффективный.","date_modified":"2026-09-16T11:54:17+03:00","date_published":"2023-08-28T00:00:00Z","id":"https://apkhmv.xyz/podcast/episode-32/","tags":["базы данных","сортировки","join","hash join","query-план"],"title":"#32: Merge sort и hash join: соединяют и сортируют","url":"https://apkhmv.xyz/podcast/episode-32/"},{"attachments":[{"duration_in_seconds":1739,"mime_type":"audio/mpeg","url":"https://traffic.libsyn.com/secure/173caf0e-b8e8-4056-8a73-2d60d94118ef/31_WAL.mp3"}],"content_text":"Выпуск про Write-Ahead Log — механизм, который обеспечивает атомарность и долговечность транзакций и лежит в сердце почти любой базы данных. Александр объясняет, зачем логировать изменения, если оперативная память быстрая, но недолговечна, разбирает политики буферизации (`steal`/`no-steal`, `force`/`no-force`) и альтернативу в виде shadow paging, а затем на пальцах проходит устройство самого лога (append-only, immutable, log records, checkpoint) и семейство алгоритмов восстановления ARIES с его фазами analysis, redo и undo.","date_modified":"2026-09-16T11:54:17+03:00","date_published":"2023-08-21T00:00:00Z","id":"https://apkhmv.xyz/podcast/episode-31/","tags":["базы данных","write-ahead log","восстановление после сбоя","транзакции","ARIES"],"title":"#31: WAL: сердце любой базы данных","url":"https://apkhmv.xyz/podcast/episode-31/"},{"attachments":[{"duration_in_seconds":2049,"mime_type":"audio/mpeg","url":"https://traffic.libsyn.com/secure/173caf0e-b8e8-4056-8a73-2d60d94118ef/30_LSM_Tree.mp3"}],"content_text":"Юбилейный тридцатый выпуск про Log-Structured Merge Tree — структуру данных, оптимизированную под запись и ставшую основной альтернативой `B+`-деревьям в современных key-value-хранилищах. Александр Пахомов объясняет RUM-трейд-офф (read-update-memory) и слабые места `B+`-дерева на записи, разбирает устройство двух- и многокомпонентного LSM (дерево в памяти + write-ahead log + иммутабельные `SSTable` на диске, compaction по уровням, tombstone-удаления), показывает, почему чтение в LSM платит за быструю запись, и связывает популярность LSM с физикой SSD, который тоже пишет и стирает блоками журналируемо.","date_modified":"2026-09-16T11:54:17+03:00","date_published":"2023-08-14T00:00:00Z","id":"https://apkhmv.xyz/podcast/episode-30/","tags":["LSM-дерево","структуры данных","хранилища баз данных","compaction","SSD"],"title":"#30: LSM Tree: структура данных взрывает мозг","url":"https://apkhmv.xyz/podcast/episode-30/"},{"attachments":[{"duration_in_seconds":2829,"mime_type":"audio/mpeg","url":"https://traffic.libsyn.com/secure/173caf0e-b8e8-4056-8a73-2d60d94118ef/29_Concurrency_control.mp3"}],"content_text":"Продолжение сезона про базы данных: как СУБД на самом деле гарантируют уровни изоляции. Александр разбирает три протокола управления конкурентностью — пессимистичную двухфазную блокировку (2PL) с её строгой версией, детекцией дедлоков по waits-for-graph, гранулярностью и intention locks; оптимистическое управление (OCC) с private workspace и фазами чтения/валидации/записи; и мультиверсионность (MVCC), которая хранит несколько версий объекта, даёт snapshot isolation почти бесплатно и лежит в основе большинства современных СУБД. Попутно — таймстемп-ординг как теоретический фундамент, аномалия write skew, дефолтные уровни изоляции в Postgres, Oracle и Google Spanner, а также хранение версий, сборка мусора и вторичные индексы в MVCC.","date_modified":"2026-09-16T11:54:17+03:00","date_published":"2023-08-07T00:00:00Z","id":"https://apkhmv.xyz/podcast/episode-29/","tags":["управление конкурентностью","транзакции","уровни изоляции","MVCC","базы данных"],"title":"#29: Concurrency control: 2PL, OCC, MVCC","url":"https://apkhmv.xyz/podcast/episode-29/"},{"attachments":[{"duration_in_seconds":1799,"mime_type":"audio/mpeg","url":"https://traffic.libsyn.com/secure/173caf0e-b8e8-4056-8a73-2d60d94118ef/28_ACID_Transactions.mp3"}],"content_text":"Сольный выпуск из серии про базы данных. Александр Пахомов разбирает ACID-транзакции: сначала «зазубренный» ответ на собеседовании (атомарность, консистентность, изоляция, долговечность) с комментариями к каждому свойству и упоминанием реализаций через write-ahead log и shadow paging, а затем — главную часть про изоляцию. На аналогии со складом он объясняет аномалии параллельного исполнения (грязное и неповторяемое чтение, фантомы, потерянное обновление, грязная запись, write skew), выстраивает из них уровни изоляции вплоть до `serializable` и разбирает, что вообще стоит за сериализуемостью — конфликты, граф зависимостей и разница между conflict- и view-serializable.","date_modified":"2026-09-16T11:54:17+03:00","date_published":"2023-07-31T00:00:00Z","id":"https://apkhmv.xyz/podcast/episode-28/","tags":["ACID","транзакции","уровни изоляции","сериализуемость","аномалии чтения и записи"],"title":"#28: ACID transactions: аномалии и сериализуемость","url":"https://apkhmv.xyz/podcast/episode-28/"},{"attachments":[{"duration_in_seconds":1968,"mime_type":"audio/mpeg","url":"https://traffic.libsyn.com/secure/173caf0e-b8e8-4056-8a73-2d60d94118ef/27_HashTables.mp3"}],"content_text":"Выпуск сезона про базы данных: почему хэш-таблицы проиграли `B+`-деревьям гонку за звание главной структуры данных для индексов. Александр Пахомов разбирает устройство хэш-таблицы и её два ключевых архитектурных решения — выбор хэш-функции (trade-off «скорость против collision rate», от `MurmurHash` и `CityHash` до state-of-the-art `xxHash`) и схему хэширования: статические (linear probe, Robin Hood, cuckoo) и динамические (chained, extendable, linear hashing).","date_modified":"2026-09-16T11:54:17+03:00","date_published":"2023-07-24T00:00:00Z","id":"https://apkhmv.xyz/podcast/episode-27/","tags":["хэш-таблицы","хэш-функции","схемы хэширования","базы данных","индексы"],"title":"#27: Хэш таблицы: функции и схемы хэширования","url":"https://apkhmv.xyz/podcast/episode-27/"},{"attachments":[{"duration_in_seconds":1345,"mime_type":"audio/mpeg","url":"https://traffic.libsyn.com/secure/173caf0e-b8e8-4056-8a73-2d60d94118ef/26_Latches.mp3"}],"content_text":"Продолжение сезона про базы данных: разбор проблем классического B+tree и инженерных приёмов их решения. Александр Пахомов объясняет, зачем деревьям нужны защёлки (latches) и почему в мире СУБД «блокировки» и «защёлки» значат не то же, что в языках программирования, показывает метод latch crabbing с оптимистичным спуском, а затем разбирает две продакшен-оптимизации записи — copy-on-write B+tree (движок LMDB в OpenLDAP) и буферизацию дельт в Lazy/Buffered B+tree (движок WiredTiger в MongoDB).","date_modified":"2026-09-16T11:54:17+03:00","date_published":"2023-07-17T00:00:00Z","id":"https://apkhmv.xyz/podcast/episode-26/","tags":["B+tree","защёлки","базы данных","storage engine","copy-on-write"],"title":"#26: Оптимизируем B+tree: копирование, пакетирование","url":"https://apkhmv.xyz/podcast/episode-26/"},{"attachments":[{"duration_in_seconds":1616,"mime_type":"audio/mpeg","url":"https://traffic.libsyn.com/secure/173caf0e-b8e8-4056-8a73-2d60d94118ef/25_Buffer_pool_and_fsync.mp3"}],"content_text":"Продолжение сезона про базы данных. Александр разбирает, как СУБД управляют памятью: что такое buffer pool, зачем нужны dirty pages и отложенная запись, чем опасен `fsync` (включая почти двадцатилетний баг в Postgres, из-за которого ошибка `fsync` приводила к потере данных) и почему поэтому многие базы пишут собственный кэш в обход ОС через `O_DIRECT`, несмотря на знаменитую отповедь Линуса Торвальдса. Во второй половине — политики вытеснения страниц: FIFO, LRU, 2Q, Clock и TinyLFU из библиотеки Caffeine.","date_modified":"2026-09-16T11:54:17+03:00","date_published":"2023-07-10T00:00:00Z","id":"https://apkhmv.xyz/podcast/episode-25/","tags":["buffer pool","базы данных","fsync и долговечность","вытеснение страниц","кэширование"],"title":"#25: Buffer pools: почему БД реализуют часть ОС","url":"https://apkhmv.xyz/podcast/episode-25/"},{"attachments":[{"duration_in_seconds":1219,"mime_type":"audio/mpeg","url":"https://traffic.libsyn.com/secure/173caf0e-b8e8-4056-8a73-2d60d94118ef/24_B-tree.mp3"}],"content_text":"Продолжение сезона про базы данных. Александр Пахомов объясняет, почему главной структурой данных в индексах стало именно B-дерево: сначала на пальцах разбирает бинарное дерево поиска, его инвариант и вырождение в список, затем — балансировку и логарифмический поиск, и показывает, почему бинарные деревья не годятся для диска (большая высота → много случайных чтений). Дальше на примере библиотеки с указателями на стеллажах он раскрывает устройство `B+tree` (внутренние узлы-указатели, листовые узлы с данными, связанный список листьев для sequential scan) и объясняет, чем оно лучше классического `B-tree`.","date_modified":"2026-09-16T11:54:17+03:00","date_published":"2023-07-03T00:00:00Z","id":"https://apkhmv.xyz/podcast/episode-24/","tags":["базы данных","структуры данных","B-дерево","индексы","работа с диском"],"title":"#24: Лучшая структура данных: B-tree, B+tree","url":"https://apkhmv.xyz/podcast/episode-24/"},{"attachments":[{"duration_in_seconds":1601,"mime_type":"audio/mpeg","url":"https://traffic.libsyn.com/secure/173caf0e-b8e8-4056-8a73-2d60d94118ef/23_SSD_and_HDD_disks.mp3"}],"content_text":"Выпуск второго сезона про базы данных. Александр Пахомов объясняет, как внутреннее устройство накопителей — механическая головка HDD и блочная организация SSD (ячейка → строка → массив → страница → блок, где чтение и запись идут страницами, а удаление — блоками) — диктует примитивы, которыми оперируют хранилища. Разбирает иерархию памяти и таблицу задержек «Latency Numbers Every Programmer Should Know», а затем — устройство страницы в базе данных: заголовок и записи, фрагментацию с дефрагментацией и в итоге слотированные страницы (slotted pages) со слот-массивом, растущим навстречу данным.","date_modified":"2026-09-16T11:54:17+03:00","date_published":"2023-06-26T00:00:00Z","id":"https://apkhmv.xyz/podcast/episode-23/","tags":["базы данных","устройство дисков","SSD и HDD","слотированные страницы","иерархия памяти"],"title":"#23: SSD и HDD: устройство дисков и слотированные страницы","url":"https://apkhmv.xyz/podcast/episode-23/"},{"attachments":[{"duration_in_seconds":1450,"mime_type":"audio/mpeg","url":"https://traffic.libsyn.com/secure/173caf0e-b8e8-4056-8a73-2d60d94118ef/22_Database_Architecture.mp3"}],"content_text":"Второй выпуск сезона про базы данных. Через развёрнутую аналогию с сортировочным складом Александр Пахомов разбирает верхнеуровневую архитектуру почти любой СУБД — транспортный уровень, обработчик запросов с оптимизатором, подсистему выполнения и подсистему хранилища (диспетчеры транзакций, блокировок, буфера, восстановления и средства доступа), — а затем классифицирует базы данных по методам хранения: OLTP против OLAP, in-memory против дисковых, строковые против колоночных. В финале — идея композируемости: современные СУБД собираются из переиспользуемых блоков, но абстракции между слоями неизбежно текут ради скорости.","date_modified":"2026-09-16T11:54:17+03:00","date_published":"2023-06-19T00:00:00Z","id":"https://apkhmv.xyz/podcast/episode-22/","tags":["базы данных","архитектура СУБД","OLAP и OLTP","колоночные хранилища","подсистема хранения"],"title":"#22: Архитектура баз данных: компоненты и классификация","url":"https://apkhmv.xyz/podcast/episode-22/"},{"attachments":[{"duration_in_seconds":2381,"mime_type":"audio/mpeg","url":"https://traffic.libsyn.com/secure/173caf0e-b8e8-4056-8a73-2d60d94118ef/21_into_into_databases.mp3"}],"content_text":"Первый выпуск второго сезона, посвящённого базам данных. Александр Пахомов объясняет, почему глубокое, а не поверхностное понимание баз данных важнее знания конкретного языка, фреймворка или СУБД, прослеживает историю от реляционных систем 70-х через NoSQL и NewSQL до облачных и shared-disk-решений, а затем освежает ключевые концепции SQL: `SELECT`/`WHERE`, агрегаты, `GROUP BY`/`HAVING`, `JOIN`, оконные функции и common table expressions.","date_modified":"2026-09-16T11:54:17+03:00","date_published":"2023-06-12T00:00:00Z","id":"https://apkhmv.xyz/podcast/episode-21/","tags":["базы данных","SQL","история технологий","NoSQL","реляционные СУБД"],"title":"#21: Введение в базы данных: История и SQL","url":"https://apkhmv.xyz/podcast/episode-21/"},{"attachments":[{"duration_in_seconds":2629,"mime_type":"audio/mpeg","url":"https://traffic.libsyn.com/secure/173caf0e-b8e8-4056-8a73-2d60d94118ef/20_Genetic_algorithms.mp3"}],"content_text":"Юбилейный двадцатый выпуск без гостей. Александр Пахомов рассказывает про свой магистерский диплом — «мертворождённый» инструмент, который генетическим алгоритмом писал бы юнит-тесты на Java-код. По пути он даёт вводную в теорию тестирования (классы эквивалентности, критерии покрытия от строк до MC/DC, мутационное тестирование, фазинг и Search-Based Software Testing), разбирает устройство абстрактного генетического алгоритма и объясняет, как он спроецировал его понятия — популяцию, гены, функцию приспособленности, мутацию и скрещивание — на генерацию тестов, а в конце признаёт, что как продукт затею убил Copilot.","date_modified":"2026-09-16T11:54:17+03:00","date_published":"2023-05-29T00:00:00Z","id":"https://apkhmv.xyz/podcast/episode-20/","tags":["генетические алгоритмы","тестирование","генерация тестов","покрытие кода","дипломная работа"],"title":"#20: Выживает сильнейший: генетические алгоритмы","url":"https://apkhmv.xyz/podcast/episode-20/"},{"attachments":[{"duration_in_seconds":2034,"mime_type":"audio/mpeg","url":"https://traffic.libsyn.com/secure/173caf0e-b8e8-4056-8a73-2d60d94118ef/19_Small_Teams.mp3"}],"content_text":"Сольный выпуск по мотивам «Программиста-прагматика». Александр Пахомов размышляет об оптимальном размере команды (5–7 человек) и о пользе функциональных команд, способных выдавать end-to-end результат, разбирает происхождение термина «карго-культ» и его проявления в скраме, а затем формулирует три практики из Pragmatic Starter Kit, которые должны быть в любом проекте: система контроля версий, тестирование и полная автоматизация. В финале — идея, что инженер прежде всего problem solver, призыв «подписывать свою работу» и наводка на YouTube-канал Computerphile.","date_modified":"2026-09-16T11:54:17+03:00","date_published":"2023-05-16T00:00:00Z","id":"https://apkhmv.xyz/podcast/episode-19/","tags":["размер команды","карго-культ","тестирование","CI/CD","командные процессы"],"title":"#19: Выдал базу: три важнейших вещи в разработке","url":"https://apkhmv.xyz/podcast/episode-19/"},{"attachments":[{"duration_in_seconds":1561,"mime_type":"audio/mpeg","url":"https://traffic.libsyn.com/secure/173caf0e-b8e8-4056-8a73-2d60d94118ef/18_.mp3"}],"content_text":"Спэшл-выпуск «положение дел»: Александр рассказывает, что подкаст не заканчивается, а он расширяет территорию — выходит на YouTube (первый видос будет про сам подкаст) и присматривается к TikTok. Большая часть выпуска — подробный дневник погружения дилетанта в видеопроизводство: камера Sony A7 III, микрофон, свет как самая важная часть кадра (схема из трёх источников: ключевой, контровый, подсветка фона), монтаж в DaVinci Resolve вместо тормозящего iMovie, музыка и авторские права, а также генерация обложек через Midjourney с промтами от GPT-4.","date_modified":"2026-09-16T11:54:17+03:00","date_published":"2023-05-04T00:00:00Z","id":"https://apkhmv.xyz/podcast/episode-18/","tags":["подкастинг","YouTube","видеопроизводство","монтаж видео","нейросети"],"title":"#18: Спэшл: положение дел, YouTube","url":"https://apkhmv.xyz/podcast/episode-18/"},{"attachments":[{"duration_in_seconds":2219,"mime_type":"audio/mpeg","url":"https://traffic.libsyn.com/secure/173caf0e-b8e8-4056-8a73-2d60d94118ef/17_Requirements.mp3"}],"content_text":"Выпуск по мотивам книги «Программист-прагматик». Александр Пахомов доказывает, что требования нужны в первую очередь самим разработчикам — чтобы уточнить, чего на самом деле хочет заказчик, и не писать лишний код, — и разводит требования с бизнес-политиками, которые нельзя зашивать в хардкод. Затем он разбирает приёмы решения запутанных задач (сузить проблему, загрузить данные в подсознание, найти «уточку»), делится своим взглядом на парное программирование и живое общение против асинхронного, а под конец разоблачает agile-коучей и спорит с культом спринтов.","date_modified":"2026-09-16T11:54:17+03:00","date_published":"2023-05-01T00:00:00Z","id":"https://apkhmv.xyz/podcast/episode-17/","tags":["требования к ПО","парное программирование","Agile","софт-скиллы","решение задач"],"title":"#17: Гибкие требования: парное программирование, Agile","url":"https://apkhmv.xyz/podcast/episode-17/"},{"attachments":[{"duration_in_seconds":792,"mime_type":"audio/mpeg","url":"https://traffic.libsyn.com/secure/173caf0e-b8e8-4056-8a73-2d60d94118ef/16_.mp3"}],"content_text":"Первый «спэшл» — короткий тематический выпуск между основными. Александр разбирает модель управления доступом Role-Based Access Control (RBAC): три её кита (пользователи, роли, привилегии), надстройки в виде иерархии ролей и ограничений (разделение обязанностей и лимиты на назначение ролей), а затем на пальцах сравнивает реализации в Postgres (где путаются пользователи и роли) и ClickHouse (с хорошей иерархией привилегий, но возможностью выдавать их и пользователям напрямую — что ломает каноническую модель).","date_modified":"2026-09-16T11:54:17+03:00","date_published":"2023-04-20T00:00:00Z","id":"https://apkhmv.xyz/podcast/episode-16/","tags":["RBAC","контроль доступа","базы данных","безопасность","ClickHouse"],"title":"#16: Спэшл: RBAC","url":"https://apkhmv.xyz/podcast/episode-16/"},{"attachments":[{"duration_in_seconds":2539,"mime_type":"audio/mpeg","url":"https://traffic.libsyn.com/secure/173caf0e-b8e8-4056-8a73-2d60d94118ef/15_Fib.nth_2.mp3"}],"content_text":"Глава «While You Are Coding» из «Программиста-прагматика» глазами Александра: как победить боязнь белого листа прототипом-игрой, почему нельзя коммитить код, который не понимаешь (история с незадокументированным бином Spring Shell), «мышление графиками» вместо зубрёжки О-большого, атомарный рефакторинг с точки зрения свежеиспечённого коммитера Apache-проекта, TDD без карго-культа, property-based testing для проверки инвариантов и капитанские, но забываемые правила security. И хохма про Fib.nth, давшая выпуску имя.","date_modified":"2026-09-16T11:54:17+03:00","date_published":"2023-04-18T00:00:00Z","id":"https://apkhmv.xyz/podcast/episode-15/","tags":["Программист-прагматик","тестирование","алгоритмы","рефакторинг","безопасность"],"title":"#15: Fib.nth: о чем не думают инженеры","url":"https://apkhmv.xyz/podcast/episode-15/"},{"attachments":[{"duration_in_seconds":1467,"mime_type":"audio/mpeg","url":"https://traffic.libsyn.com/secure/173caf0e-b8e8-4056-8a73-2d60d94118ef/ChatGPT_Copilot.mp3"}],"content_text":"Взгляд прагматичного инженера на GPT-хайп весны 2023-го: как Александр реально использует ChatGPT в ежедневной работе — пишет гуглдоки и джира-тикеты «потоком сознания» с нативной редактурой, почему Copilot в коде чаще мешает, чем помогает, но отлично пишет JavaDoc и подсказывает забытые тест-кейсы. Плюс Copilot CLI, плагины ChatGPT через OpenAPI-спеку и проверенная руками (и отложенная) идея пайплайна Whisper → ChatGPT → телеграм-посты из выпусков подкаста. Полезняшка — браузер Arc.","date_modified":"2026-09-16T11:54:17+03:00","date_published":"2023-04-04T00:00:00Z","id":"https://apkhmv.xyz/podcast/episode-14/","tags":["ChatGPT","Copilot","AI","инструменты","продуктивность"],"title":"#14: Используем технологии по назначению","url":"https://apkhmv.xyz/podcast/episode-14/"},{"attachments":[{"duration_in_seconds":2163,"mime_type":"audio/mpeg","url":"https://traffic.libsyn.com/secure/173caf0e-b8e8-4056-8a73-2d60d94118ef/13_Builder.mp3"}],"content_text":"Любимый паттерн Александра — Builder: закрытый конструктор, immutable-объекты, валидации в сеттерах, именованные параметры, которых нет в Java, тестовые фикстуры — и как он пишет билдеры руками, без Lombok (а Copilot их отлично генерирует). Во второй части по мотивам «Программиста-прагматика» — конкурентность: чем она отличается от параллелизма, почему shared state is hard, как устроена модель акторов и почему её современное воплощение — микросервисы с Kafka-«мейлбоксом» и Kubernetes-«супервайзером». Полезняшки — плейлист про устройство баз данных и фичи новой Java.","date_modified":"2026-09-16T11:54:17+03:00","date_published":"2023-03-20T00:00:00Z","id":"https://apkhmv.xyz/podcast/episode-13/","tags":["паттерны","Java","конкурентность","модель акторов","Программист-прагматик"],"title":"#13: Любимый паттерн: Builder, Concurrency, Actors","url":"https://apkhmv.xyz/podcast/episode-13/"},{"attachments":[{"duration_in_seconds":1763,"mime_type":"audio/mpeg","url":"https://traffic.libsyn.com/secure/173caf0e-b8e8-4056-8a73-2d60d94118ef/12_Inheritance_tax.mp3"}],"content_text":"Связность — враг изменений: по мотивам «Программиста-прагматика» Александр разбирает признаки высокого каплинга и способы его снижать — от инкапсуляции и отказа от глобального стейта до недооцененных конечных автоматов, observer-паттерна и pub-sub с реактивным программированием. Кульминация — «налог на наследование»: почему наследование классов — самый сильный способ связать код намертво и чем его заменить: интерфейсы, делегирование и миксины (даже в Java — через аннотации, как @Mixin в Picocli). Полезняшка — канал «500 дней геймдева».","date_modified":"2026-09-16T11:54:17+03:00","date_published":"2023-03-06T00:00:00Z","id":"https://apkhmv.xyz/podcast/episode-12/","tags":["Программист-прагматик","наследование","конечные автоматы","проектирование","Java"],"title":"#12: Налог на наследование: конечные автоматы","url":"https://apkhmv.xyz/podcast/episode-12/"},{"attachments":[{"duration_in_seconds":2147,"mime_type":"audio/mpeg","url":"https://traffic.libsyn.com/secure/173caf0e-b8e8-4056-8a73-2d60d94118ef/11_meetup_keynotes.mp3"}],"content_text":"Эмоциональный выпуск про первый опыт Александра в роли докладчика на локальном IT-митапе: сорванные тайминги, слабая модерация и девять слушателей на докладе про GraalVM. Из этого — выводы: почему митапу нужна модерация докладов, сколько докладов выдерживает аудитория и когда «сделай сам» — единственный выход. Во второй части — как Александр готовит презентации: белые слайды, минимум текста, интерактивность, и связка iPad + Concepts + Google Slides. Полезняшка — доклад Вадима Макишвили «36».","date_modified":"2026-09-16T11:54:17+03:00","date_published":"2023-02-20T00:00:00Z","id":"https://apkhmv.xyz/podcast/episode-11/","tags":["митапы","публичные выступления","презентации","GraalVM","сообщество"],"title":"#11: Горе-митап: опыт выступления, презентации","url":"https://apkhmv.xyz/podcast/episode-11/"},{"attachments":[{"duration_in_seconds":1770,"mime_type":"audio/mpeg","url":"https://traffic.libsyn.com/secure/173caf0e-b8e8-4056-8a73-2d60d94118ef/10_Design_by_contract.mp3"}],"content_text":"Юбилейный десятый выпуск, записанный в студии. Design by contract из «Программиста-прагматика»: предусловия, постусловия и инварианты через тройки Хоара, почему предусловия — не валидация пользовательского ввода, и спор с авторами о том, может ли TDD заменить контракты. Затем — практика: контракты в джавадоке, тесты в структуре given/when/then и ArchUnit — библиотека для тестирования архитектуры, которой Александр зафиксировал инвариант стартап-хуков прямо в build time. Полезняшка — 37signals.","date_modified":"2026-09-16T11:54:17+03:00","date_published":"2023-02-06T00:00:00Z","id":"https://apkhmv.xyz/podcast/episode-10/","tags":["Программист-прагматик","design by contract","ArchUnit","тестирование","Java"],"title":"#10: Design by contract: инварианты, Archunit","url":"https://apkhmv.xyz/podcast/episode-10/"},{"attachments":[{"duration_in_seconds":2792,"mime_type":"audio/mpeg","url":"https://traffic.libsyn.com/secure/173caf0e-b8e8-4056-8a73-2d60d94118ef/09_Pragmatic_tools.mp3"}],"content_text":"Глава «Программиста-прагматика» про ежедневные инструменты: почему plain text — самое живучее представление знаний, как сделать shell своей вотчиной (темы, prompt, алиасы, fish), чек-лист совершенства во владении редактором, зачем всегда нужна система контроля версий и философия дебаггинга — чинить проблему, а не искать виновных, воспроизводить багу тестом и читать чёртово сообщение об ошибке. Бонус: подкаст зафичерил Apple, и Александр рассказывает, на что это похоже. Полезняшка — лекция Джона Остерхаута «A Philosophy of Software Design».","date_modified":"2026-09-16T11:54:17+03:00","date_published":"2023-01-23T00:00:00Z","id":"https://apkhmv.xyz/podcast/episode-09/","tags":["Программист-прагматик","инструменты","shell","git","дебаггинг"],"title":"#9: Прагматичные тулы: plain text, git, shell","url":"https://apkhmv.xyz/podcast/episode-09/"},{"attachments":[{"duration_in_seconds":2552,"mime_type":"audio/mpeg","url":"https://traffic.libsyn.com/secure/173caf0e-b8e8-4056-8a73-2d60d94118ef/08_GraalVM.mp3"}],"content_text":"Почему Java стартует медленно — класс-лоадинг, интерпретация, прогрев JIT — и как GraalVM native image ускорил command-line-приложение Александра с 3,5 секунд до 40 миллисекунд: closed-world assumption, инициализация классов в build time и цена в виде ручных метаданных для рефлексии. Плюс обзор альтернатив — AppCDS и CRaC от Azul. Во второй части — расследование флэки-тестов: как Mockito записывает вызовы в глобальный shared-state стек внутри when/thenReturn, почему это ломается в многопоточности и когда вместо мока нужен стаб, фейк или интеграционный тест. Полезняшка — «Распределённые данные» Алекса Петрова.","date_modified":"2026-09-16T11:54:17+03:00","date_published":"2023-01-09T00:00:00Z","id":"https://apkhmv.xyz/podcast/episode-08/","tags":["Java","GraalVM","производительность","Mockito","тестирование"],"title":"#8: Медленная Java: GraalVM, Mockito","url":"https://apkhmv.xyz/podcast/episode-08/"},{"attachments":[{"duration_in_seconds":2258,"mime_type":"audio/mpeg","url":"https://traffic.libsyn.com/secure/173caf0e-b8e8-4056-8a73-2d60d94118ef/07_Estimations.mp3"}],"content_text":"Продолжение второй главы «Программиста-прагматика»: чем трассирующий код отличается от прототипа и почему первый — это продакшн-скелет с урезанной функциональностью, а второй всегда выкидывается. Затем — предметно-ориентированные языки (DSL): внутренние и внешние, и почему тесты — идеальное место для первого собственного DSL. И большая тема оценивания: как точность оценки задаёт ожидания, техника PERT с тремя сценариями, модель с критическими параметрами и лучший ответ на просьбу об оценке — «я к тебе вернусь». Полезняшка — игра Vim Adventures.","date_modified":"2026-09-16T11:54:17+03:00","date_published":"2022-12-26T00:00:00Z","id":"https://apkhmv.xyz/podcast/episode-07/","tags":["Программист-прагматик","прототипирование","DSL","оценка проектов","книги"],"title":"#7: Трассирующий код: прототипы, оценки","url":"https://apkhmv.xyz/podcast/episode-07/"},{"attachments":[{"duration_in_seconds":2351,"mime_type":"audio/mpeg","url":"https://traffic.libsyn.com/secure/173caf0e-b8e8-4056-8a73-2d60d94118ef/06_Golang.mp3"}],"content_text":"Разбор второй главы «Программиста-прагматика»: хороший дизайн — тот, который легче изменить, DRY — про знания, а не только про код, ортогональные системы и обратимость решений. Во второй части Александр Пахомов делится первыми впечатлениями Java-разработчика от Go: почему не Kotlin, не Rust и не Python, как Advent of Code стал полигоном для нового языка и чем подкупают gofmt, go mod и простота вместо вопроса «как реализован HashSet». Рекомендация выпуска — «Чистая архитектура» Роберта Мартина.","date_modified":"2026-09-16T11:54:17+03:00","date_published":"2022-12-12T00:00:00Z","id":"https://apkhmv.xyz/podcast/episode-06/","tags":["Программист-прагматик","Go","проектирование","DRY","книги"],"title":"#6: Прагматичный Golang: design, dry, Go","url":"https://apkhmv.xyz/podcast/episode-06/"},{"attachments":[{"duration_in_seconds":3065,"mime_type":"audio/mpeg","url":"https://traffic.libsyn.com/secure/173caf0e-b8e8-4056-8a73-2d60d94118ef/05_SOLID_skills.mp3"}],"content_text":"Продолжение разбора «Программиста-прагматика»: каша из топора и сваренная лягушка, good enough software, портфель знаний, техники критического мышления и почему коммуникация — половина работы инженера. Во второй части Александр Пахомов разбирает SOLID не по учебнику, а по практике: какие принципы он применяет каждый день (single responsibility, open-closed), к каким относится скептически (interface segregation) и почему главное в принципах — разумность, а не догма. Рекомендация выпуска — книга «Пиши, сокращай».","date_modified":"2026-09-16T11:54:17+03:00","date_published":"2022-11-28T00:00:00Z","id":"https://apkhmv.xyz/podcast/episode-05/","tags":["Программист-прагматик","SOLID","soft skills","коммуникация","книги"],"title":"#5: Солидные скиллы: soft skills, SOLID","url":"https://apkhmv.xyz/podcast/episode-05/"},{"attachments":[{"duration_in_seconds":1785,"mime_type":"audio/mpeg","url":"https://traffic.libsyn.com/secure/173caf0e-b8e8-4056-8a73-2d60d94118ef/04_Pragmatic_TDD.mp3"}],"content_text":"Новая рубрика подкаста: разбор тем книги «Программист-прагматик» — топики It's Your Life, The Cat Ate My Source Code и Software Entropy, про ответственность, отговорки и теорию разбитых окон в коде. Во второй части Александр Пахомов признаётся, что пишет тесты до реализации: как устроен цикл TDD, почему он работает даже в легаси-системах, какие плюсы даёт — от тестов-спецификаций до крепкого сна — и лайфхак с красным тестом как чекпоинтом для выхода из состояния потока.","date_modified":"2026-09-16T11:54:17+03:00","date_published":"2022-11-14T00:00:00Z","id":"https://apkhmv.xyz/podcast/episode-04/","tags":["TDD","тестирование","Программист-прагматик","техдолг","книги"],"title":"#4: Прагматичные тесты: TDD, техдолг","url":"https://apkhmv.xyz/podcast/episode-04/"},{"attachments":[{"duration_in_seconds":762,"mime_type":"audio/mpeg","url":"https://traffic.libsyn.com/secure/173caf0e-b8e8-4056-8a73-2d60d94118ef/03_TF_Homebew.mp3"}],"content_text":"Александр Пахомов делится практикой селф-ревью: как отстраниться от собственного кода и отревьюить свой pull request так, будто его прислал незнакомый человек. А затем разбирает Homebrew: почему в macOS нет родного пакетного менеджера, что такое формулы, кеги и краны, как написать собственную формулу — на примере базы данных Ignite 3 — и отправить её в homebrew-core.","date_modified":"2026-09-16T11:54:17+03:00","date_published":"2022-10-31T00:00:00Z","id":"https://apkhmv.xyz/podcast/episode-03/","tags":["Homebrew","macOS","пакетные менеджеры","код ревью"],"title":"#3: Пакетный менеджер: Homebrew, self-review","url":"https://apkhmv.xyz/podcast/episode-03/"},{"attachments":[{"duration_in_seconds":1341,"mime_type":"audio/mpeg","url":"https://traffic.libsyn.com/secure/173caf0e-b8e8-4056-8a73-2d60d94118ef/02_TF_OpenAPI.mp3"}],"content_text":"Александр Пахомов разбирает, почему коммит-месседж — это история проекта, а не формальность: правила оформления заголовка и тела, conventional commits, атомарные коммиты и главное правило — договориться о формате со всей командой. Во второй части — OpenAPI-спецификация: подходы code-first и design-first, генерация документации и всегда актуального клиента, сервисы, которые продают API без спеки, и история о том, как несовершенный туллинг съел два дня работы из-за стёртых при компиляции имён параметров.","date_modified":"2026-09-16T11:54:17+03:00","date_published":"2022-10-17T00:00:00Z","id":"https://apkhmv.xyz/podcast/episode-02/","tags":["git","коммит-месседжи","OpenAPI","REST API","документация"],"title":"#2: Гундосая спека: комменты, Open API","url":"https://apkhmv.xyz/podcast/episode-02/"},{"attachments":[{"duration_in_seconds":1366,"mime_type":"audio/mpeg","url":"https://traffic.libsyn.com/secure/173caf0e-b8e8-4056-8a73-2d60d94118ef/01_Pilot_1.mp3"}],"content_text":"Пилотный выпуск без гостей. Александр Пахомов рассказывает, почему десятипальцевая (слепая) печать — важный навык для программиста и где её освоить, а затем разбирает проектирование ошибок публичного REST API: какие HTTP-коды возвращать и почему тело ошибки стоит отдавать в формате RFC 7807 (problem+json).","date_modified":"2026-09-16T11:54:17+03:00","date_published":"2022-10-03T00:00:00Z","id":"https://apkhmv.xyz/podcast/episode-01/","tags":["слепая печать","REST API","HTTP-коды","обработка ошибок","RFC 7807"],"title":"#1: Пилот: слепая печать, коды ошибок","url":"https://apkhmv.xyz/podcast/episode-01/"}],"title":"Тысяча фичей","version":"https://jsonfeed.org/version/1.1"}