cookpad mart

careers

クックパッドマートのエンジニア採用試験

実際に採用活動に使われた問題を解いてみませんか?

Challenge!

Q1

大きさは同じで重さが異なる商品が複数あるとします。この商品N個を、以下の条件にそって3つのトラックに分配するアルゴリズムを実装してください。

- この問いの条件 -

1. すべての商品は同一の大きさ、重さの箱に入り、箱は個別のIDを持つものとする

2. プログラム実行時は、コマンドライン引数で「箱ID」と「重さ」の情報を与え、プログラムの結果には各トラックに積載する「箱ID」を出力してください。たとえば 1:50 の文字列をコマンドライン引数で渡したときは、箱ID=1, 重さ=50kg の商品とする

3. 商品は箱に入った状態で列となって連続で運び込まれ、重さは持ち上げるまでわからず、尚且つ同時に1つしか持ち上げられない

4. それぞれのトラックには、なるべく重さが均等になるように分配する必要がある

5. それぞれのトラックの積載可能重量に制限はない

実行例

$ ruby solve.rb 1:50 2:30 3:40 4:10

truck_1:1
truck_2:2,4
truck_3:3

Check!

check_box

この問いで見ているポイントは?

check_box

どんな業務に必要なスキルなのか?

Q2

任意の数のモンスターがいます。APIサーバーにそのうちの2匹を指定すると、対戦をさせた結果を得ることができます。モンスターの強さは決まっていて、同じモンスター同士であれば、対戦の結果は常に変わりません。また、三すくみのような状態は考えないものとします。このAPIサーバーをつかって、モンスターを強い順に並べてください。

API アクセス例

$ curl https://ob6la3c120.execute-api.ap-northeast-1.amazonaws.com/Prod/battle/dragon+griffin
{"winner":"dragon","loser":"griffin"}

実行例

$ ruby solve.rb griffin vampire dragon troll medusa

Check!

check_box

この問いで見ているポイントは?

check_box

どんな業務に必要なスキルなのか?

Q3

APIサーバーのアプリケーションに性能改善を目的としてキャッシュを導入するとします。アプリケーションのどの部分に、どのような手法でキャッシュを導入するのか記述したうえで、なぜその手法を導入するのか、メリットやデメリットを挙げて説明してください。

Check!

check_box

この問いで見ているポイントは?

check_box

どんな業務に必要なスキルなのか?

この3つの問いが解けたあなたを

クックパッドの新規事業は

求めています

Why?

なんで、こんな問題を出しているの?

クックパッドマートでは新たな流通の仕組みを作り上げるために下記のような技術課題に実際に挑まなければいけないから

例えば、

流通コスト最適化のための仕組みづくりが求められる

集荷場所と配送場所のマッチングの最適化、配送コスト率の削減、集荷配送ルートの作成と運用の自動化、流通商品におけるエラー発生率の削減など

流通総額向上のためのサービス開発が求められる

よく買う食材の定期購入、生産者や商品とユーザーとのマッチング精度の向上、レシピと連動したあわせ買い、問い合わせ発生率の削減など

バックエンドをスケールさせる仕組み作りが求められる

適切なサービス分割、発注処理のパフォーマンス向上、販売管理データのDBチューニング、管理機能の外部切り出しと認証・認可の整備など

Answer

これらの問題を解決できると

毎日の買物がもっと自由になり、次の100年のスタンダードになる「食」の流通をつくることができます。

「クックパッドマート」では毎日の買物を楽しくすることで、毎日の献立づくり、買物、調理すべてを変えることに挑んでいきます。そして、「新鮮で美味しい食材」を当たり前に安く買えるように、生産・流通・買物の新しい仕組みをつくっていきます。

そこには、

共に作りたい未来に挑む強いエンジニアが必要です。

次の100年の仕組みをつくる

サーバーサイドエンジニアを募集しています

クックパッドマートの提供する新しい「買物」の形は様々な役割のシステムを基盤にして成り立っています。クックパッドマートのサーバーサイドエンジニアは、ユーザ・販売者・流通の3つの視点から仕組みを考え、システムを開発を担当しています。インターネットとリアルワールドを交差する複雑なドメインの課題を一緒に取り組むエンジニアを求めています。今は事業拡大に伴って、既存の仕組みをスケールアウトする局面に入っているため、サーバーパフォーマンス、配送車積載効率の最適化、配送ルーティング、商品のレコメンデーション、など、面白い課題がごろごろ転がっています。

Check

職務内容

クックパッドマートのサーバーサイドエンジニアはこだわりの食材を生産者から生活者に直接お届けするための全過程の仕組みづくりを担当していただきます。

・生活者向けの注文アプリ、配送ドライバー向けアプリ、そして各種IoT機器向けのAPI開発
・商品の注文、配送のルーティング、配送者の積載管理など、物流の全過程を支える流通システムの開発
・販売者やオペレーションスタッフ向けの管理用Webアプリケーション開発

このポジションでは、実世界でのモノやヒトの動きを意識して、どのように設計・実装を行っていくべきかを考える点が、エンジニアとして腕の見せ所になります。

必要な興味・関心

食や料理に興味・関心がある方

必要なスキル

上記、Q1~3を解ける方

使われている技術スタック

開発言語:Ruby, TypeScript, Python, Goなど

フレームワーク:Ruby on Rails, Reactなど

その他の技術要素:AWS, Docker, gRPC, Elasticsearch, SORACOM, Twilio, Raspberry Pi, H3, OSRMなど

エントリー後のフロー

テクニカルテスト(技術試験)→面接(3回)→オファーのフローを予定しています。

挑む前に…

クックパッドマートの新規事業環境をもっと知る

エンジニア座談会

エンジニアとして働く環境や、どんなメンバーが何をしているのかをお伝えします!

サービスの裏側 / 技術紹介CM

注文から配達まで、サービスの裏側でどのような仕組み/テクノロジーが使われているか紹介しているCMです