The Truth About Code Performance (Sorry Prime)

  Рет қаралды 117,238

Theo - t3․gg

Theo - t3․gg

Жыл бұрын

The Line Of Prime rant is one I've been thinking about for way too long. I really hope this one is helpful. Move fast, move smart, build great things.
ALL MY VIDEOS ARE POSTED EARLY ON PATREON / t3dotgg
Everything else (Twitch, Twitter, Discord & my blog): t3.gg/links
S/O Ph4seOne for the awesome edit 🙏

Пікірлер: 363
@bigs2469
@bigs2469 Жыл бұрын
I'm convinced this thumbnail is the main reason for Theo growing out the mustache
@t3dotgg
@t3dotgg Жыл бұрын
You overestimate my foresight and underestimate my photoshop skills
@Mempler
@Mempler Жыл бұрын
Now that the video is out, time to shave! /j
@michaelholmes924
@michaelholmes924 Жыл бұрын
Why shave when you can dye your mustache blonde?
@ivanbgp
@ivanbgp Жыл бұрын
The thumbnail is sick, I couldn't not click.
@muminov_phd
@muminov_phd Жыл бұрын
🤣🤣🤣
@BipinMaharjan-jl9ig
@BipinMaharjan-jl9ig Жыл бұрын
To all the new devs, your project will always have something to refactor, no matter how hard you try to make it perfect. Refactoring is life
@MaheshwaranVelusamy
@MaheshwaranVelusamy Жыл бұрын
Thank u
@ashguy4268
@ashguy4268 Жыл бұрын
Absolutely. Maintenance is where most of the development hours in your... life... are going to go. Invest in techniques, technology and tools that make this easy.
@mangalegends
@mangalegends Жыл бұрын
​@@ashguy4268 Only if you're at a good company that values refactoring. Some places will barely let you touch old code
@ko-Daegu
@ko-Daegu Жыл бұрын
@@ashguy4268 but but a tweet said these 20 new ChatGPT chrome extensions will do all the work for me and they been making millions for 16 years old teen ? 😰
@CottidaeSEA
@CottidaeSEA 11 ай бұрын
Yeah, my primary concern when writing code is just making sure we're not going to be shooting ourselves in the foot too badly in a year or two.
@danielvaughn4551
@danielvaughn4551 Жыл бұрын
Last year I did some freelance work for a client. They had built a note-taking app. This app had just 2 pages - the note taking page and the profile page. Some genius decided to built the thing in GCP + K8s + CircleCI. Not only that, but he had split the app into around 50 different micro-services. It was one of the very few instances where a full rewrite actually made sense.
@smithastley1616
@smithastley1616 Жыл бұрын
Yikes. What happened to KISS?
@danielvaughn4551
@danielvaughn4551 Жыл бұрын
@@smithastley1616 yah it was a wild time. Plus the company had like 80-100 daily active users. I told the CEO that his genius dev had built him a cruise ship so he could go fishing on the weekends.
@memelord4639
@memelord4639 Жыл бұрын
@@danielvaughn4551 this is the best example i've seen of doing the right thing at the wrong time
@John-mj1kk
@John-mj1kk Жыл бұрын
Same here. They developed an internal web application to display a single table from their DB. A SPA with only 1 component (the table), with a Python backend with only 3 endpoints. Set up with Jenkins and K8s. They took more time configuring the ci and deployment than working on the actual business logic. Not sure if it was just pure incompetence or a means to burn time.
@smithastley1616
@smithastley1616 Жыл бұрын
@@danielvaughn4551 At least they (presumably) listened to you. Nothing like joining an org and realising you can't criticise the current architecture because the genius engineer is a sacred cow.
@peanutcelery
@peanutcelery Жыл бұрын
I can’t wait for Prime to react to this tomorrow lol
@t3dotgg
@t3dotgg Жыл бұрын
Same
@bruh-rr6pl
@bruh-rr6pl Жыл бұрын
LMAO
@metropolis10
@metropolis10 3 ай бұрын
did it happen? I can't find a link :(
@sheaksadi
@sheaksadi Ай бұрын
kzbin.info/www/bejne/pV68c3eKpr2SkLcsi=_YZ1Y7CYnfmreT8D
@javierneri81
@javierneri81 Жыл бұрын
I like the term I heard from a interview video of Primeagen with Molly Rocket where he talks about optimizing code. The term was, "performance aware". Just being aware of the performance implications of your choices and also understanding that in most modern projects, there can be so many small optimizations that can be made other than choosing a faster language or infrastructure. I think the issue with focusing too much on performance is that you fall into analysis paralysis. Also, it's also hard to know if your solution is faster unless you test it out, fail, and then do better next time.
@HululusLabs
@HululusLabs 11 ай бұрын
That's the real dilemma, I think. It's hard to hire for performance-aware devs, but also hard to hire for devs if you enforce performance awareness by using a specific but less common technology
@SandraWantsCoke
@SandraWantsCoke 11 ай бұрын
"one of the smaller optimizations I am doing currently at Netflix is WRITING EVERYTHING IN RUST, BECAUSE IT IS BLAZINGLY FAST "
@thekwoka4707
@thekwoka4707 11 ай бұрын
This is definitely true. Loads of stuff is fast enough, but sometimes you might be choosing a choice that is way slower, meaningful and doing it faster wouldn't have been harder. So understanding the choices is really good, even if you aren't always picking the most blazingly fast path.
@fadhilinjagi1090
@fadhilinjagi1090 8 ай бұрын
A lot of JS devs are performance aware. Just look at the benchmark fever, especially in backend frameworks and JS runtimes!!
@markzuckerbread1865
@markzuckerbread1865 Жыл бұрын
My company is building a bunch of new products that haven't reached a single customer yet but my coworker is so much of a prime head that he's trying to write a backend framework in *zig*
@everyhandletaken
@everyhandletaken Жыл бұрын
This sounds exactly like something I would want to do... but, wouldn't actually do it 😀
@LG-yi2vh
@LG-yi2vh 11 ай бұрын
Honest question. Is this a bad/useless thing? I want to start learning Zig and somehow I think this could be a great language. But since it’s kind of new compared to other languages, I’m not sure if it’s worth it or worth it already. Do you have any experience to share?
@markzuckerbread1865
@markzuckerbread1865 11 ай бұрын
@@LG-yi2vh it's a cool exercise for learning zig, prime actually did a video on this recently where he used tried building a web socket chat app in zig as an exercise.
@LG-yi2vh
@LG-yi2vh 11 ай бұрын
Thanks both of you! Since I’m working 100% and study full time, I was a bit afraid that Rust could be a bit too much to also learn. But sure, a mature language and a good ecosystem is good. Still have an eye on Zig, my gut just says I could love it. But I will also take another look on Rust then :)
@NicolasGryman
@NicolasGryman Жыл бұрын
While I agree with most of what you said in theory, in practice, it’s more complex than that. Crossing the “Prime line” is a daunting task and I’ve seen several companies burn a lot of cash (and people) through the process. Arguably this could have been avoided from the start. I understand your point but I think it’s a vast simplification of what the reality is. I do both Typescript and Rust so I can give my perspective with those languages as an example. The premise that a Typescript stack is better for fast iteration and a Rust stack for optimizing stuff is not necessarily true. I’ve heard this argument many times and it usually comes from folks that have a limited knowledge of Rust. Velocity mostly depends on your skill level and then the nature of the project. An experienced Rust developer can iterate pretty quickly AND save you tons of money at the same time. Both are not mutually exclusive. On the left of the “Prime line” inevitably lies technical debt, which non-only means performance issues, but also long-lasting bugs and increasingly bad developer experience. Typescript is easier to iterate, but that’s only one edge of the sword. It’s also easier to introduce bugs and bring regressions. By design, Rust excludes a bunch of runtime bugs, it will simply not allow you to create them to begin with. You will indeed lose some time upfront but it will vastly pay dividends pretty quickly. I could talk about many other things, such as the toolchain, collaboration, CI/CD, … which don’t really fit into a KZbin comment. My point is: it depends on so many factors that there is not a simple answer. My advice is: develop great skills in the stack that you love and you will succeed. Cheers
@johnhershberg5915
@johnhershberg5915 11 ай бұрын
Came here to say something like this. I don't get the false dichotomy where being in the typescript world makes you "fast" and being in other environments makes you "slow". Why? He's really making an argument in favor of AWS-wrappers like Vercel and Netlify and Heroku and such. Basically the argument is in the beginning deploy on an AWS wrapper. Then when you've reached scale move to better tech. But I don't see what this has to do with Rust or whatever language. If anything Typescript has its own opportunity cost
@hidekxyz
@hidekxyz 11 ай бұрын
Yes, it relies a lot on the technical skills of the project because more skilled developers will already have experience with refactoring and optimizing performance of the code, and can do it before the problems arises. However one thing not perceived is that everything depends on the starter budget of the project, if you start small, you can't hire skilled developers like Primeagen. Also, it's easier, faster to find and cheaper to hire TS developers than Rust, since most Rust developers are actually seniors or do have some deep understanding of low level stuff, while TS already have a community around it that build apps. TS is easier to iterate, have an ecossystem that's constantly changing and evolving, and have a lot of libraries, packages due to npm, which makes it ideal for building apps. But in a near future, maybe we can see more developers using Rust to build applications, which will lower the entry barrier for new developers, and consequently, cheaper to hire.
@nullzeon
@nullzeon 11 ай бұрын
I am a bit nervous about the develop great skills in the stack you love and you will succeed part for using things like js to replace bash for example just seems like forcing a large triangle into a small circle
@c0ldfury
@c0ldfury 9 ай бұрын
Yep. I could deploy a Go or Rust app to a new AWS service as quickly as Theo deployed to ultra edgey Edge server, that's just a skill issue. He has an existing path that is well trodden, easy. Also, he complete skips the part where a tech company has to pick which service to use, pick which framework to use - and there the typescript stack is just a fcking mess and best avoided. In can take months to even make decisions.
@goosydev
@goosydev 5 ай бұрын
I agree with most things you said but often in practice for most companies/projects its not about how good you are with programming in Rust/Go/Typescript or how good someone COULD be. Its more about what people you can find to do the job and whether they as a team can move fast to build the product. And the fact is almost always thats gonna be React and Javascript. I myself don't really like React but that is the reality for most projects. Its not about Rust or Typescript being better, its about if your team that you managed to hire works faster as a whole using the technology.
@brandonflick8062
@brandonflick8062 Жыл бұрын
I’ve been watching your videos for a while now and I really do enjoy them. I’m a junior developer who’s been working at a medium sized company now for just over a year and these videos are super informative/ educational. It’s also interesting when I do ask some of these questions to my senior and most of the time the reasons why we do certain things is because of what we make and how complex it is. Looking forward to watching more of these absolute masterpieces. Thanks Theo.
@triforce42
@triforce42 Жыл бұрын
Liked. Enjoyed the balanced takes, considering tradeoffs, defining terms, and overall rigor over appeal to emotion.
@jimshtepa5423
@jimshtepa5423 Жыл бұрын
What is rigor over appeal to emotions? Words he used?
@billy818
@billy818 Жыл бұрын
JS sux its slow!!! rust ONLY
@havokgames8297
@havokgames8297 Жыл бұрын
This is a really great video. As a startup tech lead I have to constantly balance these decisions, and have gotten pretty good at it, but it's great to see it laid out so clearly.
@TheNewton
@TheNewton 11 ай бұрын
15:39 end to end requirements vs day to day decisions. Engineering a bridge or making sure the waterspot on the otherside of the river has things like a ropeswing, ice in the ice cooler, launch/tie off, a paddle boat, chairs, etc
@coffee-is-power
@coffee-is-power Жыл бұрын
Im using rust to build an Api, i dont feel slowed down at all, sometimes e feel like I move faster than in typescript, im using actix web as the http server, sqlx as the database client, rusty celery for job workers and some other stuff, the ecossystem is still evolving but quite nice i would say, many mistakes in the database queries and such are already caught at compile time too which is great. And performance is a bonus
@Y-JA
@Y-JA 2 ай бұрын
Same. I use Axum and it is noticeably faster than Typescript or Go in some areas. The issue with Rust is, since it's a systems low level language, people tend to look at it from that lens but for higher level code, application level code, you really have no incentive to use its obscure features, introduce lifetimes or spar with the borrow checker. You just use it as a high level language with the added benefit of better and less exhausting error handling where you can impl from and forget about handling exceptions locally and where you get productivity benefits from its typesystem, enums and iterators. On top of that, i was pleasantly surprised by the libraries which filled all my needs and make it trivial to handle things like ip based rate limiting or tracing and logging to files with rollback. Rust for high level application code is very different from Rust for library makers or low level system code and i hope people will eventually gradually realise that.
@igrb
@igrb Жыл бұрын
This was a long time coming, happy that's finally somewhere I can send people to; love it
@rogeliocxyz
@rogeliocxyz Жыл бұрын
Awesome video, very well thought out and so informative! thank you!
@TomasJansson
@TomasJansson 8 ай бұрын
Great share! One thing that could be emphasized even more, which you touch slightly, is that a larger company will most likely and should be in both corners at the same for different parts of their system. I also think some applications will most likely be better off staying in the upper left corner for its entire life time when iteration speed is important.
@TheCodingTeacher
@TheCodingTeacher Жыл бұрын
Great video. I agree with everything you're saying but I think there's one other vector that's being ignored: the correctness of the solution. In my experience as fCTO, most people who are using kubernetes are actually in the top right quadrant. All their stuff is architected wrong, and if they ever did succeed (which they wont because they can't move fast) it would fold under load. They're using sync endpoints where they should be using async workers and vice versa. Their deployments and load balancing are misconfigured because they don't stuff like "what is load shedding" or "what is a slow http attack" or "how should I choose a connection draining timeout." The EASE OF USE of solutions like aws amplify, dynamodb, and vercel means that you have a much lower barrier of entry to getting things right. Basically, here's my litmus test: has a good percentaget of your engineering team worked at companies running systems with tens of thousands of requests per second? If the answer is no, your company cannot be in the bottom right quadrant. You can't learn those skills from docs.
@PGDJ88
@PGDJ88 Жыл бұрын
This is a solid improvement in that old line of prime rant. Glad you brought this back up again
@dalanxd
@dalanxd Жыл бұрын
This video is just amazing..... it's painful to see smart people arguing about best tech like they have a silver bullet. In reallity it's a matter of different tradeoffs that you are making.... like almost every Computer Science dilema. Choices come with a price and we must be as realistic and pragmatic about them as we can 😅
@Smileyassassin47c
@Smileyassassin47c Жыл бұрын
maybe im not experienced enough but I can only make a statement after I've already built something using x architecture or y framework that it wasn't good enough/it was overkill.
@BanAaron
@BanAaron Жыл бұрын
My favourite quote is "There are no solutions, there are only trade-offs"
@jordixboy
@jordixboy Жыл бұрын
Arguing about that stuff is far from science, it's closer to engineering.
@TheNewton
@TheNewton 11 ай бұрын
Isn't the real pain when a business is in a situation where the people without any soft-dev instinct that need to know this type approach management will never see such a video until possibly well after the biz hits a thermocline of no return that was never planned for and the money was burned.
@hglenn2k
@hglenn2k Жыл бұрын
I was binging you and didn’t even realize I was watching a video uploaded only 20 minutes ago 💀
@matthewvolk
@matthewvolk Жыл бұрын
Lmao 10:45 “I create a decent bit of tech debt (long pause for sip)… Fuck” Perfect comedic timing
@ya3rub101
@ya3rub101 11 ай бұрын
this is one of best videos i've ever seen in tech choices, thanks theo !
@jgndev
@jgndev Жыл бұрын
Agree with you but will say that the beauty of Go is precisely that it is simple and dev speed is actually good
@bravethomasyt
@bravethomasyt Жыл бұрын
Same with Rust, to be fair. I think once you're over the hump with Rust, it's arguably faster than anything else.
@MrLowbob
@MrLowbob 11 ай бұрын
@@bravethomasyt i think finding people that are over the hump is usually more expensive though. rust is not an entry junior language and it helps to have worked with other languages to know what problems the design of rust actually solves imo - it just needs more time to get running. other than that... whatever language you work with, if you know what you are doing, are comfortable and perhaps know relevant third party libraries and frameworks you can be pretty fast in about any language... even java if need be.
@okie9025
@okie9025 3 ай бұрын
​@@bravethomasyt Rust focuses way too much on the details. I think Rust has the polar opposite philosophy of C# and Go. In Rust, the idea is "this very specific situation will cause a problem for some devs, so we will introduce a new syntax that everyone has to learn even though they don't care, but in the end this will make programs more safe". In C# or Go, the idea is "we want to make it easier for devs to make their app, so we will handle these edge cases ourselves and actually simplify the language instead of making it more complex". It sometimes seems like Rust was written for developers who love programming but who don't like actually deploying code. I'm 99% certain that more than half of the people who push Rust on everything have never deployed an actual Rust application which is useful or profitable.
@bravethomasyt
@bravethomasyt 3 ай бұрын
@@okie9025 that's a weird take. And did you "like" your own reply? No way someone liked it within 2 mins of your reply on an 8+ month video.
@3ventic
@3ventic 11 ай бұрын
Performance is a core feature in every product. Like any other feature, it has some priority and it's rarely at the top, but if you neglect it too much, it'll become a problem and unlike normal features it's not something you can drop, it has to be addressed. We're in a great place with a lot of the technologies of today helping get to the "good enough" without really even trying.
@meddlin
@meddlin 10 ай бұрын
Excellent breakdown! Thanks, Theo!
@andresrub10
@andresrub10 Жыл бұрын
The value Theo is getting on my life is amazing. He allways are trying to call out on people and make them try to be more concious on what they build. I'm Thankful for that!
@guimaferreira
@guimaferreira Жыл бұрын
Great analysis, thoughts and learning. Thanks for sharing! It will be very interesting to see a @ThePrimeTimeagen reaction about this video.
@artifishul
@artifishul Жыл бұрын
You pick on Go several times throughout the video and I do feel like that's a bit misplaced. I wrote Go exclusively for years and now write mostly Python and Typescript, and I really don't think it makes that big of a difference in iteration time early on. Besides the lack of high level frameworks, Go is just in a really sweet spot of usability and scalability. And a lot of that is achieved with lack of features. Plus typed code is easier for a new dev to jump into and understand so Go has that benefit vs Python.
@t3dotgg
@t3dotgg Жыл бұрын
Picking on Go is my comfort food, not necessarily good for me but I need it to feel better
@rj7250a
@rj7250a Жыл бұрын
Go is very nice on servers, but people shit on it because it is not a good full stack language like JS or C#. It was never meant to be a super expressive dynamic language for startups, it's purpose is to build reliable servers at huge scales, it was created for solving Google problems after all.
@rapzid3536
@rapzid3536 Жыл бұрын
Take this as entertainment.
@MarcelRiegler
@MarcelRiegler Жыл бұрын
One thing to consider for many Europeans is that many of the very cool services in the "Theo Corner" are basically unuseable from a data privacy ( slash paranoia) standpoint. Many european customers won't even consider looking at the data privacy terms of any american company.
@Khari99
@Khari99 Жыл бұрын
This was a great video. Curious as to how you see something like clean architecture implementations in this diagram. I’ve had to migrate architectures when there was a crazy amount of tech debt and it was extremely painful. Conversely, literally no one needs it when you’re just starting out. And it’s not really performance related for the application itself but is related to the performance by which devs can iterate quickly due to reducing technical debt.
@bravethomasyt
@bravethomasyt Жыл бұрын
I think there's no harm in making good architecture decisions early as long as it doesn't add too much time to ship and/or iterate. Too many developers default to serverless or edge deployments at the moment when a VPS may be a better option (as a quick example).
@jhonrocha6632
@jhonrocha6632 Жыл бұрын
Prime and Theo Fusion on the Thumb? The battle must be against a great foe!
@snk-js
@snk-js Жыл бұрын
rust foundation core team?
@philliam111
@philliam111 Жыл бұрын
Prime is expected to carry XD
@CyBeRTeCk_
@CyBeRTeCk_ Жыл бұрын
Actually, for Google Sheets as a DB is really a thing in small to medium companies for internal apps, it usually works with Google Apps Script a JS/TS that can interacts with Google things such as Sheets here. It’s often used for teams that wants to stay in Google Workspace as much as possible and for this I even developed a library that can communicate with Google Sheets as fast as we can, I know it’s not the best compared to real DBs but we can get like ~5 sec to get +200k rows and we use it in things like a Vue js front end in also Google Apps Script Web apps or Google Sheets modal using Vue. So yes Google Sheets wouldn’t be used for big companies as Netflix I think but can be for small to medium companies ! Yes I’m a junior Google Apps Script developer :) I also love your videos you introduced me to serverless and it’s amazing !
@MAC0071234
@MAC0071234 Жыл бұрын
Thanks for you videos and balanced takes. I think it's important to listen but not blindly follow a guy just because he/she is a FAANG or ex-FAANG engineer. They often live in a world where they can make expensive (both time and money) mistakes and shrug it off. Also not to mention that they are surrounded by geniuses who can help them out of a jam. Meanwhile us on planet Earth, especially someone working at start-ups and developing solutions for new problems, it's not the same. We can't make expensive mistakes, we have very little time to find, execute, test and deploy a solution and we are surrounded by "not so genius" people. I have to explain and write code for my co-workers so that they don't get fired. If I introduce Rust (or even my favourite language in which I have a lot of experience in -> C++), you can bet your house that I would have to write ALL the code and solve ALL the problems for the added bonus of running into NEW issues in Rust that no one has seen before and would take time to solve or for me to reinvent the wheel and basically copy and translate a Java or Python library code into Rust.
@o__sama
@o__sama Жыл бұрын
I'm using Rust in production for a B2B startup, the main reason for using Rust is to iterate fast without breaking things, performance is defintely a welcome bonus, but the main thing is relying on the compiler when adding features to not break existing stuff, that would have been impossible using any other language. I'm using the SAD stack :D (seed actix diesel)
@coffee-is-power
@coffee-is-power Жыл бұрын
We're on the same team, I'm building a payments api in rust, and it's awesome, i don't feel slowed down at all
@kamehameha38
@kamehameha38 11 ай бұрын
@@coffee-is-power How is that any different than using Typescript or any other language lol
@lucas-barake
@lucas-barake 11 ай бұрын
​@@kamehameha38 There's a big difference between a statically-typed memory-safe language vs a linter for JavaScript...
@diadetediotedio6918
@diadetediotedio6918 11 ай бұрын
@@lucas-barake Chad
@pcap8810
@pcap8810 Ай бұрын
people will do anything to avoid writing tests
@SimGunther
@SimGunther Жыл бұрын
Simple solution: solve the problem with assumptions in that domain. "going fast is about doing less" is a GOAT'd video on this topic.
@robgioeli
@robgioeli Жыл бұрын
The thumbnail brought me here.
@daedalus5070
@daedalus5070 11 ай бұрын
I posted a similar comment on Primes latest video. Fundamentally, most of use are trying to render some HTML at the end of the day so you only need to 5-head just enough to do that initially. Customers or clients are not bothered about how you get there, as long as it works and its doesnt take you 6 months to build them a blog.
@bpo217
@bpo217 Жыл бұрын
Appreciate this content so much. Thank you.
@ronanru
@ronanru Жыл бұрын
such a good thumbnail
@jordixboy
@jordixboy Жыл бұрын
Really interesting to see the take from someone who codes but also is on the business side of things.
@sevurueva5138
@sevurueva5138 Жыл бұрын
10:14 would the wrong cases be switched? K8s for block on top right quadrant and googue sheets for prod dB in bottom left? That would fit better if I understood your analogy correctly.
@rightwingsafetysquad9872
@rightwingsafetysquad9872 11 ай бұрын
My neighbors weren't very happy when my car moved very fast and broke their bathroom wall.
@LukePighetti
@LukePighetti 11 ай бұрын
My take is you should start building a horizontally scaling monolith with a fast to build language with TONS of ecosystem support. Can be TS/JS, can be Python, can be whatever. But as things get stable you have an opportunity to slap some telemetry on that monolith and start breaking out a second monolith written in a faster lang like Rust. Then use strangler pattern to start adjusting your spend
@prashanthb6521
@prashanthb6521 11 ай бұрын
This is very good advice, thanks a lot.
@okie9025
@okie9025 3 ай бұрын
The best proverb about engineering I've heard is "when it comes to building bridges, an ordinary person would build a bridge that stands, whereas an engineer would build a bridge that barely stands". Rust users focus way too much on the details and on the "writing code" part of software development, which is arguably the least important factor. It really seems like a language built for language nerds which write code not to solve a problem, but simply for the sake of writing code. On the other hand, C#, Go, TS, and others, have the right idea where they allow quick iteration and give the developers freedom, instead of forcing them to write "perfect" code which is rarely needed.
@pcap8810
@pcap8810 Ай бұрын
especially if you consider that most performance issues in a given application come from poor architectural choices and not raw language speed
@davidzechowy
@davidzechowy 11 ай бұрын
The level of nuance in all your explanations is so refreshing to hear
@codewithmirko1651
@codewithmirko1651 Жыл бұрын
Very good rant! Thx!!
@andrewc8125
@andrewc8125 Жыл бұрын
Oh god I love this thumbnail. It is like MacOS vs Linux.
@ArcticPotatoes
@ArcticPotatoes 11 ай бұрын
Great video! Really interesting.
@anselminos5238
@anselminos5238 9 ай бұрын
There are other factors to take into account such as does the libraries that you use introduce breaking changes every once in a while or not, all tools will have those at some point but you should always try to be on the most up to date version no matter what tool you use. And i'd say the velocity at which you can create new features at is also hugely dependent on how you architecht your software solution e.g. are you trying to decouple the data access layer from the business logic layer etc...
@TheSephix57
@TheSephix57 Жыл бұрын
My company's cloud bill was 100k/month, mainly due to an old code base, a bad cloud migration, with some bad choice made over time. Thinking about performance along the way might help you to avoid that.
@Affax
@Affax Жыл бұрын
There's a good reason Rust is hyped, now after moving to it after TS it feels so incredible. I am as productive in it as in typescript but I get a superior language (not just in performance). Big thing about Rust is that the code you write is almost guaranteed to work, a good example being serde. You can parse JSON into native Rust structs and klnow if the conversion worked (you either get the struct in a Some enum or None enum). The iterators in Rust are also far superior to typescript, again in performance and what they can do (iterators actually get unwound and optimized). But the big drawback with Rust is that you need to learn it. Especially for newer devs learning Rust isn't the easiest. Luckily more and more tutorials and resources are being made about Rust online.
@bravethomasyt
@bravethomasyt Жыл бұрын
Unless I'm mistaken, the main drawback with Rust (as of this comment) is that there isn't currently a solution to easily deploy it at the edge. Otherwise, as someone who has also moved from Typescript to Rust, I completely agree with you.
@mannycalavera121
@mannycalavera121 Жыл бұрын
​@@bravethomasyt "the edge" = microservices
@neo3290
@neo3290 Жыл бұрын
@BraveSirThomas there should be one soon since WASM/WASI is getting stabilised and Rust has the best support for it.
@bravethomasyt
@bravethomasyt Жыл бұрын
@@mannycalavera121 No, "the edge" !== microservices. You can deploy microservices just fine with Rust, but you cannot easily deploy them at the edge.
@bravethomasyt
@bravethomasyt Жыл бұрын
@@neo3290 Yeah and I think it's technically possible to deploy Rust with Lambda@Edge but it still uses the node environment to execute a wasm blob.
@rakesh-gupta
@rakesh-gupta Жыл бұрын
Write in Rust or Golang once it is stable, you know it end-to-end and it is ready to scale.
@pearlyadav2227
@pearlyadav2227 Жыл бұрын
Thanks Theo, for helping me realize my career objective. I think most people if not all, start their career in theo's corner and want to end up in prime's corner. Great video.
@rohanport7673
@rohanport7673 6 ай бұрын
I'm not sure that's entirely fair. Making your way into Theo's corner takes heaps of mastery and experience, perhaps just as much as Prime's corner. Building flexible, concise, easily maintained applications isn't easy. I feel most of us start out our careers making poor tech choices and writing spaghetti code that is neither easy to change nor performant. As for which corner we wish to move towards, I think that's a matter of personal preference though I agree that many are drawn to Prime's corner. Sorry to nitpick, just wanted to acknowledge that both approaches take a lot of skill.
@JosephGoebbelcoque
@JosephGoebbelcoque 6 ай бұрын
Do you use cloudflare reverse proxy with vercel to mitigate ddos attacks?
@stevendavis7628
@stevendavis7628 11 ай бұрын
Excellent real "modern architecture" discussion. We should also remember how new serverless is..and even VPS... (As someone who started out buying our own servers and renting rackspace) The accelerating improvements in infrastructure architecture are pretty mind-boggling. "Theo's quadrant" would have been a website and some CGI scripts not too long ago, now you can serve millions of users with a custom app. We've returned to timeshare software.
@nullzeon
@nullzeon 11 ай бұрын
Great video, great content, great Theo!
@Excalibaard
@Excalibaard Жыл бұрын
I feel that slow iteration + zero traffic is for internal 'agile' company applications that turned into 'why are we still using AngularJS' down the road.
@mateuszlasota3226
@mateuszlasota3226 11 ай бұрын
What application or website were you using to draw in this video?
@FrankDave
@FrankDave Жыл бұрын
what is the presention tool? looks interesting
@oleksandrshevchuk448
@oleksandrshevchuk448 11 ай бұрын
Thanks for ur video Theo! As always extremely useful. How can we measure request time on next js (app router), there is no clean solution for such action ((
@kipcrossing
@kipcrossing 11 ай бұрын
"Horizontally" - *draws a vertical line*
@t3dotgg
@t3dotgg 11 ай бұрын
I'm directionally challenged okay
@twisterrjl
@twisterrjl Жыл бұрын
Loved this video and the thumbnail. ❤
@IshanDasSharma
@IshanDasSharma Жыл бұрын
> Google sheets as production DB I feel personally attacked
@tahamanna3600
@tahamanna3600 11 ай бұрын
Great video!
@nutanpanta9238
@nutanpanta9238 11 ай бұрын
what is the app he is using for the whiteboard?
@flacjunkie5553
@flacjunkie5553 10 ай бұрын
What is the whiteboard tool that you use for this presentation style videos?
@raphael___
@raphael___ 10 ай бұрын
I think that's Excalidraw
@flacjunkie5553
@flacjunkie5553 10 ай бұрын
@@raphael___ thank you so much
@jaredsmith5826
@jaredsmith5826 11 ай бұрын
Lower left quadrant is what I call "resume driven development"
@brendanalexander6053
@brendanalexander6053 Жыл бұрын
Wow. A spanking clear explanation. thank u
@tallibba
@tallibba 11 ай бұрын
This reminds me of a simplified version of Wardley mapping
@DavidM_603
@DavidM_603 Жыл бұрын
Make it work, make it right, make it fast. I think you might be a little too harsh on Rust's iterate/experiment speed (there's a bazillion shortcuts and escape hatches that can be refactored out for performance and error handling later) but I'm on board with the central point.
@jonnyso1
@jonnyso1 Жыл бұрын
Yeah, I think he's underestimating how fast one can iterate in Rust. But from a company perspective where you must consider hiring and training it's probably a lot slower. Rust's biggest problem is that it's still immature.
@thekwoka4707
@thekwoka4707 11 ай бұрын
Yeah, I don't feel Rust is that much slower to work with than TypeScript, aside from dev knowledge. Like there are more typescript devs, but also lots aren't good. Less rust devs but most of decent. Decent devs can also move from typescript to rust pretty easily.
@pcap8810
@pcap8810 Ай бұрын
@@thekwoka4707 if someone leaves and it takes you a month to find a replacement because Rust expertise is required that is going to blow the ROI on that technical choice. hiring is the #1 concern and being casual about it is a big mistake
@yungdnny
@yungdnny 11 ай бұрын
Such a great video. I’m not that deep into software development I just watch the primeagen but it makes sense
@noidea176
@noidea176 11 ай бұрын
What software is he using to build the graph?
@acpp23
@acpp23 Жыл бұрын
This took a wholesome turn real quick... And I'm all for it :D
@dusanradovanovic8309
@dusanradovanovic8309 Жыл бұрын
The thumbnail is my new desktop background
@Kraja111
@Kraja111 11 ай бұрын
I agree with this Video so much more, than the Video, you made about Rust. And i learned a lot :) Thank you very much!
@ivanciuandrei
@ivanciuandrei 11 ай бұрын
Isnt it a good idea to build like in the bottom left , when you dont have traffic so you learn ? (speaking as a new guy to programming)
@seanaguinaga
@seanaguinaga Жыл бұрын
The color looks good!
@proningtiger
@proningtiger 11 ай бұрын
Sick video!
@shounak616
@shounak616 Жыл бұрын
How do I become that "Specialist" from a normal developer? are there any courses/reading stuff and other things that I can learn to improve myself?
@dalanxd
@dalanxd Жыл бұрын
For sure a specialist like Prime needs to have years of experience in his back.... also a strong understanding of the basics of Computer Science is also something they share in common. Stuff like Algoritms, Data Structures, Computer Architecture... But you gotta like that low level stuff, man, you shouldnt force becoming such specialist. Im sure Theo doesnt want to become Prime and that's fine.... not everybody has to live in C++ and Rust Land
@rajenderkatkuri7642
@rajenderkatkuri7642 Жыл бұрын
Fireship - Senior Staff Engineer Theo - Developer Advocate Primeagen - CTO Unicorn loading 🦄
@PaulSebastianM
@PaulSebastianM 11 ай бұрын
Your pragmatism never fails to amaze. And I'm a fan of both you and Prime.
@ValtteriV
@ValtteriV 6 ай бұрын
"kubernetes for your blog" is very fun and simple, especially when running on own on-premise hardware 😁
@arpanbag001
@arpanbag001 11 ай бұрын
Which charting tool is this?
@Talk378
@Talk378 11 ай бұрын
Depends on what you’re building! Performance matters any time you are operating on massive amounts of data, not just when you have massive amounts of users. For certain types of problems a single threaded language or a naive brute force algorithm just won’t cut it. These aren’t exotic use cases I’m talking about either, they just usually aren’t web apps
@prashanthb6521
@prashanthb6521 11 ай бұрын
I understood what you are talking about. My HPC project begins with around 3000 threads vying for compute bandwidth. Performance is essential not a choice.
@TheMaxiviper117
@TheMaxiviper117 Жыл бұрын
What drawing program is that?
@Soul-Burn
@Soul-Burn 11 ай бұрын
I work at a major corporation. Our backend is written in Python. The quick iterations we get from using Python is worth higher scale we require from our serverless platform. Our main issues right now come from how we use our DB (not well). Having the code in Rust or Golang would not make it faster because the problem is how we use it. We're slowly working to fix it, but in the meanwhile we keep adding many features quickly.
@pcap8810
@pcap8810 Ай бұрын
the data layer and transport layers are almost always going to vastly overshadow the runtime in terms of cost and system bottleneck
@hja-wo3ll
@hja-wo3ll 4 ай бұрын
I feel it is a false dichotomy to say that you have to choose between performance and moving fast. An app with htmlx+go+sqlc is more performant than the t3-stack, but i would argue its also easier to move fast with it (not having to manage state on frontend and backend, etc) Focusing on minimizing tech debt from the start does not have to be very expensive.
@eduard_soul
@eduard_soul 10 ай бұрын
Amazing video
@yashjha0007
@yashjha0007 11 ай бұрын
can anyone tell me theo's vscode theme?
@anubisai
@anubisai 11 ай бұрын
I'm glad i found you. Genuine and pragmatic individual. 😊
@animanaut
@animanaut Жыл бұрын
what most people get wrong about the fb "move fast and break stuff" is the break bit. building the wrong stuff is broken stuff, not a downed production db
@beck4715
@beck4715 11 ай бұрын
Slightly off topic, but any thoughts on living/suffering in the bottom left on personal projects in order to eventually be the person who's hired when companies cross the line of prime?
@Metruzanca
@Metruzanca Жыл бұрын
5:57 is this from a stream?
@emdeization
@emdeization 11 ай бұрын
Well said, good points.
@winchesterdev
@winchesterdev Жыл бұрын
This is why I write stuff in a tech stack that's easily scalable and easy to maintain. And that's not JS/TS
@stupeyca
@stupeyca Жыл бұрын
Dude, the video quality is so high.
@t3dotgg
@t3dotgg Жыл бұрын
This was before I got the new camera 🤐 y'all aren't ready
@arminhaberl9242
@arminhaberl9242 6 ай бұрын
Vercel (or serverless in general) for Rust sounds like a great business idea
@artem_r
@artem_r 4 ай бұрын
It's actually funny, from my experience a lot of companies want to be in the top-right corner, when they have a lot of traffic, but still want to iterate fast
@vishalsangole836
@vishalsangole836 11 ай бұрын
Hey theo. douglas crockford said something about retiring javascript. Please can you make video about what's reality. Cuz obviously I'm really confused now.
@pcap8810
@pcap8810 Ай бұрын
ignore douglas crockford
@corruptedknight0
@corruptedknight0 Жыл бұрын
The questions then become how do SWEs maintain relevancy? Once a startup crosses the Line of Prime, old SWEs that stayed with the companies for years may be obsoleted because they had been using TS and other JS frameworks. Hiring a new SWE that knows Rust and K8s will jeopardize the team spirit too. And how do you get an entry level job for Rust or K8s to gain experience? Since companies that crosses the Line of Prime is not going to risk hiring someone fresh.
My Dev Environment Might Surprise You...
6:57
Theo - t3․gg
Рет қаралды 77 М.
The Truth About HTMX | Prime Reacts
49:56
ThePrimeTime
Рет қаралды 338 М.
Why? 😭 #shorts by Leisi Crazy
00:16
Leisi Crazy
Рет қаралды 46 МЛН
ДЕНЬ РОЖДЕНИЯ БАБУШКИ #shorts
00:19
Паша Осадчий
Рет қаралды 4,3 МЛН
NO NO NO YES! (50 MLN SUBSCRIBERS CHALLENGE!) #shorts
00:26
PANDA BOI
Рет қаралды 102 МЛН
Rethinking the Technical Interview
13:09
Theo - t3․gg
Рет қаралды 67 М.
Cool Tools I’ve Been Using Lately
23:11
Theo - t3․gg
Рет қаралды 77 М.
Dear Apple - The iPad needs help.
11:47
Mrwhosetheboss
Рет қаралды 352 М.
Lucid Air Sapphire is The Best Performance Sedan Ever Made!
15:30
Tools That You Grow Out Of
13:07
Theo - t3․gg
Рет қаралды 38 М.
I'm Anti JSON, Here's Why
6:31
Theo - t3․gg
Рет қаралды 77 М.
how NASA writes space-proof code
6:03
Low Level Learning
Рет қаралды 2 МЛН
Migration Lesson: Don't Use Prisma | Prime Reacts
29:16
ThePrimeTime
Рет қаралды 143 М.
Tmux has forever changed the way I write code.
13:30
Dreams of Code
Рет қаралды 895 М.
Эффект Карбонаро и бумажный телефон
1:01
История одного вокалиста
Рет қаралды 2,6 МЛН
Apple watch hidden camera
0:34
_vector_
Рет қаралды 51 МЛН
5 НЕЛЕГАЛЬНЫХ гаджетов, за которые вас посадят
0:59
Кибер Андерсон
Рет қаралды 513 М.
Xiaomi Note 13 Pro по безумной цене в России
0:43
Простые Технологии
Рет қаралды 1,9 МЛН
Дени против умной колонки😁
0:40
Deni & Mani
Рет қаралды 9 МЛН