Latest Posts
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…
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…
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…
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…
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…
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…
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…
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
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…
Personalising Cooking Inspiration with Machine Learning at Cookpad
Machine Learning @ Cookpad
Reviews
Login to submit your review.