エムスリーテックブログ

エムスリー(m3)のエンジニア・開発メンバーによる技術ブログです

夏の2週間エンジニアインターン記

こんにちは、エムスリーのエンジニアリングG AI・機械学習チームで今年の8月の2週間ほどインターンをしていました丸尾です。

今回は、2週間という短めの期間ですが、内容の濃いインターン活動ができたいと思い、インターンの内容や雰囲気をお伝えしようと思います。

エムスリーのエンジニアインターンの良いところ

初めに、エムスリーのエンジニアリングGのインターンの良かったところを挙げたいと思います。これからインターンに参加しようと考えている方はぜひ参考にしてください!

  • 自分の興味やスキルセットに合わせてインターンの内容を決められたこと
  • モダンな開発を体験できたこと
  • 複数名のエンジニアの方と面談ができたこと

この3点は、この2週間で特に印象に残ったポイントで、エムスリーのインターンに参加できて良かったなあと思いました。

インターン中に実施するタスクとは別に、エムスリー内の複数名のエンジニアの方との1対1の面談の時間を作っていただけました。その際にエンジニアのキャリアの話や、エムスリーにおけるエンジニアリングについてお聞きすることができ、今後のキャリア選択についてとても参考になりました。

インターンで実装した内容

エムスリー内では、データ周りに以下の問題を抱えていました。

  • 欲しいデータがどこにあるのかわからない
  • あるデータをどのように使ったらいいのかわからない

今回のインターンでは、これらの解決の一歩として、データベースのメタデータ検索ツールの作成を行い、次のような機能を実装しました。

  • データベースのメタデータの検索機能
  • 該当テーブルを利用しているSQLのクエリ例を表示できる
    • 社内Re:dashのクエリから取得

f:id:snowhork:20180815231803p:plain
今回のインターンで実装したツール「Jensen」の画面

初日

ここからは、時系列で今回のインターンの雰囲気をお伝えしようと思います。

初日は、まずはパソコンのセットアップや、アカウントの設定などで半日が過ぎ、お昼頃にメンターの笹川さんと相談してどんな内容のタスクにするかを話し合いました。 笹川さんは、笑顔が絶えない筋肉系エンジニアです。

www.m3tech.blog

このブログによると、 AI・機械学習チームのリーダーはベンチプレスで決まるそうですが、チームの方々はキャラが濃くて面白い人ばかりでした。

今回のインターンでは、データ周り(特にBigQuery)を触ったり、プログラミングを中心にやりたいという私自身の希望があり、またエムスリーのデータ周りの課題がうまく重なり、前述のデータベースのメターデータ検索ツールを作成することになりました。

AI・機械学習チームでは、プロジェクトの名前をアルファベット順でArchimedes, Bourbakiといった数学者や物理学者の名前をつけており、今回のプロジェクトは『Jensen』 に決定しました。(Jensenはイェンセンの不等式などで有名な数学者です)

私は、Ruby on Rails の経験があったので、Railsを用いてアプリケーションを立ち上げました。チーム全体で、GitlabやDockerを用いた開発をしており、モダンな開発環境が整っていました。

1週間目

1週目で、最低限の機能として、ログイン機能とメタデータの検索機能をなんとか作り終え、この後、どんな機能を追加していこうか悩んでいました。その時に、VPoE兼プロダクトマネージャの山崎さんに、一旦デプロイしてフィードバックをもらった方が良いと言われ、簡易的にデプロイして、社内に公開することにしました。

後から振り返ると、早めに社内に公開したことはとても良かったと思います。公開と同時にフィードバックのためのアンケートを作成して、次の週ではそのアンケートを元に、Jensenが目指す方向性について深く考えることができました。

2週間目

2週目では、フィードバックを元に、Jensenの機能をどう拡張していくかを考えました。1週目では、とりあえずメタデータの検索機能を実装しましたが、さらに一歩踏み込んで、エムスリーの全員がデータを活用できるようにする にはどうすれば良いか、そのためには、どんなツールを活用していき、Jensenはどの領域を担うのか、ということをメンターの笹川さんと、チームの安田さんと議論をしました。今振り返ると、この議論がインターンの中でもっとも本質的なことだったかなと思います。

フィードバックの中に、各テーブルに対するSQLクエリの例があると便利だという要望がありました。 エムスリーでは、Re:dashというダッシュボードツールを使い始めていており、SQLクエリの例がある程度溜まっていました。これをJensen上で、テーブルごとにRe:dashのクエリを紐づけることで、よりテーブルの中身を理解できるようにしました。

インターンを終えて

最初は、必要最低限の機能を作ることに精一杯でしたが、後半はただプログラミングするだけでなく、目的に対してどういう課題があり、課題に対してどうやって解決するか、ということを真剣に考えることができました。

一人でプログラミングを勉強するだけではこのような経験はできないことで、実務でプログラミングをするということを実感した貴重な経験になりました。

f:id:snowhork:20180817110613j:plain
左から、メンターの笹川さん、私(丸尾)、安田さん

コードレビューをしていただいたり、技術的指導をしていただいたり、一緒に議論していただいたり、キャリアについて相談していただいたりと、大変お世話になりました。改めてありがとうございました!

エムスリーでのインターンに興味を持った方は、ぜひ下のリンクから応募してください! jobs.m3.com