Discover companies you will love
株式会社リクルート / ソフトウェアエンジニア
バックエンドチームのためにアプリケーションのデプロイパイプラインを構築しました。このチームでは開発環境が5,6個に分かれており、そのそれぞれに誰がどのバージョンをデプロイしているかが不明瞭で余計なコミュニケーションコストが発生していたので、この問題を解決するデプロイパイプラインを実装しました。 このパイプラインでは、どの環境にどのバージョンをデプロイするかということをyamlで宣言的に管理し、yamlが変更された時にはその通りに各環境に指定されたバージョンのアプリがデプロイされるようにしました。またyamlを逐一確認するのは手間なので、各環境にどのバージョンがデプロイされているかをmarkdownの表に出力し、デプロイが行われるたびに更新されるようにしていました。
分析チーム向けにデータパイプラインを設計から行い、構築しました。パイプライン内ではアプリケーションのデータベースからデータを取得、圧縮し、社内のデータ分析基盤に転送し、転送が正常に終了した時やエラーが発生した際にはSlackに通知されるようにしました。 データの取得と圧縮、転送する部分はEmbulkをインストールしたコンテナをecspressoを使用してECSタスクとして起動し、アラートにはAWS EventBridgeとSlack APIを、パイプラインの実行基盤にはGithub Actionsを使用しました。AWS上のインフラは全てTerraformを使って構築しました。
マーケティングチームや開発チーム向けにAmazonポイントの内訳を返すAPIを設計、実装しました。いくつかのチームとコミュニケーションを取りながら、彼らのサービスと連携して目的となるデータを構築するサービスで、設計書の作成や他チームとのミーティングなどは全て英語で行いました。 API自体はJava(独自フレームワーク)を使って実装し、AWS CDKを使ってLambdaやAPI Gateway、VPCなどの構築を行いました。
入社時にすでに配信されていたβ版で発生していたさまざまな技術的問題を解決するために、サーバーサイドからアプリサイドまで全面的にアプリケーションの作り直しが行われており、そのうちのアプリサイドの作り直しを担当しました。 Flutterアプリのディレクトリ構成やアーキテクチャ、状態管理などの構成から、CI/CDパイプライン、少し特殊な要件を含んでいた通知周りの部分まで幅広く設計を行い、実際に基本的な機能を実装して何度かストアにリリースをしました。離職前にCI/CDパイプラインを実装したり、アプリの設計やトラブルシューティングに関するドキュメントも作成し、自分がいなくなった後も開発がスムーズにいくようにしておきました。
部分的にFlutterに置き換えられていたiOSアプリが全面リプレイスされることが決定したので、アプリケーション全体の設計、技術選定とプロトタイプの実装までを行いました。 設計部分についてはディレクトリ構成、アーキテクチャ、状態管理、ルーティングなどについて、チームのエンジニア採用方針やエンジニアのiOSからの移行コストを踏まえて検討、決定し、実際にその構成を使ってトップ画面と検索画面のプロトタイプを実装しました。