×

Używamy ciasteczek, aby ulepszyć LingQ. Odwiedzając stronę wyrażasz zgodę na nasze polityka Cookie.

image

Programming, How to Become a Good Backend Engineer (Fundamentals)

How to Become a Good Backend Engineer (Fundamentals)

what's going on guys my name is russain

and I'm making this video because some

of you have asked me they they're recent

graduates or they're just getting into

software engineering and people are

interested to learn and become a

back-end engineer or just to be a better

engineer in general and you guys have

asked me of some sort of a path to to

become a back-end engineer what do I

need what do someone need to actually

become a back-end engineer what kind of

skills do you do do a back engineer

actually possess and it's it's

interesting the word skills here because

I'm not going to talk about tools guys

because we're not gonna discuss tools or

actual applications that you need to

know instead we're gonna discuss

fundamentals and concepts that you need

to understand in order in order to

actually become a back-end engineer or

better back in engineer all right so in

this video I'm not gonna discuss tools

I'm gonna discuss concepts and

fundamentals and so that means I'm not

gonna talk about Django or nodejs I'm

gonna talk about web frameworks I'm not

gonna talk about Apache caf-co RabbitMQ

I'm gonna talk about messaging systems

I'm not gonna talk about Apache

Cassandra Postgres I'm going to talk

about database engineering and no sequel

databases and and relational databases

and and so on and as we discuss these

concepts or or skills or fundamentals I

want you to understand that no one is

actually knows all that stuff there is

no back engineer who is an expert in all

all of these skills there might be an

engineer oh my

biggs is that know someone thing of

everything but you're either a jack of

all trades master of none or you're

actually a master of a vertical that you

pick and you become really really good

at and this is what i want to

communicate to you guys right you can

taste all these fundamentals but while

you're tasting this thing you will find

yourself automatically gravitated

towards one or more and this is where

you and no one else can tell you to

actually go deep into whatever you like

okay you might be interested in

databases so you've got into database

engineering and you might go even deeper

than that right go psycho I want I want

to be an expert of no sequel high

scalable and transactional and gene

database engineering so which is which

is very niche right so this is what I'm

gonna discuss in this video so if you're

interested stay tuned if you're new here

welcome my name is Hussein and in this

channel we discuss all sorts of software

engineering by example so if we want to

become a better software engineer

consider subscribe and hit that Bell I

can so you get notified every time I

upload a new video and I specialize in

the backend if you're interested stay

tuned alright so the first skill that I

want to discuss here is the

communication protocols as a back-end

engineer it is it is good to understand

these communication protocols and when I

say communication protocols I'm talking

from the low-level protocols TCP and UDP

you can't go lower than that but you're

kinda going into the networking aspect

you're becoming a network engineer but

that's that's okay as well but the

lowest you can in my opinion again all

of this stuff is all my opinion and all

my personal opinion and then always you

can get this TCP and UDP and this is

very important to understand what

happens during a TCP what having do

UDP why is UDP connectionless versus why

is TCP is a connection for right and

then and what why is TCP slow and why is

it slow right because we hear that OH

TCP has a slow startup you need to

understand these concepts right it's

like oh yeah TCP is slow but why crime

and because you understand why you make

great decisions because you understand

these small small small things right

collateral no this all about collateral

not you and then understand a little bit

of a higher concept such as HTTP right

how HTTP works all HTTP works on top of

TCP and this is obviously a little bit

changing these days with HTTP 3 and

quick but just understand the

fundamentals all right HTTP protocol

what is it exactly right and as I

discuss this thing I'm strong I'll try

to reference videos that I have made for

you to actually go and and explore more

I made videos about TCP UDP I made a

video about HTTP one-tooth making video

about 3 as well as we speak and just

just understand these protocols and

communication protocols it's very very

critical to understand as a back-end

dream because you will get into a

situation where you're building an API

and your application is slow ok and you

need to answer this question why opening

700 TCP connections maybe as a bad idea

you're you're writing code that creates

a loop and and and does something but if

you don't understand that is actually

creating and closing a TCP connection

right you don't understand why it's slow

that's why communication protocol is

very interesting in and it's good to

understand especially the HTTP right if

you're going into the higher level

closer to a front-end engineer it's it

at least and understand how HTTP works

and that's that's very interesting to

know HTTP 1 and it could be 2 what

happened exactly what are our problems

which to be 1 and why did we focus on

HTTP 2 all right

and as I explained these things you

might not be interested in this car kind

of skills that's why you have to jump

into something else but at least taste

it learn about read about it

some videos about it and if you're

really interested in dive deep into it

if not and jump into the next thing if

you know if you find and none of this

stuff in their interest to you maybe you

don't like back in engineer and you

might be you might actually find

yourself more productive and more

efficient as a front-end engineer right

it's just there's this this isn't

completely the front-end engineer Isaac

is a beast by itself right and I

recommend following people like Ben our

and traversing media and develop

simplified people who actually just do

stuff every day about what front end

right another communication protocol is

is WebSockets for example bi-directional

why would I use bi-directional

communication why would I use WebSockets

right well I'm building a chatting

application and I want my channel

application to work on agnostically on

my old devices on a browser right or I'm

building a game

I need bi-directional communication and

what is bi-directional communication all

this kind of small things cuz I'm not

gonna give a dive deep into the details

as I speak right and ask me questions if

you're interesting I'm gonna guide you

as we speak okay G RPC what is G RPC

another communication protocol it was

invented for a reason any thing that you

see here is invented for a reason

because of a limitation of a previous

protocol okay

so G RPC is another thing communication

protocol alright so that's the first

thing communication protocols in general

any communication protocol that he can't

you that you were actually interested in

and and you can go deep into this and

write RFC's yourself to that level

become an expert than that right and

yeah it's just a breadth versus depth

right so okay that's the first thing

communication protocols I think is very

it's very critical skill of a back in

engineer web servers web servers are

again especially because we're dealing a

lot with this could be this this section

could be labeled as just servers if you

think about it but I added that word web

because web servers

becoming more and more critical as we

speak and as we get into this to the

2020s right because web servers are

their own they have their own perk

obviously there are the HTTP that kind

of reinforces the ability of the HTTP

and web servers the ability to serve

content just that job okay serving

content whether this content is static

or and you'll get into the ideas of

caching and all that stuff all whether

this content is dynamic and you're

dynamically generating it is your web

server supports each side includes and

an edge web software is the ideas of

edge web servers and you can go deep

into that types of web servers that are

there okay and the ideas of how web

servers deal with etags and attack

generation making sure the caching

mechanism of the clients actually

correct the web server implementation

threading right

how many thread does a web server have

is it a single threaded that is none

blocking like no js' or is it

multi-threaded like a Apache Tomcat or

Apache that Apache web server

I just there are a lot of implementation

and decisions that there isn't there is

no right way of doing things there is

always a problem and you're trying to

solve it okay so web server every single

website that you consume is hosted by a

web server there are web servers that

are doing multiple jobs like nginx it's

act like both as a web server and also

as a proxy right and this is this a good

thing or a bad thing it's really up to

you that back comes back to the HTTP

protocol and how how good are you to

understand this protocol so you can

maybe build your own web server one day

yeah and that self said that solves a

specific problem so that's a back

engineer you need to deal with web

servers and deal with server and learn

with them

my favorite part database engineering so

that is engineering is is is so deep

guys

and you can just take a career not just

about database and even database

engineering it is it is so high level

right because not talking about back-end

engineer is high level data is

engineering is also high level because

you can you can become an expert in an

and log structured knowledge tree

indexes that are text-based

you can go as deep as niche as that and

become a back-end engine that is just

the guy or the gal that people goes to

for LSM index taxpayers search you can

you can you can do that right you can be

that or right you can you can just taste

that field are you interested in

relational databases okay if you're if

you want to learn database engineering I

think every back engine should

understand acid atomicity consistency

isolation and durability and that you

can take you can take a doctorate just

talking about all these four properties

they are so complex you can just be an

expert in isolation just pick isolation

database isolation and become an expert

in it and just learn stuff and I keep

saying expert guys and I don't believe

anyone can actually become an expert

because if you think yourself as an

expert I don't think you know enough

because because the moment you say I am

an expert that means you think that you

know everything and if you know

everything that egos killing you right

and that means there is no room to grow

that's why I never call myself an expert

okay and never well but let other people

call you an expert in a certain name but

never call yourself that's just my

opinion

so relational databases acid properties

no sequel right people saw found

problems with scalability in a

relational so they move to no sequel

they said ok hey we want we want we

don't want this very strict budget

otama City we can give up some of these

properties and in favor of scalability I

want to scale okay even scalability it's

a huge thing with back in engineering

right proxies guys and personally this

is my favorite from tasting back in

engineering for the past 15 years I find

myself leaning towards proxies because

proxies is I think is gonna just blow up

in the coming future because with the

introduction of micro services which

isn't just an architecture proxies

became more and more important and when

I say a proxy I'm talking about a proxy

and I'm talking about reverse proxies

and when I say a reverse proxy I'm

talking about caching layers I'm talking

about load balancers I'm talking about

all of that stuff that actually TLS

termination anything that actually make

a request on behalf of a client or

anything that receives a request and

makes a request to other servers that

hides the identity of the original

client or hide an identity of the

original the destination server reverse

proxy proxies what is the difference

between the proxy and reverse proxies we

discussed a lot of videos regarding this

topic right layer seven proxying layer

four proxying layer 3 proxy which is

still I'm not I don't totally understand

but I'm trying to write layer 4 proxy

layer 7 proxy why would you do we have

two levels of proxies and what can you

get at each layer you can dive deep into

each one of this and become also again

coding called export of this right

rather reverse proxy applications load

balancing algorithms and all that stuff

just the ideas of proxies okay

service meshes service missions are so

popular these days man because because

of the micro services and what our

service meshes they are nothing but a

proxy and a reverse proxy so proxies are

just becoming more and more and more

poppy

every day maybe you're gonna like it

taste it see if you like it as a backing

engineer if you don't move on caching

caching layers are so critical in every

of every stack with our back-end or

fronting write caching layers their

varnish understand reverse proxies are

by inherently caching layers because or

proxies as our caching layers I want to

understand when to use caching and and

databases that are designed for caching

like in memory caches run stateful

versus stateless caching all these kind

of things caching is also very important

you can become an expert also in caching

just specific just designed to be

caching expert and and caching is one of

the hardest problem in computer science

cache affection in general are you

interested in that

this will really really really be very

very valuable for you

messaging systems right messaging system

are becoming more important as we move

towards an interconnected system there

is no more a client as a user connect to

one system there are systems connect

communicating with each other and to do

that you need some sort of a messaging

system to kind of coordinate this thing

ok there are too many types of this just

partial types is cute

the idea of a simple elegant queue

RabbitMQ plays many things I'm not a fan

but just pick a software that actually

does just aq0 mq i believe just just

stick you right but again no shade right

rabbitmq does many things right and and

the moment you have a software that does

many things this also becomes more

complicated you guys know and it becomes

really hard to debug it becomes you'll

start having bugs and understanding the

abstraction becomes really hard right

Kafka is another system right it acts

like a cue but is first it is a pops up

publish/subscribe system and that's all

of this thing these are the concept and

fundamentals that back engine should

understand not Kafka not rabbitmq not 0m

q these are tools these are applications

understand how the messaging system

actually just what is a messaging system

understand that right why did we build

it right there's always a reason for

anything if you find something without a

reason toss it immediately or ask

try to ask for why does it exist okay

everything in software engineering there

is a reason behind it okay usually it's

a good reason what API would frameworks

that one of the most popular things

nodejs

django right express all that stuff are

web frameworks that are designed to

build the web api so order this is G RPC

or a REST API right REST API is also an

architecture right that's kind of falls

within the framework and that protocols

write the architecture okay all that

stuff guys kind of fall with it within

this concept of frameworks right just

understand what is a web framework very

close to a web server but it actually it

actually more dynamic allows you to

write code write web servers usually

serve static or dynamic code write

dynamic web servers and frameworks can

give you unlock many many potential use

cases message formats right this is

another kind of skill that it's good for

you to know right that's just a concept

and fundamentals right there are

protocol buffers there's the message

format the original one XML then came in

because it's a human readable people

designed it so it's Rehema readable then

people realized oh dang computers are

really not good dealing with XML which

is a human readable so might as well

just make it a little bit smaller Jason

was born right and then Jason was born

then protocol buffer Jason was very very

popular popular obviously still really

readable but it's also a little bit

friendlier right JavaScript became very

popular obviously languages right in

general and the message formats right

protocol buffers that was designed to

solve the problem of high bandwidth

messages that being sent okay let's do a

protocol buffer that actually minimizes

that payload so we can essentially send

fewer bytes as much as possible so

that's essentially message formats very

very interesting topic you can also

become an expert about just messaging

for me you can go the go to a guy about

protocol buffer version 3 right and just

the things they can tweak their security

and finally security guys security is

also one of the topics that I find very

very very interesting and III I see

myself between diving a kind of kind of

going deep into security and proxies I

like both of those right and and it

depends on URI I might have missed some

fundamentals as well guys but these are

the things that I think kind of govern

most of the stuff right security

especially encryption in general right

TLS transport layer security between

messaging and networking right how do

you communicate between one node and the

other node so that the communication is

secure so that you stop

man-in-the-middle attacks so that you

stop reply at acts how do you make

things secure in general how do you save

your your database credential so is not

leaked for example right firewalls kind

of deal into security what ports do you

want to open what ports you should close

right denial of service attacks right

what type of denial service attacks as

an eye server name indication

security there's there are so much

attacks you can become an expert as you

might know guys in just security and you

can just pick web security or be more

general network security right again

guys that's that's all for me today but

what I want to tell you is just try to

just stays as a fresh graduate if you're

just into software engineering and you

want to you're interested in back in

engineering taste these different thing

taste them learn about them see what

you're interested in

ask questions ask me in the comment

section below I try to reply and I'm

comments are increasing increasing day

by day as as the channel become more

popular thank you so much guys but ask

questions why this why is it like this

why is it not like this right form your

own opinion have strong opinions try to

defend your own opinion build something

cool experiment with things languages

don't matter you can pick any language

that you feel connection with I started

with you can laugh visual basic five and

I love it people make fun of this

language all the time but guess what I

don't care that language got me where I

am today

I built thousands of applications holism

maybe a saturation maybe and then in the

hundreds

but I'm reserved application just with

visual basic right visual basic 5 and

then visual basic.net then I move to C

sharp and then I move to PHP on the web

they move to JavaScript and now I'm all

off with this JavaScript why because

that's the only language that I can open

a browser in any computer and I can

write code in without installing a

single software give me any language

that does that none okay none any

computer any operating system open a

browser and you can write JavaScript

code right there that's the only that's

one of the reasons I love JavaScript I

can I can just itsu everywhere right

it becomes literally a Brewer that's

just an opinion Python is a great

language take any language that you're

comfortable with

go a lot of people use go for the back

end again

Brust is also popular right very see

like right but yeah

picking language any fundamental that

you learn can be applied with any

language there is some languages that

are preferred for the back end like see

okay and you're gonna pick it when you

understand what you're building right

that's that's the that's what you need

to know taste these different things

taste these different fundamentals and

if you like any of them

start diving deep and two into each of

one of them go depth go deep into one of

them that are you actually interested in

or maybe you want to become a full-stack

engineer okay again you you can become a

fellow second engineer but don't expect

to be an expert obviously right because

if you are a first tech engineer you

know the front end and you know the back

end oh definitely that's not wrong right

but people will not hire you if they

want a database expert or they want

someone to configure there they want to

rewrite they want to write a new

database that uses a special version of

B trees that are actually optimized for

writes then I gotta hire a full stack

injury they're gonna hire a back-end

engineer specialize in databases right

you might be you might be okay with that

or you might be okay with working in the

front and in the back and nothing wrong

with that I'm just saying that if you

want to become really known for

something pick one thing dive deep into

it okay alright guys hope you enjoy this

video I hope it is useful for you guys

I'm gonna see you in the next one write

down what do you want to learn next what

do you want me to make next and check

out the videos in the channel and I

really appreciate you thank you so much

stay safe in this current situation that

we are in I hope it goes away hopefully

soon just stay safe guys

and got to see you in the next one you

guys stay awesome

Learn languages from TV shows, movies, news, articles and more! Try LingQ for FREE

How to Become a Good Backend Engineer (Fundamentals) 如何||成为||优秀的|后端|工程师| |||||Backend|| |||||бэкенд-разработчик||Основы كيف تصبح مهندسًا جيدًا للواجهة الخلفية (الأساسيات) Wie man ein guter Backend-Ingenieur wird (Grundlagen) Cómo convertirse en un buen ingeniero de backend (fundamentos) 優れたバックエンドエンジニアになるには(基礎編) 훌륭한 백엔드 엔지니어가 되는 방법(기초) Jak zostać dobrym inżynierem backendu (podstawy) Como se tornar um bom engenheiro de back-end (fundamentos) Как стать хорошим бэкенд-инженером (основы) İyi Bir Arka Uç Mühendisi Nasıl Olunur (Temel Bilgiler) Як стати хорошим бекенд-інженером (основи) 如何成为一名优秀的后端工程师(基础) 如何成為優秀的後端工程師(基礎)

what's going on guys my name is russain |||||||Руслан |||||||russain

and I'm making this video because some và tôi làm video này vì một số

of you have asked me they they're recent

graduates or they're just getting into

software engineering and people are

interested to learn and become a thích học hỏi và trở thành một

back-end engineer or just to be a better

engineer in general and you guys have

asked me of some sort of a path to to me preguntó de algún tipo de camino a a

become a back-end engineer what do I ||||back-end developer|||

need what do someone need to actually

become a back-end engineer what kind of

skills do you do do a back engineer

actually possess and it's it's |обладать||| |يمتلك|||

interesting the word skills here because

I'm not going to talk about tools guys

because we're not gonna discuss tools or porque no vamos a discutir herramientas o

actual applications that you need to

know instead we're gonna discuss

fundamentals and concepts that you need ||المفاهيم|||

to understand in order in order to

actually become a back-end engineer or

better back in engineer all right so in

this video I'm not gonna discuss tools neste vídeo não vou falar de ferramentas

I'm gonna discuss concepts and

fundamentals and so that means I'm not

gonna talk about Django or nodejs I'm |||Джанго(1)||nodejs| |||Django|||

gonna talk about web frameworks I'm not ||||фреймворки||

gonna talk about Apache caf-co RabbitMQ |||Apache Kafka||| |||Apache|Caf||RabbitMQ

I'm gonna talk about messaging systems ||||системы обмена сообщениями|

I'm not gonna talk about Apache ||vou ver|||

Cassandra Postgres I'm going to talk Cassandra|Postgres||||

about database engineering and no sequel |||||لا علاقة له |||||sin secuencia

databases and and relational databases |||relacional|

and and so on and as we discuss these и так далее, и по мере того, как мы будем обсуждать эти

concepts or or skills or fundamentals I

want you to understand that no one is

actually knows all that stuff there is

no back engineer who is an expert in all

all of these skills there might be an

engineer oh my

biggs is that know someone thing of grande|||||| grande||||||

everything but you're either a jack of

all trades master of none or you're

actually a master of a vertical that you

pick and you become really really good

at and this is what i want to

communicate to you guys right you can

taste all these fundamentals but while

you're tasting this thing you will find

yourself automatically gravitated ||se atraiu

towards one or more and this is where

you and no one else can tell you to

actually go deep into whatever you like

okay you might be interested in

databases so you've got into database

engineering and you might go even deeper

than that right go psycho I want I want

to be an expert of no sequel high

scalable and transactional and gene ||transactional||

database engineering so which is which

is very niche right so this is what I'm

gonna discuss in this video so if you're

interested stay tuned if you're new here

welcome my name is Hussein and in this ||||Hussein|||

channel we discuss all sorts of software

engineering by example so if we want to

become a better software engineer

consider subscribe and hit that Bell I

can so you get notified every time I ||||notificado|||

upload a new video and I specialize in

the backend if you're interested stay

tuned alright so the first skill that I

want to discuss here is the

communication protocols as a back-end communication|protocols||||

engineer it is it is good to understand

these communication protocols and when I

say communication protocols I'm talking

from the low-level protocols TCP and UDP |||||TCP||UDP |||||TCP||UDP

you can't go lower than that but you're

kinda going into the networking aspect un poco en el aspecto de la red

you're becoming a network engineer but

that's that's okay as well but the

lowest you can in my opinion again all

of this stuff is all my opinion and all

my personal opinion and then always you

can get this TCP and UDP and this is

very important to understand what

happens during a TCP what having do

UDP why is UDP connectionless versus why ||||connectionless|| ||||sin conexión||

is TCP is a connection for right and

then and what why is TCP slow and why is

it slow right because we hear that OH

TCP has a slow startup you need to

understand these concepts right it's

like oh yeah TCP is slow but why crime

and because you understand why you make

great decisions because you understand

these small small small things right

collateral no this all about collateral |||||collateral

not you and then understand a little bit

of a higher concept such as HTTP right ||||||HTTP|

how HTTP works all HTTP works on top of

TCP and this is obviously a little bit

changing these days with HTTP 3 and

quick but just understand the

fundamentals all right HTTP protocol

what is it exactly right and as I

discuss this thing I'm strong I'll try

to reference videos that I have made for

you to actually go and and explore more

I made videos about TCP UDP I made a

video about HTTP one-tooth making video

about 3 as well as we speak and just

just understand these protocols and |||protocols|

communication protocols it's very very

critical to understand as a back-end

dream because you will get into a

situation where you're building an API

and your application is slow ok and you

need to answer this question why opening

700 TCP connections maybe as a bad idea

you're you're writing code that creates

a loop and and and does something but if

you don't understand that is actually

creating and closing a TCP connection

right you don't understand why it's slow

that's why communication protocol is

very interesting in and it's good to

understand especially the HTTP right if

you're going into the higher level

closer to a front-end engineer it's it

at least and understand how HTTP works al menos y entender cómo funciona HTTP

and that's that's very interesting to

know HTTP 1 and it could be 2 what

happened exactly what are our problems

which to be 1 and why did we focus on

HTTP 2 all right

and as I explained these things you

might not be interested in this car kind

of skills that's why you have to jump

into something else but at least taste

it learn about read about it

some videos about it and if you're

really interested in dive deep into it

if not and jump into the next thing if

you know if you find and none of this

stuff in their interest to you maybe you

don't like back in engineer and you

might be you might actually find

yourself more productive and more

efficient as a front-end engineer right

it's just there's this this isn't

completely the front-end engineer Isaac

is a beast by itself right and I

recommend following people like Ben our

and traversing media and develop |traversando medios|||

simplified people who actually just do

stuff every day about what front end

right another communication protocol is

is WebSockets for example bi-directional |WebSockets|||| |WebSockets|||bi-direccional|

why would I use bi-directional ||||bi|

communication why would I use WebSockets

right well I'm building a chatting

application and I want my channel

application to work on agnostically on ||||in a way that is not dependent on a particular system| ||||de manera agnóst|

my old devices on a browser right or I'm

building a game

I need bi-directional communication and

what is bi-directional communication all

this kind of small things cuz I'm not

gonna give a dive deep into the details a profundizar en los detalles

as I speak right and ask me questions if

you're interesting I'm gonna guide you

as we speak okay G RPC what is G RPC |||||||||RPC |||||G RPC||||

another communication protocol it was

invented for a reason any thing that you

see here is invented for a reason

because of a limitation of a previous

protocol okay

so G RPC is another thing communication

protocol alright so that's the first

thing communication protocols in general

any communication protocol that he can't

you that you were actually interested in

and and you can go deep into this and

write RFC's yourself to that level |RFCs||||

become an expert than that right and

yeah it's just a breadth versus depth sí, es sólo una amplitud frente a la profundidad

right so okay that's the first thing

communication protocols I think is very

it's very critical skill of a back in

engineer web servers web servers are

again especially because we're dealing a

lot with this could be this this section

could be labeled as just servers if you ||etiquetados|||||

think about it but I added that word web

because web servers

becoming more and more critical as we

speak and as we get into this to the

2020s right because web servers are

their own they have their own perk ||||||benefit

obviously there are the HTTP that kind

of reinforces the ability of the HTTP

and web servers the ability to serve

content just that job okay serving

content whether this content is static

or and you'll get into the ideas of

caching and all that stuff all whether caching|||||| caché||||||

this content is dynamic and you're

dynamically generating it is your web dinámicamente|||||

server supports each side includes and

an edge web software is the ideas of

edge web servers and you can go deep

into that types of web servers that are

there okay and the ideas of how web

servers deal with etags and attack |||etags|| |||etiquetas de entidad||

generation making sure the caching

mechanism of the clients actually

correct the web server implementation ||||implementación

threading right threading| hilo|

how many thread does a web server have

is it a single threaded that is none

blocking like no js' or is it |||JavaScript|||

multi-threaded like a Apache Tomcat or multi|threaded||||| |||||Tomcat|

Apache that Apache web server

I just there are a lot of implementation

and decisions that there isn't there is

no right way of doing things there is

always a problem and you're trying to

solve it okay so web server every single

website that you consume is hosted by a

web server there are web servers that

are doing multiple jobs like nginx it's |||||nginx| |||||nginx|

act like both as a web server and also

as a proxy right and this is this a good ||proxy|||||||

thing or a bad thing it's really up to

you that back comes back to the HTTP

protocol and how how good are you to

understand this protocol so you can

maybe build your own web server one day

yeah and that self said that solves a |||||that|solves|

specific problem so that's a back

engineer you need to deal with web

servers and deal with server and learn

with them

my favorite part database engineering so

that is engineering is is is so deep

guys

and you can just take a career not just

about database and even database

engineering it is it is so high level

right because not talking about back-end

engineer is high level data is

engineering is also high level because

you can you can become an expert in an

and log structured knowledge tree

indexes that are text-based indexes|||| índices||||

you can go as deep as niche as that and

become a back-end engine that is just

the guy or the gal that people goes to

for LSM index taxpayers search you can |LSM||taxpayers||| |contribuyentes L||contribuyentes|||

you can you can do that right you can be

that or right you can you can just taste

that field are you interested in

relational databases okay if you're if |databases||||

you want to learn database engineering I

think every back engine should

understand acid atomicity consistency ||atomicity| ||atomicidad|

isolation and durability and that you ||durability|||

can take you can take a doctorate just ||||||doctorate|

talking about all these four properties

they are so complex you can just be an

expert in isolation just pick isolation

database isolation and become an expert

in it and just learn stuff and I keep

saying expert guys and I don't believe

anyone can actually become an expert

because if you think yourself as an

expert I don't think you know enough

because because the moment you say I am

an expert that means you think that you

know everything and if you know

everything that egos killing you right

and that means there is no room to grow

that's why I never call myself an expert

okay and never well but let other people

call you an expert in a certain name but

never call yourself that's just my

opinion

so relational databases acid properties

no sequel right people saw found

problems with scalability in a ||scalability||

relational so they move to no sequel

they said ok hey we want we want we

don't want this very strict budget

otama City we can give up some of these Otama|||||||| ciudad otama||||||||

properties and in favor of scalability I ||in||||

want to scale okay even scalability it's

a huge thing with back in engineering

right proxies guys and personally this |proxies correctos||||

is my favorite from tasting back in

engineering for the past 15 years I find

myself leaning towards proxies because |inclinándome|||

proxies is I think is gonna just blow up

in the coming future because with the

introduction of micro services which

isn't just an architecture proxies

became more and more important and when

I say a proxy I'm talking about a proxy

and I'm talking about reverse proxies ||||reverse(1)|

and when I say a reverse proxy I'm ||||a|||

talking about caching layers I'm talking

about load balancers I'm talking about |load|balancers||| ||balanceadores de carga|||

all of that stuff that actually TLS ||||||TLS ||||||TLS

termination anything that actually make terminación||||

a request on behalf of a client or a||||||| una solicitud en nombre de un cliente o

anything that receives a request and

makes a request to other servers that

hides the identity of the original

client or hide an identity of the

original the destination server reverse

proxy proxies what is the difference

between the proxy and reverse proxies we

discussed a lot of videos regarding this |||||sobre|

topic right layer seven proxying layer ||||proxying| ||||proxying|

four proxying layer 3 proxy which is

still I'm not I don't totally understand

but I'm trying to write layer 4 proxy

layer 7 proxy why would you do we have

two levels of proxies and what can you

get at each layer you can dive deep into

each one of this and become also again

coding called export of this right

rather reverse proxy applications load más bien las aplicaciones de proxy inverso cargan

balancing algorithms and all that stuff

just the ideas of proxies okay

service meshes service missions are so |meshes||missions|| |mallas de servicio||||

popular these days man because because

of the micro services and what our

service meshes they are nothing but a mallas de servicio no son más que un

proxy and a reverse proxy so proxies are

just becoming more and more and more

poppy poppy amapola

every day maybe you're gonna like it

taste it see if you like it as a backing

engineer if you don't move on caching

caching layers are so critical in every

of every stack with our back-end or

fronting write caching layers their frontal||||

varnish understand reverse proxies are varnish|||| barniz||||

by inherently caching layers because or

proxies as our caching layers I want to

understand when to use caching and and

databases that are designed for caching

like in memory caches run stateful |||caches||stateful |||cachés||con estado

versus stateless caching all these kind |stateless||||

of things caching is also very important

you can become an expert also in caching

just specific just designed to be

caching expert and and caching is one of

the hardest problem in computer science

cache affection in general are you |affection|||| afecto|||||

interested in that

this will really really really be very

very valuable for you

messaging systems right messaging system messaging||||

are becoming more important as we move

towards an interconnected system there ||interconnected||

is no more a client as a user connect to

one system there are systems connect

communicating with each other and to do

that you need some sort of a messaging

system to kind of coordinate this thing ||||coordinate||

ok there are too many types of this just

partial types is cute

the idea of a simple elegant queue |||a|||queue

RabbitMQ plays many things I'm not a fan

but just pick a software that actually

does just aq0 mq i believe just just ||verbo auxiliar|verbo auxiliar||||

stick you right but again no shade right

rabbitmq does many things right and and

the moment you have a software that does

many things this also becomes more

complicated you guys know and it becomes

really hard to debug it becomes you'll |difficult|to|debug||| |||depurar|||

start having bugs and understanding the

abstraction becomes really hard right

Kafka is another system right it acts

like a cue but is first it is a pops up

publish/subscribe system and that's all

of this thing these are the concept and

fundamentals that back engine should

understand not Kafka not rabbitmq not 0m

q these are tools these are applications

understand how the messaging system

actually just what is a messaging system

understand that right why did we build

it right there's always a reason for

anything if you find something without a

reason toss it immediately or ask

try to ask for why does it exist okay

everything in software engineering there

is a reason behind it okay usually it's

a good reason what API would frameworks

that one of the most popular things

nodejs

django right express all that stuff are

web frameworks that are designed to

build the web api so order this is G RPC

or a REST API right REST API is also an ||REST|||||||

architecture right that's kind of falls

within the framework and that protocols

write the architecture okay all that

stuff guys kind of fall with it within

this concept of frameworks right just

understand what is a web framework very

close to a web server but it actually it

actually more dynamic allows you to

write code write web servers usually

serve static or dynamic code write

dynamic web servers and frameworks can

give you unlock many many potential use

cases message formats right this is

another kind of skill that it's good for

you to know right that's just a concept

and fundamentals right there are

protocol buffers there's the message |buffers||| |buffers de protocolo|||

format the original one XML then came in ||||XML original|||

because it's a human readable people ||||readable| ||||legible para humanos|

designed it so it's Rehema readable then ||||Rehema|legible para Rehema|

people realized oh dang computers are |||vaya||

really not good dealing with XML which

is a human readable so might as well

just make it a little bit smaller Jason

was born right and then Jason was born

then protocol buffer Jason was very very

popular popular obviously still really

readable but it's also a little bit

friendlier right JavaScript became very más amigable||||

popular obviously languages right in

general and the message formats right

protocol buffers that was designed to |buffers de protocolo||||

solve the problem of high bandwidth |||||bandwidth

messages that being sent okay let's do a

protocol buffer that actually minimizes ||that||

that payload so we can essentially send that|payload|||||

fewer bytes as much as possible so

that's essentially message formats very

very interesting topic you can also

become an expert about just messaging

for me you can go the go to a guy about

protocol buffer version 3 right and just

the things they can tweak their security ||||adjust||

and finally security guys security is

also one of the topics that I find very

very very interesting and III I see

myself between diving a kind of kind of

going deep into security and proxies I

like both of those right and and it

depends on URI I might have missed some ||URI||||| ||URI|||||

fundamentals as well guys but these are

the things that I think kind of govern

most of the stuff right security

especially encryption in general right |encryption||| |cifrado|||

TLS transport layer security between

messaging and networking right how do

you communicate between one node and the

other node so that the communication is

secure so that you stop

man-in-the-middle attacks so that you

stop reply at acts how do you make

things secure in general how do you save

your your database credential so is not ||database|credential||| |||credenciales|||

leaked for example right firewalls kind ||||firewalls| filtrados||||cortafuegos|

of deal into security what ports do you

want to open what ports you should close

right denial of service attacks right |denegación||||

what type of denial service attacks as what|||||| |||denegación|||

an eye server name indication

security there's there are so much

attacks you can become an expert as you

might know guys in just security and you

can just pick web security or be more

general network security right again

guys that's that's all for me today but

what I want to tell you is just try to

just stays as a fresh graduate if you're

just into software engineering and you

want to you're interested in back in

engineering taste these different thing

taste them learn about them see what

you're interested in

ask questions ask me in the comment

section below I try to reply and I'm

comments are increasing increasing day

by day as as the channel become more

popular thank you so much guys but ask

questions why this why is it like this

why is it not like this right form your

own opinion have strong opinions try to

defend your own opinion build something

cool experiment with things languages

don't matter you can pick any language

that you feel connection with I started

with you can laugh visual basic five and

I love it people make fun of this

language all the time but guess what I

don't care that language got me where I

am today

I built thousands of applications holism |||||holism |||||holismo de aplicaciones

maybe a saturation maybe and then in the ||saturation||||| ||saturación|||||

hundreds

but I'm reserved application just with

visual basic right visual basic 5 and

then visual basic.net then I move to C

sharp and then I move to PHP on the web

they move to JavaScript and now I'm all

off with this JavaScript why because

that's the only language that I can open

a browser in any computer and I can

write code in without installing a ||||instalando|

single software give me any language

that does that none okay none any

computer any operating system open a

browser and you can write JavaScript

code right there that's the only that's

one of the reasons I love JavaScript I

can I can just itsu everywhere right ||||go|| ||||puedo||

it becomes literally a Brewer that's ||||brewer|

just an opinion Python is a great

language take any language that you're

comfortable with

go a lot of people use go for the back

end again

Brust is also popular right very see chest|||||| Brust||||||

like right but yeah

picking language any fundamental that

you learn can be applied with any

language there is some languages that

are preferred for the back end like see

okay and you're gonna pick it when you

understand what you're building right

that's that's the that's what you need

to know taste these different things

taste these different fundamentals and

if you like any of them

start diving deep and two into each of

one of them go depth go deep into one of

them that are you actually interested in

or maybe you want to become a full-stack

engineer okay again you you can become a

fellow second engineer but don't expect

to be an expert obviously right because

if you are a first tech engineer you

know the front end and you know the back

end oh definitely that's not wrong right

but people will not hire you if they

want a database expert or they want

someone to configure there they want to ||set up||||

rewrite they want to write a new rewrite||||||

database that uses a special version of

B trees that are actually optimized for |||||optimized| |||||optimizados|

writes then I gotta hire a full stack

injury they're gonna hire a back-end

engineer specialize in databases right

you might be you might be okay with that

or you might be okay with working in the

front and in the back and nothing wrong

with that I'm just saying that if you

want to become really known for

something pick one thing dive deep into

it okay alright guys hope you enjoy this

video I hope it is useful for you guys

I'm gonna see you in the next one write

down what do you want to learn next what

do you want me to make next and check

out the videos in the channel and I

really appreciate you thank you so much

stay safe in this current situation that

we are in I hope it goes away hopefully

soon just stay safe guys

and got to see you in the next one you

guys stay awesome |stay|