Code for Japn / Webエンジニア
慶應義塾大学環境情報学部2年 大学の研究室でネットワーク通信の研究を行いつつ、分散システムやWebアプリの開発・勉強を趣味で続けています。現在はデータベースなどバックエンド寄りの技術に興味を持っています。 実務経験のある技術スタックや細かい興味範囲などに関してはresume.kota-yata.comをご覧いただけると幸いです。
WebRTCで動くP2Pでのファイル共有WebアプリをSvelteKitで開発しました。シグナリングはProtocol Buffer on WebSocket、サーバーはJavaで実装しました。
一般的にはUDPで行われるホールパンチングをTCP上で実装しました。手法はTCP Simultaneous Openというものを使用し、日本語の文献がほぼ皆無かつ実装もGitHubなどではあまり見つからない状態でC言語による実装を行いました。
Web周りはもちろん、ネットワークや暗号技術に関わる仕事もしてみたいです
高校在学時からイベント運営スタッフとして関わり、2022年下旬からWebエンジニアとして複数のCivic Tech, Gov Tech関連のソフトウェアの開発に携わっています。例としてオープンデータ作成支援ツールやXのコミュニティノートとツイート本文を紐付け分析を行うツールなどの開発に携わった経験があります。
UDPベースの通信プロトコルQUICの上で、ICEプロトコルを利用してP2P通信を確立しました。具体的には通常通りICEプロトコルでP2P通信を確立したのち、その通信を再利用しQUICのハンドシェイクを行っています。その過程で複数ライブラリの拡張・変更を行っています。
大規模メディアサイトのフレームワーク等バージョン移行とそれに伴うサイトの改修作業。主にフロントエンドエンジニアとして開発に関わりました。
前半はセキュリティエンジニアとしてGCPのモニタリング機構の実装やASVSを用いたWebアプリケーションの検証などを行っていました。後半はプラットフォームチームにてデータベースのリアルタイムレプリケーションに取り組みました。
およそ半年のプレイドでのインターン期間のうち後半に取り組んだプロジェクトです。 プレイドではMongoDBをアプリケーションデータのためのデータベースとして、BigQueryをデータ解析のためのデータウェアハウスとして使用しており、リアルタイムでデータを解析するニーズがありました。 以前のレプリケーション方法ではリアルタイム性に課題があり、新しいアプローチとしてMongoDBのDatabase Trigger機能とBigQueryのStorage Write APIを組み合わせた方法を採用しました。これにより、MongoDBでのデータ変更を検知し、BigQueryテーブルに効率的にデータを更新することが可能になりました。具体的な実装では、MongoDBの変更をPub/Subトピックにpublishし、Dataflowパイプラインを通してBigQueryに書き込む流れを採用しています。
2021年に1年間留学しているため4年で卒業