01Taking over an existing codebase
Picking up someone else's app starts the same way every time: a real read of the codebase before promising a timeline, not a guess based on a quick look. I check what state the architecture is actually in, what technical debt is load-bearing versus cosmetic, whether the release pipeline is trustworthy, and what the crash and store-review history looks like. Only after that does a maintenance plan or fix estimate mean anything.
This is deliberately not a rewrite-first approach. Most apps that need a rescue do not need to be rebuilt from zero — they need the actual problems fixed: the crash that keeps recurring, the release that keeps failing review, the feature that was half-built and abandoned. Rewrites are sometimes the right call, but only after the diagnosis says so, not as a default.