Overengineering sucks

so why would you do that?

I have been working with clients for 10 years now. And what I can tell you is that in order to make success, you need to deliver on time, and on budget. (Duh...)

In this issue, we’re going to talk about 1 huge mistake that often causes missing deadlines, pain, and suffering.

Stop Overengineering Shit!

My team started working with a client around mid-2021.

A unique project with organizations, users, custom DB rules, handling 1000s of complex media files, complex search-and recommendation system.

Sounds like something that needs Docker, a custom (NodeJS) backend, a VPS, and a custom-built auth. Right? Well, the team thought so. So we started setting up a NestJS backend with Apollo, Prisma, custom roles, Next.JS, MUI, Emotion, ElasticSearch, ECS, and PostgreSQL on RDS, and the list goes on…

I can tell you, a tRPC + Next.JS combo, Algolia, Plantscale, and AWS S3, with a hosted-auth solution would’ve been absolutely enough.

How do I know this?

Well, we’re still working on the project… (That’s partly because of multiple change requests also. Answer this mail if you’re interested in that story also). And because the stack is already 1.5 years old, we’ve recently run into a dependency management issue.

We had to install Storyblok and upgrade MUI which needed a NextJS version upgrade. Easy, right?

black and white stop road sign

Wrong. NextJS needed a new Prisma version. And Prisma needed a new Apollo version. Which - you guessed it - needed a new version of NestJS. (You thought that this is the end of the chain. Nope.) New Nest and Next versions weren’t compatible with the latest stable NX version, so we had to upgrade to a beta. That’s always a no-go in a production project.

Anyway, this stack was unnecessarily complex. Just 1.5 years passed and two of us spent 3 days upgrading, refactoring, and rewriting shit.

Solution

Curated

👉 Friends

A new section in the newsletter dedicated to curated, educative, and/or fun stuff.

DeveloPassion articles are from the wide world of software development and personal productivity by Sébastien. He also built an Obsidian starter kit and writes tips about taking notes.

Dragons & Codes is an inspiring journey by Fanni, on how to start a software engineering career as an already experienced marketing entrepreneur. (btw I do mentor her, so you’d probably be interested in her progress)

👉 4 Developreneur Tools

Raycast - macOS Spotlight on steroids. Extendable, productivity-first, and developer-friendly tooling to replace the default macOS search. With Raycast, you can do maths, currency conversion, GitHub search, AI stuff, and so on.

Cron - The calendar app that solves all calendar app problems. Keyboard-based multiplatform calendar app. Block all events from one calendar to others, create scheduling links for free, and breeze through your calendar like a pro.

AutoAnimate - Low-hanging fruit to level up your UIs. Really, just one line of code to make eye-candy shit micro-interactions. High impact on UX, low impact on performance, and developer hours.

DesignCode GPT-4 Course - How to use GPT-4 and Midjourney effectively for coding. Because AI tools WILL NOT make us unemployed but WILL make us more productive.

👉 Content to binge

Vector databases are so hot right now. WTF are they? - Hint: LLMs long-term memory

The Science of Gut Health - which is surprisingly more important than you’d imagine.

Thank you so much for reading my email! I’d be glad to hear from you if you have any questions, feedback, or comments.

If you enjoyed this post and want more, just below, you’ll find my social media profiles, where I post daily something educational, or something completely pointless.

Please forward this mail to your friends who might benefit from it. Get your subscription here if it was forwarded to you.

Until next time,

David

Reply

or to participate.