TomDoesTech
TomDoesTech
  • 181
  • 2 529 012
How I Would Build a Software System for Scale
🌎 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
Переглядів: 3 712

Відео

How I Built a Marketplace with Stripe Connect
Переглядів 57611 годин тому
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
Переглядів 93214 днів тому
🌎 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
Переглядів 78021 день тому
🌎 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)
Переглядів 1,4 тис.Місяць тому
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
Переглядів 4 тис.3 місяці тому
Upstash Redis: upstash.com/? GitHub Repository: github.com/TomDoesTech/learn-redis Build & Deploy a Realtime App that Scales with Upstash Redis, Next.js & Fastify: ua-cam.com/video/cfEqS1A5diM/v-deo.html 0:00 Intro 2:58 Upstash Redis 6:40 Basic commands 15:40 Problem 1 - Caching 20:16 Problem 2 - Rate limiting 28:59 Problem 3 - Pub/Sub 35:30 Problem 4 - Indexes 39:40 Problem 5 - Transactions 41...
How I Structure my Go Applications for Scale
Переглядів 1,7 тис.3 місяці тому
How I Structure my Go Applications for Scale
A Practical Guide to Pointers in Go
Переглядів 1,6 тис.4 місяці тому
A Practical Guide to Pointers in Go
Introducing The GoTTH Stack - Go, Tailwind CSS, Templ & HTMX
Переглядів 24 тис.4 місяці тому
Introducing The GoTTH Stack - Go, Tailwind CSS, Templ & HTMX
How To Get Ahead of 99% Of Developers
Переглядів 4,9 тис.5 місяців тому
How To Get Ahead of 99% Of Developers
Go For TypeScript Developers - Use Your TypeScript Skills to Learn Go
Переглядів 6 тис.5 місяців тому
Go For TypeScript Developers - Use Your TypeScript Skills to Learn Go
How I Think About Automated Software Testing
Переглядів 1,4 тис.8 місяців тому
How I Think About Automated Software Testing
Build & Deploy a Realtime App that Scales with Upstash Redis, Next.js & Fastify
Переглядів 15 тис.10 місяців тому
Build & Deploy a Realtime App that Scales with Upstash Redis, Next.js & Fastify
What Does Senior Developer Use to Build Side Projects?
Переглядів 4,2 тис.11 місяців тому
What Does Senior Developer Use to Build Side Projects?
Building Large Scale Microservice Applications
Переглядів 13 тис.11 місяців тому
Building Large Scale Microservice Applications
This Impossible Interview Question is Actually Easy
Переглядів 2,5 тис.11 місяців тому
This Impossible Interview Question is Actually Easy
Build & Deploy a Next.js Project with Neon & Vercel
Переглядів 4,7 тис.11 місяців тому
Build & Deploy a Next.js Project with Neon & Vercel
Stop Making These 5 GraphQL Mistakes
Переглядів 2,7 тис.Рік тому
Stop Making These 5 GraphQL Mistakes
Build a Multi-Tenanted, Role-Based Access Control System
Переглядів 33 тис.Рік тому
Build a Multi-Tenanted, Role-Based Access Control System
Solving ThePrimeagen's Favorite Interview Question
Переглядів 5 тис.Рік тому
Solving ThePrimeagen's Favorite Interview Question
Learn Just Enough Git to be Productive
Переглядів 2,4 тис.Рік тому
Learn Just Enough Git to be Productive
Learn Just Enough Fastify to be Productive
Переглядів 19 тис.Рік тому
Learn Just Enough Fastify to be Productive
Learn Just Enough Zod to be Productive
Переглядів 11 тис.Рік тому
Learn Just Enough Zod to be Productive
Types of APIs you Must Know - REST, RPC & GraphQL
Переглядів 6 тис.Рік тому
Types of APIs you Must Know - REST, RPC & GraphQL
Automatic SSL Certificates for any Domain with Caddy
Переглядів 7 тис.Рік тому
Automatic SSL Certificates for any Domain with Caddy
JavaScript Values Vs References
Переглядів 1,8 тис.Рік тому
JavaScript Values Vs References
Event-driven Microservices with Node.js, Kafka & Conduktor
Переглядів 15 тис.Рік тому
Event-driven Microservices with Node.js, Kafka & Conduktor
Build a Twitter Clone with the T3 Stack - tRPC, Next.js, Prisma, Tailwind & Zod
Переглядів 25 тис.Рік тому
Build a Twitter Clone with the T3 Stack - tRPC, Next.js, Prisma, Tailwind & Zod
Build a Buy me a Coffee Clone with Stripe, Airtable & Next.js
Переглядів 5 тис.Рік тому
Build a Buy me a Coffee Clone with Stripe, Airtable & Next.js
A Micro Introduction to Microservices
Переглядів 3,1 тис.Рік тому
A Micro Introduction to Microservices

КОМЕНТАРІ

  • @SushmithaSathyanarayanan
    @SushmithaSathyanarayanan 21 годину тому

    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

  • @divyanshudwivedi3756
    @divyanshudwivedi3756 23 години тому

    Simple and precise !

  • @shakilhossain1551
    @shakilhossain1551 День тому

    could you make one more video with this architecture for minimum project

  • @acheraime
    @acheraime День тому

    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.

    • @TomDoesTech
      @TomDoesTech День тому

      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.

  • @jaycodes8790
    @jaycodes8790 День тому

    Tom! Why not ROR ?

  • @yunyang6267
    @yunyang6267 2 дні тому

    Please make a minimal project using this architecture if you have the time.

  • @wizz0056
    @wizz0056 2 дні тому

    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".

    • @prosperzegue6735
      @prosperzegue6735 21 годину тому

      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) ?

  • @Euquila
    @Euquila 2 дні тому

    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.

  • @cannotthinkofanybetterhandle

    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)?

    • @TomDoesTech
      @TomDoesTech 2 дні тому

      No, BFF layers should be for a specific UI, they're 1-1

  • @dashaabushenko8599
    @dashaabushenko8599 2 дні тому

    very nice to see how a senior dev would approach a project architecture-wise. thank you! very useful 👏🏻👏🏻👏🏻

  • @codedusting
    @codedusting 2 дні тому

    NextJS Layer will be using Pages or App Router? Is there any need for App Router in this architecture?

    • @cannotthinkofanybetterhandle
      @cannotthinkofanybetterhandle 2 дні тому

      Here, there is no need to go for app router. Choose based on the team and their experience.

    • @codedusting
      @codedusting 2 дні тому

      @@cannotthinkofanybetterhandle Thanks

    • @jitx2797
      @jitx2797 2 дні тому

      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...

  • @tarikogic9313
    @tarikogic9313 2 дні тому

    Are there any youtube tutorials that do this in practice which are explained in a clear manner?

  • @gammingpirets520
    @gammingpirets520 2 дні тому

    Great, love it ❤.

  • @issm6685
    @issm6685 2 дні тому

    Very nice! Thanks for sharing 🙏

  • @JS_Jordan
    @JS_Jordan 2 дні тому

    4:40 im using bun and my microservices can consume shared packages from the package.json at the root of the project. So if i need to upgrade a package shared across all microservices i can just update the root package json

    • @TomDoesTech
      @TomDoesTech 2 дні тому

      That sounds awesome! I haven't used bun much

  • @ThiagoVieira91
    @ThiagoVieira91 2 дні тому

    Very nice video Tom!. But I am worried about running all the stack in a developer machine. From my experience, even a resourceful a machine can run out of resources pretty quick running everything at once. Also, as you are targeting a micro services architecture for the backend, how about using micro frontends for the web? It can enhance the work of several teams working separately in the same frontend. I also understand that micro frontends also facilitates to ship often.

    • @TomDoesTech
      @TomDoesTech 2 дні тому

      I don't have any experience with micro frontends, from my understanding they sound good in theory but are a nightmare to work with. I think there's a way to get the whole thing running on Dev's machines, or at least the parts they need

  • @notarealperson9709
    @notarealperson9709 2 дні тому

    how about the communication between micro-services? gRPC?

    • @TomDoesTech
      @TomDoesTech 2 дні тому

      Yeah gRPC is a great way to communicate between them, could also use a message bus like Kafka

    • @taquanminhlong
      @taquanminhlong 2 дні тому

      I'm not a big fan of gRPC, it requires more setup and the difference doesn't take much, I think message bus and json is enough 😂

  • @G4laxy_kit
    @G4laxy_kit 2 дні тому

    At 5:10 type UserRequired = Required<User> & { city?: string }; does not make city property optional. I have checked. But this: type UserRequired = Omit <Required<User>, 'city'> & { city?: string }; will make it optional thanks for your efforts

  • @aleksandrmisnov
    @aleksandrmisnov 3 дні тому

    handleByeButton 😆👍

  • @anfytrion
    @anfytrion 3 дні тому

    I am convinced to use Fastify in general👌

  • @lostinthenarrativve
    @lostinthenarrativve 3 дні тому

    why do you use nextjs and not plain MERN? mind if I ask

    • @TomDoesTech
      @TomDoesTech 3 дні тому

      I like having everything all in the same app, no need for a separate frontend and backend. It's easy to deploy. I don't want to use Mongo, I prefer postgres, I don't like express, I don't see any use for it anymore. And I forgot what N is

    • @iamAliAhad
      @iamAliAhad 3 дні тому

      ​@@TomDoesTech What would you do if you needed a scalable API? and easy to generate code with chadgpt?

  • @deepak5074
    @deepak5074 7 днів тому

    why did you stop making video sir ?? We want your comeback

    • @TomDoesTech
      @TomDoesTech День тому

      I haven't stopped, just been very busy

  • @lostinthenarrativve
    @lostinthenarrativve 7 днів тому

    Hey man, is it necessary to move onto Nextjs from MERN ( Plain React with vite ) to start a webdev business or I can pull it off with MERN and no Next ?

    • @elraito
      @elraito 3 дні тому

      Moving from mern to next is really a single weekend of building a project. You can learn all you need by converting one of your old project to usibg next

    • @TomDoesTech
      @TomDoesTech 2 дні тому

      Yeah you can do it with MERN, it pretty much comes down to personal preference

  • @AesSedai2020
    @AesSedai2020 7 днів тому

    Can I say I absolutely love your tutorials, I am learning so much! Thank you :)

  • @ajaydeepsinghrajpoot
    @ajaydeepsinghrajpoot 7 днів тому

    Would love a video about file uploads with next/node js, comparing based on cost, ease of the process and other factors.

  • @ranulagihara1113
    @ranulagihara1113 8 днів тому

    yarn run v1.22.22 $ tsnd --respawn --transpile-only --exit-child src/app.ts [INFO] 08:17:33 ts-node-dev ver. 2.0.0 (using ts-node ver. 10.9.2, typescript ver. 5.5.2) FastifyError: Schema with id 'Schema' already declared! at Schemas.add (/Users/ranulagihara/Documents/self-learning/JS:TS/my node projects/fastify/demo-IEEE/node_modules/fastify/lib/schemas.js:33:11) at SchemaController.add (/Users/ranulagihara/Documents/self-learning/JS:TS/my node projects/fastify/demo-IEEE/node_modules/fastify/lib/schema-controller.js:64:30) at Object.addSchema (/Users/ranulagihara/Documents/self-learning/JS:TS/my node projects/fastify/demo-IEEE/node_modules/fastify/fastify.js:694:29) at /Users/ranulagihara/Documents/self-learning/JS:TS/my node projects/fastify/demo-IEEE/src/app.ts:31:12 at Generator.next (<anonymous>) at /Users/ranulagihara/Documents/self-learning/JS:TS/my node projects/fastify/demo-IEEE/src/app.ts:8:71 at new Promise (<anonymous>) at __awaiter (/Users/ranulagihara/Documents/self-learning/JS:TS/my node projects/fastify/demo-IEEE/src/app.ts:4:12) at main (/Users/ranulagihara/Documents/self-learning/JS:TS/my node projects/fastify/demo-IEEE/src/app.ts:38:12) at Object.<anonymous> (/Users/ranulagihara/Documents/self-learning/JS:TS/my node projects/fastify/demo-IEEE/src/app.ts:52:1) [ERROR] 08:17:33 FastifyError: Schema with id 'Schema' already declared! anyone got this error ? I can't figure it out

  • @JoseWaldier
    @JoseWaldier 9 днів тому

    poor keyboard 😢

  • @blazingelse9104
    @blazingelse9104 10 днів тому

    Oh god, I hate tailwind and its whole concept from the bottom of my heart. It's the new comic sans. But hey, without it, rhe stack is just GoTH!

  • @kennethcarvalho3684
    @kennethcarvalho3684 11 днів тому

    Hey Tom was looking for much more... Very short video

  • @Jalak-go9vm
    @Jalak-go9vm 11 днів тому

    Thank you so much man, learning alot from you.

  • @reni_christian
    @reni_christian 11 днів тому

    Jotai is easy to use instead of this

  • @bennyboiii1196
    @bennyboiii1196 11 днів тому

    I would honestly do this, probably without tailwind (not a fan of inline styles tbh), and with some vanilla JS for responsiveness. Simple but effective!

  • @pradiptapaul6630
    @pradiptapaul6630 13 днів тому

    Need a tutorial, fastify + typescript + mongodb(using mongoose)

  • @Jalak-go9vm
    @Jalak-go9vm 13 днів тому

    Very awesome, your all videos are very helpful, they are near production ready code. Thanks.

  • @gamingwolf3385
    @gamingwolf3385 14 днів тому

    Thank you bro for this video , can you do a real advanced video about testing , i want to see someone write advanced tests , all devs write simple ones then new video about new cool feature rather than advancing in testing tutorials

  • @sohamvishwas6795
    @sohamvishwas6795 17 днів тому

    Thanks, Tom🙂

  • @viralshah2058
    @viralshah2058 17 днів тому

    Nice Explanation. Can you help with detail explanation about how to manage documentation, team colobration topics?

  • @hrvojemarjanovic9188
    @hrvojemarjanovic9188 17 днів тому

    Just remarkable way of explaining OAuth 2.0; that diagram has solved all my 'how it works' doubts, and also didn't know that some services do not verify e-mail addresses... 👌

  • @jarndev
    @jarndev 18 днів тому

    I don't get it, what if the switch's parameter was a string instead? If I want to access a value by a numeric index I can just define an array. Thanks for your tips btw.

  • @deimiosxxx
    @deimiosxxx 18 днів тому

    My journey so far (20 years): - internet cafe admin (local level) - data entry and tech support (county level) - sysadmin + website design (county level) - tech/business process analyst (national level) - tech/business process analyst + tool developer (international level) Tom's advice is spot on, brute forcing works. My method was: small projects with new tech, big projects with old tech. Yes that mean that I was slower that I could have been however I learned a lot and in the end I could experience the benefits and drawbacks of most tech choices, which is essential as an analyst. Keep in mind that this does not work in megacorps, you need to be part of a smaller team with ownership of the techstack and the decisions.

  • @sohamvishwas6795
    @sohamvishwas6795 18 днів тому

    Thank You 😇

  • @abdallahazme4757
    @abdallahazme4757 19 днів тому

    Iam civil engineer but my start with programing was with python pyautogui and opencv and yes i just wanted to atomate some game stuff haha

  • @gerardsiles
    @gerardsiles 19 днів тому

    Thanks Tom for sharing your journey. I studied a HNC on web development, and been working as a web developer for almost 2 years now, and always kept studying on edx, udemy... and your channel always gave good insights into the backend side for me, learned a lot from your videos, thanks for taking that time!

  • @yashwanthbm7543
    @yashwanthbm7543 19 днів тому

    do we learn UNIT testing here?