Redshiftのデータをサービス改善に役立てるデータ転送システム Queuery

こんにちは、技術部データ基盤グループの佐藤です。この記事では最近業務として主に取り組んでいたDWHから外部へのデータ転送基盤であるQueuery(きゅうり)について、OSSとしてGitHubへの公開しましたのでこの記事でご紹介をします。 github.com Queueryと…

既存実装を活用しつつJetpack Composeを用いてクックパッドAndroidアプリの買い物機能を高速に開発している話

こんにちは、クックパッド事業本部 買物サービス開発部の佐藤(@n_atmark)です。 2019年新卒で入社後、クックパッドの新規サービスである「クックパッドマート」の開発に従事しており、2020年からはレシピサービス「クックパッド」iOSアプリの買い物機能を…

DroidKaigi 2021 において、「2020年代の WebView 実装」というタイトルで発表しました

こんにちは。モバイル基盤部のこやまカニ大好きです。 先日行われた DroidKaigi 2021 で「2020年代の WebView 実装」というタイトルで発表させていただいたので、今日はその発表を簡単にまとめようと思います。 当日聴いて頂いた参加者の方、本当にありがと…

RecBole を用いてクックパッドマートのデータに対する50以上のレコメンドモデルの実験をしてみた

本記事ではクックパッドのデータに対して多数のレコメンドモデルを適用する実験を行った様子を紹介いたします。

UINavigationControllerをカスタマイズ 〜OSの影響を受けづらいカスタムナビゲーションの実装〜

こんにちは、モバイル基盤部のヴァンサン(@vincentisambart)です。 iOS 15とXcode 13がリリースされました。最新のiOS SDKでビルドしてみたら、カスタマイズされたナビゲーションバーに修正が必要だったアプリが少なくなかったようです。しかし、iOS版のクッ…

クックパッドマートの多種多様な商品名から、扱いやすい「食材キーワード」を予測する

研究開発部の山口 (@altescy) です.今回は最近開発したクックパッドマートの商品の「食材キーワード」を予測する機械学習モデルを紹介します. 商品の食材キーワード予測とは? クックパッドマートでは日々様々な食材が多くの販売者から出品されています.…

DroidKaigi 2021にクックパッド社員が登壇します & アフターイベントを開催します!

こんにちは、モバイル基盤部の茂呂(@slightair)です。 エンジニアが主役のAndroidカンファレンス、DroidKaigi 2021 の開催がいよいよ来週にせまってきました。 今年は10/19(火)から3日間、オンラインで開催されます。 droidkaigi.jp クックパッドは、本カン…

今すぐ ALB のアクセスログをクエリする

AWS の ALB の大量のアクセスログに対して Athena を使って柔軟にクエリできる環境を自動的に作っておくシステムについて紹介します。

iOSDC Japan 2021 に社員7名が登壇します

こんにちは、モバイル基盤部の茂呂(@slightair)です。 発表される前は何も考えていなかったのに、あたらしい iPad mini の紹介ページを見ていたらちょっと欲しくなってきてしまいました。う〜む。 さて、毎年Appleの新製品やらOSアップデートの一般公開やら…

Cookpad Summer Internship 2021 10 Day Techコースを開催しました!

クックパッドでは2021年8月に今年度のサマーインターンシップを開催しました。本記事ではその概要をお伝えします

AWSフル活用!クッキングLiveアプリ「cookpadLive」を支える技術

メディアプロダクト開発部の長田(@osadake212)です。 私の主な仕事は、CookpadTV 株式会社のサービス開発をすることです。CookpadTV ではたくさんのサービスを同時に開発しており、今回の記事ではそのたくさんのサービスの中の一つである cookpadLive とそれ…

レガシーとなった TLS 1.0/1.1 廃止までの道のり

クックパッドでは 2020 年 12 月に TLS 1.0 および TLS 1.1 を廃止しました。全サービスでの廃止にあたっては関わる人数や影響範囲も大きくなるため、丁寧に進める必要があります。本稿ではこの一連のプロセスについて振り返ります。

クックパッドマートにおける宣言的ラベル生成

クックパッドマート流通基盤アプリケーション開発グループのオサ(@s_osa_)です。 少し前にクックパッドマートのラベル生成の仕組みを刷新したので紹介します。 クックパッドマートにおけるラベル クックパッドマートは「美味しい食材を生産者や市場から直…

ECS インフラの変遷

技術部 SRE グループの鈴木 (id:eagletmt) です。 クックパッドでは Amazon ECS をオーケストレータとして Docker を利用しています。Docker 自体は2014年末から本番環境にも導入を始めていましたが当時はまだ ECS が GA になっておらず、別のしくみを作って…

大規模配信に耐える広告新商品「材料ジャック」の設計と開発

こんにちは! メディアプロダクト開発部の名渡山 ( @pndcat ) です。 業務では広告システム全般の新規開発・保守・運用を担当しています。 本稿では、クックパッドが企業向けに販売している広告商品の開発について紹介します。 クックパッドの広告プラットフ…

マイクロマネジメントは悪か?よりよい組織をつくるためのマネジメント形態についての考察

クックパッドでマネージャーをしている新井です。これまでの経験をもとに、今自分の中にあるマネジメントについての考え方を整理しました。「よい組織」を定義し、それを目指すためのマネジメント形態についてまとめています。

コード生成を用いたiOSアプリマルチモジュール化のための依存解決

こんにちは、モバイル基盤部の@giginetです。 iOS版のクックパッドアプリでは、2019年頃より、大規模なアプリを複数のモジュールに分割するマルチモジュールの導入を進めてきました。 今回はクックパッドアプリのマルチモジュール化の戦略について、主に依存…

データ分析 SQL とその実行結果を共有・検索できるアプリ Bdash Server を作りました

こんにちは。クックパッドでエンジニアをしている @morishin です。Bdash Server というデータ分析 SQL を共有するアプリケーションを作って社内で使い始めたのでその紹介をします。 クックパッドのサービス開発は「仮説を立てる」→「作ってリリース」→「効…

全国のスーパーに置かれる storeTV 端末の情報の取得にかかる時間を15分から10秒にした話

こんにちは。 メディアプロダクト開発部の柴原です。 普段は CookpadTV のサービスである storeTV や storeLive の Android アプリを開発を担当しています。 storeTV では現在、サービスを高品質に継続開発・運用するための仕組みづくりをしており、この記事…

音声インターフェースに最適なビジュアルインタラクションを実現するための APL テクニック

こんにちは、 CTO 室の 山田 (@y_am_a_da) です。今回は、 Amazon Presentation Language (APL) という、Amazon Alexa 向けのアプリケーション (以下、スキルと記述します) 上で主にビジュアルの表現や、音声や液晶操作によるユーザーとのインタラクションを…

アプリリニューアルを楽しくやりきる話

こんにちは。レシピ事業開発部 クロスファンクショナルグループの @kaa です。 クックパッドAndroidアプリは昨年秋にフルリニューアルを実施しました。 リニューアル内容としては半年ほど先にiosでリニューアルを実施したものを導入になります。 弊社はこの…

emruby: ブラウザで動くMRI

こんにちは、フルタイムRubyコミッタの遠藤です。 Ruby 3.0が出てもう4ヶ月経ってしまいました。最近のTypeProfの開発ですが、vscode拡張として使えるようにするために、一生懸命Language Server Protocolをいじって遊んでるところです。 今日の成果です。RB…

Cookpad Summer Internship 2021 (10 day Tech コース)を開催します!

研究開発部の深澤 (@fukkaa1225) です。今年になってエンジニアの立場から新卒採用を担当しています。 クックパッドでは、毎年恒例のサマーインターンシップを今年も開催します!本記事では、エンジニアコースについてご紹介いたします。 以下のインターンシ…

KomercoとFirebaseの話【後編】 - Firebase運用の仕組化

Komercoの高橋です。 昨日は前編でFirestoreの設計パターンについてお話しましたが、後編はFirebase運用の仕組化についてです。 前の記事でも述べたように、昨年はWeb版のリリースや送料無料イベントもあり、ユーザ数がさらに増加してきています。 サービス…

KomercoとFirebaseの話【前編】 - Firestoreの設計パターン

こんにちは。Komercoの高橋です。 Komercoがリリースされてからもうすぐ3年が経とうとしています。 クックパッドの新規事業「Komerco」ではバックエンドのほぼ全てをFirebaseで運用してします。 新規事業のためエンジニアの数はまだ少ないものの、Firebaseの…

クックパッドマートの生鮮食品を SORACOM の IoT デバイスで遠隔温度監視している話

この記事では、クックパッドマートの物流の一部で SORACOM のサービスを活用して生鮮食品の遠隔温度監視を行っている話について、主にサーバーサイドの取り組みを紹介します。

JSON Schema をクックパッドマートの商品登録画面に導入した話

主にバックエンドのエンジニアとしてクックパッドマートの開発に携わっている塩出( @solt9029 )です。 美味しい食材をユーザにお届けするサービスであるクックパッドマートでは、日々街の販売店や地域の生産者が商品の登録を行っています。 商品を登録する…

Cookpad Online Spring Internship 2021 と Hackarade を合同開催しました

ユーザー・決済基盤部の三吉(@sankichi92)です。 昨年よりエンジニアの立場から新卒採用を担当しています。 2月の記事で告知したスプリングインターンシップを 3/22〜26 の日程で開催しました。 また、同時に社内でも Hackrade Remote #2 を開催し、社員も…

GraphQL Code Generator で TypeScript の型を自動生成する

GraphQL Code Generator を使って GraphQL のスキーマやクエリから TypeScript の型定義を自動生成する仕組みについて紹介します。

レシピサービスのフロントエンドに CSS in JS を採用した話

こんにちは。技術部クックパッドサービス基盤グループのkaorun343です。我々のチームでは レシピサービスのフロントエンドを Next.js と GraphQL のシステムに置き換えている話 にて紹介したとおり、レシピサービスを Next.js ベースの新システムへと移行し…

/* */ @import "/css/theme/report/report.css"; /* */ /* */ body{ background-image: url('https://cdn-ak.f.st-hatena.com/images/fotolife/c/cookpadtech/20140527/20140527163350.png'); background-repeat: repeat-x; background-color:transparent; background-attachment: scroll; background-position: left top;} /* */ body{ border-top: 3px solid orange; color: #3c3c3c; font-family: 'Helvetica Neue', Helvetica, 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', Meiryo, Osaka, 'MS Pゴシック', sans-serif; line-height: 1.8; font-size: 16px; } a { text-decoration: underline; color: #693e1c; } a:hover { color: #80400e; text-decoration: underline; } .entry-title a{ color: rgb(176, 108, 28); cursor: auto; display: inline; font-family: 'Helvetica Neue', Helvetica, 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', Meiryo, Osaka, 'MS Pゴシック', sans-serif; font-size: 30px; font-weight: bold; height: auto; line-height: 40.5px; text-decoration: underline solid rgb(176, 108, 28); width: auto; line-height: 1.35; } .date a { color: #9b8b6c; font-size: 14px; text-decoration: none; font-weight: normal; } .urllist-title-link { font-size: 14px; } /* Recent Entries */ .recent-entries a{ color: #693e1c; } .recent-entries a:visited { color: #4d2200; text-decoration: none; } .hatena-module-recent-entries li { padding-bottom: 8px; border-bottom-width: 0px; } /*Widget*/ .hatena-module-body li { list-style-type: circle; } .hatena-module-body a{ text-decoration: none; } .hatena-module-body a:hover{ text-decoration: underline; } /* Widget name */ .hatena-module-title, .hatena-module-title a{ color: #b06c1c; margin-top: 20px; margin-bottom: 7px; } /* work frame*/ #container { width: 970px; text-align: center; margin: 0 auto; background: transparent; padding: 0 30px; } #wrapper { float: left; overflow: hidden; width: 660px; } #box2 { width: 240px; float: right; font-size: 14px; word-wrap: break-word; } /*#blog-title-inner{*/ /*margin-top: 3px;*/ /*height: 125px;*/ /*background-position: left 0px;*/ /*}*/ /*.header-image-only #blog-title-inner {*/ /*background-repeat: no-repeat;*/ /*position: relative;*/ /*height: 200px;*/ /*display: none;*/ /*}*/ /*#blog-title {*/ /*margin-top: 3px;*/ /*height: 125px;*/ /*background-image: url('https://cdn-ak.f.st-hatena.com/images/fotolife/c/cookpadtech/20140527/20140527172848.png');*/ /*background-repeat: no-repeat;*/ /*background-position: left 0px;*/ /*}*/