チームラボのインターンに参加した

こんにちは.あたらんです.

9月の後半2週間でチームラボのインターンに参加してきました!この記事ではインターンの内容,雰囲気,学びなどを紹介します.

チームラボという会社

まず,チームラボがどんな会社なのかを紹介したいと思います.

チームラボはデジタルアートやメディアアートを作っている会社というイメージが強かったのですが,他にもWebアプリやモバイルアプリを作るチームもあったり結構なんでもやってます.インターンで選択できるコースも10以上あり,僕は今回フロントエンドチームで参加しました.

参加した経緯

今回チームラボのインターンに参加した経緯,理由について書きます.

僕は今学部2回生で同期にはインターンに行くという人はあまりいなかったのですが,CAMPHOR- というIT系学生コミュニティの先輩がインターンの話を度々していて,「インターンはいいぞ」 的なことを言っていたので申し込んでみました.CAMPHOR- はいいところです.

また,僕が将来就職企業に求めるものとして,遊び心とかクールなプロダクトを持っているということを重視しているので,それにチームラボは当てはまっていると思ったのも1つの理由です.

とか言いつつも参加した主な理由としては,単純に初めてインターンに申し込んでみたら受かったので嬉しかったというのも大きいです.笑

チームラボのインターン

チームラボは通年インターンとサマーインターンの2種類(5月〜9月末がサマーインターン,10月〜4月末が通年インターン)で募集しており,僕はサマーインターンの募集が始まる前に待ちきれずに通年インターンで申し込みました笑.期間は8, 9月の2ヶ月で申し込んだのですが,結果的にはサマーインターンでの参加という形になって悲しかったです(それはそう).

チームラボのサマーインターンは1~4ターム(8, 9月の前後半)に別れており,僕は第4タームで参加しました.選考はインタラクティブ,Webアプリケーション,フロントエンド,iOS, Androidなど,様々なチームごとに選考して,そのチームに参加する感じになります.

必ずメンターが付きます(2:1の場合もあります) .内容は実際の業務をする場合もあれば,用意された課題をこなす場合もあります.これはチーム, メンターごとに結構異なるみたいです.

業務内容

業務内容に関して書きます.

僕はフロントエンドチームで参加しました.フロントエンドチームでは実際の業務に参加させてもらえました.チームと言ってもフロントエンドチームのインターン生は僕しかいませんでした😂.

僕がやった内容は,実際のプロダクトで追加したい機能が実現可能かどうかを検証するというタスクでした.具体的には,「パスポートをフロントエンドだけで(サーバーと通信せずに)OCRして,パスポート情報の入力補助をする」という機能の検証をしました.検証タスクだったので書いたコードがボツになるかもしれないという緊張感がありました.

技術的な話をすると,MediaDevices.getUserMedia() メソッドでカメラの映像を撮ってきて,それをcanvasに一旦描画しつつクロップして,TesseractというOCRエンジンをラップしたTesseract.jsというライブラリを使ってオンデバイスOCRして結果を表示する,という感じで実装しました.

実装上のつらみ,ハマりポイントをいくつか挙げると,

  • カメラの縦横比,縦横の概念がデバイスによって違ったのでその対応
  • Tesseract.jsがデフォルトの設定だと精度がいまいちだし,結果が出るまで時間がかかる.(学習データをパスポートのフォントだけに特化したものに変更すると精度も速度も改善した.)

という感じで,大部分の時間を認識精度の向上に費やしたので,「フロントエンドとは…?」という感じになっていました笑.チームラボのフロントエンドチームは,Webの技術を応用してWeb以外の領域にも積極的に踏み込んでいくチームです.

技術とは関係ない話をすると,パスポートの仕様にめっちゃ詳しくなりました.パスポートにはMRZ(Machine Readable Zone)と呼ばれる機械でOCRして読み取る用のエリアがあり,その部分の仕様を調べたりしました.MRZのどの部分になんの情報が書いてあるという仕様だけでなく,読み取った文字列が正しいかどうかを検証するためにチェックサムで照合するという仕組みがあり,大学で履修していた情報符号理論の知識が役立ったりしました.意外なところで コンピューサイエンスが感じられて面白かったです.

また,そのタスクは1週間ちょっとで終わってしまったので,後半の2日(そもそも3連休が2週連続だったので,2週間とはいえ出勤は8日間でした😂)はプロダクトの画面をTS, Nuxt, Vuexで実装してました.

会社の雰囲気

次に会社の雰囲気について話します.

一番大きく感じた印象としては,社員同士の仲がとても良い,というのがあります.チームにもよるのかもしれませんが,フロントエンドチームはコミュニケーションなどが活発で,上下関係などはあまり感じられず,心理的安全性が高かった印象があります.毎日決まった時間にミーティングがあり,オフラインのコミュニケーションが活発でした.ミーティングをする会議室(?)的なフロアは隣のテーブルとの仕切りがなく,(それがどういうメリットがあるのかはわからないが)とてもオープンでした.(こんな感じ)

なので隣で代表の猪子さんが普通にミーティングしていたりして,面白かったです.猪子さんめっちゃ声でかかったです.また,会議室のテーブルが1つ1つ違って個性的で,人ダメソファみたいなのが天板になっているテーブルや,メモを書けたり,砂で遊べるテーブルがあったりしました.

メモを書けるテーブル

会議室に限らずオフィスの至るところにインタラクティブなアート作品があったりして,遊び心が感じられてよかったです.

オフィスの様子はこちらの記事にまとまっています! saiyo-ac.jp

インターンの環境

開発環境

僕の席はメンターさんの隣の席で,わかんないところがあったら質問し放題な環境でした.(これはメンターによるらしい)

マシンはメモリ16GBの15インチのMBPを支給してもらいました.15インチのMBPは初めて使いましたが,快適すぎて自分のマシンも買い替えたくなりました.

あと,24インチぐらいのモニターを1つ使えました.

生活

ホテルはオフィスから徒歩10分のところにあるビジネスホテルでした.ホテルって毎日掃除されるし,最高ですね.(インターンの感想ではない)

給与は時給1000円でした.

とある日のランチ↓

個人的推しポイント

チームラボの個人的推しポイントを紹介したいと思います.

部活が盛んでインターン生も参加できるものもいくつかありました.僕は,ボードゲーム部とシェーダ部に参加したのですが,どちらもオフィス内の会議室のテーブルで活動していました.バリバリ会議やっている隣でボドゲとかできるのは,チームラボらしいなと思いました笑.

ボドゲをした緑の丘↓

まとめ

最後にインターンで得られた学びなどを共有しようと思います.怠くなってきたので箇条書きで.

  • Webでデバイスのカメラから映像を取得したり, OCRなどの触ったことのない技術に触れることができた.
  • 様々な技術を持った人が周りで多様なことをやっているので,刺激が多い,モチベーションになる.
  • パスポートにめっちゃ詳しくなった
  • 長期で自分の家を離れるときは爪切りは持っていったほうが良い

以上です.ありがとうございました.