Tiago
Tiago
  • 26
  • 332 939
Complete Backend Engineering Course in Go
► Join to get access to the full course: selfmadeengineer.com
In this project-based course we'll build a complete REST API in Go from scratch and ship it to the cloud ready for receiving real traffic and handle scale affordably.
This journey will start from building a simple TCP server with the goal of exploring the net/http package in Go. The goal with this material is that you get the foundational knowledge to build and reason about backend systems in general, not just tutorial videos.
📗 Resources
- Source code: github.com/sikozonpc/GopherSocial
- Microservices free video on youtube: th-cam.com/video/KdnxzgSNLTU/w-d-xo.html
🙋🏼‍♂️ Socials:
X: x.com/TiagoFe01662401
Github: github.com/sikozonpc
Thanks for watching 💪
Time Stamps 👇
00:00:00 Intro
00:02:16 Curriculum overview
00:07:19 Course Project overview
00:16:04 Why Go for backend
00:18:12 Design Principles for a REST API
00:27:12 TCP Server - net package
00:35:40 Understanding Routing
00:39:35 HTTP Server - The net/http package
00:50:00 Encoding & Decoding JSON Requests
00:58:00 Setting up your Development Environment
01:06:00 Clean Layered Architecture
01:17:50 Setting up the HTTP server and API
01:36:00 Hot Reloading in Go
01:39:30 Environment Variables
01:46:28 The Repository Pattern
01:55:28 Implementing the Repository Pattern
02:03:00 Persisting data with SQL
02:16:00 Configuring the DB Connection Pool
02:33:00 SQL Migrations
#golang #api #backend
Video titles ideas (for the algo):
REST API in Golang Beginner Tutorial
Building a JSON API in Golang
How to build a REST API in Golang
มุมมอง: 23 289

วีดีโอ

How to Prevent Concurrent Race Conditions in Go
มุมมอง 2.6K2 หลายเดือนก่อน
In this video I'm sharing with you how I'm solving my data race problem in my Golang API using Optimistic Concurrency Control. 📗 Article: cult.honeypot.io/reads/optimistic-vs-pessimistic-concurrency/ 👉 Get access to the full guides: selfmadeengineer.com 📢 We're building a Discord community, come and join discord.com/invite/3JhkwjQHjc 🙋🏼‍♂️ Socials: X: x.com/TiagoFe01662401 Github: github.com/si...
How I RATE LIMIT my Production API in Golang
มุมมอง 5K3 หลายเดือนก่อน
In this video I share with you how I am rate limiting my API in Go. Rate limiters are a must if you want to protect your back-end from layer 7 DDoS attacks and keep your API secure. 📌 Resources - Very good article on rate limiting algorithms: konghq.com/blog/engineering/how-to-design-a-scalable-rate-limiting-algorithm - Go Fixed Window: github.com/mennanov/limiters - Go "official" rate limit pa...
How I Would Deploy My Golang SaaS App (CI/CD & Tests)
มุมมอง 6K4 หลายเดือนก่อน
So in this video I'll show you how I'm currently deploying my SaSS app similar to Readwise in Golang, with GCP and Github Actions, so you can do it too. 📢 We're building a Discord community, come and join discord.com/invite/3JhkwjQHjc 👉 Join the private community to level up as software engineer: selfmadeengineer.com 🙋🏼‍♂️ Socials: X: x.com/TiagoFe01662401 Github: github.com/sikozonpc 00:00:00 ...
The Complete Microservices Course in Go
มุมมอง 58K4 หลายเดือนก่อน
► Join & Access the full course: selfmadeengineer.com In this course instead of flipping burgers you'll build an Order Management System with microservices in Go. This journey will start from a simple service from which we'll build & scale out up to 5 different microservices communicating & working together to finalise the users order ...and we're going to build all of this from scratch... 🎉 Th...
Working with RabbitMQ in Golang for an Event-Driven Architecture
มุมมอง 5K5 หลายเดือนก่อน
► Join & Access the full Microservices course: selfmadeengineer.com In this video we'll explore from a high overview what are message brokers and how they work. We're also exploring how a message broker like RabbitMQ makes your microservices more reliable. Resources: Docs: www.rabbitmq.com/tutorials/tutorial-three-go Installation: www.rabbitmq.com/docs/download 📢 We're building a Discord commun...
How to Properly Integrate with External Services in Golang
มุมมอง 3.7K5 หลายเดือนก่อน
Every software system integrates with other 3rd party systems in a way or another. And the way that you integrate with them is really important for the health of your system. So in this video I share some examples on how to do it using the Adaptor Pattern and dependency injection in Golang. 👉 Join the private community to level up as software engineer: selfmadeengineer.com 📢 We're building a Di...
All You Need to Know to Structure your Golang Projects
มุมมอง 9K5 หลายเดือนก่อน
Either you are new to SWE or just starting to build your first projects in Go and you don’t know which project architecture or structure to use. You’ve heard about these terms: Clean Architecture, Hexagonal Architecture and DDD. And all sounds confusing. If that sounds like you, then this video is for you I’ll help you clarify everything. 👉 Join the private community to level up as software eng...
Complete Golang and gRPC Microservices (Project Course)
มุมมอง 20K5 หลายเดือนก่อน
Learn how to build scalable micro-services in Golang with gRPC by building a practical real-world production project (order management system). By the end you should be able to develop your micro-service projects by your own. 👉 Join the private community to level up as software engineer: selfmadeengineer.com 📢 We're building a Discord community, come and join discord.com/invite/3JhkwjQHjc ✅ Che...
How the Golang Context Package Works
มุมมอง 6K5 หลายเดือนก่อน
When it comes to building resilient production software in Go you should be familiar with the context package. You don’t need to know everything tho…so I’m going to teach you what you should know to get started and be then be able to read and build more complex applications. Because you probably seen that most advanced frameworks use context. 👉 Join the private community to level up as software...
How to EFFICIENTLY Handle Errors in Golang APIs
มุมมอง 6K5 หลายเดือนก่อน
► Join the private community to level up as software engineer: selfmadeengineer.com In this video will show how you can handle errors in your Golang APIs while being pragmatic and as practical as possible, so you can focus in what really matters: building stuff. 👉 Join the private community to level up as software engineer: selfmadeengineer.com 📢 We're building a Discord community, come and joi...
How to ACTUALLY land that Software Engineer Job
มุมมอง 1.6K5 หลายเดือนก่อน
We live at a time where being good at coding is just not enough. So I hope that this video, where I share some tips on how to actually land a software engineer job, helps you in your journey. 👉 Join the private community to level up as software engineer: selfmadeengineer.com 📢 We're building a Discord community, come and join discord.com/invite/3JhkwjQHjc 📚 Resources Book 1: "How to make friend...
Practical Explanation of Golang INTERFACES
มุมมอง 6K5 หลายเดือนก่อน
In this video I'll give you a practical explanation with real-world examples of how to use interfaces in Go, so you can become a better engineer and make your code more modular and testable. ✅ Check the "Complete Backend API in Golang" Course: th-cam.com/video/7VLmLOiQ3ck/w-d-xo.html 👉 Join the private community to level up as software engineer: selfmadeengineer.com 📢 We're building a Discord c...
How to create your Golang APIs from now on with v1.22
มุมมอง 25K5 หลายเดือนก่อน
Since Go 1.22 released you can now build your API services with just the net/http package, without the need for any external packages likes gorilla/mux, fiber or chi. So in this video I’ll show you how I’m going to be building my APIs from now on with go 1.22. 💻 Check the "Complete Backend API in Golang" Course: th-cam.com/video/7VLmLOiQ3ck/w-d-xo.html 👉 Join the private community to level up a...
A trick for safely using Golang Maps more efficiently
มุมมอง 4.3K6 หลายเดือนก่อน
In this video I’ll show you how you can make your concurrent applications actually more concurrent safe by using sync mutexes and vertical sharding. 🌱 Check the "Golang Essentials" Playlist here: th-cam.com/play/PLYEESps429vo2vvoUuAA6-fEDVgeqx3HW.html 👉 Join the private community to level up as software engineer: selfmadeengineer.com 📢 We're building a Discord community, come and join discord.c...
Complete Backend API in Golang (JWT, MySQL & Tests)
มุมมอง 94K6 หลายเดือนก่อน
Complete Backend API in Golang (JWT, MySQL & Tests)
The Best Tool for LEARNING Golang
มุมมอง 4.8K6 หลายเดือนก่อน
The Best Tool for LEARNING Golang
Advanced Golang: Pointers
มุมมอง 2.1K6 หลายเดือนก่อน
Advanced Golang: Pointers
Authenticating your APIs in Golang (HTMX project)
มุมมอง 9K6 หลายเดือนก่อน
Authenticating your APIs in Golang (HTMX project)
Building Full Stack Golang + HTMX + Templ APP
มุมมอง 16K6 หลายเดือนก่อน
Building Full Stack Golang HTMX Templ APP
Advanced Golang: Goroutines & Channels
มุมมอง 6K7 หลายเดือนก่อน
Advanced Golang: Goroutines & Channels
Building a Chat with WebSockets and HTMX in Golang
มุมมอง 10K7 หลายเดือนก่อน
Building a Chat with WebSockets and HTMX in Golang
How to Send Emails in Golang (SendGrid)
มุมมอง 1.8K7 หลายเดือนก่อน
How to Send Emails in Golang (SendGrid)
How I Built Readwise in Golang
มุมมอง 6K7 หลายเดือนก่อน
How I Built Readwise in Golang
Deploying a NodeJS App to Google Cloud (with CI/CD)
มุมมอง 725ปีที่แล้ว
Deploying a NodeJS App to Google Cloud (with CI/CD)
Build and Deploy a Full Stack Newsletter App: Complete Node.js and React Tutorial
มุมมอง 2Kปีที่แล้ว
Build and Deploy a Full Stack Newsletter App: Complete Node.js and React Tutorial

ความคิดเห็น

  • @bhusanDa
    @bhusanDa 14 นาทีที่ผ่านมา

    Hey havent started watching it but have watched your videos before and will watch it when i have time. Great work 🙌. And just to inform you you social link for X is not working.

  • @gahshunker
    @gahshunker 21 ชั่วโมงที่ผ่านมา

    man, you're just speed typing through the whole thing :)) take some time to explain the reasoning behind, explain the rationale on how you arrived at the decision to write a specific line of code. just saying "i'm creating here a channel" and then proceeding to create a channel, is not very helpful tutorial. that is, if you want to teach us how to think about code, rather than copy pasting code that magically works

    • @TiagoTaquelim
      @TiagoTaquelim 10 ชั่วโมงที่ผ่านมา

      Thanks for the feedback. Ye that's something I've improved on the most recent videos.

  • @Lost1nTranslation
    @Lost1nTranslation วันที่ผ่านมา

    Is the front end code available? I'm not seeing it in the repo. Maybe I'm missing it?

  • @РодионЧаускин
    @РодионЧаускин วันที่ผ่านมา

    Walker Joseph Williams Jose Lopez Anna

  • @danieladesanya1208
    @danieladesanya1208 วันที่ผ่านมา

    Hi Tiago, Nice Tutorial you have here. Minor issue though, I'm trying to use the 'make' tool as you have used here on a windows 11 system. Saw something about using mingw32 but I am unable to get it to work. Any pointers as to what I can do?

  • @MVybz
    @MVybz 2 วันที่ผ่านมา

    I am not a fan of subscription services, is there anyway to buy the course for a fixed price?

    • @TiagoTaquelim
      @TiagoTaquelim 2 วันที่ผ่านมา

      I'm working on publishing it on Udemy latest by the end of this month. Also, you can always subscribe and cancel.

  • @tnnz9920
    @tnnz9920 4 วันที่ผ่านมา

    why u use chi instead of mux? is hard to use middleware in mux?

  • @thanhbinhnguyen5943
    @thanhbinhnguyen5943 4 วันที่ผ่านมา

    What software are you using to draw? Tks bro

    • @TiagoTaquelim
      @TiagoTaquelim 4 วันที่ผ่านมา

      It's called Eraser

  • @Lafsha
    @Lafsha 5 วันที่ผ่านมา

    well explained, thatnk you

  • @monarchgam3r
    @monarchgam3r 5 วันที่ผ่านมา

    Please what theme is this sir?

  • @SamuelMegan-k4f
    @SamuelMegan-k4f 6 วันที่ผ่านมา

    Thompson Shirley Clark Charles Walker Paul

  • @SamuelMegan-k4f
    @SamuelMegan-k4f 6 วันที่ผ่านมา

    Jackson Gary Davis Kimberly Martinez Donna

  • @GeorgeFoxRules
    @GeorgeFoxRules 7 วันที่ผ่านมา

    This is nuts!! I’ve never seen such attention to detail and breath of coverage in a single video.

  • @AamirAlam-jb6or
    @AamirAlam-jb6or 7 วันที่ผ่านมา

    I am really interested in buying this course but as an Indian and student, it's out of my budget🥲. From all my savings, I can only afford 2 months. If I can't complete it then its a waste🥲

  • @prthmsh2930
    @prthmsh2930 7 วันที่ผ่านมา

    🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥

  • @colinb8332
    @colinb8332 7 วันที่ผ่านมา

    Incredible video. Thanks!

  • @TiagoTaquelim
    @TiagoTaquelim 8 วันที่ผ่านมา

    Checkout the most recent version of this course: th-cam.com/video/h3fqD6IprIA/w-d-xo.html

  • @CristianDeGraciaNuero
    @CristianDeGraciaNuero 8 วันที่ผ่านมา

    Nice video, but in test cases following ur approach, how can you re-implement the mocked functions for edge cases? I mean, it's not nice to have to implement logic on mocked functions, the ideal should be to tell the function somehow what to return and when should return a certain value

  • @gahshunker
    @gahshunker 8 วันที่ผ่านมา

    1:59:26 can't you use generics to avoid code duplication in your Store struct? something like: type Entity interface{} type Storage[T Entity] interface { Create(ctx context.Context, entity T) error } and just have User and Post type implement the Entity interface, and pass that around in a create function It seems very redundant to have a Create method for any number of entities your db might support, since it can be a very big number. Imagine the Store struct if you have 20 entities

  • @FuriousDin
    @FuriousDin 8 วันที่ผ่านมา

    When you create order you must set OrderItem price in float/number as historical value. This value store one time on crate and never changed. When you Add to Order Item PriceId you get unexpected behaviour with price changes :D

  • @ifoxme8136
    @ifoxme8136 8 วันที่ผ่านมา

    Which tech stack would you pick as a frontend for this type of project? Htmx with templ and alpine.js would be fine?

    • @TiagoTaquelim
      @TiagoTaquelim 8 วันที่ผ่านมา

      I build the front-end using React for this project.

  • @giansiccardi6151
    @giansiccardi6151 8 วันที่ผ่านมา

    Do you have plans to take a more advanced microservices course, perhaps focusing on a larger ecosystem like order management? I think you would do great!

  • @ibrahimsuleiman7753
    @ibrahimsuleiman7753 8 วันที่ผ่านมา

    Thanks bro

  • @fullstack_journey
    @fullstack_journey 8 วันที่ผ่านมา

    this is amazing.

  • @gautam8469
    @gautam8469 8 วันที่ผ่านมา

    please more go lectures

  • @HoyleBarret-p4e
    @HoyleBarret-p4e 9 วันที่ผ่านมา

    Jackson Anthony Walker Brenda Moore Sandra

  •  9 วันที่ผ่านมา

    Excelente vídeo Tiago! Parabéns pelo canal e pela plataforma. Já pensaste em ter algum do conteúdo disponível em Português? Não existe muito e poderia ser algo interessante a explorar.

    • @TiagoTaquelim
      @TiagoTaquelim 9 วันที่ผ่านมา

      Obrigado! Atualmente não estou a ponderar partilhar em Português. Pelo facto de abranger um menor público e de ser me mais complicado transmitir informação técnica em Português 😅

    •  9 วันที่ผ่านมา

      @@TiagoTaquelim percebo perfeitamente, no entanto há imenso publico brasileiro. Mas era só um aparte. Outra coisa, quando dizes que no HandleFunc não aceite interpolação de strings para o patern, pode ser feito com o fmt.Sprintf, não que seja nada de espectacular, mas fica a nota ahah

  • @maciekwojdyna2271
    @maciekwojdyna2271 9 วันที่ผ่านมา

    hey @Tiago, what do you think about idea of handlers returning error? In my opinion it provides an insane way to handle errors outside the endpoint function with custom errors, that makes code more readable. After writing some applications with libraries like fiber and echo, im even wrapping std net/http package http.Handler into custom handler that returns an error, and later im handling it with some assertion of custom error struct, apiError for example :)

    • @TiagoTaquelim
      @TiagoTaquelim 9 วันที่ผ่านมา

      Hey, I don't mind returning errors from the handlers, from the longest time I didn't like it but now I've grown to like it more.

  • @aguarosada5
    @aguarosada5 9 วันที่ผ่านมา

    thanks for this tuturial, love from Angola africa

  • @hooyah
    @hooyah 9 วันที่ผ่านมา

    can i bought this course in udemy? because i dont have credit card. and unfortunately I'm a slow learner 😅

    • @TiagoTaquelim
      @TiagoTaquelim 9 วันที่ผ่านมา

      I'll upload it to Udemy in a couple weeks yes

  • @aakashsaha_as
    @aakashsaha_as 9 วันที่ผ่านมา

    Thank you sir for this awesome course

  • @salehghazimoradi1409
    @salehghazimoradi1409 9 วันที่ผ่านมา

    Yet another magnum opus from a tech-savvy professional. I look forward to hearing from you regarding the potential publication of your invaluable courses on Udemy. Please consider creating content on concurrency using Golang. My deepest appreciation.

    • @TiagoTaquelim
      @TiagoTaquelim 9 วันที่ผ่านมา

      Thanks! Yup this one will go to Udemy soon.

    • @salehghazimoradi1409
      @salehghazimoradi1409 9 วันที่ผ่านมา

      @@TiagoTaquelim You made my day by breaking the good news.

  • @aypwu330
    @aypwu330 10 วันที่ผ่านมา

    Just wondering if this is suitable for beginner people who want to learn Golang for backend? I have a CS background and experience working with Node.js/Express.js for backend but Golang just seems sooooo different.

    • @danieladesanya1208
      @danieladesanya1208 วันที่ผ่านมา

      If you have some typescript experience, it might not be all that different.

  • @matthew1106
    @matthew1106 10 วันที่ผ่านมา

    Your school link isn't working for me, shows it's down.

  • @ALMOUSLECKATALIBAG
    @ALMOUSLECKATALIBAG 10 วันที่ผ่านมา

    Where can we got the full course i register on the website and i'm seeing join for $14 month if i wanna buy the join not join for $14 a month how can i do? thank you

  • @SK_Covers
    @SK_Covers 10 วันที่ผ่านมา

    Waiting for Beginner Friendly tutorial series with real wold projects ❤❤❤❤ Love from India 🎉

  • @hauduedaiduong
    @hauduedaiduong 10 วันที่ผ่านมา

    Hi guys. I'm about to build a project that supports the citizen and government to have a centralized place to share information about disaters. It would probably include the realtime chat feature, location sharing... I have an opinion that if this system is going to scale at the times that disater happens, million of users could have joined and interact together. So I wonder which backend language or framework should I choose to have a robust scaling ability and still cheap (in RAM and CPU consumption) because the system is going to support community, so it should be as cheap as possible but still strong enough. My initial choice is NestJS because I'm familiar with it. I can write it really fast. But in terms of scaling and resources consumption I think NodeJS cannot compare to Golang or Rust. Then Golang - Gin and Rust - Actix Web come in my mind. Although I have no experience with them, I believe that if I can utilize one of them as the backend, it would really helpful in the long run in scaling and also resources consumption. May I have some advices from you guys... Thank you 🙏

    • @TiagoTaquelim
      @TiagoTaquelim 10 วันที่ผ่านมา

      Hey, I would not be worried about NodeJS performance, ofc do a research about it depending on what could be your main bottlenecks. I work a lot with NodeJS as well and it stacks fine for most use cases. I think you should weight the tech stack of yours and your team mates and see what everyone is most comfortable, if you have tight delivery that is.

  • @bijayaprasadkuikel5162
    @bijayaprasadkuikel5162 10 วันที่ผ่านมา

    Hey, I appreciate the effort you’ve put into this project, but I noticed something that goes against Go community standards. The `cmd` directory is meant to hold the entry points for your application (like `main.go`), not to house all the API logic. By placing everything under `cmd/api`, you're cluttering the structure, which makes the codebase harder to maintain and deviates from Go’s best practices. It’s best to keep the `cmd` folder clean and use `internal` or other directories for your logic. Just a suggestion to keep the project more idiomatic!

  • @fardinallahverdi5003
    @fardinallahverdi5003 10 วันที่ผ่านมา

    Thanks Tiago for greate content, what is the app name do you use for drawing diagrams ?

    • @TiagoTaquelim
      @TiagoTaquelim 10 วันที่ผ่านมา

      Thanks! It's called Eraser.

  • @farismasud8148
    @farismasud8148 10 วันที่ผ่านมา

    Sir tiago you are my hero

  • @victoronah
    @victoronah 10 วันที่ผ่านมา

    Hey man can you utilise the slog package for logging. Trying to learn a thing or two thanks 👍🏾

  • @mohammedaminaimeur6892
    @mohammedaminaimeur6892 10 วันที่ผ่านมา

    I had the chance to work with @tiago for around 7 or 8 months, he's really one of few that leaves you speechless with how much he can deliver per sprint! The guy literally over-delivers every sprint. Shout out to you buddy ✌🏻

    • @TiagoTaquelim
      @TiagoTaquelim 10 วันที่ผ่านมา

      Haha omg Amin, I remember you! Thank you so much for the kind words.

  • @YuvrajSingh-ob7ur
    @YuvrajSingh-ob7ur 10 วันที่ผ่านมา

    what's the vs code theme pls ??

  • @reinhard_silaen
    @reinhard_silaen 11 วันที่ผ่านมา

    Is there open api?

  • @FaheemAfridi-n5n
    @FaheemAfridi-n5n 11 วันที่ผ่านมา

    The video quality good and teaching style is also thank you sir❤❤❤

  • @mikkohbrayoh7629
    @mikkohbrayoh7629 11 วันที่ผ่านมา

    Thanks for this, thank you for your time.

  • @sanjeevgiri5380
    @sanjeevgiri5380 11 วันที่ผ่านมา

    sir please make a series on go from beginner to advance. i mean maybe a series of 10 or 15 projects that help many to go from beginner to advance

    • @TiagoTaquelim
      @TiagoTaquelim 10 วันที่ผ่านมา

      Noted.

    • @sanjeevgiri5380
      @sanjeevgiri5380 7 วันที่ผ่านมา

      @@TiagoTaquelim eagerly waiting sir❤❤

  • @veryrare876
    @veryrare876 11 วันที่ผ่านมา

    this 1.22? Thats amazing

  • @yusefhapiep920
    @yusefhapiep920 11 วันที่ผ่านมา

    Before watching this Thank you

  • @eduardosalles9212
    @eduardosalles9212 11 วันที่ผ่านมา

    muito Tiago.