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

Рад представить вам 79-й выпуск SDCast’а! У меня в гостях Егор Толстой, руководитель платформенной разработки клиентсайда Авито. В этом выпуске мы говорим о разработке в Авито в целом, что же такое “платформа” и какова её роль в различных приложениях компании, говорим и о мобильной и веб разработке.

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

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

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

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

Недавно Егор писал и рассказывал про Performance Review — поговорили мы и об этом. Что такое “Performance Review”, зачем оно нужно, как его внедрили в Авито, и что им это дало.

Егор так же известен как ведущий подкаста «Подлодка» и автор нескольких телеграмм-групп по мобильной разработке. Не обошли мы стороной и эти темы, равно как и выступления на различных ИТ конференциях у нас и даже за рубежом. Егор рассказал про свои впечатления от выступления на FrenchKit 2017 в Париже и про выступления на конференциях в целом. Читать далее SDCast #79: в гостях Егор Толстой, руководитель платформенной разработки клиентсайда Авито

Скачать (mp3, 76 MB) Скачать (ogg, 55 MB)

SDCast #78: круглый стол Public speaking in IT

Встречайте 78-й выпуск SDCast’а, который также получилось записать в новом дискуссионном формате. На этот раз речь пойдёт о публичных выступлениях по айтишной тематике на профильных конференциях. Мы собрались вместе с Антоном Солдатовым и Денисом Шевченко, ребята довольно часто выступают на различных конференциях и иногда даже на английском языке. Подискутировали о том, зачем вообще выступать на конференциях и встречах, что движет докладчиками, обсудили вопросы подготовки к выступлениям, а самое главное — поделились своим опытом публичных выступлений.

Итак, гости этого выпуска:

  • Антон Солдатов, инженер-разработчик в компании IPONWEB
  • Денис Шевченко, haskell-разработчик в компании IO HK

Кстати, и Антон и Денис уже были у меня в гостях в подкасте, так что при желании можно послушать предыдущие выпуски.

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

  • Дружно вспомнили своё первое выступление: как это было?
  • Какая была цель и мотивация?
  • Обсудили зачем вообще нужно выступать? Что это даёт докладчикам?
  • Стоит ли выступать на английском и почему?
  • Есть ли отличия локальных митапов и даже конференций от международных (ну или просто англоязычных конференций)?
  • Нужно ли проводить конференции в локальных (для нас это — русскоговорящих) сообществах на английском языке в принципе?
  • Как обычно происходит процесс подготовки к выступлению:
    • Как устроен процесс от подачи заявки до самого выступления?
    • Как помогают организаторы?
    • Делимся своими лайф-хаками по подготовке к выступлениям

Читать далее SDCast #78: круглый стол Public speaking in IT

Скачать (mp3, 75 MB) Скачать (ogg, 59 MB)

SDCast #77: Круглый стол Soft Skills

Товарищи, встречайте 77-й выпуск подкаста в новом формате! На этот раз я решил немного отойти от привычного формата интервью, а вместе с несколькими гостями провести дискуссию по определённой теме. Для первой попытки была выбрана тема «Soft skills». Вместе с Антоном Шевчуком, Романом Пронским и Александром Майоровым мы обсудили различные не совсем технические и социальные аспекты разработки, хотя и без технологий не обошлось! :)

Итак, гости этого выпуска:

  • Александр Майоров, ведущий подкаста «RadioJS» и авторского проекта Pro WEB IT, fullstack-разработчик, СТО в компании «New.HR»
  • Антон Шевчук, техлид PHP отдела и тимлид Ruby отдела в компании «NIX solutions», автор учебника “jQuery для начинающих
  • Роман Пронский, автор PHP дайджеста на Хабре, ведущий инженер-программист в компании «EPAM»

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

  • Какое самое важное качество для программиста?
  • Тимлид — это должность или роль?
  • Пути развития программиста
  • Трансформация из программиста в менеджера, в руководителя подразделения
  • Планирование работ, как успеть всё сделать к дедлайну
  • Делегирование задач и зоны ответственности
  • Синдром самозванца
  • Как ввести в команду нового члена, чтобы всем было комфортно и эффективно?
  • Собеседование новых членов команды
  • Межличностные конфликты, трения, недопонимание, недосказанность между членами команды
  • “Великолепные” придурки (в смысле крутые спецы с которыми невозможно взаимодействовать)
  • Мотивация, прокрастинация, выгорание
  • Как помочь найти всей команде золотую середину между горящими бизнес задачами и идеальным кодом?
  • Трайбализм в командах
  • Как воспитывать умение отказывать менеджеру?

Читать далее SDCast #77: Круглый стол Soft Skills

Скачать (mp3, 118 MB) Скачать (ogg, 90 MB)

SDCast #76: в гостях Антон Давыдов, Ruby-разработчик, опенсорс-контрибьютор

Встречайте 76-й выпуск SDCast’а про мир Ruby разработки. У меня в гостях Антон Давыдов, Ruby-разработчик, опенсорс-контрибьютор.

В этом выпуске мы с Антоном обсуждаем разработку на языке Ruby, обсуждаем различные фреймворки, такие как RoR и Hanami, дискутируем на тему различных аспектов разработки, обсуждаем open source и сообщества и многое другое.

В начале Антон рассказал, как он пришёл в разработку на Ruby, как познакомился с Ruby on Rails фреймворком. Мы обсудили идеи и концепции, заложенные в RoR, чем он хорош и плох, как изначальные архитектурные решения повлияли на дальнейшее развитие фреймворка.

Так же Антон рассказал про альтернативный набирающий популярность Ruby фреймворк Hanami. Рассказал про историю его появления, какие идеи преследовались при его создании и как Антон со временем стал его core-контрибьютером. Антон рассказал про архитектуру и внутреннее устройства фреймворка, чем он отличается от RoR, на каких архитектурных паттернах он базируется, какое есть сообщество вокруг проекта, сколько ключевых контрибьюторов и как проект живёт и развивается.

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

Поговорили мы и о конференциях. Антон рассказал про то, на каких конференциях он был в качестве докладчика и посетителя. Рассказал про отличия аудитории Ruby-конференций в различных странах, где какие акценты в плане докладов и технологий. Обсудили мы и премию Rubyheroes, которую Антон получил некоторое время назад. Антон рассказал про эту инициативу, что это за премия, как и кому она выдаётся в России и в каких странах ещё есть эта премия.

Читать далее SDCast #76: в гостях Антон Давыдов, Ruby-разработчик, опенсорс-контрибьютор

Скачать (mp3, 50 MB) Скачать (ogg, 39 MB)

SDCast #75: в гостях Андрей Акиньшин, разработчик среды разработки Rider в компании JetBrains, к.ф.-м.н., Microsoft .NET MVP, серебрянный медалист ACM ICPC

Рад представить вам 75-й выпуск SDCast’а! У меня в гостях Андрей Акиньшин, разработчик среды разработки Rider в компании JetBrains, к.ф.-м.н., Microsoft .NET MVP, серебрянный медалист ACM ICPC. Также Андрей является автором и мейнтейнером .NET библиотеки для бенчмаркинга BenchmarkDotNet, выступает на различных конференциях и возглавляет программный комитет конференции DotNext.

В этом выпуск мы говорим о платформе IntelliJ IDEA в целом, о среде разработки Rider для программирования под .NET, обсуждаем различные аспекты разработки, говорим о тестировании и Open Source, конференциях и выступлениях.

В начале Андрей рассказал про Rider, как она появилась, как устроена внутри, какова связь Rider и основной платформы, как устроены различные функции IDE, такие как автокомплит например, и чем их реализации в Rider отличаются от подхода в IntelliJ IDEA. Обсудили мы и такой важный вопрос, как кроссплатформенная поддержка стека .NET — Андрей рассказал про то, сколько версий и различных имплементаций .NET runtime они поддерживают, какие с этими связанны трудности и сложности. Обсудили мы и в общем отличия и специфику Rider от привычной для MS-стэка Visual Studio.

Андрей известен своими докладами про оптимизацию производительности приложений. Мы поговорили про разработку в целом, про различные подходы, углубились в вопросы поиска узких мест приложений, их локализации и устранения. Андрей рассказал про то, как он сам начал изучать и интересоваться вопросами производительности и оптимизации, как это привело к появлению библиотеки для замеров производительности BenchmarkDotNet. Обсудили мы в целом вопрос «как правильно замерять производительность», какие есть подходы и заблуждения, как правильно трактовать полученные результаты, на какие показатели стоит обращать внимание и другие смежные вопросы. Пообщались на тему Open Source в целом и в разрезе проекта BenchmarkDotNet в частности. Андрей рассказал, какие он видит плюсы и что дала ему публикация проекта в open source, как и какое появилось сообщество у проекта, как и зачем он добился включения проекта в .NET Foundation и планы по дальнейшему развитию проекта.

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

Читать далее SDCast #75: в гостях Андрей Акиньшин, разработчик среды разработки Rider в компании JetBrains, к.ф.-м.н., Microsoft .NET MVP, серебрянный медалист ACM ICPC

Скачать (mp3, 68 MB) Скачать (ogg, 56 MB)

SDCast #74: и вновь Павел Аргентов, бэкенд-разработчик в компании Evrone

Встречайте 74-й выпуск SDCast’а, в котором идёт речь про Unikernel, MirageOS и вообще концепцию Virtual Library Operating System. У меня в гостях вновь Павел Аргентов, бэкенд-разработчик в компании Evrone, практикующий fp-программист.

В начале мы поговорили про традиционные подходы к развертыванию приложений: от физических серверов к гипервизорам с виртуалками и до контейнеров приложений. Обсудили разные ограничения этих подходов, плюсы и минусы. А дальше мы подошли к идеи Unikernel aka Library Operating Systems.

Обсудили саму концепцию Unikernel, что это за подход, что такое Library Operating Systems, как оно устроено и работает. Паша рассказал о том, какие основные плюсы у данного подхода по сравнению с традиционными, а так же и какие есть минусы.

Далее мы подробно поговорили про одну из реализаций Unikernel под названием “MirageOS”. Паша рассказал про архитектуру и внутреннее устройство MirageOS, из каких слоёв и компонентов оно состоит, какие предоставляет интерфейсы и инструменты для разработчика. Пообщались о том, как разрабатывать приложения на базе MirageOS, какие есть ограничения, как и во что собирается итоговое приложение и какие есть возможности деплоя.

Так же мы обсудили возможные сферы применения систем, построенных на Unikernel, для каких классов задач данный подход наиболее применим и может дать выигрыш, а в каких случаях традиционные решения всё же предпочтительнее. Читать далее SDCast #74: и вновь Павел Аргентов, бэкенд-разработчик в компании Evrone

Скачать (mp3, 55 MB) Скачать (ogg, 42 MB)

SDCast #73: в гостях Дмитрий Борисов, специалист по IP-телефонии

sd-podcast-logoХотите перевести свой офис на IP-телефонию? А может быть построить облачную АТС и стать новым провайдером связи? Или просто интересно узнать как устроены телеком-системы в целом? Тогда этот выпуск для вас! У меня в гостях Дмитрий Борисов, специалист по IP-телефонии.

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

Дима имеет опыт построения телеком-систем с использованием FreeSWITCH в качестве платформы, поэтому мы довольно подробно поговорили про него. Дима рассказал про то, как FreeSWITCH устроен изнутри, как устроено его ядро, возможности его статического и динамического конфигурирования, управления и расширения через систему плагинов.

Обсудили мы различные темы VoIP. Дима рассказал про различные используемые кодеки для сжатия аудио, рассказал как происходит установка соединения между клиентами, какие есть сложности и тонкости. Не забыли подискутировать о современных тенденциях в сфере телефонии, применении WebRTC для звонков, новых кодеках и технологиях.

Читать далее SDCast #73: в гостях Дмитрий Борисов, специалист по IP-телефонии

Скачать (mp3, 53 MB) Скачать (ogg, 41 MB)

SDCast #72: в гостях Ильяс Салихов, директор по технологиям в компании Intaro и проекте retailCRM

sd-podcast-logoРад представить вам 72-й выпуск SDCast’а! У меня в гостях Ильяс Салихов, директор по технологиям в компании Intaro и проекте retailCRM. В этом выпуске мы с Ильясом обсуждаем различные аспекты разработки, начиная от технических составляющих и заканчивая различными “soft skills” темами.

В начале Ильяс рассказал про проект retailCRM, как он появился, какие решает задачи, как устроен и работает. Обсудили мы архитектуру проекта и используемые технологии. Под капотом проекта используются: PHP/Symfony/Doctrine, PostgreSQL, Redis, сервисы на Python и Go и много чего ещё.

RetailCRM — это SaaS с большим количеством пользователей, где под пользователями понимается не конкретный человек, а целая компания, использующая retailCRM, внутри которой уже работает некоторое количество человек-пользователей. Сейчас сервис используют порядка 5000 магазинов, то есть пользователей-компаний, 30 млн хитов в сутки.

Ильяс рассказал, как они организуют хранение разных пользователей-компаний в базе данных и как организована работа бэкенда с этими данными. Забегая вперёд скажу, что retailCRM — это по большому счёту монолит на PHP/Symfony, где каждый пользователь-компания живёт на своём поддомене, однако все запросы обрабатываются этим самым монолитным приложением, а данные каждого пользователя-компании — это отдельная схема в базе данных PostgreSQL.

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

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

Читать далее SDCast #72: в гостях Ильяс Салихов, директор по технологиям в компании Intaro и проекте retailCRM

Скачать (mp3, 91 MB) Скачать (ogg, 68 MB)

SDCast #71: в гостях Константин Кривленя, ведущий разработчик в TargetProcess

Рад представить вам 71-й выпуск SDCast’а! У меня в гостях Константин Кривленя, ведущий разработчик в компании TargetProcess. В этом выпуске мы говорим о фронтенд-разработке, технологиях и инструментах, о Open Source проектах, методологиях процессов разработки и прочих айтишных штучках :)

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

Последнее время Костя занимается проектом Vizydrop — это инструмент для визуализации данных, получаемых из различных источников, как то: файлы различных форматов, таск-треккеры, dropbox, github, jira, trello и другие. Костя рассказал про основную идею и цель проекта, как он устроен под капотом, из каких модулей состоит и как вообще происходит процесс визуализации данных от подключения источника до рендеринга графиков в браузере. Так же Костя рассказал несколько интересных задач и проблем, с которыми пришлось столкнуться в процессе работы над проектом.

Компания TargetProcess сам очень активно проповедует и использует гибкие методологии внутри компании. Поговорили с Костей о том, какие подходы применялись в компании в разное время, какие подходы и практики прижились, а какие нет. Обсудили мы и различные плюсы и минусы методологий в контексте компании TargetProcess. Костя рассказал про такую штуку как «Оранжевые пятницы» — это возможность заниматься своими интересными проектами, примерно как в Google раньше были те самые 20% времени :) Рассказал про то, какие интересные проекты родились благодаря «оранжевым пятницам».

Поговорили мы и про Open Source. Компания выложила в Open Source и поддерживает несколько библиотек. Обсудили с Костей как живут и разиваются эти проекты, какое есть сообщество вокруг и как происходит взаимодействие с этим самым сообществом. Читать далее SDCast #71: в гостях Константин Кривленя, ведущий разработчик в TargetProcess

Скачать (mp3, 70 MB) Скачать (ogg, 58 MB)

SDCast #70: в гостях Вячеслав Ковалевский, подкастер, преподаватель на Хекслете, бэкенд-разработчик

Когда уже нейронные сети научаться писать программы вместо нас, программистов? Зачем люди заставляют нейронные сети генерить другие нейронные сети? Ответы на эти и другие вопросы вы найдёте в 70-м выпуске SDCast’а! У меня в гостях Вячеслав Ковалевский, подкастер, преподаватель на Хекслете, бэкенд-разработчик.

В этом выпуске мы говорим про нейронные сети, их применение в Machine Learning & Artificial Intelligence направлениях и не только. Начали мы с теоретической части про нейронные сети, а затем углубились в технические (и не только) детали:

  • Что представляет из себя нейронная сеть?
  • Как она устроена и работает?
  • Какие типы нейронных сетей бывают и для каких задач они хороши?
  • Как происходит настройка нейронной сети?
  • Насколько важен процесс обучения сетки? Как это обычно делается и какие есть варианты?
  • Распределённые системы обучения нейронных сетей
  • Эффективное использование машинных ресурсов (в том числе не только CPU, но и GPU) для работы и обучения сети

Обсудили мы в целом задачи Machine Learning, растущие объемы данных и способы их эффективной обработки, и вообще, куда катится весь этот мир! :)
Читать далее SDCast #70: в гостях Вячеслав Ковалевский, подкастер, преподаватель на Хекслете, бэкенд-разработчик

Скачать (mp3, 60 MB) Скачать (ogg, 48 MB)