Как устроена разработка в 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 неделя.


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


    Распределенная команда


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


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

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


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

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


    Команды разработки


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


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


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


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


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


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


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


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


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


    Архитектура, технологические стеки, практики


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


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


    • 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.


    Стиль работы


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


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

    United Traders
    70,00
    Финтех
    Поделиться публикацией

    Комментарии 14

      0
      Привет, в стеке не увидел ObjC/Swift… под мобилки продуктов нет?
        0
        Есть, но пока делаются силами аутсорсеров
          0
          Есть, но делаются пока руками аусорсеров. Мы пока думаем стоит ли растить свою команду.
          +1
          Почему на smart-lab не пишите, там уже вас по полочкам разложили как вы народ обманываете) Зачем снова ту же баранку заводить? Хотя там наверное ваш блог забанен просто.
          • НЛО прилетело и опубликовало эту надпись здесь
              –1
              За 10 лет United Traders не обманули ни одного человека, я слежу!
              Блог на Smart-lab не забанен, того и гляди оживет.
                +1
                А как же инфа что они обучили 30 000 человек, и где отзывы от всех этих людей, понятно уже эту инфу с сайта убрали потому как такой бред)
                0
                Эка вас бомбит. Биток что ли по $20k купили, а виноваты все, кроме вас?
                  0
                  Поясните для танкистов.
                  +1
                  А как у вас обстоят дела с документированием вашего ПО (руководства пользователя) и актуализацией информации на портале? Есть выделенная команда или сотрудник? У меня сложилось впечатление, что эта часть работы делается по остаточному принципу и сдвигается из релиза в релиз уже достаточно давно.

                  Мне приходится каждый раз звонить потому что документация от терминала Aurora уже устарела. Да и на портале много есть неточностей и несоответствий. Насколько оперативно вы сможете решить эти вопросы и куда писать конкретные замечания?
                    0
                    Руководство пользователя Aurora актуально, обновлять пока не будем — там есть всё, за исключением нескольких последних фич. А вот информация на портале обновится уже скоро.
                    Если есть вопросы/предложения, можно писать сюда unitedtraders.com/trading/zadat-vopros
                    0
                    UTEX когда планируете запустить?
                    Ваш UTT токен будет в системе использоваться, по аналогии с другими биржевыми токенами?(BNB, BIX и т.д.)
                      0
                      Да, нужен инсайд для хабра. Продавать или покупать UTT )
                        0
                        В ближайшее время планируем объявить даты. Токен будет использоваться для оплаты комиссий.

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

                    Самое читаемое