学生向けハッカソンのAWSやフロントエンド開発におけるアドバイザリーを行った。
Stripe Checkoutによる決済機能をシステムに実装(Serverless Framework + Lambda + Vanilla JS)。
学生向けハッカソンのAWSやフロントエンド開発におけるアドバイザリーを行った。
大規模なSaaSにおいて新機能の設計・開発・リリースまでのプロセスを担当。
マルチテナントソフトウェアアーキテクチャの基盤をLaravelで作成し、フロントエンドのSPAをVue.js+Vuexを使って基盤作成。ユニット・インテグレーションテストの基盤は、バックエンドのPHPはPHPUnit、GoはGinkgo、TypeScriptはJestを使い、フロントエンドはTypeScriptでJestを用いたテスト基盤と、Cypressによるe2eテストのテスト基盤を作成。CodecovとCIを連携させ、カバレッジをPRに可視化させて、テストの実装を日常的に促進。さらにCI/CDのパイプラインをCircleCIとCloudFormationを組み合わせ、PR毎にレビュー環境が構築されるように自動化。AWS IAMの簡易版権限管理サービスを、Echo+Open Policy Agent(言語はGo)で作成。権限のモデルとしてはABACを採用。
大手自動車メーカーの車載器システムのコンセプトを伝えるWebアプリケーションの作成。独自デザインのグラフを構築するため、AngularとD3.jsを組み合わせて作成。
シングルノードで運用していたNASをDRBDに移行し、冗長構成化。AWSリソースのデプロイ・プロビジョニングの自動化。移行前はインスタンスなどリソースのデプロイは手動で、モジュールのインストールなどプロビジョニングは独自のスクリプトを使用していたものをTerraformとAnsibleにリプレース。属人化していたシステム構築を基本的に誰でも実施できるようにしたことと、Ansibleによる冪等性を意識したプロビジョニングにより、システムのあるべき姿を保証できるようにした。
AngularとNgRxを組み合わせて画面表示とビジネスロジックの切り分けを意識したアーキテクチャで開発。お客様の要望の変化にも強いアプリケーションを作成。学習管理システムとしてはCanvasLMSを採用し、独自仕様部分に関してはNode.jsとArangoDBを採用。公開用のAPIとNode.js→CanvasLMSのAPI連携部分の設計を行った。社内仮想環境にRancher(オーケストレーターはCattle)でコンテナのクラスタを作成し, GitLab + GitLab CIを使って社内テスト環境にCI / CDできるパイプラインを構築。また、Selenium Grid + robotframeworkでe2eも回すことで、一定の品質を常に保てるようにした。本番環境もRancherを使用し、リリース時にはMattermostとボットを組み合わせることで人為的ミスの可能性を減らし、容易にリリース作業が行うことができるようにした。
Rで実験的に作られたプログラムのSparkへの移行
複数の案件をMarionette.jsやAngularJSを使ってリード。iOSとAndroidのアプリケーションもIonicを使用して作成。
経路確認システムのサブシステム作成。ユニットテストを書く文化の無いチームにユニットテストを導入。Dependency InjectionとNSubstituteによるモックを利用して、実際のデータベースや外部サービスを利用せずにユニットテストを実行する方法を布教。