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?
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
Keep your stack simple.
Don’t use bloated UI libs. Try something, like TailwindUI or shadcn UI.
Avoid using many frameworks/languages. NextJS 13 app directory takes care of both server and client
Outsource the heavy lifting to third-party providers. By doing this, you can trust the provider to handle compliance issues and security upgrades.
Focus on releasing early and often to avoid working on something for too long.
What is your overengineering mistake?
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.
Social Media: Twitter, YouTube, Instagram, TikTok, LinkedIn
Until next time,
David
Thank you for including me! :)