For Doordash I'd say it doesn't matter if the app opens in 700ms or 7000ms. Hungry people are willing to wait a little to order their food.
But then again: How did this get so bad in the first place? I mean, yeah, premature optimization and stuff ... but ...
>One of the biggest immediate standouts was the time we spent on Swift protocol conformance checks (checking if a type conforms to a protocol), but why?
Correct: But why? Why would you do this in a static typed language? Conformance checks should be a rare exception.
>Architectural principles like the single responsibility principle, separation of concerns, and others, are key to how we write code at DoorDash.
Oh, OK, architecture astronautics at play, I guess. Sorry, but you can separate concerns and all that other stuff without ending up with what looks like a dynamic typing system.
But then again: How did this get so bad in the first place? I mean, yeah, premature optimization and stuff ... but ...
>One of the biggest immediate standouts was the time we spent on Swift protocol conformance checks (checking if a type conforms to a protocol), but why?
Correct: But why? Why would you do this in a static typed language? Conformance checks should be a rare exception.
>Architectural principles like the single responsibility principle, separation of concerns, and others, are key to how we write code at DoorDash.
Oh, OK, architecture astronautics at play, I guess. Sorry, but you can separate concerns and all that other stuff without ending up with what looks like a dynamic typing system.
/rant (I'm hungry)