ニコニコの就業型インターンに参加してきました!

はじめに

こんにちは。ニコニコでサーバーサイドエンジニアの就業型インターンシップをしていました有馬海人です。 インターンシップに申し込んだ当時は大学院修士課程1年の夏休み前でした。 研究では「スパコン用プログラム開発者の開発支援をするツール」の開発をしています。 期間は週3日、2021年10月初めから2022年3月末、1日当たり4時間の稼働でした。 週5の8時間労働に換算すると約1か月ほどです。

申し込みの動機

申し込み当初はこんな動機で申し込みました!

  1. せっかくなら有給インターンに参加したい
  2. なんとなくドワンゴって技術高そう→ためになるかも!
  3. 落ちても死ぬわけじゃないしな

「申し込みの動機」からは少し離れてしまいますが、面接のときに印象深いエピソードは唐突にコーディングテストが始まってびっくりしたことです。

業務内容

ニコニコの基盤として使われるシステムの開発を行うチームに参画しました。メンバー数は4人で、面接当初は知りませんでしたが、僕の場合は面接に出てきた社員の方々(二人)はチームのメンバーでした。 Go言語を用いた開発をするということでしたが、自分は経験がなかったので最初はGo言語のチュートリアルをしました。 期間は3週間くらい(実質9日)でした。 やっている最中はチームのメンバーの方に質問をしたり作成したコードのレビューなどをしてもらいました。

Go言語のチュートリアルをして一通り触れた後は「バッチのデーモン化」のタスクを担当しました。 既存のデーモンとして動いてるプログラムのコードリーディングをしたりしながら、見よう見まねなところもありましたが、作業を進めました。 ローカルでは無事動いたので、次にデプロイする段階に突入しました。 バッチが動いていた環境が Kubernetes でしたので、 Kubernetes の設定を変更しないといけなくなってしまいました。 Kubernetes は名前しか聞いたことがないというような状況で全くの初心者だったので、触ってデプロイまでできただけですが勉強になりました。 デプロイの前に少し関係ない話かもしれませんが、利用していた VPN と WSL 環境のネットワークの相性が悪いらしく、環境由来の詰まりに衝突してしまいました。 自分は「 WSL2 があれば無敵だぜ!」と思っていたので少し悲しくなりました。

つぎに、「データ移行用API開発」のタスクを受けました。 複数の既存APIを組み合わせるだけで目的は達成できたのですが、実行時間に問題があったのでパフォーマンスチューニングを行いました。 1回のみでよい処理が複数行われているので、それを1回だけ実行するように修正したりだとか、 goroutine を使ってスレッド処理を行えるようにしたりしました。 実装自体は着々と進んでいたのですが、方針転換により当面の間はデータ移行する必要がなくなってしまい、タスクが凍結されてしまいました。供養 🙏。

最後のタスクとして「社内用ヘッドレスCMS用API開発」のタスクを受けました。 対象サービスの社内用ヘッドレスCMSはバージョン2からのリプレース案件のようでした。 このタスクではニコニコ動画という長い歴史の中で使われなくなったワードなどが出現するなどの要素もありましたが、チームメンバーの解説などもあって何とかタスクをこなすことができました(例: フォロー関係において、被フォローユーザーをセレブ、フォローユーザーをファンと表現するなど)。

開発環境の紹介

GitHub

コードの管理は GitHub で行われていました。 個人的には慣れた UI だったのでありがたかったです。 GitHub Enterprise Server と GitHub Enterprise Cloud を両方取り扱っているのですが、双方の連携が最初はうまくいかなくて少しドキドキしました。 GitHub Enterprise Cloud のアカウントは作り直すことなく、普段利用している GitHub のものを使用することができました。 ちなみに、自分が参加した当初は自分のチームが GitHub Enterprise Cloud の先行導入チームだったようですが、現在はどのチームも導入することができるようです。

自分の書いたコードのプルリクエストに対してレビュワーの方からたくさんレビューが来ました。 インターンシップに参加する前にも開発のアルバイトをしていたことがあるのですが、ここまで多くのコメントが来たことがなかったので最初は緊張しました。 チーム固有のものかもしれませんが、少なくとも自分が参画したチームではそういう文化のようです。 当然ですが、レビューのコメントは罵詈雑言ではなく、理にかなった適切なコメントでした。

エディタ

ドワンゴでは JetBrains 社製品のサブスクリプション契約をしているので、 JetBrains の IDE が使い放題でした。 特にエディタに強いこだわりがないというのと、チームメンバーに IntelliJ IDEA をお勧めされたので使いました。 また、ペアプログラミングの時はリアルタイムにリモートでコードを共有できる Code With Me という機能を使いました。 特に制限はなく、こだわりがあったりして自分でやっていけるなら VSCode や vim でもいいみたいです。 エディタの選定は個人の力量次第ですね。

ノートパソコン

OS は Windows と macOS が選べました。自分が貸与されたノートパソコンのスペックは次の通りです(2021年 当時)。

  • CPU: Core i7 7500U
  • メモリ: 32 GB
  • SSD: 256 GB

Windows環境においては、僕がインターンシップを開始してから貸与PCのグレードアップが実施されたので現在はもっと良いのノートパソコンを使用できるようです。 また、 macOS 側のマシンのグレードアップも行われ、 M1 MacBookPro も選択肢の中の一つとしてあるようです。

その他

作業用の機材としてマウスとノートパソコンが送付されました。 希望すればディスプレイも送ってもらえるようです。 自分が作業する環境にはディスプレイが既にあるのでディスプレイは送ってもらいませんでした。 インターンシップとはいえ 4K ディスプレイが貸与されるようです。

Slack

基本的にはオンラインでしたので Slack で連絡を取りました。 当然(?)ワークスペース固有のリアクションが大量に存在していました。 例えばですが、 eyes_ だけでもたくさんありました。 ちなみにコミュニケーション的な観点では、僕は日常的に :eyes: を使っているので、ドワンゴでも普通に使えてよかったです。 個人的に面白かったのは「ドワンゴの random チャンネルは定期的に会話があるのにも関わらず、 KADOKAWA の random チャンネルはほとんど会話がない」というのを聞いて会社の文化の差を感じたことです。

eyes slack emoji

勤務環境の紹介

銀座の歌舞伎座タワー

毎回、会社への入り口がわからなくて建物の周囲を一周していました。 大きなIT系の会社で銀座にあるのはかなり珍しい気がします。 お菓子神社と呼ばれる謎の施設(?)がオフィスに存在(しかも複数階にわたって)しており、割安でお菓子やエナジードリンクを買うことができます。 コロナ対応もあって基本的にエンジニアはテレワークとなっており、オフィスはフリーアドレスになってました。 カフェみたいに隣の人が普通に見える席だけではなく、箱のような外観で周囲から隔絶された席などがありました。 少し騒がしいのが好きな人や静かな環境が好きな人など、いろんなタイプの人が使いやすいオフィスになってました。 オフィスの設備で自分的に嬉しかったのは、フリーアドレス席に設置されているディスプレイが USB-C 一本で給電とディスプレイ出力ができるタイプだったことです。 数日だけ出社した日があったのですが、充電器をもっていかなくても作業できるので荷物を軽くすることができたからです(多分そのタイプだろ!と思って初出社の日は充電器を持っていかなかったので安心した)。

基本テレワーク

先ほども述べましたが基本的にエンジニアはテレワークとなっていました。また、遠隔地の方はフルリモートも可能です。僕が参加した当初はもう一人インターンの方がいて、その方は関西からのリモート参加のようでした。 インターンシップの人はテレワーク手当が1日 1,000 円つきます(上限はひと月あたり 20,000 円)。 テレワーク環境を向上させるための手当のようです。当然ですが社員もテレワーク手当があります。 僕の場合は出社(歌舞伎座タワーに行くこと)は計4回でした。

出社時ランチ

少し偏見もあるかもしれませんが銀座はサラリーマンが多いので歌舞伎座タワーの周囲には昼食屋さんがたくさんあります。 出社したときはチームのメンバーにお店に連れて行ってもらいました。 お店の名前は失念してしまいましたがおいしかったです。ごちそうさまでした。

curry
wasyoku

その他

自分がインターンシップに参加している最中に KADOKAWA グループと一部の Slack ワークスペースが結合され、所沢にあるオフィス(ところざわサクラタウン)の非常においしそうなレストラン情報が流れてきます。

ramen
syokudou

ところざわサクラタウンとはオフィスとレストランだけではなく、クールジャパンを構成する要素がたくさん集まっている施設で、図書館、ホテル、神社などもある総合文化施設のようです。 ドワンゴの社員は所沢にあるオフィスを会議などで利用することができるようなのですが、インターンシップの人はまだ利用できないとのことで、少し残念でした。 というのも、インターンの一環として行くと時間はかかってしまうものの交通費は支給されるので、「SNS映えしそうな施設でインターンできるなら最高じゃん!!!あと、ご飯も美味しそう!」と思っていたからです。

インターンシップの大変だったことなど

当然ですが、初めての人と関わるので最初は大変でした。 自分のチームでは雑談チャンネルがあったので徐々に人となりがわかってきた後は快適でした。 ドワンゴ特有のというよりリモートワーク大変あるあるになっちゃいますが、質問とかもしづらいのも少しつらかったです。 対面していた場合は状況によっては見れば相手が忙しくないかどうかなどがわかりますが、相手の状況を全く見られないので、質問するときは、自分の状況、やったこと、など答えやすいように質問をまとめたあとに投げるように心がけました。 これはテレワークかどうかによらない気もします。

自分から「10月からが良い」と言ったため、長期休業中ではない時期にインターンシップに参加することになったのですが、大学院での研究などとインターンシップを両立するのが大変でした。 当然、職業体験なので土日祝日にインターンシップをするわけにもいかず、平日3日間はインターンシップをして、残った時間で研究や授業の課題、さらには就活を進めるという状態はかなり体力を使いました。

終わりに

インターンシップする前にニコニコを触れていた時間の何倍もの時間(僕の場合はニコニコ大百科しかニコニコ系のサービスを利用したことがない)をニコニコに費やしたので不思議な気持ちになりました。 いわゆる中の人たちの間では、ニコニコをどう良くしていくかの議論なども Slack で起きていて、サービスを更に良くしようとする精神を感じることができました。 仕事をする環境も素晴らしくて、快適に仕事することができました。

個人の意見ですが、インターンシップに応募しようか迷っている人は、応募してみてほしいです。 なぜなら落ちたところでノーダメージなうえに受かれば勉強にもなるしお賃金ももらえます。 枠の都合上誰でも受け入れてもらえるわけではありませんが、スキルチェックの一つだと思って気軽に応募してみてください。

社員からのご案内

今はまだインターンシップの募集をしていませんが、株式会社ドワンゴでは教育事業、ニコニコ事業、モバイル事業など様々なサービス、コンテンツを一緒につくるメンバーを募集しています。ドワンゴに興味がある。または迷っている方がいれば、気軽に応募してみてください。