- 185
- 2 578 942
TomDoesTech
Australia
Registrace 16. 01. 2021
I am a full-stack developer from Queensland Australia, specializing in all things JavaScript, Node.js, React & TypeScript. My mission is to help you become a better JavaScript developer and help you land your dream job.
I have been fortunate enough to build a career that I absolutely love and I want to help you do the same.
I have been fortunate enough to build a career that I absolutely love and I want to help you do the same.
Use This to 10x Your Portfolio Projects
🌎 Follow me here:
Discord: discord.gg/4ae2Esm6P7
Twitter: tomdoes_tech
Facebook: tomdoestech
Instagram: tomdoestech
TikTok: www.tiktok.com/@tomdoes_tech
☕ Buy me a coffee: www.buymeacoffee.com/tomn
Discord: discord.gg/4ae2Esm6P7
Twitter: tomdoes_tech
Facebook: tomdoestech
Instagram: tomdoestech
TikTok: www.tiktok.com/@tomdoes_tech
☕ Buy me a coffee: www.buymeacoffee.com/tomn
zhlédnutí: 764
Video
Why I'm Using This One Library for Server Actions in Next.js
zhlédnutí 988Před 21 dnem
🌎 Follow me here: Discord: discord.gg/4ae2Esm6P7 Twitter: tomdoes_tech Facebook: tomdoestech Instagram: tomdoestech TikTok: www.tiktok.com/@tomdoes_tech ☕ Buy me a coffee: www.buymeacoffee.com/tomn
How I Would Build a Software System for Scale
zhlédnutí 4,7KPřed 21 dnem
🌎 Follow me here: Discord: discord.gg/4ae2Esm6P7 Twitter: tomdoes_tech Facebook: tomdoestech Instagram: tomdoestech TikTok: www.tiktok.com/@tomdoes_tech ☕ Buy me a coffee: www.buymeacoffee.com/tomn
How I Built a Marketplace with Stripe Connect
zhlédnutí 937Před 28 dny
Repoz.io: repoz.io/ Stripe connect doccumentaiton: docs.stripe.com/connect 🌎 Follow me here: Discord: discord.gg/4ae2Esm6P7 Twitter: tomdoes_tech Facebook: tomdoestech Instagram: tomdoestech TikTok: www.tiktok.com/@tomdoes_tech ☕ Buy me a coffee: www.buymeacoffee.com/tomn
How I Brute Forced My Way Into Becoming a Software Engineer
zhlédnutí 1KPřed měsícem
🌎 Follow me here: Discord: discord.gg/4ae2Esm6P7 Twitter: tomdoes_tech Facebook: tomdoestech Instagram: tomdoestech TikTok: www.tiktok.com/@tomdoes_tech ☕ Buy me a coffee: www.buymeacoffee.com/tomn
The Easiest Way to Test Your Applications With a Real Database
zhlédnutí 834Před měsícem
🌎 Follow me here: Discord: discord.gg/4ae2Esm6P7 Twitter: tomdoes_tech Facebook: tomdoestech Instagram: tomdoestech TikTok: www.tiktok.com/@tomdoes_tech ☕ Buy me a coffee: www.buymeacoffee.com/tomn
How I Upload Images to CloudFlare R2 in Next.js Server Components (Presigned PUT)
zhlédnutí 2KPřed měsícem
repoz.io: www.repoz.io 🌎 Follow me here: Discord: discord.gg/4ae2Esm6P7 Twitter: tomdoes_tech Facebook: tomdoestech Instagram: tomdoestech TikTok: www.tiktok.com/@tomdoes_tech ☕ Buy me a coffee: www.buymeacoffee.com/tomn
Learn Redis in 40 Minutes - Upstash Redis
zhlédnutí 4,3KPřed 4 měsíci
Learn Redis in 40 Minutes - Upstash Redis
How I Structure my Go Applications for Scale
zhlédnutí 1,8KPřed 4 měsíci
How I Structure my Go Applications for Scale
Introducing The GoTTH Stack - Go, Tailwind CSS, Templ & HTMX
zhlédnutí 27KPřed 5 měsíci
Introducing The GoTTH Stack - Go, Tailwind CSS, Templ & HTMX
Go For TypeScript Developers - Use Your TypeScript Skills to Learn Go
zhlédnutí 6KPřed 6 měsíci
Go For TypeScript Developers - Use Your TypeScript Skills to Learn Go
How I Think About Automated Software Testing
zhlédnutí 1,4KPřed 9 měsíci
How I Think About Automated Software Testing
Build & Deploy a Realtime App that Scales with Upstash Redis, Next.js & Fastify
zhlédnutí 16KPřed 11 měsíci
Build & Deploy a Realtime App that Scales with Upstash Redis, Next.js & Fastify
What Does Senior Developer Use to Build Side Projects?
zhlédnutí 4,3KPřed 11 měsíci
What Does Senior Developer Use to Build Side Projects?
Building Large Scale Microservice Applications
zhlédnutí 14KPřed rokem
Building Large Scale Microservice Applications
This Impossible Interview Question is Actually Easy
zhlédnutí 2,5KPřed rokem
This Impossible Interview Question is Actually Easy
Build & Deploy a Next.js Project with Neon & Vercel
zhlédnutí 4,9KPřed rokem
Build & Deploy a Next.js Project with Neon & Vercel
Build a Multi-Tenanted, Role-Based Access Control System
zhlédnutí 33KPřed rokem
Build a Multi-Tenanted, Role-Based Access Control System
Solving ThePrimeagen's Favorite Interview Question
zhlédnutí 5KPřed rokem
Solving ThePrimeagen's Favorite Interview Question
Learn Just Enough Git to be Productive
zhlédnutí 2,4KPřed rokem
Learn Just Enough Git to be Productive
Learn Just Enough Fastify to be Productive
zhlédnutí 20KPřed rokem
Learn Just Enough Fastify to be Productive
Types of APIs you Must Know - REST, RPC & GraphQL
zhlédnutí 6KPřed rokem
Types of APIs you Must Know - REST, RPC & GraphQL
Automatic SSL Certificates for any Domain with Caddy
zhlédnutí 8KPřed rokem
Automatic SSL Certificates for any Domain with Caddy
Event-driven Microservices with Node.js, Kafka & Conduktor
zhlédnutí 15KPřed rokem
Event-driven Microservices with Node.js, Kafka & Conduktor
Build a Twitter Clone with the T3 Stack - tRPC, Next.js, Prisma, Tailwind & Zod
zhlédnutí 25KPřed rokem
Build a Twitter Clone with the T3 Stack - tRPC, Next.js, Prisma, Tailwind & Zod
Great video 1) still a little confused on the volumes part of the config, but I am still learning docker on the side so maybe i havent gotten to that part yet 2) would love a very introish video to use Prometheus and grafana just enough to like take a rest api and bounce off of it 3) how do you get those awesome completions in your terminal
@@destocot1729 volumes are just a way to persist data in your containers. So if the container stops or gets deleted, the data will persist. The the auto completions are from a zsh plugin called zsh-autosuggestions
I completely up for a video about Prometheus and Grafana 🚀
Definitely do a video about Prometheus and Grafana
Smart move good job
just deploy the app, it best then doing all the setup
Whoa didn't know that I can use postman like this. I always manually type my input whenever I test O_O. Yes, horrible! Thanks for this dude! Will be checking on your other videos.
Boom! Here I am Seniority
Thank you for the great explanation.
Thank you very much for being open about your career path and sharing your story. wishing you all success 🌻
can you recommend me some webdev courses please ?
Thanks mate, this was helpful!
I got lost in the notation changing to TypeScript and using Axios - I'd like to implement OAuth without extra middleware processing any of the data (I get scared of MiddleWare touching sensitive data, especially if I do an update and something changed that accidentally created a vulnerability in the communication).
@@seattleshare905 okay well good luck ever building anything
Thank you! I have been able to create some things! I think I choose to 'feel' good about reducing the amount of Middleware used in handling sensitive user data. 'i' think it's the right choice 🙂
@@seattleshare905 I'm not sure what typescript and axios have to do with middleware
'i' was disappointed only because I was excited to see someone implement Oauth without passport or Google client being used (thus reducing external dependencies and potential code changes that could cause vulnerabilities) - only to realize I'm not very familiar with converting typescript to pure js, and that Axios is being used to obtain the tokens. This was only 'my' disappointment after hoping to see something that showed what is really happening during the OAuth process. Regardless, thanks for the video it was an excellent starting point.
good content
After seeing this , Iam happy that Iam using nestjs it makes my life easy. I have to build a simple restapi using express and man this is a nightmate to write all those docs by hand
Hi, I'm really new in web development and I've got one, maybe silly, question; what is vite for here? I get we've got web server (fiber) but why do I need vite then?
@@Latajacaryba it's the frontend
yes, products service goes down and you can still have orders 😂 … and whats this “go down” issue? … what junk hardware and o/s is this running on 😂😂
hi & and i have question :) your case about GetUser... if we do not found user we simply can return an error not found. why you suggest that nil for error for this case is better ??
don't use ts-node, it doesn't support es module. instead use tsx which is lightweight and very easy to use and use helmet js,
hello, how do we access res.local.user.sesssion , since our user model does not have the session field
Love you man! I was facing issue to connect with client from my node app for an whole day, found solution to my issue in few minutes only. Thank you so much 🙇♂
Thanks 👍
😂😂😂😂 killed me the intro
Loving this new change
This was a real turn off. I thank the ts team for fixing it.
Hey, really liked this video. I have one question, What if we need to upload multiple files do we need to create multiple signed urls for that?
Yeah, I think you have to make multiple URLs. I haven't done it to be honest so I'm not sure
Thank you Tom...very helpful 👍
What about sign up with google?😢
@@JoeElmasry. Isn't that what's in this video?
I get the idea but it’s code like this that becomes a hot path really quickly. Ideally you should be aiming to touch the database as little as possible. This looks like MongoDB, but in Postgres changing this to a single query with a CTE is the way to go
I think it's useful to mention that this applies to frontend JS as well, it doesn't just apply to Node apps. Otherwise, solid advice
What is the need of promise all can't we just remove the first await??
@@s.hariharanreddy5439 no, you need to await promises. If you don't await it will return a promise and if it throws, the catch block will never catch it
Nice but little confusing 😂
Try it out, you'll understand quickly
First time hearing zsa being used with react query. Anyway to provide GitHub? I just need the code to understand.
Thank you so much for such a useful video 🔥 Cheers master!
The way to fix typescripts problem is to just use JS and to stop using TS
Good one
I prefer to minimise run time errors😅
How do you do BFF?
The bff is just another service
@@TomDoesTech how do you communicate them, with gRPC?
I'm really greatful for such tutorial. Before knowing about all taht stuuf, I asked myself : "How cna I test my API efficiently, with the most detailed tests possible and reproductibility ?". I almost started to cre&te tests using bash & curl, and starting my server as a daemon. I knew it was not the solution, so I didn't started yet. Thanks to your video, I know the correct way now.
I remember upvoting an issue for this on typescript’s github. It’s funny that we sometimes think we’re making a mistake when in fact it’s the language.
Yeah I remember being very confused by it too, I thought I was doing something wrong for ages
Finally! I’ve ran into this problem before and essentially had to write my own filter method to satisfy typescript. This makes things as easy as they should be.
Nice video, it would be great if you give give little more explanation in here and there esp usage of mutate, interface, it would be good to follow along for beginners
Simple and precise !
could you make one more video with this architecture for minimum project
Great job explaining this architecture. One crucial piece that I see missing is your observability/ monitoring layer. I’ll add prometheus, grafana to collect app and infrastructure metrics. You can even spice it up a bit with jaeger for traceability. This will equip you with a feedback loop to extend your pipeline to do canary releases later on.
Ahh yeah good call. This was the second time I recorded the video and I forgot the observability part. Probably should have written it down instead of doing it off the top of my head.
Tom! Why not ROR ?
What is RoR?
Please make a minimal project using this architecture if you have the time.
Some tips based on my experience in a large project (30+ microservices, 70+ devs): DX - In cases where you have many microservices, running them all locally for development would rarely be possible. Devs would need beefy laptops to be able to run all the services, and you would also run into the issue of having different setups (eg. docker-compose) for local development and production (eg. kubernetes), which will get exponentially harder to keep in sync as you introduce more and more services and infrastructure pieces. Best approach for this (but pricy) would be to have on-demand remote environments, ideally running inside of kubernetes (or your platform of choice), in which case you eliminate most of the "works on my machine" problems, by having the devs work on the setup that's closest to production. As a bonus with this approach, you also get the benefit of being able to provide on-demand environments for QA/Compliance teams, or for any other purpose, without much effort, since it uses the same logic. Microservices - Please use kafka/rabbitmq/nats (or alternative tech) for communication between services, as opposed to having direct communication. This adds decoupling to your architecture, and will let each service run at it's own pace. This is especially useful when APIs change (like in the example from the video) so instead of having to now update all services that depend on the one that changed the api, you would only change that one, and the way it communicates with the "message bus".
Great explanation 👌🏽. I would like to know if a startup developping a multi-tenant SaaS (around 100k users predicted) should begin with microservices architecture or just start with a multi-layer monolith architecture (frontend, monolith backend, single DB) ?
@@prosperzegue6735 It really depends on your case. For example, if your team never worked on microservices, choosing to do so from the start will add unnecessary complexity and slow you down. You will inevitably have to go the microservice route with that scale, but starting with the monolithic approach and then slowly breaking apart the monolith into different services is still a valid strategy. You can make this process easier by not tightly coupling your code. This can be specific to the tech/language/framework you choose, but you can still take measures to make moving away from the monolith less painful. On the other hand, if you're confident in your team and have prior experience with microservices, I don't see a reason to start with the monolith except for development velocity (only in case where your team doesn't have experience with the microservice architecture). Just be careful of the premature optimization pitfall, and don't over engineer your setup.
@@wizz0056 Thanks so much for your reply. Your answer is perpect 👌🏽.
Or you can just deploy LOCALLY if your target audience requires strict data privacy, has unreliable internet connectivity, or needs low-latency access to critical systems, such as in healthcare facilities or remote locations.
Like an intranet?
Shouldn't we make bff common for both mobile and web (instead of doing it twice in the next js web app and a separate mobile bff)?
No, BFF layers should be for a specific UI, they're 1-1
very nice to see how a senior dev would approach a project architecture-wise. thank you! very useful 👏🏻👏🏻👏🏻
NextJS Layer will be using Pages or App Router? Is there any need for App Router in this architecture?
Here, there is no need to go for app router. Choose based on the team and their experience.
@@cannotthinkofanybetterhandle Thanks
Hey there. If we are using any other backend then do you think we could leverage proper type safety?? Like at that point it just becomes manually typing it out...
It doesn't matter