Разработка — наше всё. Без грамотно выстроенных процессов разработки не бывает тех простых механизмов и сервисов, которыми мы пользуемся каждый день.

Направление «Разработка» будет интересно специалистам, которые создают программное обеспечение. В этом году мы делаем сбалансированную программу, полезную всем: от junior- до senior-специалистов.


Алексей Акулович
Ключевой разработчик @ ВКонтакте
Санкт-Петербург
Архитектура ВКонтакте

Доклад принят в программу конференции


из Доклады

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

    * Типы серверов и зачем нам их столько;

    * Наши доморощенные БД;

    * Немного про frontend часть;

    * KPHP сегодня;

    * PHP и Go в нашем продакшене;

    * Деплой, мониторинг и откаты (куда без них);

    * Подходы к отказоустойчивости в реалиях большого проекта.


    Иван Ямщиков
    AI-евангелист @ ABBYY
    Как нейронные сети ABBYY становятся полиглотами?

    Доклад принят в программу конференции


    из Доклады

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


      Пётр Зайцев
      Основатель @ Percona
      17 методик, которые должен знать разработчик о базах данных

      Доклад принят в программу конференции


      из Доклады

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

        В рамках доклада будут рассмотрены основные методики работы с базами данных для разработчиков, с особым акцентом на наиболее популярных открытых СУБД — MySQL, PostgreSQL и MongoDB.


        Максим Сальников
        Developer Engagement Lead @ Microsoft
        Oslo
        Фоновые сервисы в браузерах - есть ли жизнь после закрытия вкладки?

        Доклад принят в программу конференции


        из Доклады

          Пользователь закрывает вкладку в браузере, и ваше замечательное фронтенд-приложение испаряется. А что если можно было бы оставить какие-то его части еще немного поработать во благо улучшения UX? Отреагировать на какие-то события, завершить начатое общение с сетью - в общем, исполнить немного кода при закрытой вкладке и даже браузере. Я расскажу о разных интересных возможностях API из семейства сервис-воркеров, позволяющих продлить жизнь приложения, чтобы всегда иметь под рукой свежие данные, не бояться проблем с сетью, уметь показывать уведомления - все ради отличного пользовательского опыта.


          Барух Садогурский
          Developer Advocate @ JFrog
          DevOps vs Разработчики

          Доклад принят в программу конференции


          из Доклады

            DevOps — это заговор сисадминов, чтобы заставить разработчиков делать чужую работу, но мы слишком умны, чтобы попасться на эту элементарную уловку ребрендингом! Посудите сами: мы написали код, он проходит тесты. Он, очевидно, работает и работает хорошо (Мы гордимся собой? Да!). И тут мы закончили.

            Но приходят эти «визионеры» (все из operations, прошу заметить!) и рассказывают нам, что теперь надо учить YAML, Docker, Kubernetes и Terraform, потому что внезапно это наша головная боль?!

            В этом докладе мы поговорим о том, зачем разработчикам нужен или не нужен DevOps. Мы рассмотрим аргументы, которые приводят идеологи DevOps, и решим, состоятельны они или нет. К концу доклада, будем надеяться, нам станет понятно, действительно ли это способ, который поможет нам (разработчикам) поставлять лучший код в прод чаще, или это, как всегда, разводка маркетологов и евангелистов.


            Никита Соболев
            CTO @ wemake.services
            Санкт-Петербург
            Не логгируй!

            Доклад принят в программу конференции


            из Доклады

              Разработчики часто пишут все, что могут в логи. И думают: когда-нибудь пригодится. И что мы имеем на самом деле?

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

              Я расскажу, как жить без логов.


              Adil Khan
              Head of Machine Learning and Knowledge Representation Lab @ Innopolis University
              Innopolis
              Anomaly Detection based on Zero-Shot Outlier Generation

              Доклад принят в программу конференции


              из Доклады

                Anomaly detection suffers from unbalanced data since anomalies are quite rare. Generating artificial anomalies is a solution to such ill or not fully defined data. I will present a two-level hierarchical latent space representation that distills inliers’ feature-descriptors into more robust representations based on a variational family of distributions for zero-shot anomaly generation.


                Валерий Бабушкин
                Директор по Моделированию и анализу данных @ X5 Retail Group
                Москва
                Рекомендательные системы в ритейле

                Доклад принят в программу конференции


                из Доклады

                  Расскажу как можно строить рекомендательные системы, на основе нестандартных подходов: от аплифт деревьев и Баеса, до Reinforcement Learning и счетчиков


                  Антон Семенченко
                  CSO, Co-founder, IT Consultant @ COMAQA, CoreHard, DPI.Solutions
                  Minsk
                  Ключевые инженерные практики Автоматизатора 21 века

                  Доклад принят в программу конференции


                  из Доклады

                    Давайте тезисно, наглядно, “на пальцах” в QA Automation контексте проговорим ключевые для каждого по-настоящему опытного Автоматизатора 21 века, инженерные практики.


                    Николай Самохвалов
                    Founder @ Postgres.ai
                    Маунтин-Вью, Калифорния
                    Распространённые ошибки изменения схемы базы данных PostgreSQL

                    Доклад принят в программу конференции


                    из Доклады

                      Один из самых простых и популярных способов «устроить highload на ровном месте» — это написать пару необдуманных строк, изменяющих схему БД, и выложить это в «прод» без обстоятельного тестирования.

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

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

                      И наконец, основываясь на многолетнем опыте работы с быстрорастущими командами, обсудим организационные вопросы — как выстроить процессы разработки так, чтобы риски простоя и деградации производительности были сведены к минимуму, а команды разработчиков развивались и постоянно наращивали экспертизу работы с БД.


                      Павел Черторогов
                      Архитектор информационных систем @ ps.kz
                      Алматы
                      ApolloClient, graphql-codegen и кодогенерация типизированных hook'ов

                      Доклад принят в программу конференции


                      из Доклады

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

                        Многим фронтендерам не нравиться писать типы, многие ошибаются при их написании и использовании. Разработчиков понять можно. По большому счёту, статическая типизация нужна машинам, так почему бы машинам самим её не писать?!

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


                        Владимир Дементьев
                        Lead Backend Engineer @ Evil Martians
                        Нью-Йорк / Москва
                        Код, с которым приятно иметь дело

                        Доклад принят в программу конференции


                        из Доклады

                          Я хотел бы предложить авторам OSS библиотек и разработчикам приложений взглянуть на написание кода с другой стороны — со стороны тех, кому придётся работать с ним в будущем. Несмотря на то, что чисто технически мы пишем код для машин, его основными пользователями являются люди. Что же такое «код, удобный в использовании»?

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

                          В докладе я рассмотрю этот «чек-лист» подробнее, а также приведу примеры из мира Руби и не только.


                          Андрей Квапил
                          Cloud Architect / DevOps Engineer @ WEDOS Internet a.s.
                          Hluboka-nad-Vltavou
                          В поисках идеального хранилища...

                          Доклад принят в программу конференции


                          из Доклады

                            Душещипательная история о том как мы выбирали кластерную файловую систему под виртуалки и контейнеры, с какими трудностями столкнулись и почему остановили свой выбор на LINSTOR.

                            Хранилище LINSTOR построено на свободных технологиях: ZFS, LVM, DRBD и ориентрировнно на максимальную производительность и высокую доступность данных.

                            В данном докладе я расскажу про наш опыт его использования в Kubernetes, Proxmox и OpenNebula.

                            * На наглядном примере посмотрим как оно работает и чем отличается от того же Ceph и других решений.

                            * Под какие цели стоит использовать LINSTOR, а когда его внедрение может быть нецелесобразным.

                            * Разберёмся как работает тонкая настройка и планирование ресурсов.

                            * Проблемы DRBD и их решения.


                            Денис Неклюдов
                            Software Engineer @ Lyft
                            Сан-Франциско
                            Internet of Things как хобби мобильного разработчика

                            Доклад принят в программу конференции


                            из Доклады
                              Internet of Things-хобби в связке с Android и без него. Android Things - первое, что приходит нам в голову, как мобильным разработчикам, слышавшим об IoT, но жив ли он, и что с ним стало в Google. Обсудим это, а также выясним, зачем у Дениса дома десятки ESP8266, ESP32, Raspberry Pi, Arduino Shields, настроим MQTT и решим как это все контролировать с мобильного устройства.

                              Андрей Конушин
                              Председатель @ RSTQB
                              Москва
                              Сертификация автоматизаторов тестов на Selenium

                              Доклад принят в программу конференции


                              из Доклады

                                Автоматизатор тестов: тестировщик или разработчик?

                                Зачем сертифицировать специалистов по автоматизации, ведь они и так круты?

                                Какие выгоды получает компания от сертификации автоматизаторов?

                                Какие существуют системы сертификации?


                                Александр Александров
                                Эксперт @ RSTQB
                                Москва
                                Андрей Конушин
                                Председатель @ RSTQB
                                Москва
                                ISTQB – Обучение – Бесплатный сыр:. Что общего?

                                Доклад принят в программу конференции


                                из Доклады

                                  Интерес к сертификации тестировщиков порождает спрос на курсы подготовки к сертификации ISTQB.

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

                                  И среди таких курсов попадаются весьма странные «экземпляры».

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


                                  Иван Дрокин
                                  Директор по исследованиям и разработкам @ botkin.ai
                                  Санкт-Петербург
                                  Continuous Adaptation: keep on keepin’ on!

                                  Доклад принят в программу конференции


                                  из Доклады

                                    Как бы исследователям и разработчикам алгоритмов не хотелось, но редко когда получается раз и навсегда построить модель компьютерного зрения, которая будет стабильно работать в продакшн-окружении. Тому есть множество причин, и одна из главных – огромные сложности в сборе и разметке обучающей выборки, которая покроет все возможные ситуации, в которых модели предстоит работать. Поэтому возникает задача регулярных обновлений модели и их адаптации к новым данным. Для этого можно использовать синтетические данные, построенные с помощью компьютерной графики в среде симуляции, позволяющий адаптироваться под постоянно возникающие новые use-cases для моделей. Или использовать концепцию человека-в-петле (Human-AI-loop) для постоянной адаптации. В докладе рассмотрим применение таких подходов в задачах компьютерного зрения на примере использования CV для гибких фабрик и в анализе медицинских изображений.


                                    Эдуард Тянтов
                                    рук. групп машинного обучения @ Mail.ru Group
                                    Москва
                                    Project Management 2.0: AI Transformation

                                    Доклад принят в программу конференции


                                    из Доклады

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

                                      Чтобы обеспечить всю эту магию, со стороны разработки происходит так называемый переход от Software 1.0 к 2.0: теперь не нужно четко описывать алгоритм принятия решения, нейросети смогут вывести его на данных лучше нас. Это в корне меняет традиционные подходы, а компетенция ML становится все более востребованной в стеке технологий разработчика.

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

                                      За последние пару лет мы в Mail.ru запустили десятки продуктов и фич на основе ML, и я расскажу о:

                                      * выработанных практиках ведения проекта с ML в основе;

                                      * многочисленных шишках, которые мы набили;

                                      * адаптации софтверной разработки;

                                      * и многом другом.

                                      Доклад будет полезен всем, кто так или иначе участвует в разработке AI-продуктов.


                                      Вячеслав Смирнов
                                      Эксперт по тестированию @ АО "Райффайзенбанк"
                                      Москва
                                      Автоматизация профилирования JVM

                                      Доклад принят в программу конференции


                                      из Доклады

                                        Если вы столкнулись с трудноуловимой утечкой памяти на продуктиве в Java- ,Scala- , Groovy-приложении. И о ней вы узнаёте раз в месяц, когда приложение уже зависло и ни на что не реагирует. То вскоре задумаетесь в том, как собирать статистику о количестве и размере всех объектов в памяти JVM и отслеживать её изменение на графиках в Grafana. Смотреть, что же течёт, не в спешке, в момент падения, а заранее. А после исправления убеждаться, что проблема решена. Превратить поиск утечек в красивый и приятный процесс, используя свободное программное обеспечение. Дополнительным условием тут является то, что система в продуктиве не должна замедлиться.

                                        Такая задача появилась для системы, работающей на десятках Linux-серверов с Java 8 и 12-ти Windows-серверах с Java 7. Решение получилось универсальным и масштабируемым. Создано на стыке свободных технологий: bash-, bat-, awk-скрипты, SJK-профайлер для сбора статистики, Telegraf и InfluxDB для сохранения и Grafana для отображения. И вот уже пол года решение успешно выполняет свою задачу.

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

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


                                        Игорь Хрол
                                        Data Engineer @ Automattic
                                        Минск
                                        Тестирование больших данных

                                        Доклад принят в программу конференции


                                        из Доклады

                                          Работа с данными выделилась в отдельную область разработки. Гига-, тера-, петабайты информации поражают воображение и озадачивают, когда дело доходит до тестирования. Hadoop, Spark, ETL — непонятные слова, к которым непонятно, как подступиться. На основе своего опыта разработки wordpress.com я поделюсь опытом обеспечения качества в области больших данных. В рамках доклада вы узнаете, как традиционные подходы к тестированию и автоматизации тестирования соотносятся с Big Data-решениями, а также, какие специфические проблемы требуется решать, когда дело доходит до QA.


                                          Александр Прохоров
                                          Data Analyst @ Skyeng
                                          Тбилиси

                                          В Skyeng 100к учеников и 10к преподавателей, и когда ручная оценка качества их занятий перестала справляться, мы стали автоматизировать ее по разным критериям: проценту речи на русском и английском, внешнему виду преподавателя и другим критериям. Одним из самых интересных оказался проект оценки освещенности на видео - мы знали, что слишком темная или пересвеченная картинка с камеры преподавателя влияет на LTV ученика, но объяснить это другим людям и машине оказалось не так легко. Я расскажу, как мы, не имея большой экспертизы в этом, реализовали CNN на ResNet для классификации освещения - от идеи до продакшена.

                                          *Куда уходит 80% времени на проекте - англицизмы в ТЗ и другие проблемы в коммуникации, которые заставят вас заниматься всем чем угодно, помимо модели

                                          *Ожидания vs реальность: почему многие упарываются в тюнинг гиперпараметры, а не в решение задач бизнеса - и как мы уволили человека за это

                                          *Толока vs внутренний ресурс для разметки данных: сравниваем скорость, стоимость, удобство менеджмента задач и качество работы

                                          *На чем может "погореть" OpenCV при обработке черно-белых скриншотов, и другие интересные нюансы при подготовке данных

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


                                          Сергей Свиридов
                                          Head of R&D @ Zyfra
                                          Москва
                                          Как обучение с подкреплением может помочь промышленности и логистике

                                          Доклад принят в программу конференции


                                          из Доклады

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


                                            Константин Евтеев
                                            Руководитель разработки юнита DBA @ Авито
                                            Москва
                                            10 лет PostgreSQL в Avito

                                            Доклад принят в программу конференции


                                            из Доклады

                                              PostgreSQL с момента старта Avito решает серьезные и важные задачи. Вокруг СУБД были построены основные компоненты архитектуры. За 10 лет проект активно развивался, изменилась архитектура и инфраструктура.

                                              Как вступление, сделаю обзор: эволюции архитектуры и инфраструктуры PostgreSQL в Avito; успешно решенных вызовов.

                                              В основной части расскажу о статусе PostgreSQL в Авито 2020: микросервисная архитектура; шардирование; проблемы коммуналок; DBaaS( Database discovery, управление доступом, failover, backup, archive, вопросы разделения ресурсов итд.); вопросы интеграции; эволюция команды.

                                              В заключение поделюсь нашим wishlist/нерешенными вопросами.


                                              Максим Цепков
                                              Архитектор и бизнес-аналитик @ mtsepkov.org
                                              Москва

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

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