SDCast #84: в гостях Дмитрий Химион, Head of QA в Авито

Встречайте 84-й выпуск SDCast’а, речь в котором идёт о качестве ПО. У меня в гостях Дмитрий Химион, Head of QA в Авито. Дима рассказал про свой опыт в индустрии, как и когда он стал заниматься тестированием и обеспечением качества софта, рассказал про различные виды тестирования, автоматизацию и подходы.

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

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

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

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

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

Читать далее

SDCast #83: в гостях Алексей Копытов, программист, эксперт по MySQL, автор утилиты для нагрузочного тестирования sysbench

Встречайте 83-й выпуск SDCast’а! На этот раз речь пойдёт о нагрузочном тестировании, тестировании баз данных и open source. У меня в гостях Алексей Копытов, программист, эксперт по MySQL, и автор утилиты для нагрузочного тестирования sysbench.

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

Леша рассказал про свой путь разработчика в MySQL, как он начал заниматься нагрузочным тестированием баз данных и развивать sysbench, рассказал, каким был sysbench тогда, и сколько итераций и изменений он пережил до наших дней. Обсудили архитектуру и внутреннее устройство sysbench и подискутировали о плюсах и минусах использования встраиваемых скриптовых языков, выбор Lua, переход на LuaJIT и многое другое.

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

Ещё одной большой темой обсуждения стала удалённая работа. Лёша сразу после института попал в MySQL и ни дня не работал в офисе. Поэтому он рассказал про свой огромный опыт удалённой работы, какие были трудности работы из дома, как он смог организовать свой распорядок дня, как и чем можно компенсировать недостаток живого общения.

Читать далее

SDCast #82: в гостях Алексей Денисов, программист, автор системы мутационного тестирования mull

Товарищи, что вы знаете про мутационное тестирование и как оно может помочь сделать ваш софт более качественным? А хотите узнать? — Тогда вам сюда! В этом выпуске у меня в гостях Алексей Денисов, скромный программист, автор системы мутационного тестирования mull. Помимо этого, Алексей занимается разработкой ПО для луноходов.

Вначале мы обсудили теоретическую часть:

  • Что такое мутационное тестирование?
  • Какое положение оно занимает среди других видов тестирования?
  • В чем суть мутационного тестирования?
  • Как изменение кода программы может помочь найти в ней дефекты?
  • Как устроен процесс мутационного тестирования ПО?
  • Какие есть сложности и проблемы?

Так же Алексей рассказал про историю появления проекта mull. Как он сам пришёл к идее написания инструмента для мутационного тестирования, как устроен mull, как LLVM помог в реализации проекта. Обсудили различные вопросы, связанные с оптимизацией, распараллеливанием тестов, диагностикой проблем и прочим.

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

Читать далее

SDCast #81: в гостях Роман Бусыгин, ведущий iOS разработчик в Яндекс.Музыке

Встречайте 81-й выпуск SDCast’а, речь в котором идёт о мобильной разработке в целом и в особенности под iOS. У меня в гостях Роман Бусыгин, ведущий iOS разработчик в Яндекс.Музыке. Рома рассказал свою историю попадания в IT и в Яндекс, про то, как он нанял первого iOS разработчика, а впоследствии и сам стал iOS разработчиком.

В начале Рома рассказал про свою инициативу создания SDK под iOS для Яндекс.Карт, как появилась идея, затем реализация, пользователи и популярность. Затем мы поговорили о подходах к разработке под iOS, вспомнили, что было в начале появления iOS и как развивалась платформа до наших дней. Рома рассказал про различные инструменты разработчика, IDE, отладчики, линтеры и прочее.

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

Так же Рома рассказал про разработку Яндекс.Музыки: какая команда в проекте, как разработчики взаимодействуют между собой, какие есть зоны ответственности, как устроен жизненный цикл разработки и другие аспекты жизни проекта.

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

Читать далее

SDCast #80: в гостях Николай Голов, руководитель Data Platform в Авито

Встречайте 80-й выпуск SDCast’а! У меня в гостях Николай Голов, руководитель Data Platform в Авито. Помимо прочего, Николай преподаёт в НИУ ВШЭ и занимается научными исследованиями в области современных методологий построения хранилищ данных, таких как Data Vault и Anchor Modeling. В этом выпуске мы говорим о хранилищах данных, микросервисах и даже блокчейн!

Вначале мы обсудили тему построения хранилищ данных. Николай рассказал про подходы к построению эффективных и расширяемых хранилищ, обсудили способы хранения информации, механизмы загрузки данных в хранилище, отличие ETL и ELT подходов. Николай рассказал про устройство хранилища данных в Авито, которое построено на базе HP Vertica, о том, как оно появилось, эволюционировало и разрасталось. Для справки, в год в Авито в хранилище поступает порядка 2.5 петабайт !! сырых данных! При этом само хранилище занимает всего около 200 терабайт! Подискутировали и о будущем баз данных.

Затронули тему микросервисов, в особенности способы достижения консистентности данных в распределённой среде. Николай рассказал про возможные подходы к решению этой проблемы, и в особенности про паттерн «Сага», точнее даже целом семействе паттернов, какие бывают, как и где их стоит применять. Подискутировали мы о плюсах и минусах этих подходов, вспомнили про «event sourcing» и CQRS.

Николай интересуется темой блокчейн. Пообщались мы и про это направление в ИТ. Николай рассказал про Telegram Open Network (TON) и вообще современных тенденциях в мире блокчейн. Обсудили где и как в мире больших данных могут применятся блокчейн технологии.

Читать далее

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

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

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

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

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

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

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

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

Читать далее

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

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

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

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

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

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

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

Читать далее

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

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

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

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

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

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

Читать далее

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

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

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

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

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

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

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

Читать далее

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 и даже стал там председателем программного комитета, рассказал про то, как устроена конференция и программный комитет изнутри, как происходит отбор докладов и докладчиков, процесс подготовки и сбор отзывов.

Читать далее