Как стать автором
Обновить

Компания Центр Финансовых Технологий (ЦФТ) временно не ведёт блог на Хабре

Сначала показывать

Как мы решили проблему дискоммуникации между разработкой и сопровождением и создали единую продуктовую команду

Время на прочтение 13 мин
Количество просмотров 3.7K

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

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

Читать далее
Всего голосов 4: ↑3 и ↓1 +2
Комментарии 6

Заметки о (не)эффективности

Время на прочтение 13 мин
Количество просмотров 12K

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

Впервые прочитав эту цитату Кони Бюрера, который работал в Rational Software, я полагал, что корень всех проблем, возникающих при разработке ПО, кроется именно здесь. С тех пор я повзрослел, оброс шлейфом скепсиса и перестал писать код для продакшена. Я больше не несу ответственности за разработку, тестирование или поставку отдельных классов, компонентов и даже сервисов. Я отвечаю за максимально быструю и качественную поставку бизнес-ценности в рамках одного из ключевых бизнесов ЦФТ - сервиса денежных переводов Золотая корона.

Читать далее
Всего голосов 17: ↑15 и ↓2 +13
Комментарии 16

Как мы следим за скоростью регресса

Время на прочтение 4 мин
Количество просмотров 2.8K

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

Читать далее
Рейтинг 0
Комментарии 2

Уж+ёж: реактивные компоненты в сервлетном окружении (3/3)

Время на прочтение 8 мин
Количество просмотров 3.7K

В предыдущей заметке было подробно рассмотрено одно из решений для обеспечения повсеместной доступности текущего обрабатываемого HTTP-запроса. В отличие от неё, нынешняя заметка посвящена не одному большому пункту, а двум компактным: поддержке AOP-аспектов и работе OpenFeign-клиентов в «гибридных» приложениях.

Читать далее
Всего голосов 7: ↑7 и ↓0 +7
Комментарии 3

Уж+ёж: реактивные компоненты в сервлетном окружении (2/3)

Время на прочтение 17 мин
Количество просмотров 3.2K

В предыдущей заметке было показано несколько подходов к управлению зависимостями в «гибридных» приложениях (использующих части сервлетного и реактивного стеков), а также вариант реализации универсального механизма для поддержки MDC-меток в логах. А в этой заметке речь пойдёт о том, как обеспечить доступность текущего обрабатываемого HTTP-запроса из любой точки бизнес-логики.

Читать далее
Всего голосов 7: ↑7 и ↓0 +7
Комментарии 0

Уж+ёж: реактивные компоненты в сервлетном окружении (1/3)

Время на прочтение 14 мин
Количество просмотров 8K

Когда рассказывают о прелестях реактивного фреймворка Spring WebFlux и его подкапотном Project Reactor, для примера чаще всего показывают новые, создаваемые с нуля приложения. Однако на практике приходится строить из готовых блоков, в том числе из собственных прикладных и инфраструктурных модулей, которые уже написаны в императивном стиле и опираются на сервлетный стек. Как правило, такие модули нельзя/некогда/неохота (нужное подчеркнуть) переписывать, поэтому надо как-то адаптировать их к создаваемому реактивному приложению с минимумом правок (а лучше без них вовсе). О некоторых подходах к такой задаче и пойдёт речь в этой серии заметок.

Читать далее
Всего голосов 10: ↑10 и ↓0 +10
Комментарии 12

Как заонбордить целый взвод и остаться в живых

Время на прочтение 4 мин
Количество просмотров 2.2K

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

Но что делать, если новобранцев не один и не пять? Что, если в одно прекрасное утро мы проснулись в новой реальности – реальности, где личный состав удвоился одномоментно? Здесь перестают работать дедовские методы «садись рядом – расскажу» и наступает хаос. О том, как этот хаос подчинить, расскажу в статье.

Читать далее
Всего голосов 4: ↑3 и ↓1 +2
Комментарии 0

500 Dev на 10 Ops, или Как внедрить NoOps в масштабе

Время на прочтение 9 мин
Количество просмотров 4.5K

Три года назад в группе компаний ЦФТ задачи бизнеса потребовали увеличения штата разработчиков в два раза. Перед отделом эксплуатации встало две задачи: не допустить линейного роста OPS и уменьшить TTM, не потеряв при этом в недоступности, непрерывности и безопасности.

В результате в компании теперь есть всё — и NoOps, и DevOps. Где-то пришлось пойти на компромиссы и доработать концепт NoOps напильником под себя. Сергей Бердников, руководитель отдела эксплуатации, сегодня расскажет, что получилось, и разберет — почему.

Читать далее
Всего голосов 22: ↑22 и ↓0 +22
Комментарии 5

Аналитика ФИО в ЦФТ

Время на прочтение 13 мин
Количество просмотров 4.9K


Всем привет! Меня зовут Степан Деревянченко. Я специализируюсь на алгоритмах анализа текстовых данных (Natural Language Processing – NLP).

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

Моё выступление с докладом об аналитике ФИО на CFT ML Meetup можно посмотреть здесь.
Читать дальше →
Всего голосов 2: ↑1 и ↓1 0
Комментарии 6

Как адаптировать языковые модели Kaldi? (со смешными животными)

Время на прочтение 14 мин
Количество просмотров 9.6K


«Как научить русскоязычную модель распознавать речь геймеров?» Подобными вопросами задаются те, кто увлекается и занимается NLP. В частности, NLP-специалистов интересует, как можно адаптировать модель Kaldi под свою предметную область, чтобы улучшить качество распознавания. Это мы и разберём в данной статье.
Читать дальше →
Всего голосов 7: ↑7 и ↓0 +7
Комментарии 3

Мечтал стать сценаристом, а стал программистом

Время на прочтение 9 мин
Количество просмотров 5.6K


Привет! Меня зовут Михаил и год назад я стал iOS-разработчиком в компании ЦФТ. До этого почти 8 лет я проработал в сфере логистики и таможенного оформления, а айосером меня можно было назвать разве что из-за наличия iPhone.


Я хочу поделиться своим опытом. Зачем? Меня такие истории мотивировали на старте, и, возможно, именно мой опыт не даст кому-то опустить руки. Моя история не из разряда «как стать джуном за два месяца», а о том, как не соскочить в этом марафоне.


Читать дальше →
Всего голосов 5: ↑3 и ↓2 +1
Комментарии 3

Пишем unit тесты так, чтобы не было мучительно больно

Время на прочтение 6 мин
Количество просмотров 11K


Любую задачу в программировании можно выполнить массой разных способов, и не все они одинаково полезны. Хочу рассказать о том, как можно накосячить при написании модульных тестов. Я пишу мобильные приложения уже 6 лет, и в моем «багаже» много разных кейсов. Уверен, что кому-то будет полезно.
Читать дальше →
Всего голосов 9: ↑7 и ↓2 +5
Комментарии 1

Особенности взаимодействия Bitbucket server и Teamcity

Время на прочтение 4 мин
Количество просмотров 3.8K

Сегодня почти в каждом проекте существует хотя бы базовая инфраструктура, включающая в себя систему хостинга кода проекта (Github, Bitbucket и др.) и систему его сборки (Teamcity, Jenkins и др.). Мы в ЦФТ активно используем Bitbucket server и Teamcity в наших пайплайнах. Подкатом я расскажу, как мы настроили взаимодействие этих сервисов, с какими трудностями столкнулись и как с ними справились.

Читать дальше →
Всего голосов 1: ↑1 и ↓0 +1
Комментарии 7

Data Science vs COVID-19_Часть 3

Время на прочтение 5 мин
Количество просмотров 1.7K


Всем привет. Выходим на финишную прямую: сегодня финальная статья о том, какие ответы может дать data science о прогнозировании COVID-19.

Первая статья здесь. Вторая здесь.

Сегодня мы общаемся с Александром Желубенковым о его решениях по предсказанию распространения COVID-19.

Условия у нас следующие:
Дано: Колоссальные возможности data science, три талантливых специалиста.
Найти: Способы предсказать распространение COVID-19 на неделю вперёд.

И вот решение от Александра Желубенкова
Читать дальше →
Всего голосов 10: ↑8 и ↓2 +6
Комментарии 4

XCResult — как и зачем читать

Время на прочтение 6 мин
Количество просмотров 3.9K


В 2018 году Apple в очередной (третий) раз обновили формат, в котором выдаётся информация о прогоне тестов. Если раньше это был plist файл, который представлял из себя большой xml, то теперь это большой файл с расширением xcresult, который открывается через Xcode и содержит в себе кучу полезной информации, начиная c результатов тестов с логами, скриншотами и заканчивая покрытием таргетов, диагностической информацией о сборке и многим другим. Большинство разработчиков не работает каждый день с этим, но инфраструктурщики в данной статье могут найти что-то полезное.
Читать дальше →
Всего голосов 5: ↑5 и ↓0 +5
Комментарии 2

Data science vs COVID-19_Часть 2

Время на прочтение 7 мин
Количество просмотров 1.6K


Всем привет. Мы продолжаем серию статей о том, какие ответы может дать data science о прогнозировании COVID-19. Первая статья здесь. Сегодня поговорим о втором классе моделей по предсказанию динамики распространения COVID-19. Они основаны на предположениях о росте заболеваемости и описывают ситуацию в средне- и долгосрочной перспективе. Беседуем с Николаем Кобало, старшим инженером данных ЦФТ.

Напомним, какие у нас условия:
Дано:
Колоссальные возможности data science, три талантливых специалиста.
Найти: Способы предсказать распространение COVID-19 на неделю вперёд.

Переходим ко второму решению.
Читать дальше →
Всего голосов 7: ↑3 и ↓4 -1
Комментарии 5

ZERG — что за зверь?

Время на прочтение 4 мин
Количество просмотров 4.1K


Когда мы говорим о CI&CD, мы часто углубляемся в базовые инструменты автоматизации сборки, тестирования и доставки приложения — фокусируемся на инструментах, но забываем осветить процессы, которые протекают во время отрезания и стабилизации релизов. Однако, не все готовые инструменты одинаково полезны, а какие-то кастомные процессы не укладываются в их покрытие. Приходится исследовать процессы и находить пути автоматизации для их оптимизации.

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

У нас есть ночные прогоны, когда гоняются полные наборы тестов. Но на самой заре освоения Zephyr, нашим тестировщикам во время регресса приходилось скачивать xcresult, или ещё ранее plist, или junit xml, а затем проставлять соответствия зелёных и красных тестов в зефире руками. Это довольно рутинная операция, да и занимает она много времени, чтобы руками пройти 500-600 тестов. Такие вещи хочется отдать на откуп бездушной машине. Так родился ZERG.

Читать дальше →
Всего голосов 3: ↑3 и ↓0 +3
Комментарии 0

Data science vs COVID-19_Часть 1

Время на прочтение 6 мин
Количество просмотров 2.5K


Уже очевидно, что в 2021-м COVID-19 все еще будет оставаться, как говорится, на повестке дня. А значит, закономерно возникают вопросы: есть ли у нас инструменты для прогнозирования роста и снижения заболеваемости, можем ли мы предсказать развитие событий через неделю, месяц или даже год? Давайте разбираться.

Дано: колоссальные возможности data science, три талантливых специалиста.
Найти: способы предсказать распространение COVID-19 на неделю вперёд.

Решение:

На самом деле решений будет три, следите за публикациями. А сегодня мы обсудим одно из них, с Владиславом Крамаренко. Он нашёл модель, способную построить самый точный прогноз* для всего мира на неделю вперёд.
Читать дальше →
Всего голосов 13: ↑10 и ↓3 +7
Комментарии 6

Рецепт дня: готовим сообщество профессионалов, не выходя из своего отдела

Время на прочтение 10 мин
Количество просмотров 2.5K

Историями о профессиональных сообществах сейчас вряд ли кого-то удивишь. Гильдии образуют по разным причинам: кто-то из интереса, кто-то — чтобы быть в тренде, а кто-то из-за недостатка общения на профессиональные темы. Это история о том, как бизнес-направление компании ЦФТ, Денежные Переводы Online, желая производить больше и быстрее, в очень короткий срок утроило штат инженеров, которых не успели нормально заонбордить, и в итоге чуть не уронили качество продукта и не «сожгли» ключевых членов команды. 

Доклад в виде пошагового рецепта QA-лидам, fullstack feature team-лидам, SM и всем тем, кто решает задачу эффективной настройки процессов команд, работающих совместно над одним продуктом, представила на конференции TeamLead Conf 2020 Head of Android QA одного из флагман-продуктов компании ЦФТ Надежда Потаенко.

Читать далее
Всего голосов 16: ↑16 и ↓0 +16
Комментарии 9