Хабрахабр

Как устроена разработка в United Traders

Всем привет!

Немного обо мне можно узнать у меня в профиле. Меня зовут Алик Курдюков, я CTO компании United Traders. Поэтому теперь у нас есть блог на Хабре. В последнее время мы увеличиваем темпы набора IT людей в компанию и сталкиваемся с проблемой: нас многие знают как «Fin» компанию, но очень мало кто знает как «Tech».

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

Мы разрабатываем программное обеспечение для трейдеров, веб-платформы, мобильные приложения, финансовые алгоритмы и свою биржу криптовалют. United Traders — fintech компания, создающая цифровые продукты для торгов на фондовом рынке (NYSE, NASDAQ, CME) и инвестиций (IPO, OTC и собственные инвестиционные продукты).

IT-команда отвечает за код для следующих цифровых продуктов экосистемы United Traders:

  • UTEX — криптовалютная биржа с адаптивным интерфейсом (начинающие/профессионалы).
  • UT Investment — инвестиционная веб-платформа с витриной эксклюзивных идей.
  • Aurora — платформа для торговли на различных биржах.
  • UT Magazine — информационный портал о трейдинге и финансах.
  • Answr — энциклопедия с оплатой работы авторов в криптовалюте.

Поэтому продуктовые команды «заточены» под гибкий итеративный подход. Мы работаем на динамичном рынке. Цикл итераций Scrum и каденций Kanban — 1 неделя.

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

Команда работает удаленно, распределена по России и ближнему зарубежью: Наша компания имеет плоскую структуру, сейчас непосредственным руководителем всех IT людей является CTO.

  • Москва
  • Санкт-Петербург
  • Комсомольск-на-Амуре
  • Калининград
  • Таганрог
  • Кишинев
  • Рязань
  • Коломна
  • Череповец
  • Мурманск
  • Таллин
  • Вильнюс
  • Минск
  • Витебск

Коммуникации осуществляются с помощью:

  • Slack как корпоративный чат,
  • JIRA и Trello в качестве трекеров.
  • Sococo как инструмент голосового и видеообщения, виртуальный офис.

Компания финансирует развитие сотрудников, приветствует выступления на конференциях и митапах (JPoint, Joker, HighLoad, РИТ++).

Все наши IT-люди ежедневно взаимодействуют друг с другом в небольших командах: У нас более 30 профессиональных разработчиков, тестировщиков, OPS-инженеров, дизайнеров, верстальщиков.

В основном используются Java и Kotlin. Platform
Развивает общие сервисы компании: прием платежей, внутренняя бухгалтерия, партнерская программа и т.п.

Над продуктом работают 2 команды: Команда Back, Команда Front. UTEX
Разрабатывает биржу для торговли криптовалютами. Используются Kotlin, Java, Erlang, Rust, React, Redux, Apollo.

Используются Kotlin и Java. Statements
Совершенствует систему отчетности по торговле и управлению торговыми параметрами.

Используется C#. Aurora
Работает над развитием клиентской торговой платформы Aurora, которая представлена серверами различного назначения, а также клиентским и менеджерским терминалами.

Инструменты: Ansible, OpenShift, PostgreSQL, Prometheus, Docker, CentOS. Operations
Основная задача OPS-инженеров — помогать DEV-командам в вопросах:
эксплуатации тестовых и боевых сред,
настройки и поддержки pipeline разработки от организации окружения разработки до выкатки.
Используются принципы DevOps.

Работают с интеграционными авто-тестами. Autotesting
Помогают командам разработки поддерживать высокий уровень качества. Инструменты: Spock, Spek, Allure.

UХ/UI дизайнеры
Исследуют предпочтения пользователей, создают дизайн для всех проектов разработки в UT, работают над usability.

Для взаимодействия микросервисов мы используем REST, gRPC, Kafka. Human Capital
Помогают привлекать людей, с которыми мы совпадаем по ценностям, и содействуют развитию команд разработки.
Архитектура, технологические стеки, практики
Архитектура всей нашей экосистемы строится на микросервисах со всеми их достоинствами и недостатками. Мы используем circuit breaker и прочие паттерны. У нас есть discovery, configuration service.

Наши стеки разработки:

  • JVM — Kotlin, Java8, Spring Boot2, Hibername, PostgeSQL
  • Frontend — TypeScript, React, Redux, ReduxSaga, Apollo GraphQL
  • .NET — C# 7, .NET Framework 4.7.1, WPF, Castle Windsor
  • Rust — Tokio, Actix
  • Erlang

Инженерные практики:

  • CI/CD делается на основе Jenkins и Ansible,
  • Для всех языков есть code style, обычно проверяется автоматически,
  • Есть обязательный code review для всех проектов кроме быстрых MVP,

У большинства проектов есть 3 уровня авто-тестов:

  • unit тесты для кода,
  • интеграционные тесты для запускаемых артефактов в изоляции,
  • системные тесты для групп артефактов — над этими тестами работают тестировщики и разработчики.

Например, за последний год мы начали использовать Rust, GraphQL, ClickHouse. Мы стараемся использовать новые технологии, если они могут помочь нам в решении задач, но новую технологию принято «продавать» команде.

У нас действует «Правило 30 минут»: если ты столкнулся со сложностью, которую не удается решить за полчаса — имеет смысл задать вопрос в Slack-чат команды, кто-нибудь поможет с решением или подскажет, куда копать. В UT мы привыкли не просто пилить задачи, но предлагать улучшения по ходу решения и задавать вопросы. И мы уверены, что тот, кто взялся за задачу обязательно её доделает.

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

Теги
Показать больше

Похожие статьи

Добавить комментарий

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

Кнопка «Наверх»
Закрыть