インターンから見たオクト~ 学生インターンのすヽめ ~


はじめに

こんにちは、開発部門インターンの飯沼です。この4月に修士2年になりました。先日まで就活で長いお休みをいただいていたのですが、今月から2ヶ月ぶりに復帰しました。昨年、1度だけこのブログに投稿した時は、Amazon SageMaker の使い方について書きました。ただ今回は職場復帰したばかりで、あまりTech について書けることがないので、この1年インターンとして携わってきたプロジェクトを振り返って、学生から見た Oct について考えてみたいと思います。

 

入社(2019年5月)

もともと2019年1月くらいまでは「俺は Web なんて絶対にやらない!」と公言していたのですが、いざ IT 業界で食べていこうと考えた時に「やっぱり Web は素養としてできるようになった方がいいかな?」と思い始めました。そこで、大学の卒業式の日、当時 Oct で働いていた友人に紹介してくれないか頼んだことが入社のきっかけでした。大学では映像系の研究をしているため、Python や C++ でかなり大規模なプログラムを組んだことはありましたが、入社の時点で Web は全くの未経験でした。入社が決まってから3週間程、研究そっちのけで Vue.js の勉強をして ANDPAD チャットの製作チームに参加することになりました。

 

Web 版 ANDPAD チャット (新チャット)

2019年5月に入社して最初のプロジェクトは、ANDPADチャットのフロントエンド開発でした。そのころは社員の方は今の半分くらいで、私のいた開発チームも3、4人しかいませんでした。

 

しかし、その後わずか1ヶ月でチームの人数は倍増します。そのころになると、同じチームだった、からまげさんの主導で色々なアジャイルな開発手法を試したりして、本格的にチーム開発っぽくなってきました。

 

事前にある程度勉強していたこともあって、Vue.js での開発には比較的すぐに慣れました。しかし、CSS でのUI実装はなかなか慣れず、フロントエンド小泉さんなどCSSのスペシャリストに何度も助けていただきました。実はいまだに CSS に苦手意識があります・・・(汗)

こうやってお互いに補い合って開発ができるところが、チーム開発のいいところだと思います。研究は基本的になんでも一人でやらざるを得ないことが多いので・・・

5、6月は旧チャットからの機能移植がメインでしたが、7、8月は新規機能の開発にも取り組みました。その後、9月初旬ごろに新チャットがリリースされました。

 

リリース直後はバグ対応で昼休みが15分しか取れなかった日もあって結構大変だった記憶があります。これも9月半ば過ぎには落ち着いてきたので、このプロジェクトから離れることになりました。 

機械学習プロジェクト

新チャットの開発が落ち着いたことで、「次は何をしようか?」と言う話になりました。ちょうどそのころ、一部サービスに機械学習が導入できないかと言う話が持ち上がってきていました。私は大学や大学院で画像認識や映像処理などの研究をしていたので、このプロジェクトにアサインされました。

 

事情により詳細は伏せますが、セマンティックセグメンテーションや異常検出を使って画像の認識をしようという試みでした。前回書いた SageMaker の記事もこのプロジェクトの一環です。機械学習を行うためには、画像データに一枚一枚正解をつけるアノテーションという作業を行う必要があります。この作業は必要不可欠とは言え、本当に地道でかなりしんどかったです。

 

社内データの分析

諸般の事情で機械学習プロジェクトからは離れることになりました。それに伴って社内のデータ分析をするチームに移籍しました。このチームでは、SQLでアクセスログを取ってきて、サービスの利用状況レポートなどの作成に関与していました。私は主にSQLを書いてBigqueryからデータを引っ張ってくるところを担当していました。

SQLは比較的文法が単純で割とすんなり身につきました。Redash をこの時初めて使いましたが、このサービスは非常に便利ですね。

redash.io

SQLで引っ張ってきたローデータから図表やグラフが簡単に作れます。これをコピペすれば、利用状況のレポートがお手軽に作れます。ただ、一つ難点があって、それはAPIが微妙に使いづらいことです。動的クエリという機能をAPIで使おうとすると、3段階に分けて実行する必要があります。動的クエリを使えば、WHERE や GROUP などで条件を指定する部分を変数として扱えるようになるため、各社個別にレポートを作成する時など非常に便利です。

 

就活からこれまで

年明けすぐに、就活のため他社のインターンなどに参加し、2ヶ月以上お休みをいただきました。就活ではいわゆる JTBC (Japanese Tradititonal Big Company) を中心に受けてきました。コロナの影響で思ったよりも早く選考が進み、3月いっぱいで内々定が出たので、今月から Oct に復帰しています。現在はデータ連携チームでRailsを書いています。

 

Oct のいい所・よくない所

ここまで、この1年間を振り返ってきましたが、ここからは私が思う Oct のいい所やよくない所を考えていきたいと思います。

 

個人的にOctに入ってよかったと思うところは、以下の4つです。

  • Web周りの知識が身についたこと 
  • チーム開発の経験
  • 非常にオープンな職場
  • 社員とも平等

一番はやはりWebまわりの知識が身についたことが大きな収穫だったと思います。また「インターンだから」といってやらせてもらえる仕事がショボくなったりはしませんし、機械学習あたりではかなり大きな役割も任せてもらえました。あと、ランチLTなどでの情報共有も盛んに行われています。JTBCでのインターン経験と比較しても、オフィスはとても明るい雰囲気なので、非常に働きやすい職場だと思いました。

 

一方で、「あまり良くないなあ」と思うところもあります。

  • ドキュメント類が未整備
  • 情報へのアクセス

何個も挙げようかと思いましたが、思い浮かんだのはこの2つだけでした(笑)

また、最近ではこのどちらも大幅に改善されてきています。


私が入った頃は旧チャットの仕様書がなくて、機能移植しようにもどうすればいいのか困ってしまったこともありました。また、情報のアクセス権が不明確なのも少し不満でした。かなり機密性の高い情報にアクセスさせてもらえる一方で、Google スプレッドシートなどにアクセス権がなく、最低限必要な情報を入手するのに時間がかかるなんてこともありました。

 

しかし、最近ではConfluenceにドキュメントがまとめられるようになり、情報の集約は進んでいますし、正式に社用アカウントが発行されたことで情報へのアクセス障壁も無くなりました。

 

学生インターンのすヽめ

Octが学生のインターンを積極的に採っているのかはわかりませんが、私はこの会社で働くことができて非常に良かったと思っています。教育制度が未整備であるという欠点はありますが、様々な技術に触れ、実務に携わるという経験はなかなかできるものではないと思います。また技術力の向上だけでななく、学外の人とのつながりを作るという意味でも良い経験になります。ここで言うのも難ですが、こうした経験は就活でも強みになります。是非、大学生、大学院生のうちに長期のインターンをしておくことをお勧めします。

 

最後に

なんだか書いていて退職エントリーみたいだなあとか思えてきましたが、私はまだしばらくOctにいるつもりです。少なくとも今年中は、Railsを書いたりしながら開発に携わっていきたいと思っています。

 

今回は、1年の振り返りがメインになってしまいましたが、次回以降記事を書かせていただく機会があれば、ちゃんとTechな記事を書きたいです。

 

近々、研究の中間報告が済んだら、もっとコミットできるようになるので、どうぞよろしくお願いいたします。

 

追申

MacBook Proのキーボードの調子が悪いです。