Post

I wanna hear the untold stories of the huge architectural and data migrations that go into the “smallest” changes like when Slack added the ability to add someone to a group DM and *move past messages* to the new conversation or how Amazon no longer asks which Kindle to send your library book to

5 reposts93 likes

Oh absolutely. It would either be one of those changes that is pretty quick & mostly a pain for testing edge cases… OR one that ended up needing 5 new services, a db migration or two, and an act of god There never seems to be a middle ground for that type of thing.

Working closely with fintech, I have a few. We used to sell product combos with high discounts to incentivize purchases. We pivoted to offering the combos as single SKUs with one discount to make it technically easier... Major tech challenges around determining ownership due to mismatched SKUs.

you gotta assume that these were both enormous efforts that were probably years in the making. all to make it work the way it should’ve worked in the first place

Worked on a fitness band. Beta data flow involved phone processing the raw data and writing to backend through graphql mutations. It was slow and user friendly data took awhile to sync. PE and a few engineers built a system that sent protobuffs to backend for processing a few months before launch.

i have heard stories of a large mysql cluster, and a system wherein "the schema that we used is the schema for your account" pretty much forever the vast majority of the data is write once read maybe and so backfilling is a huge waste of resources, so it all gets adapted per storage unit

the thing is, once you hit a certain scale, your logical and physical schema inevitably diverge, and the notion that your data exists in one consistent layout just stops being true and truthfully speaking, data migrations aren't really an issue once that happens, the problem is doing it all at once

At Felt, we changed the way map layers are nested, which was invisible for the user with the current feature set, but unlocked a bunch of other future features. It was an ~8 person, multi-month effort touching *a lot* of code; the near-term aim being “no one notices anything”.

Copy pasting of items between maps, copying styles, more complete control of styles via the GUI as opposed to JSON. Those things all could have been achieved before but there was a lot more stuff where children depended on their parent context, so it made it simpler to understand and implement.

most of that class of thing I'm involved with end up "ok one more PR to shut it off entirely" and nobody ever notices sometimes it's nice but also sometimes its depressing.