United Traders的发展如何

大家好!


我叫Alik Ku​​rdyukov,我是United Traders的 CTO。 您可以在我的个人资料中找到有关我的一些信息。 最近,我们一直在加快向公司招募IT人员的速度,并面临一个问题:很多人都知道我们是“财务”公司,但是很少有人知道如何“技术”化。 因此,现在我们在Habré上拥有一个博客。


在这篇文章中,我想谈谈我们在开发方面的安排。 我很乐意在评论中回答问题。


关于公司


United Traders是一家金融科技公司,致力于为证券市场交易(纽约证券交易所,纳斯达克,CME)和投资(IPO,场外交易以及自己的投资产品)创建数字产品。 我们为交易员,网络平台,移动应用程序,金融算法和我们的加密货币交易所开发软件。


IT团队负责United Traders生态系统的以下数字产品的代码:


  • UTEX是具有自适应接口(初学者/专业人士)的加密货币交易所。
  • UT Investment是一个投资网络平台,展示了独有的创意。
  • Aurora是在各种交易所进行交易的平台。
  • UT Magazine是有关贸易和金融的信息门户。
  • Answr-一部支付加密货币作者作品的百科全书。

发展历程


我们在充满活力的市场中工作。 因此,产品团队需要灵活的迭代方法。 Scrum迭代周期和看板节奏周期-1周。


发展与业务息息相关。 开发人员参与产品决策。 产品团队是HADI周期的一部分。 最主要的是结果,因此,对于成型产品,我们会对整个代码(甚至是布局)进行详细的审查,并尝试分配时间进行重构和技术改进。


分布式团队


我们公司的结构扁平,CTO现在是所有IT人员的直接经理。 该团队远程工作,分布在俄罗斯和周边国家:


  • 莫斯科
  • 圣彼得堡
  • 阿穆尔河畔科姆索莫尔斯克
  • 加里宁格勒
  • 塔甘罗格
  • 基希讷乌
  • 梁赞
  • 科洛姆纳
  • Cherepovets
  • 摩尔曼斯克
  • 塔林
  • 维尔纽斯
  • 明斯克
  • 维捷布斯克
  • 伊斯特拉

通信使用以下方式进行:


  • 闲聊作为公司聊天,
  • JIRA和Trello作为跟踪器。
  • Sococo作为语音和视频通信的工具,是一个虚拟办公室。

该公司为员工的发展提供资金,欢迎在会议上发表演讲(JPoint,Joker,HighLoad,RIT ++)。


开发团队


我们拥有30多个专业开发人员,测试人员,OPS工程师,设计师,版图设计师。 我们所有的IT人员每天都以小组形式相互交流:


平台平台
开发公司的一般服务:收款,内部会计,会员计划等。 最常用的是Java和Kotlin。


优特克斯
开发交易加密货币的交易所。 该产品有2个团队工作:团队后部,团队前部。 由Kotlin,Java,Erlang,Rust,React,Redux,Apollo使用。


陈述
改进贸易报告系统和贸易参数管理。 由Kotlin和Java使用。


奥罗拉
他正在开发Aurora客户交易平台,该平台由用于各种目的的服务器以及客户和经理终端代表。 由C#使用。


运作方式
OPS工程师的主要任务是在以下方面帮助DEV团队:
测试和战斗环境的运行,
从组织开发环境到推出,对开发管道的配置和支持。
使用DevOps的原理。 工具:Ansible,OpenShift,PostgreSQL,Prometheus,Docker,CentOS。


自动测试
帮助开发团队保持高质量。 使用集成自动测试。 工具:Spock,Spek,Allure。


UX / UI设计人员
探索用户偏好,为UT中的所有开发项目创建设计,并研究可用性。


人力资本
它们有助于吸引与我们拥有相同价值观的人们,并有助于开发团队的发展。


建筑,技术栈,实践


我们整个生态系统的体系结构都是基于微服务的,它们具有各自的优点和缺点。 对于微服务的交互,我们使用REST,gRPC,Kafka。 我们提供发现,配置服务。 我们使用断路器和其他模式。


我们的开发堆栈:


  • JVM-Kotlin,Java8,Spring Boot2,Hibername,PostgeSQL
  • 前端-TypeScript,React,Redux,ReduxSaga,Apollo GraphQL
  • .NET-C#7,.NET Framework 4.7.1,WPF,温莎城堡
  • 锈-东京,Actix
  • Erlang

工程实践:


  • CI / CD是根据Jenkins和Ansible制作的,
  • 所有语言都有一种代码样式,通常会自动检查,
  • 除快速MVP外,所有项目都必须进行强制性代码审查,

大多数项目具有3个级别的自动测试:


  • 单元测试的代码,
  • 孤立地对触发工件进行集成测试,
  • 针对工件组的系统测试-测试人员和开发人员正在着手进行这些测试。

如果新技术可以帮助我们解决问题,我们会尝试使用新技术,但是习惯上是将新技术“出售”给团队。 例如,在过去的一年中,我们开始使用Rust,GraphQL和ClickHouse。


工作作风


在UT中,我们不仅习惯于锯切任务,而且还沿途提供改进并提出问题。 我们有“ 30分钟的规则”:如果您遇到无法在半小时内解决的困难,那么在Slack聊天团队中提出问题是有道理的,有人会提供解决方案或告诉您在哪里进行挖掘。 我们确信承担这项任务的人一定会完成它。


总的来说,我们拥有一支优秀的团队,如果有一天您能加入我们,我们将很高兴,从今天开始,我们将告诉您如何使United Traders不仅是金融公司,而且是金融科技公司。

Source: https://habr.com/ru/post/zh-CN443300/


All Articles