Lesson Description

The "Introduction" Lesson is part of the full, Complete Go for Professional Developers course featured in this preview video. Here's what you'd learn in this lesson:

Melkey begins the course by sharing his background and explaining the prerequisites for the course. The Go application built throughout the course will communicate with a Postgres database running in Docker. PSQL will be used to view the data, and cURL commands will test the API routes in the application. - Course Website:

Preview
Close

Transcript from the "Introduction" Lesson

>> Speaker 1: So, my name is Melkey. I am a machine learning infrastructure engineer at Twitch. I've been there for over three and a half years now, which is crazy. Time really flies. I joined as a junior engineer with very little work experience, and then three and a half years later, I'm still there, and I really much so enjoy it. And the interesting part about, I guess the title is, people always ask me, how do you write Go in machine learning? I thought it's more like a Python thing or something like that. And people who make those comments are absolutely right. If I was creating the machine learning modules and models, I would probably be writing Python. The part that benefits me is the infrastructure part of the title. And because of that infrastructure aspect, that's where I use Go a lot. I write everything around the actual model. So I work really closely with scientists, data scientists, who develop the model, train the model, and then I work to make it usable. How to put in production. How do we make it reliable? How do we make sure it's quick, it's fast, it's safe, train new data, the pipeline. So all those aspects is kind of my bread and butter, and we use Go at Twitch, and that's how I've developed my own set of skills with the language. I stream live code at twitch.tv/melkey, so I am actually a user of the product at the company that I work for. And I think that's also really cool. I think if any aspect where you are a user, or you experience something that you are part of building. I think it just adds more of that kind of passion to do it You know that they want to do it. And then I also make coding videos at youtube.com/melkey. The YouTube videos are not just reruns of the live stream. I don't just take snippets of my live and box them out. I actually record everything new because I want my YouTube to be more like core tutorials, core topics. So yeah, check it out. I have lots of videos on Go where I don't know, explore cool packages that found on GitHub that solve a problem, or how to do something with Go that maybe some people haven't really faced. And then there's also just topics that I think are interesting to talk about. I constantly try to build many different things. I'm one of those people that gets an idea, try to spin it up, buy a domain. And then hopefully I finish it, but sometimes I don't. But some of the things I have finished include Go blueprint. So it is a project on GitHub. It has about 7000 stars. It's a CLI tool that spins up Go projects for you. So when I first started, it only spun up like the routing. For Go projects, like just the file structure and then some end points that people can query and like some options. But it's really evolved due to people kind of being interested in what this could offer. And so now it can spin up a front end portion using HTMX, React, we have a component in the works. So, yeah, it's a really cool project. I'm very proud of it. And I'm more proud of the contributions, honestly, and being part of a bigger scene in open source. Another thing I've built is that PFG Labs, it's a platform for people to learn about Go, and it's not a platform for courses to be hosted. It's more of a platform for doing projects interactively. So at PFG Labs, you will write code on your own IDE. Could be VS Code and even whatever you use. And then you actually submit using Git, your project. And then we run it through our system to tell you if you've passed the tests for whatever project you're building. So it's a little more interactive. It's also focused on Go. And then some other things. I actually taught a previous course on front end masters. The first course was how to build production apps that scale using Go and AWS. So again, we touch on Go in that course. I go through, maybe more of a preliminary beginner aspect of Go really showcasing some of that syntax, and then we encompass AWS to deploy the application. So that's something that you'd like to check out, definitely encourage everyone to look at that course as well. For this course in particular, I've jotted down four things that we will be needing. And I'm not going to say the obvious one, like a Wi-Fi connection obviously we need Internet, which would be bringing in different components. But the things that we absolutely need in our machine is Go. So have Go installed in your machine. I'll actually show people how we can install Go when we get to the component. So I'll show how you can set it up on VS Code or any of them. Docker and Docker Compose installed on your computer. This one, I was very hesitant about, because we can do a full Go course without using any Docker. But I thought I want to just kind of rip the bandit off, and I want to encompass Docker. And if you're not familiar with Docker, it's simply just. The way I describe it is like simply just these containers that have software, and that software just lives in the container, not on your actual machine. So on your actual machine, you'll have this, like Docker container. We can think of just this black box, and within it, it will have any software that you specify to have. And the reason we're going to have Docker is because I don't want to be too invasive into people's computers. So Docker, I think, is just a good way to spin things up. And we're going to be using Docker for our database. And our database is going to be with Postgres. I chose Postgres because, simply, it's like an industry standard. I think it's the best solution to relational data. Of course, if you're interested in non-relational data, like document style data, there's Mongo, no SQL solutions like DynamoDB. But I thought for our case, let's keep the data relational. I think it's a bit more straightforward. And Postgres is all reliable. I think that's the best way I could put it. It's going to work the features it rolls out is they're always great. You can really throw anything at Postgres, and it typically works. There's very few situations where people break Postgres. So I'm a big fan of it, if you couldn't tell. And then there's this little plus PSQL. PSQL is simply a way for us to interact with Postgres. So if you're kind of following the trend here, we'll have Docker, Docker will have Postgres and that will have our database, and we'll connect to it. And then we kind of want to see what's happening in the database. So we're going to be using PSQL. However, if you want to use another app that has a UI component there's stuff like Bruno, Postman, Postwoman, apps like that that works too. Sorry, for PSQL it would be DBeaver and other tools where you can actually look at the database, interact with it. PG admin, I think, is also a solution. For me, PSQL is simply a tool that runs in the terminal. So we'll just see my terminal, and we'll use PSQL commands to connect to it. cURL is where we're obviously going to be using because we're going to query our server, our back end server in Go that's going to communicate to our database. Most of the time I use cURL because, again, I'm a fan of just having the terminal and having just like the terminal UI dictate everything. So I write my cURL commands. You'll see them. They're sometimes not the prettiest, but have a JSON editor, they'll help it make it prettier. But again, if that's not your flavor, that's not your style, definitely you can use any kind of app, UI tool, like Postman, Bruno, Postwoman, anything like that. So these are just communication tools. The core is kind of Docker, Postgres, and if you have whatever preference you want, feel free to use them.

Learn Straight from the Experts Who Shape the Modern Web

  • In-depth Courses
  • Industry Leading Experts
  • Learning Paths
  • Live Interactive Workshops
Get Unlimited Access Now