I just learned the basics of dockerfiles recently. I thought it could have been made simpler by just having it be a superset of bash files instead of its own language: start from a consistent base image like the real docker does, and just tell it what commands to run to set up the system to your liking. There is probably something wrong with this idea idk, maybe it wouldn't work irl for some reason like maybe important security updates to the lts linux version your using need to be run but will end up breaking your commands in practice, or maybe I am missing an important usecase for docker that this wouldn't support, I basically just used it for upload a web service to railway
I still want to learn Docker. It feels so big for some reason. I've tried a couple of tutorials before but it doesn't make sense yet. Any tips on where to start or any great tutorials I should watch or read?
Honestly Postgres is the gift that keeps on giving. Foreign data wrappers, JSON column storage, time-series data, semantic search, even queues can all be built on it. Honestly the most useful and versatile piece of tech that exists in software development outside of maybe Docker.
The OAuth 2.0 said here is a hidden gem which is missed by many. As our application grows, we need to access other 3rd party data sources. Understand how access tokens an refresh tokens work and then integrating them into our custom backend is a must.
We have a very similar story when it comes to web development. I’m 23 and began learning web stuff around 2020ish. Before that, I mainly did iOS related projects in Swift. I thought web development was a beast I’d never be able to learn, after attempting to learn how to use react a few times. Then I found Svelte and everything changed lol. Programming has always been a hobby and I have no formal training nor is it my profession (I am a school teacher), but you’re definitely right; it is crazy to go back to past projects and see how much you really didn’t know.
Love the honest takes here, the best engineers often go on this type of journey. I still remember when the idea of running JS on the server was a mind boggling concept for me as a mostly front end developer when node was blowing up 😅
here's sth else you'll wish you learnt earlier when you progress in your career, its Networking!!, learn vlans, subnets, route tables, routing protocols, BGP and just general advanced networking, it makes you a wizard when you combine it with development, the amount of dev youtubers that don't know a good bit of networking is mindblowing!!!, this helps a ton when your infra is self hosted but also in big entreprises in the cloud etc.😊
The more tools to use, the harder it becomes to gauge how much context you've gained. I'm here laughing at my old self having tough times with JS tooling, future me is over there laughing at how much trouble I'm having with WebGL.
Nice vid man, for me 100% it’s just networking in general. I thought things like load balancers were this crazy thing and that’s why serverless was invented but anyone could learn it in a week
Can you go into when and how people get surprise AWS bills? Is there a service where that will not happen. I am ok my website not working but don't want a surprise bill. Is there a guide for that.
Anything that can "scale infinitely" (lambdas, queues, etc.) are vulnerable to this. Often what happens is either 1, a DDOS attack or 2, they accidently recursively call some function and it runs infinitely building up obsene amounts of compute. The most important thing is to put rate limiters on your stuff (I recommend upstash) and test it to ensure nothing can self reference
What you could do is try to pull the plug once the spending starts to get too high. I think there is a service in AWS where you can set up a webhook or something once your billing goes over a certain limit, then you have to code it yourself to shut down your other services (I guess this could be a benefit because you could hook it up to only shut down if your profit or other metric is not spiking too, aka its a ddos or bug and not your product going viral). in some other cloud solutions such as vercel (which is a basically just a nicer but more expensive wrapper around aws) there is a setting to pause your entire project after a certain spend threshold
You can specify a monthly budget and get notified when you surpass that. This will probably not safe you from quick spikes though. Not really great. I am sad that they get away with this.
Unfortunately I think my old projects where i leaned on Prisma; a ton have grown so far and have other people working on them that I can no longer switch it out for Drizzle, i can only do that for new projects. Even in golang i used to use GORM and still do because i thought it was the only way to protect myself from sql injection.
Should've used gcp over aws. gcp dx is so much better, for a saas idea I switched to it last week from aws. One example: gcp logs feels like a modern car, very powerful and intuitive UI/UX while aws cloudwatch logs is decades behind. My research on reddit about people who used both clouds is that gcp has better dx. Don't get me started on gcp cloud run vs. aws app runner. The latter is notorious for crappy logging.
@@aldierygonzalez7249you don’t really need to use only one provider, you could host backend on google cloud run, use supabase for auth and postgress and host front end on netlify.
You should check out convex, it's supabase but better. It has built in type safety (you define ts types when making the db schema), and for serverless functions, blows supabase out of the water.
I don't get why anyone would use lucia, writing your own cookie or bearer token auth is simpler, and oauth is simple enough that you don't even need a library for it
@@tobychidi It might just be me, but it took more time to use lucia than to simply use my backend framework's built in signed cookies with postgres's uuid Use uuids as the primary key for your users table, and then set a signed cookie with the uuid as the content. Do you need to make a database query every request? yes, but its good enough for smaller projects
Hey Ben if your ever trying to get back into the Golang world, there’s a cool new technology called Connect which is an RPC like tRPC but with basically any language to any language. I know you love that shared types and dev experience.
Stay away from all cloud providers. Take the time to setup a VPS correctly and when you have a product that scales your profit will be significantly more.
SQL is the OG. I have to add though, when it comes to cloud providers, AWS while being the best option, your apps shouldn't rely on it too much. I've gotten to the point that I think apart from S3 and EC2 instances and maybe a little bit of lambda, you shouldn't do too much on there, your costs are gonna stack up. your mindset should be not to be too dependent on anything ,whether it being a library or a giant cloud provider, if your programming language is not scaling up better (cough Javascript cough cough), you should move on from it, especially on the backend, and I'm not saying this lightly as I've been a Nodejs dev for almost 6 years.
ORM is just OOP guys getting their way lol. There's a reason why nobody uses OOP in the real world. Why would you willingly give up on the power of Postgres (eg loops, triggers, etc)? ORM is good for "react bros" whose most complicated queries is 'select * from xyz where clientId=abc'. Anything even remotely complicated falls apart. Remember, SQL code written once will work forever (if schema stays the same); you can't be sure it will be the same with any ORM-based code.
OOP is used in the real world everywhere I don't know what you are talking about. You can always write raw SQL queries even if you are using an ORM. I personally prefer plain SQL and you are absolutely right that it is the only option when doing really complex stuff.
Another one of these OOP-haters. Please, try writing enterprise-scale software using just procedural/functional programming. There's a reason why OOP exists and it's not for elitist programmers to ejaculate themselves over their own pet project.
@@PTBKoo Partially.Last time I checked one would still need to use the horrific AWS console from time to time. And IAM permission management is still all but KISS. Feels like they rather sell certifications than to improve.
Maybe you should focus on... you know... computer science instead of chasing web dev, then you won't have these skill issues. Any good computer science program would have taught you fundamentals, including SQL, to not have the issues you're referring to. Because of this, I'm sure that you do not have a computer science degree. Furthermore, I'm also sure you aren't even interested in the topic to look up these things on your own. That is why web devs like yourself get so much hate.
Docker for me. Thought it was some extremely convoluted thing, turns out it's not that hard to understand and actually super convenient!
FUCK I should have included that, 100% same
I just learned the basics of dockerfiles recently. I thought it could have been made simpler by just having it be a superset of bash files instead of its own language: start from a consistent base image like the real docker does, and just tell it what commands to run to set up the system to your liking. There is probably something wrong with this idea idk, maybe it wouldn't work irl for some reason like maybe important security updates to the lts linux version your using need to be run but will end up breaking your commands in practice, or maybe I am missing an important usecase for docker that this wouldn't support, I basically just used it for upload a web service to railway
for sure
Definitely what I would have said.
I still want to learn Docker. It feels so big for some reason. I've tried a couple of tutorials before but it doesn't make sense yet. Any tips on where to start or any great tutorials I should watch or read?
Honestly Postgres is the gift that keeps on giving. Foreign data wrappers, JSON column storage, time-series data, semantic search, even queues can all be built on it. Honestly the most useful and versatile piece of tech that exists in software development outside of maybe Docker.
Jack Harlow can really code 😂
The OAuth 2.0 said here is a hidden gem which is missed by many. As our application grows, we need to access other 3rd party data sources. Understand how access tokens an refresh tokens work and then integrating them into our custom backend is a must.
Learned this one the hard way lol
We have a very similar story when it comes to web development. I’m 23 and began learning web stuff around 2020ish. Before that, I mainly did iOS related projects in Swift. I thought web development was a beast I’d never be able to learn, after attempting to learn how to use react a few times. Then I found Svelte and everything changed lol.
Programming has always been a hobby and I have no formal training nor is it my profession (I am a school teacher), but you’re definitely right; it is crazy to go back to past projects and see how much you really didn’t know.
Love the honest takes here, the best engineers often go on this type of journey. I still remember when the idea of running JS on the server was a mind boggling concept for me as a mostly front end developer when node was blowing up 😅
“Drizzle tricked me into using SQL” hahahaha
22 is still young bro, not a fossil, I'm 31 and still learning it.
Resonates with me. Now I am jumping more into Postgres and backend in general.
here's sth else you'll wish you learnt earlier when you progress in your career, its Networking!!, learn vlans, subnets, route tables, routing protocols, BGP and just general advanced networking, it makes you a wizard when you combine it with development, the amount of dev youtubers that don't know a good bit of networking is mindblowing!!!, this helps a ton when your infra is self hosted but also in big entreprises in the cloud etc.😊
The more tools to use, the harder it becomes to gauge how much context you've gained. I'm here laughing at my old self having tough times with JS tooling, future me is over there laughing at how much trouble I'm having with WebGL.
Nice vid man, for me 100% it’s just networking in general. I thought things like load balancers were this crazy thing and that’s why serverless was invented but anyone could learn it in a week
Also agree with you that gcp sucks ass
Can you go into when and how people get surprise AWS bills? Is there a service where that will not happen. I am ok my website not working but don't want a surprise bill. Is there a guide for that.
Anything that can "scale infinitely" (lambdas, queues, etc.) are vulnerable to this. Often what happens is either 1, a DDOS attack or 2, they accidently recursively call some function and it runs infinitely building up obsene amounts of compute. The most important thing is to put rate limiters on your stuff (I recommend upstash) and test it to ensure nothing can self reference
What you could do is try to pull the plug once the spending starts to get too high.
I think there is a service in AWS where you can set up a webhook or something once your billing goes over a certain limit, then you have to code it yourself to shut down your other services (I guess this could be a benefit because you could hook it up to only shut down if your profit or other metric is not spiking too, aka its a ddos or bug and not your product going viral). in some other cloud solutions such as vercel (which is a basically just a nicer but more expensive wrapper around aws) there is a setting to pause your entire project after a certain spend threshold
You can specify a monthly budget and get notified when you surpass that. This will probably not safe you from quick spikes though. Not really great. I am sad that they get away with this.
Unfortunately I think my old projects where i leaned on Prisma; a ton have grown so far and have other people working on them that I can no longer switch it out for Drizzle, i can only do that for new projects. Even in golang i used to use GORM and still do because i thought it was the only way to protect myself from sql injection.
I would try neon as a Postgres provider (Yes, I know there are some hell stories). But 300 USD sounds really expensive
Wait...what hell stories?? I was about to use it for a project but maybe I won't Lol.
@@semyaza555 Last year Neon wasn't as stable as it is now, I am shipping in it in production. I would recommend it to start a project.
Should've used gcp over aws. gcp dx is so much better, for a saas idea I switched to it last week from aws. One example: gcp logs feels like a modern car, very powerful and intuitive UI/UX while aws cloudwatch logs is decades behind. My research on reddit about people who used both clouds is that gcp has better dx.
Don't get me started on gcp cloud run vs. aws app runner. The latter is notorious for crappy logging.
Isnt their SQL really expensive?
@@aldierygonzalez7249you don’t really need to use only one provider, you could host backend on google cloud run, use supabase for auth and postgress and host front end on netlify.
@@aldierygonzalez7249 idk but generally they are cheaper than aws
You should try cloud run from gcp. Pretty simple
You should check out convex, it's supabase but better. It has built in type safety (you define ts types when making the db schema), and for serverless functions, blows supabase out of the water.
Don't compare anything with Supabase
@@okkashaally2115 Why?
Not SQL - trash.
Did you use AWS raw or with SST?
or any other tool?
dude GCP is fine in comparison with AWS, AWS is fine in comparison with Azure, you should give GCP a second try
Have you tried Lucia for Auth?
I don't get why anyone would use lucia, writing your own cookie or bearer token auth is simpler, and oauth is simple enough that you don't even need a library for it
@@DitherWither I think the better question would be why not?
@@DitherWither Will also definitely be looking deeper into OAuth implementation soon.
@@tobychidi It might just be me, but it took more time to use lucia than to simply use my backend framework's built in signed cookies with postgres's uuid
Use uuids as the primary key for your users table, and then set a signed cookie with the uuid as the content. Do you need to make a database query every request? yes, but its good enough for smaller projects
Lucia is great
Hey Ben if your ever trying to get back into the Golang world, there’s a cool new technology called Connect which is an RPC like tRPC but with basically any language to any language. I know you love that shared types and dev experience.
Stay away from all cloud providers.
Take the time to setup a VPS correctly and when you have a product that scales your profit will be significantly more.
It depends on the application (some architecture like event driven stuff could benefit from serverless) but most of the time yeah.
SQL is the OG.
I have to add though, when it comes to cloud providers, AWS while being the best option, your apps shouldn't rely on it too much.
I've gotten to the point that I think apart from S3 and EC2 instances and maybe a little bit of lambda, you shouldn't do too much on there, your costs are gonna stack up.
your mindset should be not to be too dependent on anything ,whether it being a library or a giant cloud provider, if your programming language is not scaling up better (cough Javascript cough cough), you should move on from it, especially on the backend, and I'm not saying this lightly as I've been a Nodejs dev for almost 6 years.
Be careful with lambda, it feels really nice up front but a whole world of pain awaits.
I hate mongo, but during Covid everyone was pushing it. Wish I started wtih psotgres.
It's a monstrosity but a beautiful monstrosity 🔥🔥
ORM is just OOP guys getting their way lol. There's a reason why nobody uses OOP in the real world. Why would you willingly give up on the power of Postgres (eg loops, triggers, etc)? ORM is good for "react bros" whose most complicated queries is 'select * from xyz where clientId=abc'. Anything even remotely complicated falls apart. Remember, SQL code written once will work forever (if schema stays the same); you can't be sure it will be the same with any ORM-based code.
OOP is used in the real world everywhere I don't know what you are talking about. You can always write raw SQL queries even if you are using an ORM. I personally prefer plain SQL and you are absolutely right that it is the only option when doing really complex stuff.
OOP is used everywhere lmao.
ORM is also extensively used. This RUclips uses Both ORM and OOPS
Another one of these OOP-haters. Please, try writing enterprise-scale software using just procedural/functional programming. There's a reason why OOP exists and it's not for elitist programmers to ejaculate themselves over their own pet project.
have you ever worked in the real world? Wdym OOP isn't used lmfao
No Docker, AH AH AH AH AH
AWS works reliable - but the DX is still awful.
GCP gang rise up!
As someone who migrated from aws app runner to gcp cloud run last week. GCP is 100 years ahead.
Sst fixes that
@@PTBKoo Partially.Last time I checked one would still need to use the horrific AWS console from time to time. And IAM permission management is still all but KISS. Feels like they rather sell certifications than to improve.
Maybe you should focus on... you know... computer science instead of chasing web dev, then you won't have these skill issues. Any good computer science program would have taught you fundamentals, including SQL, to not have the issues you're referring to. Because of this, I'm sure that you do not have a computer science degree. Furthermore, I'm also sure you aren't even interested in the topic to look up these things on your own. That is why web devs like yourself get so much hate.