みなさんこんにちは!
私の名前はAlik Kurdyukovです。UnitedTradersのCTOです。 私のプロフィールで私について少し知ることができます。 最近、私たちはIT人材を会社に採用するペースを上げており、問題に直面しています。多くの人が私たちを「Fin」会社として知っていますが、「Tech」を知っている人はほとんどいません。 そのため、Habréのブログができました。
この投稿では、開発側での配置方法についてお話したいと思います。 そして、喜んでコメントの質問にお答えします。
会社について
United Tradersは、株式市場取引(NYSE、NASDAQ、CME)および投資(IPO、OTC、独自の投資商品)向けのデジタル製品を作成するフィンテック企業です。 トレーダー、ウェブプラットフォーム、モバイルアプリケーション、金融アルゴリズム、暗号通貨交換用のソフトウェアを開発しています。
ITチームは、United Tradersエコシステムの次のデジタル製品のコードを担当しています。
- UTEXは、適応型インターフェイス(初心者/専門家)との暗号通貨交換です。
- UT Investmentは、排他的なアイデアを紹介する投資Webプラットフォームです。
- Auroraは、さまざまな取引所で取引するためのプラットフォームです。
- UT Magazineは、取引と金融に関する情報ポータルです。
- Answr-暗号通貨の作者の仕事に対する支払いがある百科事典。
開発
私たちはダイナミックな市場で働いています。 したがって、製品チームは柔軟な反復アプローチのために「シャープ」になります。 スクラム反復サイクルとかんばんリズムサイクル-1週間。
開発はビジネスと密接に関連しています。 開発者は製品の決定に関与します。 製品チームはHADIサイクルの一部として機能します。 主なものは結果であるため、形成された製品については、コード全体、レイアウトも含めて詳細なレビューを行い、リファクタリングと技術改善のための時間を割り当てようとします。
分散チーム
当社はフラットな構造をしており、CTOは現在、すべてのIT担当者の直属のマネージャーです。 チームはリモートで働き、ロシアと近隣諸国に分散しています:
- モスクワ
- サンクトペテルブルク
- コムソモリスクオンアムール
- カリーニングラード
- タガンログ
- キシナウ
- リャザン
- コロムナ
- チェレポベツ
- ムルマンスク
- タリン
- ビリニュス
- ミンスク
- ヴィテプスク
- イストラ
通信は以下を使用して実行されます。
- 企業チャットとしてのSlack、
- トラッカーとしてのJIRAとTrello。
- Sococoは、音声およびビデオコミュニケーションのツールであり、仮想オフィスです。
会社は従業員の開発に資金を提供し、会議や会議(JPoint、Joker、HighLoad、RIT ++)でのスピーチを歓迎します。
開発チーム
30人以上のプロの開発者、テスター、OPSエンジニア、デザイナー、レイアウトデザイナーがいます。 すべてのITスタッフは、毎日小さなチームで相互にやり取りしています。
プラットフォーム
会社の一般的なサービスを開発します:支払いの受け入れ、内部会計、アフィリエイトプログラムなど。 主に使用されるのはJavaとKotlinです。
Utex
暗号通貨を取引するための取引所を開発します。 製品に取り組んでいる2つのチームがあります:チームバック、チームフロント。 Kotlin、Java、Erlang、Rust、React、Redux、Apolloで使用されます。
声明
貿易および貿易パラメーターの管理のための報告システムを改善します。 KotlinおよびJavaで使用されます。
オーロラ
彼はAuroraクライアントトレーディングプラットフォームの開発に取り組んでいます。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、Castle Windsor
- 錆-アクティックス、東京
- アーラン
エンジニアリングの実践:
- CI / CDはJenkins and Ansibleに基づいて作成され、
- すべての言語には、通常自動的にチェックされるコードスタイルがあり、
- 高速MVPを除くすべてのプロジェクトに必須のコードレビューがあり、
ほとんどのプロジェクトには、3つのレベルの自動テストがあります。
- コードの単体テスト、
- トリガーされたアーティファクトを分離して統合テスト、
- 成果物のグループのシステムテスト-テスターと開発者はこれらのテストに取り組んでいます。
問題の解決に役立つ場合は、新しいテクノロジーを使用しようとしますが、新しいテクノロジーをチームに「販売」するのが習慣です。 たとえば、過去1年間、Rust、GraphQL、ClickHouseの使用を開始しました。
働き方
UTでは、タスクを切断するだけでなく、途中で改善を提案し、質問をすることに慣れています。 「30分間のルール」があります。30分で解決できない困難に遭遇した場合は、Slackチャットチームに質問するのが理にかなっています。誰かが解決を手伝うか、どこで掘るかを教えてくれます。 そして、タスクを引き受けた人が間違いなくそれを完了すると確信しています。
一般的に、私たちには素晴らしいチームがあり、いつかあなたがその中にいることを嬉しく思います。そして今日から、私たちがUnited Tradersを単なる金融ではなく、フィンテック企業にする方法をお話しします。