Ryan Cooke manages the Client Fundamentals org at Pinterest, a platform team responsible for keeping the Pinterest apps running smoothly. His group owns critical areas such as mobile builds, os upgrades, crash rates, and everything fundamental to the app experience. In his spare time, Ryan enjoys experimenting with the latest AI tools, playing video games with friends, skiing, and learning how to be the best dad he can be.
Ryan on LinkedIn
Ryan shares that the first and probably most unique thing about mobile development is that it’s tied to big companies’ ecosystems, Apple for iOS and Google for Android. Their development environments are decided, whether they liked it or not. The second thing is some of the apps are more than a decade old and were built before some of the best practices were established.
At Pinterest, they do weekly releases which, he says, is about as good as you get in the mobile development, and which is terrible by web standards!
The biggest thing keeping mobile teams from getting to the weekly release cycle is the fact that when you have a monthly release cycle, every release becomes such a big deal and feels like a big fire drill. A lot of things can go wrong. Everybody is struggling to get all their commits into that release, and it would get unstable.
When you're releasing at a weekly cadence, people aren't rushing quite as much to get their feature in. There's just less to go in. But we still have a suite of tests that run per commit to make sure that nothing breaks.
We do the branch cut every Friday and supplement it with very robust testing in India over the weekend, including many scripts and exploratory testing to catch very odd edge cases. Then, we do a gradual rollout throughout the week, which we pay very close attention to.
We shifted a lot of the problems as left as possible so that typically we're mostly stuck at the PR level. But before you do a PR, you know that you didn't break the metrics.
I see these as huge developer productivity gains. It used to be that you had to go into a war room investigation and a lot of people were trying to figure out what the cause was for what was often were very mundane updates. You can't have developers scared to update libraries because they don't know the impact.
We run developer surveys, which have taken several forms over the years, but we try to keep a pulse on what the pain points are and what is slowing developers down. In parallel, we have a group of highest ICs to drive the platform vision. We also talk to customers, partners and developers to try and find out what will give them the biggest boost.
Ryan says Pinterest has done quite a few experiments on AI. They have seen the value of using AI to save developers' time writing unit tests, but they haven't yet scaled that initiative.
He sees the biggest opportunity for using AI in code migrations, especially, as he mentioned, the apps are over a decade old.
One of my team’s goals is to make migrations successful. I think there is a real opportunity to help these migrations go faster and to do the migrations that you might not have seen as worth doing without AI.
These projects that were a lot of people and a lot of pain, that nobody wanted to work on, will be a lot faster, but there's still going to be a new layer of making sure that AI didn’t create SQL vulnerabilities or hallucinate.
00:00 Introduction to Developer Experience at Pinterest
03:02 Understanding Mobile Development Challenges
05:58 Evolution of Mobile Tooling and Testing
09:07 AI in Mobile Development and Testing
14:59 Developer Experience Evolution at Pinteres
20:49 Long-term Planning for Developer Experience
27:08 Release Cycle and Best Practices
31:56 Future of Mobile Development