
24卒 本選考ES
エンジニア職
-
Q.
制作事例としてアピールしたいURLがあればご記入ください。同時に内容についての簡単な説明(使用技術・アピールポイント等)もご記入お願いします。
-
A.
https://github.com/***** ****にて6人チームで開発した「ショッピングモールの地図」に焦点を当てたシステムです。通常紙で見る地図をスマートフォンで見れるようにし、位置情報をもとにしたナビゲーションを行うことによって、スムーズな買い物をサポートします。店舗や中継地点の位置を頂点とした重み付き無向グラフとしてみなし、ダイクストラ法による探索を用いてナビゲーションを行っています。 適切な責務分離・再利用性などを意識しており、カスタムフックなどを使用したロジックの分離を行っています。 使用技術は、TypeScript, React, webpack, Cloud Firestore, Firebase Auth, Firebase Hosting, Prettier, Git, GitHubなどです。 私は技術リーダーとして、技術選定、コーディング・デバッグ全般、他メンバーへの指導などを行っていました。チーム開発が初めてのメンバーもいましたが、VSCodeプラグインを用いたGit・GitHubの使用方法についての資料を作成したり、レビューやペアプログラミングを用いてサポートすることによって、スムーズな開発を実現しました。 続きを読む
-
Q.
好きなWebサービスを一つ挙げ、それがなぜ好きか教えてください。また、そのサービスのコアとなる特性と、その特性を実現するために技術的にどのような工夫点がありそうか考察してみてください。(400文字程度)
-
A.
AtCoderです。リアルタイムで世界中の人と競える点が好きです。 コアはオンラインジャッジシステムだと考えており、アクセス集中や悪意のある攻撃への対応が特性の一つだと考えています。 アクセス集中に関しては、特にコンテスト開始直後にアクセスが集中するため、適切にスケールする必要があると考えられます。AtCoderではAWSを使用しているので、アクセス数に応じたインスタンス数の増加などによって対応していると予想します。 また、webサーバーとジャッジサーバーを分割することで、片方のみをスケールすることができるようになり、コスト削減が期待できると考えられます。 攻撃については、悪意のあるコードが提出された場合でもシステムダウンしないように、実行環境を仮想化するなどの工夫がされていると考えられます。ジャッジは高速であることが望ましいので、起動に時間がかかる仮想マシンではなくコンテナが使われていると予想します。AtCoderと似たシステムのpaizaではDockerが使われています。 続きを読む