Never release a build pointing to a staging environment. It happened to me once, on a small app (luckily). Always run a build on your device before pushing to the store to validate.
CI updating metadata and screenshots is excellent but ensure to only update via CI. I’ve once updated assets manually, and one update later, it got overwritten by the old assets via CI
Make sure ads and IAP are working by writing good unit tests. I've once disabled ads for all users. Yes, back in the days when we had 7 days of review times (oops)
On that note: write a test to reproduce a bug before fixing it. Preventing regressions has saved me much time
Build a personal SDK, whether it’s for your company or Indie Apps. Reusing your code accelerates development by a lot
First make it work, then make it shine. Don’t spend too much time optimizing code only to realize you’ll have to write it entirely differently after making it work
When stuck for an hour: go for a walk or shower. I’ve often solved a bug within 5 minutes with a fresh mind. Don’t shower too much, though
Switching jobs is a difficult decision, but being unhappy & stuck at a place you don’t progress makes you even unhappier. Yes, the stable and comfy environment is great, but you’ll also find that in your new job. If not, you can look for another job.
Minimum Viable Products! Ship & Learn fast. Even though you believe in a feature, it doesn’t mean it will be used as much. Make it worth your time before optimizing towards a perfect implementation.
Learn and optimize, don’t stop at learning.
@WeTransfer
, we developed https://github.com/WeTransfer/Diagnostics… and optimized our support flow. Result? Less time spent by engineers and support agents, happier users, and improved app stability. Optimized after learning from support requests.
And lastly: it’s not about knowing all answers but about being capable of finding all answers. I still use Google and Stack Overflow all the time, even for small things like changing the background color of a NavigationBar (Yup, for real!)