Have something to share about engineering practices, architecture or DevOps?
Become a speaker now

Archive for October, 2016

Evolution of the delivery system in evo.company

Evo.company serves few big marketplaces in Ukraine and USSR, the biggest one is prom.ua. We are running several hundred of bare metal servers in six data centers in four countries. Currently, we are in the process of migrating our applications from the traditional setup of ubuntu packages and pythonic virtualenv to containers and our own orchestration system.

This work includes setting up continuous integration and delivery pipeline, containers, monitoring, logging. And as usual, the biggest challenge is to train our colleagues to use new stuff, to prove that it’s not a waste of time and allow more people to know how to keep systems running. In this talk, I’ll discuss both the technical and organizational challenges we are facing and how we cope with them.

Paul Colomiets

Paul has been coded in Python for 10 years, now coding mostly in Rust. He is obsessive about asynchronous code and microservice-based architecture. As a part of daily job he is building containerization and orchestration systems for evo.company.

DevOps guide for awesome quality assurance

The practical story telling how Devops changed the culture of quality in the Bank. Recently Devops became mainstream topic. But only few people have a deep understanding how to apply it to the process of software quality assurance. Some believe that the Devops kills manual testing.

I will talk about changes it makes to the role of QA engineers themself. The discussion main point is NOT about tools or technologies. It’s NOT about the “silver bullet” for your problems with the quality of products.

Instead, I will show you an integrated approach which we used for quality assurance. It allowed us to significantly reduce the cost of finding and fixing defects. This approach has also accelerated the development and delivery value to our customers and made the whole process more transparent and predictable.

Anastasiya Aseeva

Leads projects of testing automation and DevOps at Alfa-Bank. She is DevOps evangelist, engineering practices adept and agile testing couch, rocking QA-industry since 2012. Has passed all roles ranging from manual QA to QA Lead.

Nastya has been in IT since 2007, started as developer and system admin. For 4 years she has been involved in testing of more than twenty projects. She is also applying the hybrid cloud infrastructure for the Bank.

Nastya’s mission is spreading of culture of quality and DevOps.

Engineering at TransferWise: the story of Service Discovery

Rather than traditional departments, TransferWise is organised into several highly autonomous teams, each focused on solving a specific business or customer problem. It’s the very essence of a lean approach – effort invested is justified by quantifiable impact.

Why do we work this way? How did it change over time? What does this mean for engineering? How does this affect our practices and our culture?

Answer can be found in this talk.

Kyrylo Novotarskyi

After getting a masters degree in Kyiv Polytech and spending a couple of years in outsourcing, moved on to work in different product companies in Ukraine, Germany and now in UK, joining the TransferWise currencies and banking team in the London office. Responsible for engineering in the EU market.

Track quality of your code with SonarQube

It is not to complicated to keep new project with good code quality for half year. Maybe for one year. But what if team works on some project for years? Or even “”better””: you need to support and grow large project after another team. Presentation describes Continuous Inspection, main measures of code quality that will make your life better, and how to cook it with SonarQube.

Dmytro Patserkovskyi

8 years of experience with different languages and technologies. On career path met with game, desktop, mobile, enterprise and big data development. Interesting in code quality and ways of improving process of software development.

Continuous Learning using Application Performance Management & Monitoring

When an application has been released to production or a new feature is done we know that our work is not over. With your application being used by real users, now is an ideal opportunity to collect valuable data.

In this presentation Igor will show how easy it is to instrument your app and get ambient monitoring out of the box, with almost zero effort. Also Igor will demonstrate how you can quickly build monitoring charts, dashboards, alerts and configure diagnostics logs to get a 360° view of your application. This presentation unlocks the best practices and the essentials based on real world stories from his practical experience to find performance bottlenecks, random exceptions, usage patterns of end users, availability and so on.

During a session Igor will give you a sense of metrics importance through the possibilities of New Relic and Application Insights tools and show few interesting stories.

Igor Fesenko

Application Architect, SoftServe. He is passionate about designing and developing scalable, flexible, cloud ready software solutions, utilizing state of art security practices. He is proficient in C#, JavaScript & Azure and has managed and assessed multiple projects focusing on high performance and large data solutions. His current focus is on the building and improvement of scalable and secure web applications, cloud-enabled applications and operations, and identity & access management.

Metrics at Scale@UBER

Metrics @UBER is a first class citizen. Mantas in his talk will cover metrics collection, presentation and alerting based on metrics. It is all about how they deals with the scale in incredibly fast growing company. He will include details on the tools Uber currently uses, as well as their painful migration path from graphite based solution. The speaker will show their build-in-house query language based on tags they are using to query metrics. Mantas will share his experience building, migrating and supporting metrics system at the fastest growing startup in the history.

Mantas Klasavicius

In his professional life Mantas has been advocating devops good practices for many years. As a metrics geek he gave multiple talks about that topic and wrote 1(one) article on InfoQ. Continuing that path Mantas was founding member of observability team at Uber and seen things which can not be unseen.

Currently, he works on getting configuration management back on the track at Uber.

Mantas is a Software Engineer, hiker, snowboarder, food lover. At the moment he is all-in in cycling getting ready to ride bicycle in the mountains.

Идеальный релиз

Описание тренинга

Если вы устали от FDD (fuckup-driven development), практикуемого в вашей компании – предлагаю рассмотреть историю трансформаций продуктовых команд под моим управлением, которые смогли выйти из замкнутого круга, повысили скорость и качество разработки, начали получать удовольствие от работы и построили изумительные процессы разработки.

Опыт перехода от “FDD” (не путаем c feature-driven наше все development) к нормальной разработке подсказывает, что большинство проблем связано с зашоренностью взгляда, неправильной расстановкой приоритетов и неумением пользоваться вытягивающими принципами, которые и обеспечивают те самые 20/80. А попытки бессистемно внедрить различные позитивные (или хорошо рекламируемые) практики часто приводят только к незначительному улучшению, а достигнутый результат быстро деградирует. Иными словами – типичные проблемы трансформации.

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

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


  • Знакомство, синхронизация целей и ожиданий
  • История и проблематика трансформируемых команд, веселые и грустные примеры факапов
  • Теоретическая часть: дизайн процессов разработки и управления рисками жизненного цикла фичи
  • Теоретическая часть: практики решения задач по дизайну процессов, метрики
  • Пример жизненного цикла фичи: от требований и их тестирования до принятия обязательства (стоимость-качество) на разработку
  • Пример жизненного цикла фичи: от начала разработки до релиза
  • Пример жизненного цикла фичи: от релиза до смерти фичи, защита процесса от эррозии
  • Сбор проблемных кейсов участников, отбор 3х наиболее актуальных для участников проблем путем голосования, разбиение на рабочие группы
  • Выработка решений проблем в группах и их защита
  • Подведение итогов, вопросы и ответы, литература

Что вы получите

  • Познакомитесь с практиками дизайна процессов разработки и решения управленческих задач.
  • Детально рассмотрите процесс разработки, успешно применённый к трансформации 2х совершенно разных команд, ставших успешными.
  • Получите обоснование принятых решений и перечень учтённых рисков для каждого этапа разработки и сможете спроецировать на свои собственные процессы и проекты.
  • Попробуете применить знания о полученных практиках дизайна процессов к решению ваших текущих проблем.
  • Познакомитесь с практиками принятия решений, обсуждения, приоритизации и модерации.
  • Смешные и грустные жизненные истории из более чем 18 летнего опыта тренера по разработке софта за деньги 🙂

Continuous Delivery in .NET

О чем тренинг

Несмотря на то, что практики Continuous Delivery далеко не новые, не всегда они применяются даже на коммерческих проектах. Это происходит, с одной стороны, из-за недооцененности их ценности, а с другой – из-за банальной нехватки знаний и опыта.

Еще одной причиной отсутствия внедрения называют нехватку времени. Но в большинстве случаев это просто маскировка двух вышеупомянутых. Наш тренинг поможет решить их обе. Мы расскажем о преимуществах использования практик Continuous Delivery, рассмотрим техники и инструменты, применяемые для .NET проектов и покажем их в действии.

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


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


  • Что такое Continuous Delivery и зачем оно нужно (1 час)
    • Стандартный процесс разработки
    • Циклы обратной связи
    • Элементы Continuous Delivery
    • Continuous Delivery vs Continuous Deployments
    • Особенности для .NET платформы
  • Работа с кодом (1 часа)
    • Стандартный цикл написания кода
    • Системы контроля версий
    • Навигация по исходникам с помощью VS / Resharper
    • Рефакторинг с помощью Resharper
    • Запуск и отладка
  • Тестирование кода (2 часа)
    • Уровни тестирования (unit, integration, acceptance)
    • Инструменты и фреймворки для тестирования .NET кода
    • Требования и правила написания юнит тестов
    • Покрытие тестами
    • Как покрыть тестами легаси код
    • Приемочные тесты, подходы и инструменты для .NET
  • Ревью кода и парное программирование (1 час)
    • Коллективное владение кодом
    • Зачем нужно просматривать чужой код
    • Инструменты и подходы для ревью
    • Подходы к парному программированию
  • Статический анализ кода (1 час)
    • Что это и зачем нужен
    • Обзор инструментов для .NET (fxcop, stylecop, sonarqube) и их интеграция
    • Разбор типичных ошибок
    • Настройка sonarqube для .NET проектов
  • Continuous Integration (1 час)
    • Подходы к сборке .NET проектов (декларативный vs императивный)
    • Обзор fake (F# make)
    • Построение Delivery Pipeline на основе TeamCity
    • Тактики и инструменты развертывания
  • Test Driven Development (1 час)
    • Зачем нужно и когда стоит применять
    • Правила написания кода по TDD
    • Инструменты для создания “живого кода”