blog.syfm

徒然なるままに考えていることなどを書いていくブログ

はてなインターンで最高の夏を過ごしてきた

明示的に言ってはいなかったのですが、この1ヶ月間、はてなサマーインターン 2017 に参加していました!

公式のページ 👇

developer.hatenastaff.com

TL;DR 用に言っておくと、最高の夏でした!!!

以下では、そのはてなインターンの思い出を振り返っていきたいと思います

はてなと自分

はてなは、はてなブログ (このブログもそう) や、はてなブックマークとかの Web サービスを作っている会社で、知っている人も多いかなと思います。
自分が一番好き (だった) サービスはうごメモはてなで、小学6年生のころに DSi を買ってもらってうごメモに夢中になっていました。
実際にやっていないとわからないと思うけど、うごメモうごメモシアターうごメモはてなとサービスを利用していって、それがきっかけでインターネットにのめり込むようになったという経緯があります。

ugomemo.hatena.ne.jp

高校 - 大学でエンジニアとして生きていきたいと思うようになってからは、エンジニアの視点としてもはてなを意識するようになりました。
また、去年の Mackerel チームだった id:upamune さんが自分の先輩だったので色々お話を聞いたりもしていました。
実際、はてなには自分の知っている著名なエンジニアがたくさんいて、今回応募したのもその二つがきっかけでした。

応募

はてなインターン 2017 の応募が始まって直後に JSON を書き始めた記憶があります。ちなみに、インターン生で最速でした。
JSON なのは、技術プロフィールを JSON 形式で提出しなければならなかったためです。
これから先、はてなインターンに応募する人はどんな内容を送ったか知りたいかな、と思うけど、自分の場合は取り敢えず中の人の目に留まるように今までつくったものをすべて列挙していました。
これは個人的な意見だけど、テンプレートの様なプロフィールを書くより自分がどんな理由でインターンに行きたいかを書くべきだと思います 🙌

そうして、エントリーし、面接を行って合格を頂いた。めちゃくちゃ嬉しくて、信じられなかった記憶があります。
ちなみに、今年ではてなインターンは 10 回目らしい、めでたい 🎉

事前課題

自分は Mackerel チームに配属されることになっていたので、ScalaJavaScript の事前課題がありました。
応募の際のプロフィールにも書いた気がするけど、Scala は一度も触ったことがなく、かなり苦戦していました。
それでもなんとか最後までやっていけたので、やる気次第でどうとでもなると思います 💪

前半課程

f:id:ktr_0731:20170908163504p:plain

前半課程は、インターン生全員ではてなの社員さんの方々からの講義を受け、課題をこなしていく形式で、各コースごとにメンターさんが2人付いていてわからないことがあればすぐに聞くことができるという最高の環境でした。
自分たちのメンターさんは id:syou6162 さんと、id:shiba_yu36 さんで、物凄くお世話になりました 🙇‍♂️
翌日くらいには課題へのコードレビューが行われて、全体でフィードバックを頂いたのでためになりました。
今年のキャッチコピーである、「Webサービス開発、上から下まで。」の通り、様々な種類の講義を受けられて非常に濃密でした。

初日に他のインターン生との顔合わせがあって、みんなレベルが高くて驚きました。
翌日からは、 Scala/Perl 基礎、SQL・DB、HTTP・WAF、JavaScript or iOS機械学習、デザイン・インフラ、AWS ハンズオン、サービス企画 と毎日色々な講義を受けることができて、午後は得た知識を使って演習課題を行うような形でした。
毎年 SQL・DB の課題が大変らしく、今年も自分を含めみんな苦戦していた…。

前半1週間でミニブログサービスを完成させ、後半1週間のうちの AWS ハンズオンで ECS にデプロイするところまで行い、覚えたばかりのことをすぐ実践的に活用できて楽しかったです。

JS 課題のマウスストーカーは Vim が振ってくるやつを、自由課題は Slack ライクなリアクションができる機能を開発しました!!

https://lycoris0731.github.io/mousestalker/

f:id:ktr_0731:20170908172403p:plain
自由課題 / 不穏なリアクションが並ぶ

前半課程の合間

社長会という社長の id:chris4403 さんと、サービス・システム開発本部長の id:onishi さん、CTO の id:motemen さんたちとインターン生でごはんを食べる機会があります。
インターンに来てから知ったのですが、id:motemen さんはうごメモはてなのメインの開発者で、当時のうごメモはてなの話や、ずっと聞きたかったはてなランドの話なども聞けたので良かったです。

ちなみに、最終日には id:hakobe932 さんにうごメモはてなソースコードを見せていただいて当時の記憶を辿りつつ技術的にどんな仕組みだったのか知ることができましたw

前半課程と後半課程の合間

はてなの社員さんによる京都観光に連れて行ってもらいました!
哲学の道以外行ったことのない場所で、とても良かった…

f:id:ktr_0731:20170908174049j:plainf:id:ktr_0731:20170908174054j:plainf:id:ktr_0731:20170908174059j:plain
左から南禅寺禅林寺、鴨川デルタ

後半課程

後半課程では希望通り Mackerel チームに配属されました。
相方は id:cohalz で、Scala がめちゃくちゃできてすごかった!!
メンターは id:itchyny さんで、以前からブログを読んだり、GitHub を見ていたりしていて知っていたので、そんな方にメンターになって頂けるのかとびっくりしました。
Mackerel はバックエンドが Scala、フロントエンドが AngularJS と TypeScript でできていて、自分は割りとフロントエンド周りの実装をしていました。
ペアプロしたり、フロントエンドとバックエンドに分かれてに開発したり、一人一つの機能を開発したりと色々なやり方をしました。
二人で開発していると、いろんな気付きがあったりしてとても良いです。
今年の Mackerel チームは6機能開発 & 3回のリリースを行いました! 🙌

f:id:ktr_0731:20170911215926g:plain
初リリースの様子です

id:itchyny さんは、1を聞くと100を教えてくれるようなメンターさんで、とてもお世話になりました。自分たちだけではこれほどの成果を出すことはできなかったと思っています。
また、すべての機能のデザインは id:takuwolog さんに手がけて頂きました。
自分たちが開発した機能については id:daiksy さんに Mackerel の公式のブログで記事を書いて頂きました。
このように、Mackerel チームの方々には本当にお世話になりました。ありがとうございました!!!

mackerel.io

mackerel.io

f:id:ktr_0731:20170911221145p:plain

後半課程の合間

宇治に観光に行ってきました 🚄

syfm.hatenablog.com

環境

はてなインターンはすべてにおいて環境が良いです。
ホテルはもちろん用意されていて (しかもオフィスまで5分)、昼ごはんはオフィスで毎日まかないが出ます 🍣
ちなみに今年からシングル部屋になって LGTM 画像は手に入らなくなりました。

twitter.com

京都なので観光もできて、周りにあるご飯屋さんも美味しいところばかりです。(美味しい飯屋情報もあります)
何度か社員さんにごちそうにもなりました。

オフィスではお菓子やジュースが食べ・飲み放題です。

本当にお金を使いません

インターン自体も、最初の方で書いたとおり、メンターさんや社員さんが必ずいて、気軽にガンガン質問できます。
後半課程では大体のチームが何度か開発 → レビュー → リリースのサイクルを回すことができるので非常にスピーディな開発が体験できます。

リリース後、Mackerel を使って頂いているユーザさんや、はてなの社員さんから感謝の声が聞こえてめちゃくちゃ嬉しかったです。

f:id:ktr_0731:20170913003136p:plain
良いシールももらえます

感想

はてなの社員さんや同じインターン生たちの技術力やサービスに対する姿勢、考え方を見て非常に刺激を受けた4週間でした。
恐らく、こんなにインターン生のことを考えられて作られたインターンは他のどこにもないと思います。
最初の方でもいいましたが、少しでも興味があるならば絶対に応募すべきだと思います。
自分の今までやってきたことを見つめ直すいい機会になったかなと思うので、これからのエンジニア人生にこの最高の体験を活かせていけるようこれまで以上に頑張っていきたいと思います。
最高の夏をありがとうございました!!

他のインターン生の記事

hogashi.hatenablog.com

snowman-mh.hatenablog.com

ishikawa-pro.hatenablog.com

k3ntaroo.hatenablog.com

cohalz.hatenablog.com