peaceiris blog

peaceiris のブログ

はてなインターン2020参加記

目次

はてなインターン2020に参加しました

hatenacorp.jp

某ウイルスの影響で、なんと初のリモート開催。

例年通りだと、

  • 期間: 4週間
  • 開催地: 京都オフィス
  • 前半2週間: 講義
  • 後半2週間: はてなのサービスに新機能を実装

という構成だったそうですが、今夏は

  • 期間: 1週間
  • 開催地: リモート
  • 1日目: 講義
  • 2~4日目: サンプルサービスに新機能を実装
  • 最終日: 成果発表会

という内容でした。

実際には第一日程と第二日程の2回開催で、自分は第二日程 (2020-09-07 から 2020-09-11) に参加させていただきました。

リモート参加ということで他のインターン生も全国各地から参加しており、福島、東京、名古屋、大阪、京都、和歌山、アメリカ、のように日本全国各地どころかアメリカからも参加していたりと、過去に類を見ない形式のインターンだったと思います。

developer.hatenastaff.com

なぜ応募したか

これまでハッカソンに参加したり、リモートで仕事したり、OSS を公開したりはしてきましたが、インターンというものだけは参加したことがありませんでした。 なので「M1 の夏こそは」と学部卒業の頃は思っていました。 ですが、皆さんご存じの通り今年3月には日本でも某ウイルスが蔓延を始めており、 卒業記念パーティー、入学式などが中止になっていく中でインターンも参加できないだろうと思っていました。

そんな中以下の記事がタイムラインに流れてきました。

developer.hatenastaff.com

これは行くしかない! と思いすぐに (何日か後に) 応募しました。

もともと ghq のユーザーで id:motemen さんのことを知っていたり、はてなの情報が Mackerelid:a-know さん経由で入ってきていたので、はてなインターンのことは知っていましたし興味もありました。

この記事を書いている今は「あのとき応募しておいて良かった」と思います。

選考

応募課題

docker run --rm -it hatena/apply-for-internship-2020:latest

面接

id:motemen さんに面接していただきました。その時は選考に悪いかなと思い「ghq 使ってます!」とは言えなかったのですが OSS の話をできて楽しかったです。「公開した時点でその OSS は自分の需要を満たしているので、その後に自分が使わないような機能を提案されても実装する気にならない。実装したとしてもメンテナンスが大変だよね。」みたいな話でした。その後、最終日の面談で ghq 使ってることはちゃんと伝えることができました。

交流会と歓迎会

インターン期間の前週に交流会がありました。飲み物と夕食用意して Zoom に集まる、という感じです。各自自己紹介したり id:onishi さんによる京都オフィス案内があったりと楽しく過ごせました。まさか同じ大学からも参加者 (id:justym さん) がいるとは思ってもいませんでした。

インターン期間一日目には、歓迎会という名で交流会と同じ形式の会がありました。id:chris4403 さんと麻婆豆腐の話で盛り上がりました。

id:skmatz さんには peaceiris/actions-hugo を使っていただけているようで嬉しかったです。

一日目講義

id:cockscomb さんと id:itchyny さんによる講義が合計5コマ (1コマ45分) ありました。

  • Web API
  • コンテナ
  • Kubernetes
  • マイクロサービス
  • 課題の説明

Kubernetes や gRPC, Microservice の概要を掴みやすい構成で、なおかつ重厚な講義でした。

docker run --rm -i hatena/intern-2020-docker-quiz 

内容は後日公開されるとのことでお楽しみに。

(追記: 2020-10-15) 公開されました。

hatenacorp.jp

サービス開発

二日目から四日目は、以下の Template Application に機能を追加していくことが課題でした。

github.com

上のテンプレートから生成した下のリポジトリで開発を進めました。

github.com

メンターは id:pyto86 さん。id:dilmnqvo さんと一緒に pyto86 部屋という Discord の音声チャンネルに入って作業しました。質問・相談があればその音声チャンネルでやりとりをして、作業ログなどは Scrapbox に書き、ソースコードの変更は Pull-request を作ってレビューしてもらう、という感じでした。

Kubernetes の構成や gRPC サービスの立ち上げ方・接続の仕方を把握するのに苦労しましたが id:pyto86 さんに聞いたり、説明しながらやっていると疑問はすぐに解消できました。普段の OSS では Issue や Pull-request が飛んできてレビューすることはあれど、レビューしてもらうことはなかなか無かったので、レビュイーの立場で新しい学びがありました。一人だと意識できなかった観点でテストケースを改善できたり、Table Driven Test を教えていただいたりしました。これから Go をどこかで使っていきたいとも思えるようになった1週間でもありました。チーム開発とは少し違うかもしれませんが、その一端を経験できました。

期間中は id:cockscomb さんの思いつきで「インターンリーダー」に任命されました。過去には id:pokutuna さんがリーダーをやったという先例があるらしいです。

はてなインターン2011リーダーがレポートを書きました - ポクポク

インターンリーダーが結局何だったのかは今でもよく分かっていませんが、他の音声チャンネルに遊びにいったり、積極的に喋ることを心がけていました。

成果発表会

speakerdeck.com

もともとの課題

  • Markdown 記法の実装
  • Title を取得する Fetcher サービスの実装

に加えて発展課題として OGP 画像取得サービスを新規サービスとして実装しました。

3部門の表彰があり「おもしろ賞」をいただいきました! ありがとうございます!

送別会後にも二次会として Discord で23時までお話しできたのも楽しかったです。いつか必ずオフィスに遊びに行きます!

期間中のツイートとか

Twitter で #hatenaintern2020 を付けて呟いた一連の投稿の最初がこれです。

最後に

例年とは異なる形式での開催で様々な苦労があったと思いますが、今年もサマーインターンを開催いただきありがとうございました。一緒に参加していただいたインターン生の皆さんもありがとうございました。この経験を糧にこれからも色々頑張っていきます。 ʕ◔ϖ◔ʔ 👍

他のインターン生の記事