エウレカサマーインターンを開催しました!(サーバーサイド編)
おひさしぶりです。エウレカでAPIチームの責任者をしています @takochuu です。
エウレカでは、今の時期に毎年サマーインターンシップを開催していまして、今回はサーバーサイドエンジニアの課題と出題意図について解説します。
エウレカサマーインターンでは、前後半に分かれてカリキュラムが展開されています。前半は職種に分かれての個人戦、後半は全職種各チームに入ってチーム戦になっており、エンジニアは「個人での実装力」と「ビジネス課題を解決するエンジニアリング」を重視したカリキュラムになっています。
前半課題
前半戦のカリキュラムは、「マッチングサービスに必要なAPIをGoで実装する」というものでした。
集まっている学生のみんなは必ずしもGoの経験者ではないため、他の言語でできていたことをGo特有の実装に書き直すのはムダ、かつ限られた実装時間では間に合わないだろうと考え、ルーティングやDBアクセス等はエウレカ側で用意して、ロジックを書く事に集中してもらいました。
課題として重視しているのは、WEBAPIを実装する上で適切なロジックが組めるか、という部分なので、何も考慮せずに書くとN+1問題に直面するようなDB設計になっています。
また、DBから読み出し / 書き込みだけではなく毛色が違う種類のAPI実装も一つ用意しました。
base64の文字列をサーバー側にリクエストして画像をlocalに保存する処理なのですが、拡張子判別のためにbasee64のヘッダを取得して実装する方法を取るか、標準パッケージを使用するかの二択においてヘッダを取得する実装をしている人が多かったのは印象的でした。
実装をしてもらったあとに、@takochuu と @hiroki で全てコードレビューをして、個別にフィードバックを学生のみんなにお送りしました。
後半課題
後半戦の課題は、「オンラインデーティングアプリにおいて、マッチング前のユーザー体験を改善する」というものでした。
※ 発表をしてフィードバックを受けているところ
選定した理由として、エウレカではProduct ManagerやBI(分析)というチームはあるのですが、チームの壁を超えて施策をブラッシュアップしていく事が多くエンジニアも数字を見てディスカッションに参加する、施策を立案するという行動を推奨しているためです。
具体的には3チームに分かれてもらい、カリキュラムの一貫としてデータを提供しました。提供されたデータを根拠にチームで仮説検証を行い、プロトタイピングをしてもらうのがゴールです。
「マッチング前の」という指定の仕方だったのでアイデアは似るかな、と考えていたのですが結局それは杞憂に終わり、さまざまなアイデアが実装されました。
1週間と短い時間ながらも実装完了まで達成した学生みんなの自力はすばらしいものでした。
# 優勝したmatching zeroチーム
終わりに
僕自身はサマーインターンシップを担当して2年目なのですが、毎年来てくれる学生のみんなのモチベーションや実装力の高さには驚いています。
エウレカでは、このように毎年サマーインターンシップを開催していますが、通年のインターンシップも募集しています。
通年インターンでは、各チームに配属されて他のエンジニアと同様にタスクをこなしていくことになりますので、より実践的なエンジニアリングやチーム開発を学ぶ事ができます。
興味がある方は、下記リンクからjoin us!