人気順検索のSolrはスケールのためにディスクを捨てた

5年間も変化を寄せ付けず、強烈なレガシーとなっていた検索システムは、丁寧な観察に基づく大胆な設計とそれを実現する確かな実装によって近代化されました

Ruby に Software Transactional Memory (STM) を入れようと思った話

Ruby 3 で導入予定の、並列並行制御のための機能である Ractor は、意図的に Ractor 間でメモリの共有を排除するように設計されています。しかし、どうしても共有したいなぁ、というときのために、Software Transactional Memory (STM) を使っていい感じに共…

2020年のクックパッドAndroidアプリのアーキテクチャ事情

こんにちは、モバイル基盤部の加藤です。普段はモバイルアプリの基盤技術の整備や品質管理の業務に携わっています。 今回はクックパッドAndroidアプリ(以後クックパッドアプリ)の2020年時点でのアーキテクチャの紹介をしたいと思います。 アーキテクチャ導入…

nerman: AllenNLP と Optuna で作る固有表現抽出システム

事業開発部の @himkt です.好きなニューラルネットは BiLSTM-CRF です. 普段はクックパッドアプリのつくれぽ検索機能の開発チームで自然言語処理をしています. 本稿では,レシピテキストからの料理用語抽出システム nerman について紹介します. nerman …

ドキュメントベースの型安全なモバイルアプリ行動ログ基盤の構築

こんにちは。PlayStation 5が一向に買えない@giginetです。普段はモバイル基盤部というところでiOSの基盤開発をしています。 皆さん、行動していますか?我々は日々Webサービス上で様々な行動をしています。サービス開発において、改善に活かすための効率的…

日々の簡単なプロトタイピングに Flutter を活用する

こんにちは、 CTO 室の山田です。 私は新卒入社から現在までずっと Amazon Alexa や LINE Clova などのいわゆるスマートスピーカーやスマートディスプレイ向けのアプリケーション開発に携わっています。 特に Amazon Alexa に関しては、日本だけでなく、スペ…

負荷試験用 Web コンソールの開発

技術部 Site Reliability (SR) グループの id:itkq です。2020 秋タイトルで一番期待しているのはおちこぼれフルーツタルトです。本エントリでは、Web サービスの負荷試験に対する障壁を下げるために、汎用的な Web コンソール開発に至ったまでの話を書きま…

クエリログを使ったAurora MySQLの負荷テスト

最近はZX-25Rが気になっている菅原です。4気筒250ccといえば、以前バリオス2に乗っていたんですが、あれもよく回るよいバイクでした。足つきの良さが懐かしいです。 この記事では、クエリログを使ったAurora MySQLの負荷テストの話を書きます。 MySQLの負荷…

iOSDC Japan 2020 に社員2名が登壇します

iOS

こんにちは!とくなり餃子大好き( id:tokunarigyozadaisuki )です。 すっかり秋の気配がしてきましたね。餃子を焼きやすい気候になって嬉しい! さて、iOSと周辺技術を題材としたカンファレンス、iOSDC Japan 2020 が今年は9月19日(土)〜9月21日(月・祝…

Cookpad Online Summer Internship 2020 5 Day Engineer コースを開催しました

ユーザー・決済基盤部の三吉(@sankichi92)です。今年になってエンジニアの立場から新卒採用を担当しています。 5月の記事で告知したサマーインターンシップのうち、5 Day Engineer コースを 8/24〜28、9/7〜11 の2日程で開催しました。この記事ではその内…

Cookpad Pad 2 という自作キーボードノベルティをつくった話

こんにちは、高井です。みなさま Cookpad Online Summer Internship 2020、お疲れさまでした。 さて、今回はインターンのノベルティとして Cookpad Pad 2 という自作キーボードキットをノベルティとしてつくったので、その紹介と解説です。今年のインターン…

Rubyの開発を支える技術

こんにちは、遠藤(@mametter)です。RubyKaigi Takeout 2020お疲れさまでした。 今回は、遠藤が関わっている範囲で、「Ruby開発者会議を支える技術」「リモート議論を支える技術」「Rubyの品質を支える技術」についてざっと紹介してみます。

Amazon RDS/Auroraをクローンするシステムを作った話

こんにちは、技術部SRグループの菅原です。 最近、Ninja650からNinja1000に乗り換えました。パワーがあるせいで3速発進・4速発進が平気でできてしまい、シフトワークがどんどん下手になっています。精進したいものです。 この記事では、Amazon RDS/Aurora…

大規模なiOSアプリの画面開発を効率化するために動作確認用ミニアプリを構築する

iOS

こんにちは、モバイル基盤部の大川(@aomathwift)です。 iOSアプリの開発途中で画面のレイアウトなど僅かな変更を確認したい場合、最も確実な方法はアプリをビルドして該当の画面まで手動で遷移して確認する方法です。 この方法は特別なセットアップが必要な…

RailsアプリケーションのCIにDynamoDB Localを導入した話

こんにちは、事業開発部 サーバーサイドエンジニアの堀江(kentarohorie)です。 今回はRailsアプリケーションのCIにDynamoDB Localを導入した事例をご紹介します。 広告入稿システムとCI クックパッドでは自社製の広告入稿システム・配信サーバーを運用してい…

エンジニア社内留学制度を利用してAndroidアプリ開発を体験した話

こんにちは、事業開発部でデータ分析やデータエンジニアリングをやっている佐藤です。最近の楽しみはクックパッドマートで買ったコーヒー豆を挽いて淹れることです。 今日はクックパッド社内で実施されているエンジニア社内留学制度について紹介します。 エ…

Trivy + AWSによるコンテナイメージ脆弱性検査パイプラインの構築

技術部セキュリティグループの水谷(@m_mizutani)です。最近はPCゲーム熱が再燃しており、今はCities: Skylinesに時間を溶かされ続けています。 クックパッドでは レシピサービス の継続的なサービス改善の他にも、生鮮食品販売プラットフォームの クックパ…

クックパッドのサービスメッシュ基盤を改善した話

こんにちは、技術部 SRE グループの ryojiro (@flyhigh_ro) です。今回はクックパッドでのサービスメッシュ基盤を改善した話を紹介します。クックパッドでのサービスメッシュの構成については以前の記事をご覧ください。 クックパッドでは多くのサービス間通…

iOSでモダンなカスタムボタンを作ってみよう

iOS

お久しぶりです。モバイル基盤部のヴァンサン(@vincentisambart)です。 iOS標準のボタンクラスUIButtonが10年前に作られたものであって、当時存在していなかったAuto LayoutやDynamic Typeとの相性がよくありません。 Auto Layout、Dynamic Type、複数行表示…

KPI 設定の難しさについての思索とそれに付随した細かな考察

事業開発部でプロジェクトマネージャー兼エンジニアをやっている新井です。本稿では、サービス開発の中でも重要かつ難解な「KPI の設定」について、私がプロジェクトマネージャーとして普段考えていることや注意している点を紹介します。

Cookpad Online Summer Internship 2020 を開催します!

エンジニア新卒採用を担当しているユーザー・決済基盤部の三吉(@sankichi92)です。 クックパッドでは、毎年恒例のサマーインターンシップを今年も開催します! スプリングインターンシップに続き、新型コロナウイルスの影響をふまえ、サマーインターンシッ…

系列ラベリングによる NPS コメントのポジティブ・ネガティブ部分の抽出

こんにちは。研究開発部の深澤(@fukkaa1225)と申します。 クックパッドでは、顧客のロイヤルティを測る指標であるNPS(ネットプロモータースコア)のアンケートを毎月実施しています。 このNPSアンケートで集まってきたユーザの声(フリーコメント)は、クックパ…

インフラにかかるコストを正しく「説明」するための取り組み

クックパッドでは、 SRE が中心となって、サービスを動かす基盤の大部分である AWS のコスト最適化を組織的に取り組んでいます。 今回は、インフラにかかるコストを正しく「説明」するための取り組みということで、コスト最適化に貢献する社内アプリケーショ…

Ruby3 さみっと online 開催報告

Ruby インタプリタの開発をしている技術部の笹田です。以前から自主的にリモートワーク状態だったので、あまり仕事環境は変わっていません。が、子供の保育園の登園を自粛しているため、色々大変です(主に育休中の妻が)。日常がはやく戻ってくれることを祈…

在宅勤務でも雑談がしたい!在宅勤務の課題解決の取り組み

こんにちは、@morishin127 です。クックパッドの在宅勤務環境 - クックパッド開発者ブログ でも書かれていた通り、クックパッドは2月18日から現在に至るまで全従業員が原則在宅勤務となっています。突然の在宅勤務体制の中でも社員がなるべくいつも通りの生…

在宅勤務環境を改善する社内オンラインハッカソンを開催した話

CTO の成田です。星による記事、 在宅勤務環境の継続的改善 でもご紹介した通り、クックパッドでは国内外のグループ全体で在宅勤務に切り替えており、同時に勤務環境づくりに取り組んでいます。 先の記事では、椅子・机などのファシリティレンタルや、IT シ…

在宅勤務環境の継続的改善

コーポレートエンジニアリング担当 VP の @kani_b です。 新型コロナウイルス感染症の拡大リスクを鑑みて、従業員や関係者の皆さまの安全確保を目的に、クックパッドでは 2/18 (火) から、国内拠点の全従業員(正社員、契約社員、パート・アルバイト、派遣社…

Bridging the Gap Between Engineering and Design

iOS

Hello there, it's Dave Fox! I'm an iOS engineer from the Creation Development department in Cookpad. (@wowitzdave) In this post, I'm going to talk a bit about how I used custom internal tooling and prototyping tools to help Cookpad's desig…

サーバーレスで作るセキュリティアラート自動対応フレームワーク

技術部セキュリティグループの水谷 ( @m_mizutani ) です。ここしばらくはフルリモートワーク体制になったので運動不足解消のためウォーキングをしたり筋トレしていたら、リモートワーク前より健康になった疑惑があります。 クックパッドのセキュリティチー…

テストケース作成を仕様詳細化の手段とする実験

こんにちは。 テストエンジニアからサービス開発エンジニアにロールチェンジした、茂呂一子です。 先日リリースしました、iOSクックパッドアプリのリニューアルプロジェクトに参加し、サービス開発エンジニアとしての第一歩を踏み出しました。 今回は、アプ…

/* */ @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;*/ /*}*/