Greplinはどんなテクノロジーを使っている?
@junyaです。海外のテクノロジースタートアップが出している求人情報を探ることで、次のトレンドやマイナーだけどパワフルな技術、効率的に優秀な人材を見つける方法をうまく知ることができるのではないか、と思ったので、そんな記事をしばらく書いていこうと思います。
今回は、最近TechCrunch JAPANでもGreplin: エンジニア6名, 3か月で15億のドキュメントをインデクシングという記事で取り上げられたGreplinを探ってみました。
彼らが採用しているテクノロジーについては、GitHubで公開されているコードおよびQuoraのWhat languages/frameworks is Greplin using in their recently launched and much faster rewrite?という質問をざっと見ることで、おおまかに知ることができます。
それによると、インフラはAmazon Web ServicesのEC2/S3/SES、プログラミング言語はPythonとJavaがメインのようです(最近はScalaも使い始めたとか)。ライブラリやミドルウェアとしてはTwistedやApache Lucene、memcachedなど。どうしても遅くなりがちな、Amazon SESやSendGrid、KISSmetrics、Mixpanelといった外部サービスAPIへのアクセスを、Tornado Web Serverに含まれる非同期HTTPクライアントを利用した独自ライブラリで行うようにしている点は、なるほどなという感じです。
そんなGreplinは技術者の応募をThe Greplin Programming Challengeというページを通じて受け付けており、同社ブログによれば、エンジニアのShaneal Manekさんも450件ほどあったプログラミングチャレンジ経由の応募からの採用だそうです(この方はさっきのQuoraページでも回答を寄せてくれている)。このプログラミングチャレンジでは20分〜2時間ほどで解ける3つの問題が出題されるので、プログラミングに自信のある方は挑戦してみても面白いのではないでしょうか。
採用ページでは同社のエンジニアリングスタイルとして、
- 難しい問題をコードによって解決することが好き
- 何をするにも最速の方法を選ぶ(最速とは少ないCPUサイクルの場合もあるし、少ないプログラマーの稼働である場合もある)
- データ構造とアルゴリズムについての確かな知識(大学でも書籍でも実務で学んだものでも構わない)
- 勤務初日からコードをコミットする
といった点が挙げられています。
というわけで、「勤務初日からコードをコミットする」という表現からもわかるように、とにかくプラグマティックに「コードを書く」というスタンスが感じられるGreplinなのでした。
コメントを残す