SDCast #123: в гостях Иван Муратов, технический директор ПМК, активист Краснодарского ИТ сообщества

Встречайте 123-й выпуск подкаста, в котором у меня в гостях Иван Муратов, технический директор Первой Мониторинговой Компании в Краснодаре, активист Краснодарского ИТ сообщества и основатель бэкенд-митапа.

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

Поговорили про Internet of Things в общем и в контексте сбора данных с автотранспорта в частности. Обсудили способы хранения сообщений с датчиков в time-series базах данных и не только. Отдельно Ваня подробно рассказал про использование TimescaleDB и PostgreSQL, как они работают, как устроено хранение, партиции и запросы.

Так же мы поговорили про конференции и сообщество. Ваня рассказал как зараждалось Краснодарское айти-сообщество, про конференции «Krasnodar Dev Days», их принципы, подходы и организацию.

Читать далее

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

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

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

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

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

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

Читать далее

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

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

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

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

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

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

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

Читать далее

SDCast #69: в гостях Михаил Белопухов, разработчик OpenBSD

Всё что вы хотели узнать о OpenBSD и даже намного больше информации ждёт вас в 69-м выпуске SDCast’а! У меня в гостях Миша Белопухов, разработчик OpenBSD.

В начале Миша рассказал про то, как он сам познакомился с OpenBSD, как начал изучать операционные системы и как его интерес неожиданно превратился во вполне оплачиваемую работу :)

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

Обсудили мы и в целом операционную систему OpenBSD, как она устроена, на каких принципах построена, как работает ядро системы, драйвера и user space код.

Обсудили вопросы, связанные с безопасностью и защищенностью, как самой ОС, так и прикладного кода, работающего в системе. OpenBSD известна своим слоганом “Secure by Default” и тем, что вопросам безопасности там уделяется большое внимание. Миша рассказал про различные подсистемы обеспечения безопасности, применяемые в OpenBSD, такие как:

  • Рандомизация адресного пространства ядра, KARL (Kernel Address Randomized Link)
  • Рандомизация размещения адресного пространства, ASLR (address space layout randomization)
  • strlcpy() и strlcat() – нестандартные функции, созданные в качестве замены часто используемых некорректным образом аналогов стандартной библиотеки
  • fork+exec, PIE, pledge и другие.

Отдельно поговорили о криптографических алгоритмах, способах их реализации с использованием возможностей современных процессоров, таких как SIMD, а так же о их применении в SSH и SSL.

Читать далее

SDCast #52: в гостях Вадим Жуков, разработчик OpenBSD, мейнтейнер портов KDE и Qt

Встречайте 52-й выпуск SDCast’а, целиком и полностью посвящённый OpenBSD. У меня в гостях Вадим Жуков, разработчик OpenBSD, мейнтейнер портов KDE и Qt и преподаватель операционных систем по совместительству.

В этом выпуске мы обсудили, кажется, все возможные аспекты проекта OpenBSD. Хотя Вадим не согласен: “По моим ощущениям, мы обсудили далеко не всё, но нельзя объять необъятное”! :) И тем не менее… В начале Вадим рассказал, как он сам попал в проект, чем занимался в начале и как стал мейнтейнером таких тяжелых пакетов как KDE и Qt.

Обсудили то, как устроен проект OpenBSD: насколько велико сообщество разработчиков, какие там есть зоны ответственности, как устроен процесс разработки, тестирования, выпуска релизов, как устроена инфраструктура проекта, насколько велика роль лидера проекта Тео де Раадта и другие смежные вопросы.

Вадим подробно рассказал про устройство пакетов и портов OpenBSD, чем они отличаются от других пакетных систем, как устроен процесс появления нового пакета в дереве портов. Отдельно внимания заслуживает рассказ Вадима о портировании KDE4 в OpenBSD. Так же Вадим рассказал про его небольшие исследования в области автоматической настройки сети, Wi-fi и маршрутизации.

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

Так же Вадим рассказал про хакатоны OpenBSD: зачем они проводятся, какие цели преследуются, как организовываются и кто принимает в них участие. Кстати, ещё Вадим поделился опытом менторства одного подпроекта в рамках участия OpenBSD в Google Summer of Code.

Читать далее

SDCast #49: в гостях Александр Махомет, PHP Product Architect в компании Upwork

sd-podcast-logoВстречайте 49-й выпуск подкаста! На этот раз речь пойдет про распределенные команды разработки. У меня в гостях Александр Махомет, PHP Product Architect в компании Upwork и один из создателей проекта Frameworks days.

В компании Upwork работает порядка 350 инженеров и разработчиков, 270 из которых работают удаленно из 40 стран со всего мира. Александр рассказал как в компании в целом устроены процессы разработки, как формируются распределенные команды, на каких принципах построено взаимодействие между разработчиками и командами в целом.

Конечно же мы поговорили и про архитектуру проекта в целом. Саша рассказал из каких компонент состоит система в целом и что используется «под капотом». Рассказал так же про постепенную миграцию от монолитной архитектуры к микросервисной, как это происходило, какие были сложности и что в итоге это дало на выходе. В Upwork используется PHP как middleware между фронтендом и различными сервисами и Саша рассказал про миграцию с Zend Framework на Symfony, а так же про миграцию на PHP7.

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

Читать далее

SDCast #48: в гостях Михаил Тюрин, главный системный архитектор AVITO.ru

sd-podcast-logo Рад представить вам 48-й выпуск SDCast’а! У меня в гостях Михаил Тюрин, главный системный архитектор AVITO.ru. В этом выпуске речь идет об архитектуре AVITO в целом, как оно работает изнутри и на каких технологиях базируется.

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

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

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

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

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

Читать далее