Check out a free preview of the full Introduction to Backend Architectures course
The "Introduction" Lesson is part of the full, Introduction to Backend Architectures course featured in this preview video. Here's what you'd learn in this lesson:
Erik introduces the course by discussing its goals, including defining backend system architecture designs, understanding when to use them, and learning how to implement them. Prerequisites for the course include a basic understanding of software development and backend versus frontend.
Transcript from the "Introduction" Lesson
[00:00:00]
>> Erik Reinert: Welcome everybody to introduction to systems design, focusing on architecture. This course is primarily focused on teaching and educating about architectural backend system principles, challenges, real-world applications, while offering a detailed understanding of when and how to implement them. There's gonna be a lot of things that we talk about in this course.
[00:00:23]
The main thing I want you to be able to take away as a developer is to be able to feel empowered on when and how to make backend system architecture designs. If you've ever felt like you've ever been curious or ever wanted to build larger scale systems, or build appropriate systems for specific problems, that's really a big part of this course and walking away from it.
[00:00:46]
Before we get started, I'd like to introduce myself. Hello, my name is Eric Reinert, also known as Blackglasses on the interwebs. I'm a senior software engineer. I work at a company called Hippo where I do a lot of the practices and methodologies that we're gonna be talking about in the course today.
[00:01:01]
I'm also a content creator. I stream and make videos on Twitch and YouTube under the Alt-F4 Stream. I'm a diagram and flowchart artist. I really enjoy building diagrams and flowcharts and taking my mental images of how I wanna build something and putting them to paper. And I'm also a habitual problem solver, I really like putting myself into situations and trying to solve problems the best I can.
[00:01:25]
Learning through that experience and it's been a big part of how I've grown as a developer. If you're curious about finding any of the content I created on the internet, I've got a few links here that you might be interested in. First off is the Engineering Blog. I have a company called Alt 4 LLC and we build content creator tools as well as other software.
[00:01:44]
And a big focus of this blog is to try and educate people and how we do things and how we tackle specific problems. It's updated often and so if you're ever curious about how we solve problems as a company, it's a great resource. I also stream on Twitch as I mentioned, twitchtv/thealt4stream my stream weekdays and weekends.
[00:02:02]
So if you're ever curious about any of the stuff I'm working on or you wanna learn more about what I'm doing, you should always hop in chat and say hello. I'm also on Twitter, although I don't really call it X. I do tweet on Twitter, so if you're ever curious about what I'm doing or again, any of the projects I'm working on, you can check that out.
[00:02:19]
As well as YouTube, where I upload a lot of videos about things that I'm working on and projects I have interest in and things like that. To give you a little bit of background of where I started and where I've come from. I first started my career with frontend.
[00:02:32]
I started doing that for about two and a half years at a company called Media Temple, where I was heavily focused in building PHP frontends and slowly moving to JavaScript. This was a time when React was kinda just coming out, and so I was a part of that transition from moving backend frontends to fully client based JavaScript frontends.
[00:02:51]
A big part of what I do and my interests and how I kind of follow my career path is also that I'm really driven by my curiosity. And so after I did frontend for a few years, I found myself wanting to take new steps into different parts of the software development stack.
[00:03:08]
And one of those was backend, which is a lot of what we're gonna be talking about today. I spent about two and a half years working on backend systems. I worked at a company that was a startup where I was really in charge of building a lot of those systems and working with a lot of different new things, like geolocation and hailing and all this kinda stuff.
[00:03:28]
After working in backend for two and a half years, again, I wanted to follow my curiosity with a lot of my interests. And one of that interests was saying, okay, I've worked in frontend. I've worked in backend, now I'd like to know what it's like doing full stack.
[00:03:40]
I spent two and a half years doing that as well. I worked at another startup where I had a lot of responsibilities around prototyping and building out new systems to try and be as agile and quick as we possibly could to deliver things to market. So I had a lot of experience and got a lot of experience with understanding how to move fast.
[00:04:00]
Understanding how to build small systems and large systems. And that again led me towards the next phase of my career which was, I'd like to really learn and own this as more of a high level engineer. And so after I left the full stack position, I started actually leaning more towards, DevOps and Platform Engineering, which I've been doing for the last four and a half years.
[00:04:24]
My current job is heavily focused on a lot of those challenges, whether it be how do we improve developer flows, how do we build new systems that developers use. As well as how do we build new systems that users use and how do we join those together in a cohesive experience.
[00:04:41]
And that really brought me to even where I am today, where I slowly stepped away from implementation and writing code and become much more passionate about developing the architectures. The systems, the scalability of the systems, the robustness of them, which is really what brings us to the course that we're gonna be going over today.
[00:05:03]
>> Erik Reinert: I do have two existing courses on Frontend Masters, if you are curious. And what's really great about these courses is they're all kind of themed around a lot of the same things. The first course is an introduction to DevOps for developers, where I talk about taking your first steps into DevOps basically, from a perspective of a developer.
[00:05:23]
DevOps is a really thrown around word, and it's kind of not really well defined. And my goal in this course was really to help you walk away, understanding what DevOps actually means for a company. How to use these practices and principles to help grow the developer experience as well as internal systems and things like that.
[00:05:42]
And a lot of that course should help you understand how you define DevOps at a company. I also have a course called enterprise cloud infrastructure. Again, I try and really work and educate around the things that I know. That's where I feel like I have most of my confidence, and so enterprise cloud infrastructure was really the next step for my career, which was learning how to use DevOps and use it at a large scale.
[00:06:07]
Learning how to do things like set up large scale systems with GitOps, optimizing CI/CD workflows, standardizing strategies for an organization, and how to handle, cloud resource management and other things like that. And I think if you're interested in more of a scale, you wanna learn how to take a company and grow it to a much higher automated process based system.
[00:06:34]
Enterprise cloud infrastructure's a really great course for that and it should be something that you can take to almost any company. And be confident that you can grow that company to the scale that it needs. So the first goal of this course is to define what backend system architecture designs are.
[00:06:51]
How you're gonna build something if you don't fully know what something is? And so the first thing I wanna be able to do is help you define what these things are and what these tools are. From there, I wanna help you define when to use backend system architecture designs.
[00:07:09]
There are situations where you might be in a circumstance where you do need to create designs for a specific problem that a company might need to solve, or a specific challenge that you're dealing with. And so this section of the course should help you understand when you should actually pull the trigger on completely designing something from scratch, doing small iterative changes and things like that.
[00:07:34]
After we define the what and the when, we're gonna define the how, right? So now that you understand what backend systems are, and now that you'll understand when to use them. We'll show you how to implement those backend systems, step-by-step considerations, things that you should be thinking about, best practices.
[00:07:52]
The goal here is that, this should help you feel empowered to actually start taking the steps of solving the problems you need to at an organization. There's also a second part of this course, which is really focusing on exploring common backend system architecture designs, things like microservices, monoliths, serverless.
[00:08:10]
These are all a lot of the things that we're used to talking about today and that are growing in our industry. And so I help you understand what these are and how they're useful. At the end of the course, we also showcase the evolution of a backend systems architecture.
[00:08:24]
So we talk about where most systems normally start whether it be from a modelist or a service perspective to moving to servers or serverless, or vice versa moving backwards, moving forwards. The idea is just to kinda show you that this is a fluid evolution that happens over a period of time.
[00:08:44]
It's not just a designated step-by-step-by-step, but it's really about use case of starting from one, growing to another, and then growing even further as the company grows and the requirements for that company. Are there pre-requisites for the course? There aren't many, but I do think that it would help to have a basic understanding of software development.
[00:09:04]
If you've never built software before or anything like that, this might be a little difficult for you because a lot of this is high level. A lot of this is conceptual and kinda helps you get you in the mindset of how to solve these problems. So if you have a good understanding of software development, that'll definitely help.
[00:09:20]
On top of that, a basic understanding of backends versus frontends, again, we're gonna be focusing very heavily on backends today. However, there will be a course on Frontend Masters in the near future about frontend systems designs that you guys should check out as well which should pair really well with this course.
Learn Straight from the Experts Who Shape the Modern Web
- In-depth Courses
- Industry Leading Experts
- Learning Paths
- Live Interactive Workshops