This weekend, I spent a few hours working on two open source bugs:
- react-native-ios-utilities crashes with pnpm and React Native 77
- Launch arguments don't get passed through Expo Dev Launcher on Android.
I was working with:
- Android code in Kotlin and Java,
- iOS code in Swift and Objective-C,
- Ruby and TypeScript code for React Native,
- Large, interconnected open source libraries
I was able to confirm a patch to React Native will fix the pnpm issue, and make a small pull request to fix launch arguments in Expo.
I couldn't have done it without the help of one simple, repeatable technique: writing down every thought I had in a multimedia document.
When you're debugging a nebulous error in an unfamiliar codebase, it's natural to throw things against the wall until something sticks. But if you do that without logging your hypotheses, reproduction steps, and writing down the results, you'll end up frustrated.
Here are my debugging documents to demonstrate how I approach this kind work:
It doesn't matter what format or tool you use, but you need to follow these two rules:
- Write down every passing thought, log every URL you visit, document every command, and include all failures/successes.
- Use a multimedia document tool so you can include screenshots, links, videos, and deep link to sections in your document for future reference.
Good luck out there.