Ric.'s rubbish heap.

~ Ric.の掃き溜めブログ ~

この夏、宝探しに行ってカエルになった話

f:id:Ric418:20191224185612j:plain

こんにちは2019年最後のサマーインターン(11月中旬まで)に参加中で現在進行形で井の中のカエルのRic.です!

今更ながら2019年サマーインターンシリーズ第一弾です、
VOYAGE GROUPさんのTreasureというインターンシップに参加しました!

  • Treasureってこんな感じだったよ〜
  • 自分の振り返りと反省点の備忘録

こんな感じの内容でやっていきます!

そもそもTreasureって?

これは紹介サイトや他の参加インターン生のBlog参加ブログがありますので詳細は

techlog.voyagegroup.com

こちらを是非!と言いたい所ですが、この記事で完結させたい方もいるかと思いますので物凄くザックリ言うと…

  • 期間 : 8月の3週間
  • 報酬 : 12万
  • 内容
    • 前半講義でWeb周りを完全に理解して
    • 後半チーム開発で社会課題を解決するWebサービスを開発せよ!

こんな感じです! 講義の簡単な内容やチーム開発の雰囲気とかは記事後半で!

Treasureに参加するまで

Treasureを知ったきっかけ

これはエンジニアインターンの情報をどこから得てるの?っていう話とも関係してるんですが
サポーターズという企業さんが主宰している1on1の逆求人イベントでCTOの小賀さんに紹介して頂いたことがきっかけでした。

ここでは説明頂いた内容も勿論、CTOが直接学生の自分たちにお話して下さったことと、人事の佐々木さん(通称エイチさん)と共に面白Tシャツを着てメチャメチャ真剣に色んなお話をしていたことがかなり記憶に濃く残っています笑
(確かエイチさんは”ラーメン大好き”的なTシャツで小賀さんが”平日も実質休日です”的なのだった気がする…)
懇親会では小賀さんに実際のCTOのお仕事についてもお話して貰い、その1on1自体とても楽しいものでした!

サポーターズは、いいぞ。(ダイレクトマーケティング)

なぜ参加希望したのか

そもそも何を目的に、参加後に自分がどうなっていたくてTreasureに参加したのか、 これはTreasureで何が得られたのかと言う話とも関係するので触れておきます。

まず自分の専門領域は自己紹介にもあるようにデータ分析、
ざっくり言うとデータサイエンスもしくはデータエンジニアリングです。

その自分がWebエンジニアリングの知識を必要だと痛烈に感じた経験がありました。
詳しくは「実務でデータサイエンスしてWebヤムチャした話」(近日公開予定)を読んで貰えるとって感じなのですがつまりは自分がデータのエンジニアとして

  • 実際サービスがどのようなアーキテクチャ設計なのか
  • その中でどのようにデータが流れるのか
  • どうやってデータが蓄積されるのか

以上のことはそのサービスのログなりデータなりを扱う上で最低限知っておかなければならなずWebの知識(特にサーバーサイド)の必要性を強く感じたということです。

選考フロー

ここに関しては参加したインターン生ごとにフローが若干違うかもなのですが 自分の場合は

1on1イベントにて面談→面接OKを貰う→エンジニア2名・人事の方1名の方と面接+SPIの性格診断的なの→参加確定

こんな感じだったかと思います、この時面接して頂いたエンジニアの通称ゆっけさんとアドテクは戦場っぽいと言う話で盛り上がった記憶があります笑
インターンが始まる前に事前課題が各種出るので不安のあるところは早めにやっておいてFBをしっかり受けておくことを強くおすすめします!

もう一度言います…早めにやっておきましょう…

Treasure参加!

前半講義(Day1 ~ Day8)

基本的にはTreasure期間中でのベースアプリが用意されており講義中ではこれを

Day1,2 : Go言語の基本とWebAPI

ここで初めてGo言語を触ったのですがerrorインターフェースを同時に返す事によるエラーハンドリングと明示的な書き方が 印象的でした。それと講師の方が相当なVimmerでコマンドの速さにベジータのグミ撃ちを連想しました。Gopherちゃん可愛い(補足)。

f:id:Ric418:20191104021235j:plain
ベジータのグミ撃ち(補足)

Day3 : JavascriptとFrontend

JavaScriptの歴史とフレームワークのお話をしてフロントの演習をしました.
フレームワークといえばVue・React・Angularの御三家ですが自分はVueで色々やってました.

そういえばページの読み込みの速さが話題に上がったのですが 真っ先に例の役者さんのホームページが挙がったのは流石に笑いました笑

Day4 : Databaseとmigration

データベースの種類と設計(ER図)から持続的な構築(migration)を学びました.
個人的にはDBの設計(ER図書くやつ)が講義の中でも特に楽しかったです!

Day5 : 4日間の復習と中間課題の発表

これまでの講義の復習として

などを復習し中間課題が発表されました。 これまでの4日間で学んだ知識で何かしらのサービスを作ってくると言うものでした。

Day6 : 中間課題発表とセキュリティ講義

インターン生の中間課題発表が行われ

  • 顔認識を用いた筋トレ管理アプリ
  • 論文のサーベイを助けるサービス

などなど様々なサービスが発表されていました!

f:id:Ric418:20191103182537j:plain
まあ大体井の中のベジー◯になるよね

その後、セキュリティ・認証周りの講義、サンプルアプリを使った脆弱性修復等の演習が続き前半の山場?を超えた感じでした!
流石に中間課題を作り込んできたこともあって、自分も含め疲れの色が見えてた気がします…笑

この日のインターン終了後、VOYAGEの社員さんの行きつけのお店の橙で打ち上げをしました!

Day7 : 認証・チーム発表・インフラ講義

認証周りはセキュリティ講義での知識を絡めながら認証周りを確認しました。

そしてそして!!

それに加えて後半のチーム開発のチームとメンターの方々が発表されました!
後日インターン後にチームで飲みに行き方針、
つまりVOYAGE社で言うところのSOULとチーム名を決めました!

自分らのサービスを通して未知・既知の様々な幸せをユーザーにつなげたい・起したいと言う意味を含め
チーム名はHAPPs、SOULは”happening HAPPs”と言うものになりました!

f:id:Ric418:20191103183210j:plain
チーム飲みの店,、道玄坂火だるま荘、肉寿司ィ..

チーム発表の後、インフラ講義としてDockerからCI/CD周りAWSのサービスに関して、さらにはサービスの監視体制の講義を受けチーム開発で必要な環境を揃えました。
監視体制のお話は以前アドテクの分野でインターンをしていたときに特に気になっていた分野だったのでとても参考になりました!(DataDogで分析モデルの精度のモニタリング)

Day8 : 認証周りとアイデア講義

講義としては最終日でした、 その後のアイデア講義ではWebサービスを作る際にどのようなロジックとフローで企画していくかの講義を受けました。

技術周りの人間としてはマーケティング的な側面をここまで詰めたのは初めてで…
普段使わない脳みそを使って新鮮で、「もしかしたらこの側面も好きかもしれない…」と感じました。割と真面目に。

なんなら一番自分の知らない事が多く、学びが多かったのはこの日のアイデア講義だったと思います…!

後半チーム開発(Day9 ~ Day15)

Day9~11 : サービス企画

ついにチーム開発!!
と言いたいところですがまずは開発するサービスの企画からと言う事でDay9~11までは企画をウンウン考えながら決めて行きました。社員さんを呼んでヒアリングもして、コレがサービスの根幹に関わる課題を見つける上で重要でした。

f:id:Ric418:20191103190950j:plain
企画の難しさを体感しました…

Day11~14 : チーム開発

初めてのモブプロ

ついにチーム開発と言う事で早速始める訳ですが
チームメンバーの技術レベルや開発の足並みを揃えるためにモブプロなるものをやってもらいました、ペアプロは講義中でもやったことがあったのですがこれは初めてでした。

これをやった事により自分の中であやふやだった講義の内容がチーム開発において必要な技術とともに復習でき明確化され、自分でサービスの一部のAPIを開発できるようにもなったのでかなり有り難かったです…
提案してくれたをーりー本人的には良くも悪くもって感じっぽいですが自分には有り難かったです…有難う…

f:id:Ric418:20191103200612p:plain
モブプロの様子

時間のない後半

開発していくにあたって勿論機能要件を決めるのですが、ここで開発するサービスの本来の強みや狙いや顧客を意識してしっかり機能の優先順位づけをできているか?
ココかなり後半にかけて重要だったなぁ…と感じています。(特に後半は時間がないことも含め立ち戻れるしっかりした指標が必要でした…)

おもむろにデザイナーを始める後半二日間

これもどこかのタイミングで書こうとは思っているんですが元々自分はフリーランスのクリエイターとして活動していたこともあり
クライアント・サーバーサイドの大体の機能が揃ってきた頃にフロントのデザインを作成していました.

ロゴ作ったり、gif作ったり、ボタン素材作ったり、フォント選定したり、世界観作り込んだりと...
エンジニアのキャリアに切り替え、今回のインターンとは少し(だいぶ?)ジャンルの異なる作業でしたが自分の貢献できるタイミングとして一番大きなものだと思い最後二日はデザイナーとして動かせてもらいました!

Day15 : 最終発表

長くも短い開発期間も無事終わり!と言うことで…
最終発表ではこれまでの講師の方々や小賀さんに自分らの開発したサービスをプレゼンし最優秀・優秀賞を決めます。

自分らのサービスは先ほどは触れてはいませんでしたが
 「家事を楽しく、認識のすれ違いなく分担する」
と言う家事をゲーミフィケーションで楽しくする。カジクエオンライン2と言うWebアプリを開発しました。 (マネタイズやテーマへの機能的なアプローチは様々ありますがここでは割愛します)

f:id:Ric418:20191103230943j:plainf:id:Ric418:20191103224514p:plain
最終発表の様子とロゴ、MHXに似てる?知らないCAPCOMですねぇ…

評価基準

様々な側面からの評価軸ありましたが自分の中で印象に残っていたのが

  • ニーズは生まれてきそうか
  • 必要なテストはあるか
  • CI/CDが回っていたか

これら3つがこれまであまり意識していなかったことと、特に下の2つは安定的にサービスを稼働しながら開発を進めると言う概念を強く反映したものなのかなぁと初心者ながらに思いました。

結果発表

他のチームでは

  • 学習支援
  • フードロス
  • e-sports

いろんな領域と絡めているものが沢山あり、勿論Webエンジニアリングとそれら業界の組み合わせも面白かったのですが何よりも他のチームの技術選定やアーキテクチャ設計を聞くのが面白かったですね…

結果としては優秀賞を頂きました!
アーキテクチャやタスク管理のシステム、使用シーンがイメージしやすい、世界観が良いなどの講評を頂きました!
(世界観褒められたのはウレシス)
機能としての課題も多くFBも色々と頂き開発の時点では気づかないことも多く、開発の外側から意見やFBを頂くのは大事だと痛感しました…

発表に関しては大体の質疑にはチーム全員誰もが答えられると言う状況にはなっていたので最後まで共通認識を持って開発を進められたのだと確信しています。この状況で終えられたのは今後の自分のチーム開発をしていく上でもとても良い経験でした。

Treasure参加後の振り返り

ここまで「Treasureどんな感じだったん?」 って言うのを自分の感想も含めて紹介していきましたが、ここからは個人的な振り返りと印象に残ったTreasureのよきところを挙げていきたいと思います。

理解したこと・やっとけば良かったこと(課題)

この2つを主に挙げていきたいと思います

理解したこと

  • Webエンジニアのレイヤーの幅広さ(深さ?)
    今回の講義の幅広さからもわかるようにWebエンジニアに求められる事…さては増えてるな...?
  • アーキテクチャやライフサイクルの大事さ
    これはエンジニアリングでは当たり前なのですが自分の専門ではここまで設計を詰める事はなかったので何かしらのフローを考える上で絶対に必要な概念だった。 さらにアーキテクチャがどこまでにどれくらいできるかの見積もり力、コレもサービス作る上で実装力とともに重要だなぁと。
  • チーム開発においての自分の立ち位置
    良いか悪いかはおいといて、割と強いメンバーがいる場合ファシリテーターは任せ、メンバーが疲れた時の補佐に回る事が多い気がする。
  • エンジニアリング・ビジネス・デザインに対しての自分の向き合い方
    • エンジニアリング
      これまで単独での分析系のタスクが多かったので一人で黙々とやりがち、周りから見ると顔が険しいらしい。
    • ビジネス
      割と楽しいと感じることが多い気がする、割とこの時は活き活きしてたらしい。
    • デザイン
      なんならこれが一番楽しくやってた気がする、多分貢献できてると感じてたって言うのもありそう。
  • 客観的な意見の開発中の定期的な注入
    コレは必要な機能の確認やニーズや課題に対する解決しうる機能を探す上で欠かせない、今回はヒアリングが効いた。

こんな感じ、そして... 周りには畑が同じでもそうでなくてももっともっと強いエンジニアはウジャウジャいるし自分が学ぶべき技術などは多いしそれは一生無くならない。コレホント。

やっとけば良かったこと(課題)

  • もっとわからない事・知らない事はすぐ聞いとけば良かった
    コレは自分が一人で黙々とやってしまっていたこともあった。折角チームだったし、後でも触れるように異常な質と量の現役エンジニアの方々のサポートをもっと頼って良かった…
  • もっとチーム開発している時に思った事をすぐ言えば良かった
    開発している途中で「このままだと良く出来た良く見るTodoアプリっぽいなぁ…」と思ったのですが、その時は「まだメインの機能を作っている時だし皆にコレをまだ伝える時ではないかもだしなぁ…」と思って意見としては出していませんでした…

特に2つ目に関してはのちのち時間もなく煮詰まってきた時にこの話をメンバーにし、世界観やUI/UX、ユーザーに楽しんで分担する家事に気づいてもらう機能を他サービスとの差異として詰めて行く事にシフトしました。

これはメンターの方々とインターン終了後の面談でもお話しいただいた事だったのですが、今自分でも考えるとこの意見をもっと早くメンバーに言うべきだったし、その時に話したとしてもメンバーはしっかり聞いて意見を交わしてくれたと思うので、もっとメンバーを信じて思い切った提案をしても良かったのかもしれない。そう感じています。

これは決してその様な関係性を築けていなかった訳ではなくて、
自分がその関係に気付けていなかったと言う事だと思います。(なんと”築く”、”気付く”で韻が踏めるぞ)

多分これは自分が良くも悪くも補佐役的な立ち位置にいたと言うことも関係していると思いますし、メンターの方々にはチーム開発においては立ち位置とかを気にしすぎるのも良くない時もあると言うのをご指摘頂き「確かにサービスに関する意見交換の際はそれは障壁でしかないな」と今回実感しました。これはエンジニアの世界だけではない気もしますが…

印象に残ったTreasureのよきとこ・スゴイとこ

ともかく360°スゴイので一個一個紹介いて行こうかと思います!

割かれているリソースが異常

これはマジ、チームごとのクラウドのリソースもそうですが現役の社員の方の人員がスゴイ

正解は、、、、、66人!!!!
調べてみたら全社のエンジニアが100人強だったので人事や内定者抜いても半分。スゴイ。

人事のなみさんのブログより

講義期間中はお昼後に色んなお話が

CEOやCTOのお話から新卒2年目の方のパネルディスカッション?まで色んなお話がされます。 特にCTOの小賀さんのお話で

  • 迷ったら苦しい道を
  • コンフォートゾーンの外側で
  • 仲間と事を成す。

と言うお話はTreasure生の心に残っていると思います。

FBの充実さが半端ない

メイン講師のヤンウェイさんが30人分の中間課題を全て丁寧にFBしてくださった、それ以外の講師の方からもいただける事も。
勿論インターン中・終了後のメンターの方々との面談も。

毎日15時にお菓子がデプロイされる

特にうまい棒1000?本くらい提供された時は笑ってしまった笑

加えて美味しいChaiティーが飲めたり(Chaiはいいぞ)キッチンがあって社員さんが料理していることも。
(インターン期間中に料理ガチ勢になってキッチンって言うあだ名がついた人も…笑)

f:id:Ric418:20191110184927j:plain
Chaiはいいぞ。

社員の方が趣味に全力

これはVOYAGE GROUPさんのスゴイとこって感じなんですがVOYAGEさんの社員さんはとにかく多趣味で…

などなど…中には部活動になっているものもあるそうで…お昼休みに格ゲーの対戦がされていたり夕方あたりになるとピアノやギターの音が聞こえてきたりと… 実際インターンが行われている部屋には常時筋トレグッズがおいてありいつでもMDD(Muscle Driven Development)ができる状況でした笑

f:id:Ric418:20191104032500j:plain
ボルダリング用?の懸垂マシン

社員の方とインターン後に社内Barで飲める

これもVOYAGE GROUPさんのスゴイとこでもあると思うのですが特にこの期間は様々な社員の方がいると言う事もあって… VOYAGEさんにはAjitoと言う社内Barがありまして、なんと福利厚生でお酒をいただけると言う事で…!

自分はお酒にそんなに強くなく、飲むと1日が終了してしまう人間なので、たまにだったのですが社員の方と色んな話をしながらこれまた社員の方々がピアノなどを演奏する中飲むのは何かQOLと言うものを直に感じる瞬間でしたね…

f:id:Ric418:20191104031743j:plain
社内BarのAjito

何よりもよいところ

これは誇張でも何でもなくって感じなんですが、なかなかの密度の15日間を共に過ごした個性あるエンジニア仲間と強い繋がりができる。 技術的知識を得た等も勿論貴重な事でしたが、これだけはこのTreasureでないと得られなかった何事にも代替出来ない事だと思っています。これは講師の方や人事の方、関わってくださった社員の方々との繋がりも同様で、本当にこのサマーインターンに参加できて良かった。そう思っています。

多分この感覚は文面では伝わらないと思いますが是非是非!参加してみてください!
もしかしたら同じ感覚になれるかも…

f:id:Ric418:20191104034643j:plainf:id:Ric418:20191104034646j:plain
自作キーボード製作とかボウリングにも皆でいきました

注意すべき事

これしょうもなく聞こえるかもですが体調管理には気をつけてください…!
特に橙の地獄谷麻婆豆腐を食べる時は次の日のお腹は覚悟してください…笑
(見事にやられてしまい社内のトイレに籠もった顔)

f:id:Ric418:20191104045019j:plain
こいつぁ、やってくれますよ…

最後に

今回Treasureに参加するにあたって、関わって下さった社員の方々、講師の方々、特にインターン期間中のみならずその前後も支えて下さった人事の方々とメンターの方々、とても貴重な体験と出会いをさせて頂きました有難うございました。 加えて一緒に15日間過ごしたインターンの皆、また成長した姿を見せられる様精進しますのでまたいつか!

クソ長文章失礼いたしました!

関連ブログ

人事のなみさんと同チームメンバーのブログ、それぞれメンバー毎に捉え方が違うので面白いかも…!
あとはなおきだけやでぇ…(チラチラ)

なみさん : Treasureなどのインターンが生まれるまでを記したエモエモ記事です!

techlog.voyagegroup.com

やんやん : 割と自分と近いバックグラウンド(機械学習系)で参加してる。

1日単位で詳しく書いてくれているので「講義内容とかもっと細かくみたい!」と言う方にはおすすめ!
shinya-ml.hatenablog.com

をーりー:チーム開発と言う視点から考察しています。

面接の軽い内容も書いてあるので参加を考えている人は参考になるかも!
wally-ngm.hatenablog.com

nasa : Go, JS, DB開発の要素技術に関して詳しく書いてくれています。

多分nasaは自分と逆のタイプ(アイデア出しで考え込んで、開発で活き活きする)なので対比として面白いかも!
デザインの話はお互いに考え込んで楽しかった、HAPPsって言葉は多分俺発かな…? nasaemon.hateblo.jp