The Truth About Code Performance (Sorry Prime)
VloĆŸit
- Äas pĆidĂĄn 5. 06. 2023
- 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 đ - VÄda a technologie
I'm convinced this thumbnail is the main reason for Theo growing out the mustache
You overestimate my foresight and underestimate my photoshop skills
Now that the video is out, time to shave! /j
Why shave when you can dye your mustache blonde?
The thumbnail is sick, I couldn't not click.
đ€Łđ€Łđ€Ł
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
Thank u
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.
â@@ashguy4268 Only if you're at a good company that values refactoring. Some places will barely let you touch old code
@@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 ? đ°
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.
I canât wait for Prime to react to this tomorrow lol
Same
LMAO
did it happen? I can't find a link :(
czcams.com/video/o-YBDTqX_ZU/video.htmlsi=_YZ1Y7CYnfmreT8D
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.
Yikes. What happened to KISS?
@@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.
@@danielvaughn4551 this is the best example i've seen of doing the right thing at the wrong time
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.
@@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.
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.
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
"one of the smaller optimizations I am doing currently at Netflix is WRITING EVERYTHING IN RUST, BECAUSE IT IS BLAZINGLY FAST "
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.
A lot of JS devs are performance aware. Just look at the benchmark fever, especially in backend frameworks and JS runtimes!!
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*
This sounds exactly like something I would want to do... but, wouldn't actually do it đ
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?
@@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.
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 :)
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 CZcams 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
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
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.
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
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.
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.
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.
Liked. Enjoyed the balanced takes, considering tradeoffs, defining terms, and overall rigor over appeal to emotion.
What is rigor over appeal to emotions? Words he used?
JS sux its slow!!! rust ONLY
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.
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
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
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.
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 đ
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.
My favourite quote is "There are no solutions, there are only trade-offs"
Arguing about that stuff is far from science, it's closer to engineering.
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.
I was binging you and didnât even realize I was watching a video uploaded only 20 minutes ago đ
Agree with you but will say that the beauty of Go is precisely that it is simple and dev speed is actually good
Same with Rust, to be fair. I think once you're over the hump with Rust, it's arguably faster than anything else.
@@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.
â@@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.
@@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.
"Horizontally" - *draws a vertical line*
I'm directionally challenged okay
such a good thumbnail
Awesome video, very well thought out and so informative! thank you!
This was a long time coming, happy that's finally somewhere I can send people to; love it
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.
This is a solid improvement in that old line of prime rant. Glad you brought this back up again
Prime and Theo Fusion on the Thumb? The battle must be against a great foe!
rust foundation core team?
Prime is expected to carry XD
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.
The thumbnail brought me here.
this is one of best videos i've ever seen in tech choices, thanks theo !
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!
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.
Simple solution: solve the problem with assumptions in that domain. "going fast is about doing less" is a GOAT'd video on this topic.
Excellent breakdown! Thanks, Theo!
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.
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.
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.
Really interesting to see the take from someone who codes but also is on the business side of things.
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)
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
@@coffee-is-power How is that any different than using Typescript or any other language lol
â@@kamehameha38 There's a big difference between a statically-typed memory-safe language vs a linter for JavaScript...
@@lucas-barake
Chad
people will do anything to avoid writing tests
Appreciate this content so much. Thank you.
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.
Picking on Go is my comfort food, not necessarily good for me but I need it to feel better
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.
Take this as entertainment.
The level of nuance in all your explanations is so refreshing to hear
This is very good advice, thanks a lot.
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
Oh god I love this thumbnail. It is like MacOS vs Linux.
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.
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).
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.
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.
â@@bravethomasyt "the edge" = microservices
@BraveSirThomas there should be one soon since WASM/WASI is getting stabilised and Rust has the best support for it.
@@mannycalavera121 No, "the edge" !== microservices. You can deploy microservices just fine with Rust, but you cannot easily deploy them at the edge.
@@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.
Great analysis, thoughts and learning. Thanks for sharing! It will be very interesting to see a @ThePrimeTimeagen reaction about this video.
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.
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...
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 !
Write in Rust or Golang once it is stable, you know it end-to-end and it is ready to scale.
Lmao 10:45 âI create a decent bit of tech debt (long pause for sip)⊠Fuckâ
Perfect comedic timing
This took a wholesome turn real quick...
And I'm all for it :D
My neighbors weren't very happy when my car moved very fast and broke their bathroom wall.
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.
especially if you consider that most performance issues in a given application come from poor architectural choices and not raw language speed
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.
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.
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.
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.
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.
@@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
Very good rant! Thx!!
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.
Loved this video and the thumbnail. â€
Wow. A spanking clear explanation. thank u
Great video! Really interesting.
This reminds me of a simplified version of Wardley mapping
Fireship - Senior Staff Engineer
Theo - Developer Advocate
Primeagen - CTO
Unicorn loading đŠ
I agree with this Video so much more, than the Video, you made about Rust.
And i learned a lot :) Thank you very much!
when I'm coding, my priorities are
1. correct
2. clear
3. concise
4. performance
Performance should definitely be above concise
0. a good nights sleep
@@zweitekonto9654 the fact that people don't prioritize performance is why web apps and software is so slow, computers are millions of times faster than they were even ten years ago and it still takes apps literal 5 seconds to open sometimes
like VScode on my beefy computer takes up 500 megabytes of ram and takes a couple of seconds to open
â@theinsane102 You can't just make a raw dog comparison like that. It's like saying a computer should be able to run a brand new aaa game on maximum settings and 300fps because your computer in 2004 could play counter strike.
Computers are more powerful, and software is more demanding.
The fact that people still complain about more ram getting reserved is mind boggling. It's not a program from 2005 that does 3 things. They're feature rich softwares with literal thousand of settings and extention modularity. 500mbs of ram is literally nothing these days. I'm unsure why you think that's some mind boggling amount when most computers have 16gb minimum. Plenty of programs do run far worse than they should (looking at netflix), but taking a couple seconds to load vscode is practically snobbery to complain about.
@@Sammysapphira yeah in vscodes case its cause its running js on desktop and has layers of crap built under it which all takes up ram, while neovim starts instantly and even a large file takes up like two percent what vscode takes up
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.
Great video, great content, great Theo!
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 ((
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.
The thumbnail is my new desktop background
Such a great video. Iâm not that deep into software development I just watch the primeagen but it makes sense
Google Sheets as DB sounds sick!
This is a perfect explanation to show for non-TI managers
Your pragmatism never fails to amaze. And I'm a fan of both you and Prime.
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
Vercel (or serverless in general) for Rust sounds like a great business idea
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.
the data layer and transport layers are almost always going to vastly overshadow the runtime in terms of cost and system bottleneck
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
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.
Great video!
"kubernetes for your blog" is very fun and simple, especially when running on own on-premise hardware đ
Well said, good points.
The color looks good!
Lower left quadrant is what I call "resume driven development"
This is why I write stuff in a tech stack that's easily scalable and easy to maintain. And that's not JS/TS
I'm glad i found you. Genuine and pragmatic individual. đ
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?
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)
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
Sick video!
Dude, the video quality is so high.
This was before I got the new camera đ€ y'all aren't ready
> Google sheets as production DB
I feel personally attacked
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?
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
Do you use cloudflare reverse proxy with vercel to mitigate ddos attacks?
What application or website were you using to draw in this video?
what is the presention tool? looks interesting
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.
I started as a developer in the Theo part, but now im more in the primagen corner.
Can we make Line of Prime offical? Its would be to funny some day in the future to see this in a book or something like this XD
If you are greenfielding some app, Iâd argue that you can iterate fast with just about any modern tech stack. Only the most low level ones will add significant time. But anything above C++ is probably going to be just fine. Some of these compiled languages even have hot reload. Also given that vercel will take WASM almost anything will run there that compiles to WASM.
my therapist: theoagen doesn't exist, it can't hurt you,
thumb art of this video:
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.
as a new developer the biggest issue for me is getting that information.
There are different opinions on things, and even a minority of them can get me to stop and start researchng more. Its like an endless process with the amount of choices around.
And its hard to know which opinions make sense to me with my lack of experience.
Same. Thatâs why I avoid watching too many takes and I focus on learning the concepts. I think with more experience we can learn to understand the takes and come up with our own
To Theoâs point, back in the day Netflix championed RXJS