Homepage
Open in app
Sign in
Get started
Source Diving
Developer blog from the folks at Cookpad. @cookpad_dev on twitter
Ruby
Android
iOS
Machine Learning
Data
DevOps
Search
Careers
Follow
Following
Debugging Lock Wait Timeouts (in Ruby on Rails)
Debugging Lock Wait Timeouts (in Ruby on Rails)
Lock Wait Timeouts mean frustration for users. If a request ends with a Lock Wait Timeout error, that means a) we failed to fulfil a user’s…
Ollie Haydon-Mulligan
Mar 20, 2023
Learning to Boost — Query-time relevance signal boosting @ Cookpad
Learning to Boost — Query-time relevance signal boosting @ Cookpad
The job of a search relevance engineer frequently involves (as you probably already know if you’re reading this!) tuning different…
Muhammad Hammad Khan
Dec 12, 2022
Understanding n+1 query problems in Ruby on Rails
Understanding n+1 query problems in Ruby on Rails
n+1 queries are a common problem in web application development. This common pattern (or antipattern) can degrade application performance…
Gavin Morrice
Dec 7, 2022
This Rails cache is not your friend!
This Rails cache is not your friend!
I recently learned that some of the assumptions I had made about one of Rails’ features were completely wrong, and this would sometimes…
Gavin Morrice
Sep 16, 2022
How we improved our Rails app’s performance with Conditional Get Requests
How we improved our Rails app’s performance with Conditional Get Requests
HTTP provides a method of client-side caching known as Conditional Get Requests. This style of caching allows a client to cache the content…
Gavin Morrice
May 31, 2022
Debugging Deadlocks (in Ruby on Rails)
Debugging Deadlocks (in Ruby on Rails)
Until recently, I hadn’t dug into the causes and implications of database deadlocks. Then one day, an endpoint I’d been working on suffered…
Ollie Haydon-Mulligan
Mar 24, 2022
Making a Single Page Search with Turbo
Making a Single Page Search with Turbo
Turbo (part of Hotwire) is a supercharged version of Turbolinks. If you’re used to immediately turning off Turbolinks in any new project…
Tony Rowan
Dec 14, 2021
Solving Mysterious Logout Issues on iOS 15
Solving Mysterious Logout Issues on iOS 15
Learn how we discovered, debugged and fixed a mysterious bug introduced in iOS 15 that caused our users to be logged out mistakenly
Liam Nichols
Nov 25, 2021
Manage your Gradle dependencies with Version Catalog (not only) in Android
Manage your Gradle dependencies with Version Catalog (not only) in Android
If you ever built a single module Android app, you probably managed your dependencies manually. We all started there. Then as you move to a…
Łukasz Bogusz
Oct 15, 2021
Personalising Cooking Inspiration with Machine Learning at Cookpad
Personalising Cooking Inspiration with Machine Learning at Cookpad
Machine Learning @ Cookpad
Ammar Zaher
Oct 1, 2021
Custom Form Handling With Turbo
Turbo will be a default part of Rails from Rails 7, replacing Turbolinks and rails-ujs. This post is a result of time I spent digging into…
Ollie Haydon-Mulligan
Sep 28, 2021
Managing Kafka with Strimzi: Part 2 — Implementation
Managing Kafka with Strimzi: Part 2 — Implementation
In a previous blog post, I introduced Strimzi, a Kubernetes Operator for Apache Kafka, and discussed why we decided to manage our own…
Ken Wagatsuma
Aug 23, 2021
Let OpenAPI generate your Android network layer by leveraging Retrofit, Moshi, and Coroutines
Let OpenAPI generate your Android network layer by leveraging Retrofit, Moshi, and Coroutines
TLDR: By documenting the API with OpenAPI, we could automatically generate all the Moshi DTOs and the Retrofit Interfaces.
Víctor Albertos
Aug 10, 2021
Search at Cookpad: building new infrastructure
Search at Cookpad: building new infrastructure
TL;DR Teams who own the full stack of application development and infrastructure components have improved communication and collaboration.
Takayuki Watanabe
Jul 23, 2021
Managing Kafka with Strimzi: Part 1
Managing Kafka with Strimzi: Part 1
Background
Ken Wagatsuma
Jun 29, 2021
Clean waiting in XCUITest
Clean waiting in XCUITest
At Cookpad Global, we compliment our unit-tests with end-to-end UI-tests. For the iOS automation solution, we currently utilise the…
Ryan Paterson
Feb 15, 2021
Building App widget for the Cookpad Android app
Building App widget for the Cookpad Android app
Widgets display condensed information of an app’s most important data on the device's home screen, which links to richer details within…
Himanshu
Nov 27, 2020
CRUD operations with the new Android Paging v3
CRUD operations with the new Android Paging v3
The source code companion can be found in this Github repo in the form of an Android app.
Víctor Albertos
Nov 24, 2020
A Fight to Deliver Apps to the Globe Faster
A Fight to Deliver Apps to the Globe Faster
At Cookpad, we build a global community to make everyday cooking fun. We deliver an iOS app to the worldwide market that supports 26…
ainame
Nov 18, 2020
Life beyond the cargo cult
Life beyond the cargo cult
This isn’t your typical tech post evangelizing a cool new pattern or tool, or picking a fight with a popular convention.
Jens Jakob Balvig
Sep 28, 2020
Keeping it 100
Keeping it 100
We’ve written in the past about how we encourage pull requests with less than 100 additions. In this blog, we take a closer look at where…
Jens Jakob Balvig
Sep 23, 2020
Easy debugging with the Android Navigation component
Easy debugging with the Android Navigation component
It’s handy to be able to log the navigation path of the users and make its rendering layer dependant on the build type.
Víctor Albertos
Sep 22, 2020
Navigating towards a new navigation
Navigating towards a new navigation
TLDR: We migrated our code-base to the Navigation component and we are happy now, even though we weren’t during most of the migration…
Víctor Albertos
Aug 5, 2020
Retrieving Recipes from Images: Baselines Strike Back
Retrieving Recipes from Images: Baselines Strike Back
We discuss the importance of strong baselines, and explain how our simple system achieved SoTA performance on the image-to-recipe task
Misha
Jul 13, 2020
Better fuzzy-finding in Vim
Better fuzzy-finding in Vim
No need to type a complete file path anymore to open a deeply nested file!
David Stosik
Jun 21, 2020
About Source Diving
Latest Stories
Archive
About Medium
Terms
Privacy
Teams