SDCast #130: в гостях Егор Болгов, тех руководитель одного из продуктовых направлений в Semrush

Рад представить вам 130-й выпуск подкаста, в котором у меня в гостях Егор Болгов, технический руководитель одного из продуктовых направлений в Semrush. В этом выпуске мы говорим о распиле монолита в сервисы, процессах разработки, переиспользовании сервисов в разных продуктах, деплоях, мониторинге и многом другом.

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

Обсудили вопросы документирования кода сервисов, API и интерфейсов, подискутировали о стандартизации, используемых технологиях и подходах в больших компаниях, когда команд много, сервисов много и как переиспользовать наработки других команд и вообще делиться знаниями.

Пообщались про деплой и мониторинг сервисов и монолита, Егор рассказал как деплоят в Semrush, коснулись темы отладки в сервисной архитектуре.

Поговорили про техдолг, паттерны и абстракции. Когда и как бороться с техдолгом и как современные фреймворки и технологии влияют на качество кода. Подискутировали о подходах к выбору новых инструментов и технологий, Егор поделился своим взглядом на это.

Читать далее

SDCast #129: в гостях Игорь Кузнецов, тимлид в компании «GOST GROUP»

Встречайте 129-й выпуск подкаста. У меня в гостях Игорь Кузнецов, тимлид в компании «GOST GROUP». В этом выпуске мы говорим про консалтинг и продуктовую разработку, как давать первичную оценку проектам по трудозатратам и срокам. Обсуждаем повседневные задачи тимлида, выбор техонологий и стэка, собеседования и текучку кадров.

Подискутировали на тему: когда и надо ли брать Open source решение, а не писать свой велосипед, даже если это решение на другом стеке.

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

Читать далее

SDCast #126: в гостях Владимир Хориков, автор книги про Unit-тестирование и блога Enterprise Craftmanship

Рад представить вам 126-й выпуск подкаста, в котором мы говорим про Domain Driven Design (DDD) и unit-тестирование. У меня в гостях Владимир Хориков, автор книги про Unit-тестирование и блога Enterprise Craftmanship.

Володя рассказал про своё знакомство с DDD, первые опыты внедрения, насколько не просто было внедрить идею DDD будучи не тимлидом, а просто программистом. Так же Володя рассказал как сейчас обычно происходит внедрение DDD, с чего начинается обучение команды. Мы обсудили как DDD подход ложится в ООП парадигму разработки, разобрали применение DDD в MVC/MVVM подходах к построению UI. Подискутировали о применении DDD в купе с CQRS и Event Sourcing.

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

Помимо этого Володя рассказал про написание книги: зачем он решил написать, сколько сил и времени у него на это ушло и какой получился результат.

Читать далее

SDCast #120: в гостях Павел Савельев, руководитель отдела автоматизации бизнес-процессов и Павел Агалецкий, системный архитектор в компании Lamoda

Latech logoВстречайте 120-й выпуск подкаста с ребятами из компании Lamoda. У меня в гостях Павел Савельев, руководитель отдела автоматизации бизнес-процессов и Павел Агалецкий, системный архитектор.

В этом выпуске мы говорим про архитектуру больших систем, межсервисное взаимодействие, API, процессы разработки, коммуникации и open source.

В начале ребята рассказали про архитектуру подсистемы доставки Lamoda. Как она устроена, на чём написана, какие есть ключевые сервисы и как работает бизнес-логика. Затем мы обсудили межсервисное взаимодействие, потоки данных, подходы к разработки новых сервисов.

Подискутировали на тему API: ребята рассказали как устроено API у них, почему они выбрали JSON-RPC, обсудили консистентность и докумендацию API.

Поговорили про людей, команды и технологии. Ребята рассказали про размер команды, как устроен процесс разработки, как выбираются технологии, вспомнили про тех радар. Обсудили, как внедряется новый разработчик в команду, вспомнили про performance review, личностный и профессиональный рост.

Ребята поделились своим опытом переезда в облака и контейнеры, рассказали как они прошли этот путь и с чем столкнулись в процессе.

Так же ребята рассказали про то, зачем они выкладывают какие-то свои библиотеки и компоненты в open source. Что это даёт компании и конкретным разработчикам.

В завершении выпуска обсудили насущную тему удалённой работы. Ребята поделились своими личными впечатлениями от удалёнки и рассказали как выстроен процесс у них в компании.

Читать далее

SDCast #114: в гостях Александр Кукушкин, database инженер в Zalando

Встречайте 114-й выпуск подкаста! У меня в гостях Александр Кукушкин, database инженер в Zalando. Хотя, наверное, многие знают его как разработчика Patroni: A Template for PostgreSQL HA with ZooKeeper, etcd or Consul. Так что речь в этом выпуске пойдёт про PostgreSQL, кластеры, Patroni, облака, AWS, Kubernetes и даже про базы данных PostgreSQL в K8S :)

В начале выпуска Саша рассказал про переезд в Германию, насколько это было сложно и как прошло. Дальше Саша рассказал про компанию в целом, как давно он там работает и чем занимается.

Мы обсудили как устроена инфраструктура в компании в части баз данных, какие есть кластеры, их примерное количество и размеры. Саша рассказал про репликацию и резервирование данных внутри и между датацентрами.

Обсудили переезд сервисов и баз данных в облака: Саша рассказал как они переводили серверы баз данных в AWS, какие были потребности в отказоустойчивости и чем эти потребности закрывались. Именно тогда на свет появился Patroni.

Саша рассказал про устройство Patroni, как он работает и что умеет. Рассказал про его развитие, добавление новых фич, таких как управление конфигурацией PostgreSQL сервера, синхронизация конфигов. Рассказал про различные варианты использования DCS (distributed configuration store) и как он адаптировал Patroni для работы в кластере Kubernetes с минимальными накладными расходами.

Не могли мы пройти мимо темы облаков, контейнеризации и диспетчеризации контейнеров в целом. Так что подискутировали о том, какие выгоды даёт K8S и какие сложности приносит в разработку и сопровождение. Саша рассказал несколько интересных кейсов из опыта использования K8S в Zalando.

Читать далее

SDCast #113: в гостях Александр Сербул, руководитель направления контроля качества интеграций и внедрений в компании 1С-Битрикс

Встречайте 113-й выпуск подкаста, в котором у меня в гостях Александр Сербул, руководитель направления контроля качества интеграций и внедрений в компании 1С-Битрикс, а так же технологический евангелист. В этом выпуске мы говорим про архитектуру, языки программирования, machine learning, нейросети, облака и многое другое. И нет, не думайте, что этот выпуск только про PHP и 1C-Битрикс!

Вначале Саша рассказал про свой довольно насыщенный и тернистый путь в IT, с чем сталкивался, какие задачи приходилось решать и какие роли играть. Саша поделился теми книгами, которые произвели на него сильное впечатление сыграли не последнюю роль в его профессиональных навыках.

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

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

Большой темой беседы стало машинное обучение. Саша рассказал про то, где у себя в системе они применяют машинное обучение, какие решают задачи с её помощью. Рассказал про используемые алгоритмы, фреймворки, языки и технологии.

Не обошли мы стороной и вопрос первого языка программирования. Саша поделился своим мнением на этот счёт.

Читать далее

SDCast #110: В гостях Анна Мелехова, архитектор платформы в компании Acronis

Рад представить вам 110-й выпуск SDCast’а. У меня в гостях Анна Мелехова, архитектор платформы в компании Acronis. В этом выпуске мы говорим про архитектуру систем, API, образование и знания.

В начале мы обсудили какие есть сложности в разработке архитектуры по сравнению с написанием кода, как вообще планировать и прорабатывать архитектуру систем, можно ли на ранних этапах построения архитектуры минимизировать затраты на поддержку legacy с течением времени.

Одной из главных тем нашей беседы было API. В апреле 2019 года Acronis открыл сторонним разработчикам доступ к API и примерам исходных кодов своих продуктов, запустив платформу Acronis Cyber Platform. Предполагается, что используя возможности платформы, разработчики смогут создавать новые источники данных, хранилища данных и функции управления, а также интегрировать свои приложения с решениями Acronis для киберзащиты. Кроме того, они смогут интегрировать технологии Acronis в свои приложения, системы и облачные торговые площадки. Поэтому именно на Анну и ее коллег упала задача проектирования API.

Мы поговорили о том, как унифицировать API, когда в его разработке участвует несколько команд. Аня рассказала про этапы построения API и различные инструменты, которые помогают разрабатывать и сопровождать API в дальнейшем. Аня рассказала про API Styleguide который они разработали в Acronis, что он содержит и как он помогает разработчикам избежать типичных ошибок и создавать консистентные API.

Подискутировали мы и про знания и образование. Аня преподаёт на ФизТехе, у неё есть несколько авторских курсов. Мы обсудили необходимость базовых знаний для разработчиков, чего не хватает и стоило бы поменять в нашей системе образования и откуда вообще черпать свои знания в процессе работы.

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

Читать далее

SDCast #108: В гостях Александр Тавген, софт-архитектор из Playtech

После долгого перерыва встречайте 108-й выпуск подкаста! У меня в гостях Александр Тавген, софт-архитектор из компании Playtech. В этом выпуске мы говорим про процессы разработки, обмен знаниями, архитектуру, open source и даже музыке! ;)

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

Поговорили и про публикацию проектов в open source, как и почему выбираются те или иные технологии для реализации проекта. Обсудили социализацию в ИТ: увеличение числа конференций, локальных митапов, каких-то прочих неформальных активностей, открытость компаний в части публикации своих наработок в open source и многое другое.

Так же Александр рассказал про одно своё интересное увлечение — это объединение музыки и технологий в проекте интерактивного театра.

Читать далее

SDCast #105: В гостях Никита Соболев, CTO в компании wemake.services

Встречайте 105-й выпуск подкаста, в котором у меня в гостях Никита Соболев, CTO в компании wemake.services. Вместе с Никитой мы обсуждаем процессы разработки программного обеспечения, подходы, методологии, инструменты и различные другие аспекты.

В начале разговора Никита немного рассказал про сообщество ElixirLangMoscow, организатором которого он является.

Никита – автор методологии Repeatable Software Development Process (RSDP). Он рассказал, что это за подход, какие в нём ключевые идеи, основные моменты и как устроен сам процесс разработки, работающий по этой методологии.

На примере компании wemake.services Никита рассказал, как устроена разработка у них. Мы обсудили все этапы, начиная от старта работ по новому проекту, формулирование и обсуждение требований и тех задания, декомпозиции проекта на более мелкие задачи, приёмка и проверка выполненных задач программистами, тестирование, инструменты для автоматизации различных процессов разработки и прочее.

Поговорили мы так же и о soft skills, о том, как можно развиваться разработчику, как и чем его мотивировать, как общаться, особенно в распределённой команде. Затронули тему внедрения новых технологий в существующих проектах и поддержку legacy-кода.

Читать далее

SDCast #97: в гостях Александр Тоболь, руководитель разработки платформ видео и лента в ОК

Встречайте 97-й выпуск SDCast’а! У меня в гостях Александр Тоболь, руководитель разработки платформ видео и лента в ОК.ru. Александр регулярно выступает на различных конференциях с докладами про архитектуру, обработку видео, передачу данных, Machine Learning и много про что ещё интересного. Но в этом выпуске мы решили сконцентрироваться на теме передачи и обработки видео по сети, хотя и без обсуждения вопросов оптимизаций в различных аспектах не обошлось :)

Александр рассказал про сервис видео вещания Одноклассников, его компоненты, используемые технологии, потоки данных и архитектуру в целом. Мы обсудили какие есть основные больные узкие места при передаче видео данных. В этом контексте мы поговорили на следующие темы:

  • Типичные подходы к доставке/передаче видео-контента
  • Транспортный уровень
  • TCP (и различные его улучшения вроде Fast retransmit, TCP Fast Open ), UDP, QUIC и прочие
  • Кодеки и алгоритмы сжатия
  • Устойчивость к потерям данных
  • Адаптивность
  • Шифрование
  • Нагрузки на железо, как те или иные выбранные программные решения влияют на нагрузку
  • Вопросы масштабирования
  • Оптимизации сетевого траффика
  • Вопросы безопасности

Так же немного пофилософствовали о настоящем и возможном будущем сред и средств передачи данных, новых протоколах, подходах и алгоритмах.

Читать далее