What's a system design mistake you made in your career?

Posted by takkubel@reddit | ExperiencedDevs | View on Reddit | 254 comments

Early on in my career, I was working at a consultancy and was assigned to be a tech lead for this web app project that required partial offline functionality. Without much help from other engineers and not much knowledge on designing systems in general, I decided to use Firestore (a NoSQL database). There was this one time that we absolutely needed a migration but cannot do so due to the database and so we had to resort to manual schema versioning (which was absolutely hellish). Also, apart from the crappy Firestore API there were a lot of things that we could've easily done using a normal SQL db.

A few years later, I still reel whenever I think about the mistake I made. I do tell myself though that it was still a great learning experience because now, I am better equipped with what tool to use on specific requirements. If only I could have told my past self to just use postgres as the main db, indexed DB as the "offline db" and probably a service worker to sync offline -> main db...

What's a system design mistake you've made and how have you learned from it?