Repro 株式会社に入社しました

社内インタビュー記事でご存知の方もいるかもしれませんが、今年の 8/1 に Repro 株式会社 に入社しました。
Repro を運営している会社です。Repro はグロースハックツールと紹介されることが多いですが、アプリに SDK を組み込むことでコホート分析、ファネル分析等のアナリティクス機能や特定の条件を満たすユーザにプッシュ通知を送ったり、アプリ上でメッセージを表示したりする機能などを提供しているサービスです。

入社して最初のタスクの予定だった Rails 5.1 へのアップグレードがようやく一段落したので近況報告です。

前職では何をやっていたか?

主に Rails を使ったサービス開発をしていました。あとは検索っぽいことをやったり、検索用のインデックスを作ったりするのに自然言語処理っぽいこともやったりしました。
個人ブログに書けるような内容しか書いてないですが、開発者ブログも参考になるかもしれません。

なぜ Repro?

自分がより貢献できる会社で働きたいと思って、最初は次のような異なる軸で転職先を探していました。

  • 機械学習・自然言語処理の知識を活かせる会社
  • 自分の興味のある分野のサービスを展開している会社
  • 一緒に働いてみたい人のいる会社

「機械学習・自然言語処理」はエンジニアとしての強みを作ろうと思って修士の頃に頑張った分野なので、それなりの思い入れはあったんですが

  • 社会人になってからはほとんど勉強できていないのでもう強みとは言えなさそう
  • 機械学習・自然言語処理の知識を売りにしなくても、自分はエンジニアとしてそれなりにやっていけるだろう

みたいな理由から拘るのはやめました。拘るのをやめただけで、今後機械学習・自然言語処理を全くやらないと決めたわけではありませんが。

そんなこんなで残る 2 軸のうちどちらかを満たしている 3 社を受けてみて、結局「一緒に働いてみたい人のいる会社」がきっかけで受けてみた 2 社が残り、Repro に決めました。

決め手としては次の要因が大きいです。

  • @joker1007 さんと働いてみたかった
    • 技術的負債と向き合って、あるべき姿に変えていっているというイメージが傍から見てあった
  • joker さんがエンジニアのトップ(CTO)にいて全体を見ていれば技術的に辛い方向には進まないだろう
  • co-founder で VP of Engineer でもある @threetreeslight さんがエンジニア採用の窓口であることが好印象だった
  • 経営陣にエンジニア畑の人が複数人いるのでエンジニアの発言権もそれなりにあるだろう
  • 1 日体験入社をしてみて働きやすかった
    • コミュニケーションが取りやすかった
    • ドキュメントがしっかり整備されていた
    • スタートアップとは思えないぐらい開発環境がしっかりしていた

入社してから 4 ヶ月以上経ちましたが、入社前の印象とはそれほど乖離がないです。
ドキュメントの文化が根付いているのは素晴らしいですね。多くの人はちゃんと書いている印象です。

入社してからどんなことをしたか?

紆余曲折あって最初は SRE チームに配属されたこともあり、機能開発よりもそっち寄りのことを多くしています。主なものとしては以下のようなところでしょうか。

  • 分散 RSpec の改善・高速化(実行時間をだいたい 3 分の 2 にした)
    • circleci コマンドを使ってテストケースを良い感じに分割した
    • aggregate_failures を使って examples を統合した
    • worker ごとにログのタグを変えてログを分離できるようにした
    • CI が安定して結果の出力まで行うようにした
    • Karma 等、RSpec 以外のテストの出力も JUnit 形式にして見やすくした
    • 分散 RSpec の恩恵を受けにくい長大なファイルを分割した
  • デプロイ前の前提条件、デプロイ後の条件が満たされているかチェックする仕組みの導入
    • 「デプロイ前後にあるスクリプトが実行されていて、その結果テーブルがこういう状態になっている」とか
    • 浸透しているかは微妙なところ・・・
  • S3 の特定のファイルがアップロードされると通知される仕組みの導入
  • AWS Lambda functions のリポジトリ管理
  • Fluentd の deadlock の解消
  • アラート対応の負荷軽減
    • 緊急対応に分類されているエラーの見直し等
  • Rails 5.1.4 へのアップグレード

最初は使ったことのないツールやミドルウェアばかり扱っていることに加えて、ドメイン知識も皆無だったのでキャッチアップがとにかく大変でしたが、今は何とかやれていると思います。

Rails 5.1.4 へのアップグレードも大きな問題が出なくて一安心です。QA の方々が事前に入念にチェックしてくれたおかげで安心してリリースできました。

あと、昨晩社内のエンジニアの懇親会で LT をしたので、一部抜粋したスライドを載せておきます。
Representer Notes の内容がないと、物凄く薄っぺらい内容になるので一応載せてありますが、書いてあっても言ってない内容や書いてなくても言っている内容が多分にあります・・・

最後に

まだまだキャッチアップし切れてないことも多々ありますが、そろそろキャッチアップだけでなくちゃんとした成果を出せるよう頑張りたいと思います。

あと、Repro では Rails エンジニア、JS のフロントエンジニア、SRE(インフラエンジニア)、機械学習エンジニア等、絶賛募集中なので、興味があれば下記採用ページから応募してもらったり、@a_bicky にご連絡いただけたりすると嬉しいです!今は誰からでも DM を受け取る設定になっています。

https://repro.io/jp/careers/