 Let's see if you can hear me now. In theory, I should be unmuted, and if my new microphone setup is not horribly broken, it should be possible to discern my voice. We can hear you. Okay, Twitch can hear me, so YouTube can hear me in a few years. That's good. So I have a very different audio... Well, I don't know about very different, but my audio setup is sufficiently different now that I wanted to test it a little bit. And in particular, I want feedback on how's the sound in terms of, is it clear or do you hear like popping or crackling or anything like it? Number two, how's the volume? So this microphone should be much louder than the previous one, as you shouldn't need to crank up your volume quite as high. And I think those are the two the two things I wanted to check. Pretty normal and absolutely clear. Fantastic. And if over the course of the stream you hear like, I don't know, if my S's are weird or if my P's are weird, like if there's like a pop or something, then let me know. It sounds worse in Twitch than in YouTube. That's odd. Way worse in Twitch than in YouTube. Hmm, that's odd. A mysterious disembodied voice. That's funny. Well, let me make it non disembodied. Let's go ahead and do this. I think in theory now you should see my face. Is that right? You see my face? You should see J over there? You see my book up there? Amazing. All right. How about we get started? Might as well after recording. Welcome back, folks. It's been a little while. So this stream is, well, it's January 1st. First of all, January 1st, 2022. Happy new year. Let's get rid of the past couple of years and just say that this is the year after 2019 or something. And let's just go on with our lives from here. I wanted to do a stream partially to test my new audio setup. It may not look very different, but it's more different behind the scenes. And partially just because I haven't done like a Q&A in a while. And so I wanted to just take a chance to just take a bunch of random questions, see what we get. It doesn't have to be rust related, but let's maybe primarily focus on rust. I haven't taken any advance this time. So just sort of pop them in chat and I will go through them as I see them. And let's just chat about random things. I'm guessing a bunch of you, as I am, are a little tired. In my case, I'm also tired because we recently adopted a second cat and they have to be kept separated to, you know, get to know each other, which means that the second cat sleeps like in our bedroom or next to our bedroom. And so I sleep less than I normally do. So I'm a little bit of a shell of myself, but hopefully it will be fine. I'm just going to try to scan chat for questions and answer them as I see them. If I miss your question, just post it again later. That's fine. Let's take a look here. Your image quality from the camera is really fantastic. It's funny. Yeah, so this camera, it's actually a DSLR. It's not a normal webcam. And so it's like very crystal clear and has like depth of field and stuff. But normally you just see it up in the tiny corner of the screen. So you don't really see that it's really nice, but I'm very happy with that setup. I have given comments if I do like video chats with people and stuff that like your image is creepily clear because like this is, most people do not have this kind of a setup, right? Audio and video is not in sync. Is that the case elsewhere as well? Like do, does the sound match my lip movements? Because otherwise that's the thing that I can fix. Even if they're just slightly off, I want to know so I can fix it. Are you using pipe wire? I'm not using pipe wire. I want to start using pipe wire. It seems nice, but I'm not currently using it. Twitch, okay, it's a bit off, slightly off. All right, let's try this then. Let me go over here. Oh, you can't see my screen. That's even better. If I go here and I do this and let's try, is that better or worse now? So I added a 100 millisecond delay. Is that more in sync or less in sync? What do we think? Yeah, slightly off. Audio slightly ahead. It's worse, worse. Okay, so less in sync now. So how about I'm going to go 100 milliseconds the other way now. How's that? Oh yeah, let's do a clap. All right, clap time. So you want to see whether the audio of the clap matches the actual clap. You ready? I'm going to try one more time. How's that? Pretty good. Fantastic. Looks good. Looks good. Looks good. All right, and watching the lip movement, it seems about fine. This is crowd sourcing audio setup. Perfect now. Okay, great. Then we will stick with that. Fantastic. Sorry to steal Chad's list of questions. Let me go back up and see what I find. What sort of rust work do you do at AWS? So this is a question I've gotten a couple of times, and I haven't been able to sort of give a satisfactory answer just because it's been a fairly evolving role. The role I have is basically to build out the infrastructure for building stuff with Rust internally at AWS. So the idea being that if you want to build something using Rust at AWS, you have to be using the sort of Amazon build systems, and I'm working on the Rust support for that build system, essentially, like the sort of Rust build tool, if you will internally, which my goal with developing that has basically been to make it as non-Amazonian as possible, as in, I want it to feel like you're just working with cargo and Rust, as opposed to like, oh, I need to learn this entirely different Amazonism of a build system in order to write Rust code. And I think we're getting pretty close now. But this is a bunch of stuff you have to deal with once you're sort of doing internal development, right? You need to deal with things like which third party packages are we allowed to use? Which, how do we track which ones we actually end up using? Which versions of which dependencies? How do we ensure that binaries are built for the platform they're going to be deployed to, right? Like there's all sorts of things you need to make things work with all the other packages in that internal ecosystem. So it's been a really fun job, and a lot of that has been interacting with cargo and oftentimes finding issues in cargo or posting feature requests to cargo for things that would make the integration nicer. And it's always a tricky balance, right? Of, is this a feature that only Amazon needs for cargo, in which case it probably shouldn't be added to cargo? Or is this a feature that anyone integrating with a large build system will need? In which case it might be a feature that cargo ought to have to make it easier for other large companies, for example, to also adopt cargo internally. So that's the sort of work I do. I do sort of both working on the build system itself, which is written in Rust, and working on the sort of upstream projects that we end up interacting with things like cargo and Rust up and Rust C. And of course dealing with all of the internal users of those tools and figuring out how can we make life better? How can we make ID integration better? All of that stuff. Do you think improvements to the sophistication of the borrower checker will get progressively harder and less significant over time? Yes, I do think that's true. I think we started in a pretty good place with non-lexical lifetimes. It got very good. Now that there are like a bunch of known corner cases that do get progressively harder to fix. I don't know that there are a lot of low-hanging fruits left, although I think in many cases the answer isn't necessarily to tackle them one at a time, but rather to work on like a holistic, more formal representation of what the actual semantics should be and then implement a complete solution for those semantics. So think of something like the whole stacked borrows idea of trying to create a formalism around how borrows should work in theory and then just implementing that completely and hopefully that will satisfy all of the current use cases and also solve some of the missing pieces from what we have today. What's the model on your mic? I used to have a road podcaster, which is a I have it over there. It's mounted. It's a really nice mic actually. It's a dynamic microphone that I've found to work really well. It just has a USB interface, so you just like plug in a USB cable and stick it in your computer and it works really nice. There are a couple of reasons why I switched. I actually switched to the road procaster, which is basically the same microphone, but it has XLR out instead of USB out. And the reason I did that was because that way I can connect it through an audio interface rather than just like directly into my computer, which lets me adjust levels a lot better. It lets me use like physical audio improvement devices. It gives me better monitoring and stuff. So it's basically the same microphone, but the audio pipeline is now better. What's the best place to find a rust job? I'm only receiving offers from crypto like companies. So this one's tricky because it's funny. I keep hearing from people who are looking for rust jobs and I also keep hearing from companies that are looking to hire rust engineers and saying that it's hard. So clearly there's some disconnect here and I don't quite know where it stems from. Like I know the companies are looking on LinkedIn and Agile lists and stuff. And I know that developers are looking maybe more on like either expecting it to be contacted or looking at like the Reddit thread for job postings and stuff. Or I know this week in Rust has a listing of like available jobs. I don't know how we align these two because I think both the supply and the demand are there, but they're just not lining up correctly. I don't quite know how to solve that. I think there are a lot of crypto companies doing Rust and you know, for better or for worse. But there are also a lot of non-crypto companies doing Rust and I think what's happening is that the crypto rust companies are in some sense much better at rust hiring because they are much more aggressive about reaching out to people as opposed to having people come to them. Which I don't know whether I want to encourage that all companies should reach out to engineers because it ends up being a lot of noise, but I do think those companies are out there. I guess this is a related question. What does you view on the Web 3 hype? Why is Rust popular with cryptography and blockchain? Many blockchain systems use Rust like Parity for Ethereum, Polkadot, Solana, etc. I think it's somewhat complicated, but I am not generally a big believer in decentralized systems just because I don't know what it buys you for most of the use cases that people are using them for. I'm just not seeing the benefit. Blockchains have been around now for a while and I just don't see legitimate use cases that are benefiting from this. Maybe they will come down the line. I think in some sense maybe what's happening is that we are five, ten years too early for it to be useful and it's more of an interesting niche. It's hard to see how it's going to pan out. I am also extremely disturbed about things like the integer requirements. I know a lot about proof of stake systems. My lab at MIT were working on some of them and proof of stake is a significant improvement in that now you're not burning through forests in order to generate random cryptographic proofs that are then thrown away. But not everything is on proof of stake. Most things are not yet and that change needs to happen quickly. I think even once it does I still don't know what the upsides are. I think it's a really hard model to pin down what use cases actually need the guarantees that are required and are willing to pay the costs that are associated with it. I think there are costs associated with it that are in terms of things like ergonomics and auditability which provides a lot of value and things like recoverability of assets, of accounts. It's tricky. I don't think this is a unique solution that just fixes everything. What are some things in Rust you're not too well versed in right now and what is something you'd like to learn? This one is, it's tough because there are things that I know that I don't know and then there are also things I don't know that I don't know. This is the classical problem, right? I think in my case the things that I want to know more about are embedded development. I've done some embedded development in C in the past but I haven't had a chance to do much in Rust and I think it's really interesting. I like working with the super low level bits but I haven't had a chance too much. The other one is Wasm. I think Wasm is a really cool avenue to explore with Rust and I think it's one of the ways that we're going to see a lot of the benefits of Rust come to spaces that would normally be harder to break into and I just haven't played around with it enough that I can speak confidently to it. This is also why in Rust for Rustations there isn't really a chapter on Wasm because there are two reasons actually. One is I don't feel like I can speak very comfortably on it and two, I think we're still in somewhat the early days. We have a lot of the tooling now and things kind of work but it feels like the early days of CSS where everything was a huge pain or they're just, if you're doing the standard things then things work fine but there are all these things you need to know about and slight incompatibilities or you need to know to use this pattern to make this thing work and it just feels a little too early stages maybe to put it into book form. One thing that I observe while writing the book is that I'm writing this book for a long time. If everything went out of date in three months then this book would not carry a lot of value. I wanted to sort of encapsulate the things that will actually last some amount of time. This is why in the error chapter of the book for example, I don't really talk about things like anyhow or this error or error or the proposed changes to the standard library error type and back traces and stuff because that space is still evolving and instead focused on how should you think about your errors because that is information that lasts. This is the whole teach a man to fish argument. When do you think named parameters will be a part of Rust? I don't think we'll ever get named parameters in that, in quite the form that you're probably thinking of. I'm guessing we're going to see it in the form of more convenient two constructs that are sort of maybe they have temporary names or you don't need to name them or you declare them directly in the argument list or something but I think we're going to see a sort of Rust take on named arguments as opposed to actual named arguments and maybe we end up with sugar that makes it look like named arguments further down the line but I think realistically that's probably the path. Let's see what's your advice on overcoming feelings of getting overwhelmed anxiety and all that when starting a new project or learning something new? So for me at least if I decide to learn something new it's because I'm interested in it. I think it's fun and so when you first get into it you should feel excited that there are a lot of things you don't know. If you feel overwhelmed or anxious that you don't know things, I mean in some sense that's natural because you're correct like there are a lot of things you don't know but that's the exciting part. This feels a little bit similar to me as I know a lot of people who have sort of presentation anxiety it stems from this feeling of like oh if I get up on stage I'm like my body like clenches up and I start like cold sweating and get worried and I do that too right like I also feel when I step onto a stage and know that I have to give some presentation that I'm nervous but one thing that I was taught I took a public speaking class in Australia and one of the things they taught you was that's normal that's never really gonna go away but you need to learn to make that what gives your presentation energy right like that anxiousness is really pent up energy in your body and if you can use that to make your presentation more dynamic then do that right. You don't need to try to get rid of the anxiety or the overwhelminess but turn it into forward momentum of like I want to get over the stage so I want to move forward. You run the risk of then getting too excited and like speaking too quickly but that's like its own kind of problem but I do think it's a similar kind of thing where if you want to learn something new don't worry about the fact that there are lots of things you don't know think of it as you're starting to read imagine you started reading The Wheel of Time the book series and there are 14 books in that series right there are a lot of books you could feel overwhelmed that there are a lot of books and there's a lot to get to but instead just be like read the first book and be like there are 13 more I'm so excited this won't end for a while um and that doesn't solve your problem right like if you if you genuinely just do get overwhelmed and anxious I think try to sort of introspect of why are you anxious about the fact that there are things you don't know um and maybe maybe it's because you're required to know it like that becomes a slightly different situation if you're like I need to learn this for my job um or I need to learn this in order to get a job um or I need to learn this in order to pass this exam then it becomes harder and and there I think um there isn't really a clear cut solution beyond take one step at a time like that's the best thing you can possibly ever do right you're not going to learn all of this overnight you have to take it one step at a time and pick things up at your own pace um and generally therefore the advice is start earlier even though that's sometimes harder like that's the way you do it um has anything in your desktop and editor set up changed since your last video a fair amount actually so I'm I'm no longer using x-monad I'm using um uh the binary space partitioning vm so bspwm um I've been very happy with that um I'm also now using uh you launcher instead of cupfer I'm using neo vm with um uh with ls like the built-in lsp rather than coc analyzer I'm probably I should probably just do another video on my setup but part of the reason I haven't is because it's still sort of evolving like it feels like the neo vm lsp setup is still settling a little like there's still occasionally breaking changes and like a plugin doesn't work and there's like multiple different projects that try to implement the same thing and like I'm using vm vm lsp now and there's like thing or no I'm using neo vm completion I don't know these have changed like three times in the past six months and that's part of the reason why I haven't is because I feel like it would get outdated so quickly so I want to wait until that space settles a little bit more before I go like this is the thing I'll be using for a while uh how have you been holding up during these past two years sorry this is kind of personal I'm happy to take personal questions that that's fine too um you know it's been weird I moved to la with my girlfriend in uh September of 2020 um which is like we thought was right in the middle of the pandemic um but it was actually sort of at a slight down point um and we moved here and was sort of hoping that okay soon we'll be able to live our lives here and we haven't really like everything is sort of closed it's hard to go anywhere I don't feel like I know people here like normally my instinct when when moving to a new city would be to go to meetups whether that's a rust meetup or I love board games so I play a lot of board games I would love to go to board game nights here but there aren't really any like no one's meeting in person and that that for good reason mind you but it means that I kind of feel like I'm just sort of living in this place and I don't really know the place right I you could have taken where I live and just move it almost anywhere else in the world and it would feel kind of similar um and and that's a little sad like I wish I got to know more about this place um or that I felt more as part of a of LA even though so this is the other part of it is that I don't really like LA I'm more much more of like a city person and LA is not a city LA is like someone described it to me as 30 or so suburbs in a trench coat and I think that's about right I don't like that you have to have a car to get anywhere I don't like that nothing is walking distance I don't like that it's so dry so really I kind of want to be in Europe in one of the bigger cities there that that's more where my heart is or or New York for that matter I like New York a lot but I'm guessing we'll be here for another two or three years probably and then we'll see where we go next and yeah so the reason we moved here is because my girlfriend is trying to get into voice acting and voice acting of course is an industry that's primarily based in Hollywood which is here and so you kind of need to be here even just for the networking part which of course have been another bummer here right is that we moved here so she could meet people but you can't meet people because there's a pandemic going on there's a little bit of an unfortunate arrangement um you work remotely for Amazon I do yeah I um so this I'm going to work remotely for the rest of my life is my plan I don't see why I would go to an office I see no benefit to it I mean it's nice to meet co-workers maybe or to be able to like walk over to someone's desk but I think the benefits of working from home far outweigh that um so I've been working from home since the beginning and though so I do think you need to be a little bit principled about principled about it um so for me the space you see behind me is like half of this room and the other half on the other side of this here is my office so there's another desk you can't see right behind there um and that's where I go to work I never go on the other side of this shelf unless I'm going to work um and that has helped a lot actually it means that I actually feel like I'm going to work and I'm leaving work which I feel like makes it easier to separate them in your mind and to like actually take you know personal time and to uh it it's easy if you just have one space to feel like you should be working or not work when you should be working because it's all just sort of mixed up in your head like if this desk was work and personal it would be hard to separate the two but this physical separation does really help but it does require that you have a little bit more space um uh your book recently released on amazon on the kindle version has issues with code formatting uh do you know about them and you know if they are fixable yes um so this is apparently there's a problem in the amazon kindle conversion process so if you look at all of the like epub and mobi and pdf files from no starch they don't have that problem so there's specifically something about like the amazon conversion to the proprietary kindle format there's like az w3 or something is the file extension um that conversion is messing up the the line break somehow and i know that no starch is working on it um which is primarily poking at penguin random house about it uh who are then poking at amazon about it and amazon i think are currently working on it which is funny like i i have no insight into this because that's not the part of amazon i work for um but but i know that it's being worked on and i think they are i think they're working on it and are going to push out an update to the kindle one um so like if you have a kindle and are reading on a kindle you should be just like getting the fixed version of the book hopefully soon i think a lot of people are like on break because you know it's christmas and years and stuff um but hopefully like starting next week we should see some forward progress it is a little unfortunate that this happened like right after release because it means that the amazon reviews are like half of them are just like the code formatting is broken um and to be clear i'm not saying go leave amazon reviews like if if you didn't buy it on amazon then don't leave in a review because it's important that they're like the verified purchases and stuff um but it's more it makes me sad because i i i i want people to have a good experience reading the book and it's unfortunate when your first experience with the book is all the code looks like shit um uh it's interesting to see the difference between devs like you with masters and phd and estaban kuber who didn't finish his degree both are doing well in my opinion do you think a masters is usually worth it so i that's a good observation um so i i love estaban i think he's fantastic he's really good at what he does and i i yeah he's he's great um i it's hard to say whether a masters and a phd is worth it it depends what you mean by worth it um you shouldn't do them in order to like get a bear paying job like that's not that's not the thing to aim for that if if you take a masters and a phd to get better paid it will not work out like the opportunity cost is too great um i think the big upside for me with so masters and phd are slightly different uh at least i mean i took my masters outside the us so it's hard to say how it applies in the us but my experience at least was that the masters degree was a great way for me to branch out and gain deep knowledge and something i didn't know a lot about before so my masters i did on wireless networking and wi-fi localization so being able to like locate a device based on its wi-fi signals um that was really cool i got to do like gpu accelerated performance work i got to do like fiddling with hardware wi-fi bits like it was really interesting and something i don't think i would otherwise have gotten a chance to try out at like if i were to join a company it would probably be a while until i got to do work like that because i had no experience doing it um so that was really fun for my phd um the phd is a less like that like the masters is much shorter right so you get to really specialize and learn a lot about a thing and then sort of go on with your life um so the masters i think is worth it if you really want to gain to be able to like branch out into something kind of niche and get really good at it masters great and it doesn't take that long um a phd is a whole other ball game so a phd i mean mine was six years it's a really really long time uh it's like a huge chunk of your life and you don't get pay well while you're a phd student like if you're lucky you get paid at all if you're unlucky you have to pay to do it um like often there's stipends and stuff but you know not everywhere um and so there's a huge opportunity cost there and it's not clear that you're like a better job candidate after you are for some positions um but very often i think companies don't really know what to do about you if you're if you have a phd apart from they think they have to pay you slightly more but it's not clear that a phd is like a prerequisite for many positions or that they even really value the knowledge you get out of it for me the value of the phd was more that it gave me a a lot of time to just figure out what i thought was interesting right like the phd is sort of you just get put in this little playpen and then someone just says go and there aren't really objectives right like you're not being varies a little bit by institution but in general you're not given like homework every week or every month or every year like there aren't you have to be very self-driven you have to figure out this is the thing i'm going to go after you have advisors that try to point you like this is probably not worth spending your time on because it's already solved or it's not important from an academic perspective but in general it's really you just sort of feeling your way through this like unknown space and and figuring out like where is there a soft spot that i can push on and like maybe push the boundaries of human knowledge a little bit it's a really weird process and at the end hopefully you write a thesis that maybe two people will read maybe you'll give some presentations and i'll get it a little wider but in general it's just going to be you learning a lot about learning i think it's somewhat rare that you end up actually working with what your phd was on it's not impossible it does happen but unless you're going into academia down the line companies are probably not quite as at the forefront of science as whatever you wrote your your thesis on um so is it worth it i thought it was great it gave me a lot of time to uh explore open source it let me do these streams to teach people because i had the sort of time that i could devote to that um and let me learn a lot about rust contribute a lot to rust it let me um learn a lot about distributed systems about databases about performance optimization you sort of get to just spend your time on things that you think are interesting which is great um you get a lot of flexibility and that's valuable but are you willing to commit to it for six years that's up to you it's hard to give an answer um let's see uh what's your opinion on the growing number of programming professionals do you think the market will be saturated and start to pay less or will keep growing over the next three to five years um i think that demand is growing as well um and so the fact that supply is growing is probably not going to slow that growth yet i think we'll probably get to that stage at some point but like i think everything needs to be programmed right like we're moving into an increasingly digital and and programmable and computer-based world and so there will only be more need for skilled labor in that field and i don't think that supply is anywhere near it which is sort of what's indicated by um like what pay is like at the moment of course that that is somewhat us specific too so i think one thing to be careful about here is it's not like there's just one pool of supply and one pool of demand it's more that there is a huge demand for highly skilled programmers um and there the supply is maybe somewhat low um and then there's also a huge demand for um for sort of junior developers but there the supply is very large and that's also why the the pay there is is lower um and i think we'll probably saturate the junior pool sooner than the sort of senior pool um next three to five years i think probably won't saturate it but but i think we are looking at at a trend like that um do you believe in god no i do not i am very not religious um i yeah no i'm very not religious uh most positions at google require a phd they don't not even consider you without one that is definitely not true there are certainly positions at google that require a phd but most is is not the case um what are your thoughts on the zig programming language have you tried it already i've not um i've heard good things about the zig but i i haven't had a chance to and in some sense i don't feel a strong need to um which you know maybe that's ignorance on my part but i've just had i've had so much joy with rust that i haven't really felt like i have needed to sort of branch out yet um i do i do really want to or rather i should say i like programming language i think languages i think it's interesting to learn about them but i just haven't had a burning need for them since i found rust which is you know maybe good um which os to use privately in which one professionally um i use linux everywhere that's definitely my preferred us um i'm using arch linux on my desktop and on my laptop on my work computer it is a mac os laptop this is my first mac os and i don't really like it but the advantage is that i do most of my development in a um in like a vm uh that runs linux so i'm i'm just deeply happy there um but yeah i i don't really like mac os i don't really like windows i every experience i have with them is like i want to configure my window manager in a very particular way and i want to configure my keyboard in a very particular way and i can't i just can't do that on these platforms part of it might be because it's like it's also like a an enterprise laptop right so there are all these like system configuration things and like you can't change anything you want and for good reason like for security reasons but that probably contributes to the fact that i can't quite to make it what i want to if it was just like my personal apple device then maybe i could like tweak things more than i otherwise can um but yeah i i don't see why i wouldn't use linux um would you have any general advice for a first year systems phd student ooh so um you know first-year phd student i would say don't worry too much about what your thesis project is because anything you might guess at right now will be wrong like i didn't know what my thesis was actually going to be about until my fourth year probably and even then it wasn't until my end of my fifth year maybe that i was like i know the title now like i knew the general area like i knew it was going to be on noria around year four maybe your end of year five i knew it was going to be on partial state in data flow um so like year one is more just follow all of the leads that you think are interesting sort of follow your heart and your passion i have found that in order to sort of survive a phd you need to make sure that the things that you're doing day to day are things that you enjoy if they are not you you just you'll just burn out you won't have fun so if you're not currently enjoying what you're doing switch projects it's easy to do early it's harder to do later um did you like your stay at the university of oslo what made you go elsewhere i'm thinking of applying there myself um so okay so let's do a brief recap of my my history so i'm from norway i grew up in oslo um i did i went to high school in oslo um and oslo norway that is and um and then i did my bachelors i started my bachelors at the university of oslo i was there for a year then i moved to australia and finished my bachelors in australia at bond university um then i moved to london and did my masters there and then a bit of masters um like where does a like research assistant there for a little while in a project and then i moved to mit to do my phd and now i'm on the west coast um the university of oslo for me was a i don't know what to do so therefore i'm gonna go there until i figure it out um i it was too basic for me at the time but but part of the reason for that was because i had been doing a bunch of programming before i started the bachelors and like when i started that bachelors they were doing like intro to java was like one of my first classes and i was like this is not interesting i know this stuff i don't care about this stuff this is not what i want to learn all the interesting classes don't come from another like three years um so that it was not really for me it was it was fine i like the university i like the professors well enough it's just um it wasn't right for me at the time um i also and i think i've mentioned this before i actually applied to mit four times so i applied straight out of high school and got rejected and that's when i went to the university of oslo i applied after a year at the university of oslo and got rejected and that's why i went to australia i applied when i was finishing in australia to go there for my master's and phd and got rejected that's why i moved to london and then it wasn't after i got my masters in london that i got in on my fourth application so like it takes perseverance that's for sure um the university of oslo for me was a was was more like a a stepping stone or a holding ground until i could figure out where i wanted to go next um and and i think part of the reason why it felt like that for me was because i grew up in oslo like the university of oslo felt like more of the same um like i'd already been to school in oslo for so long that it just felt like the next year in school rather than like going to australia was very different and i enjoyed that a lot of getting that experience of getting away um about the joy of rust i wonder how you deal with compile times do you think rust will shift to drop legacies and shift towards a fully lazy compiler compiling only stuff that is used in depth you know i don't have that many problems with compile times in rust there are some projects that are really bad and primarily things where procedural macros are involved um but it doesn't really affect me that much most of the time um and maybe that's because usually i end up working on either things that are low in the stack so they have like they're fairly self-contained or they are very large projects that i sort of expect to take a while to build but even so like a slow build isn't that slow um like it's not like it take hours to build and if it does something is wrong uh whether rust will will sort of shift towards a lazy compiler that's harder to say it's also unclear what the benefits are there because the analysis becomes a lot more complicated i don't know if you would actually get speed up in compilation um there are certainly ways in which the compiler could get smarter about what it compiles and how um but i but i don't know that it requires like a full compiler rewrite to get there for me the joy of rust comes more from the fact that i feel like i can write code that represents the mental model i have of the problem uh and this particularly comes down to the type system like i feel like i can i can tell rust in source code form um what the actual constraints of an interface are like i can make things not compile that are wrong and that that to me is like sort of core of why i enjoy working with the language um that is that i can really use like the expressive type system just means that i get to write code that matches how i think about the problem um uh can you write an os like linux and rust yes absolutely there are several that people are writing there's like uh redox os and there's also i think liberty os and i'm pretty sure there's at least one other um uh let's see what's the coolest rust thing at aws that you know of and can tell us about um you know i think that's actually an easy question i think firecracker is just really cool i like the there's like super fast vm for for sort of small or fast jobs i think it's really cool and it's written in rust um i i i think it's cool i haven't like read all the code or anything but i think it's just really cool from like a we can do this and rust enabled it uh kind of way uh do you think it's worth learning rust as our data scientist that one is tough because rust at the moment is lacking a little bit in things like data analytics tooling um we don't have great libraries for things like plotting and data analytics um there are like linear algebra libraries and stuff but compared to something like r with gg plot and stuff it it's definitely some distance off it's also not clear that rust's benefits help you a lot in data analytics unless you are specifically crunching very large amounts of data um where you could really use that speed benefit but i think there's a lot of value in it be able to do things like um basically have a repel which is much harder to do in rust because it's compiled um like having a runtime helps you a lot with just being able to do sort of interactive data exploration which is harder in rust um how is it like being far from your parents and your family you know this is actually something that doesn't bother me that much um and maybe it's because i've gotten used to it right like at this point so i moved from i moved away from oslo in 2009 um and so i've lived away from home now for a very long time and i do go home to visit like don't get me wrong i i love my family but i don't feel like a sort of constant pull to them of like i need to go home um i think i've sort of settled on a nice um a nice balance where i see them like i i sort of Skype with them every now and again and i see them maybe twice a year and and i'm okay with that um i have my own life now um how likely are you to move back to norway you know this this is um it's a question i go back and forth on uh i really like oslo and i like it more over time every time i go back i feel like the city has evolved somehow it's become more um diversified more international more interesting um so i think it's actually a really attractive place to move back to now and it's also norways a great place to race like a family it's also a great place to work compared to the us especially um but there are also fewer opportunities there so i don't know that there's like a i don't know it's a clean trade-off um where it's like obviously better it also depends on my girlfriend i honestly don't really know yet um i really like london so it might be that i'd move to london instead of to oslo and that way i'd also be a decent amount closer um but i don't know like brexit made moving to london a lot less attractive so i honestly don't know yet are you going to stream programming topics on a more regular basis soon you know this is tough i really want to do more streams it's just time has been so short for me lately um and one so i mainly do two types of streams right i do the crust of rush streams and then i do the the programming streams the programming streams i have much more material for like i i want to do more on the hazard pointers like i have at least one more stream there um i want to ultimately get back to the um the lock free no the weight free uh implementation that we were working on based on a paper which we needed hazard pointers for right there are like multiple layers of the stack that i want to do the problem with those videos is they take six seven hours probably about eight hours total if you include like set up time i need to set up the chapter marks like encoding uploading you know all of that and it's just really hard to find eight hour time slots uh in my calendar these days i that's not to say i don't want to it's just it's been tricky and especially now lately there's been a lot going on with like the book release new cat you know it's a lot of stuff um but i do want to do them i just don't know when i'll find the next time slot um crust of rust is a little bit of a different story so there um the videos are shorter so they're easier to schedule um they're easier to do even just like during a during the week um the problem there is i want to make sure that i make them on topics that are interesting important um not readily explained elsewhere somewhat intermediate uh and i want the explanation to be relatively complete and lasting over time we keep coming back to this concept of i want to put things out there that have a longer lifetime right where it's not like i put the video out and that everything is outdated like three months later um and for crust of rust i feel like i've gone to a point where there are fewer good topics left that fit all those criteria uh so there it's less that i don't have the time and more that i need to find the right topic and the right way to cover that topic um so this is why i had the the reddit thread a little while ago where i was asking people like actually let me link that in chat um where i asked people like what would you like to see um what is the uh why is reddit not loading there we go um like what topics would you like to see covered which ones are not well covered at the moment and one of the things i stipulated up in that post was like um here are the criteria that i use in order to in order to choose my topics please give things that actually match this and some of them did some of them did not but uh here but i did get a lot of good um suggestions there so i'll put that in chat um but yeah so the the short answer is i want to do more streams um it's partially lack of time and partially lack of content um for an engineer of your caliber exactly what is an opportunity to you research work in general um so i i think this question is asking what do you look for given your range of options um and i want to answer that in two parts so first my range of options is not as wide as you might think um and and that's partially because i am very picky about what i do and that in turn is because i know which things i'm good at and there are some things that i believe i'm really good at but there are also lots of things that other people might think i'd be good at but i know i wouldn't be good at like one example of this might be um uh so so amazon for example has a lot of service teams right like there's like the s3 service team um there's like i don't know you know all of the very easy to all of the services that amazon has or aws has um i think a lot of those teams would love to have me on board on their teams to like work on the service and i don't think i would enjoy that and i don't think i would necessarily be good at that like that's not my background is not working on services and web apis and that kind of stuff maybe the back end engineering but that's not where my experience lies um i think where my skills are much more in like low level level like libraries data structures concurrency which you do much less on on a service team i could probably learn the other things but it's not my passion like i don't have the same drive for it so even if i did learn them i don't feel like i was be would be as productive there as i would be in the spaces that i truly care about so in some sense the answer to your question is that i want to do things that i enjoy and that matters much more than whether it's research or whether it's working for you know a commercial company or whether it's working for an organization as long as it's something i'm passionate about and in some sense this is the reason why i took that the job i currently have at aws right which is i want to enable more people to work with rust because i believe in the language and i enjoy the experience of sort of enabling people to use it um and this role was you get to work on enabling people to use rust and you get to work on improving rust in the process by making it work better with like large build systems which enables other companies to pick up rust and you get to work with all the developers internally you want to pick up the language so you get to do sort of teaching and stuff as well so it's been a really good position for me to do many of the things that i care about um you've said that you generally only learn something if it solves a problem for you are you interested in wasm enough to find a problem for it to solve um i think it's very hard to find problems in a space that you don't work in i think i don't think you find problems by sort of setting out to search for them you can but it requires a lot of time you encounter problems and then you decide to solve them uh so i guess the answer is no i'm not interested enough to sit down and do all the work to find a problem there um that said it might be the case that over time wasm is used more in the things that i use and therefore i end up being interested in it because i encounter a problem but i but i probably won't go and like actively look for them um if someone was thinking about starting a rust programming youtube channel what sort of level and domains do you think would be most useful to people um it's a great question please do it no matter what you choose um in terms of level and domain i don't have a great answer for you um because i don't think there are objectively good answers um i think what makes what makes for a good channel or a good blog or a good twitter account is that you have a passion for what you teach and for teaching it um it's not enough to have a passion for what you teach if you don't enjoy teaching it it's not enough having a passion for teaching if you don't care about the thing you're teaching um so you need to find something that is both and that's why my streams are primarily around like low-level primitives and concurrency and synchronization and like that sort of stuff because i really care about that i think it's so fun to work on um and you should do the same and maybe like for some people their passion is to get people started with a language to do the sort of beginner content if that's your passion do that um there are more resources in begin beginner material um but that doesn't mean that there's not a space there and especially if you find a domain that that isn't well covered elsewhere um if you do decide to go for the more sort of advanced streams think very carefully about who your audience is like this is a problem that i've had a challenge with too of like who am i making these videos for because i know that there are a lot of people who don't care about my videos or who sort of there i know there are people who find my voice annoying i know there are people who um think that they're too slow um or that i take too many detours so that they should be edited down or that um you know that that that video isn't for them in the first place and that's okay right my the audience i have in mind is not all rust programmers because it's not a realistic audience so you need to figure out who are you going to be making your videos for and then you have to like be laser focused on that audience and this is why i have not been making my stream shorter or switching topics it's because i need to do the things that i am passionate about and that i believe in for the audience that i want to make it for otherwise the content won't be good because i won't my heart won't be in it um and so like i know for example that there's definitely a space in rust for like more curated shorter videos on advanced topics or intermediate topics basically my videos but like a tenth of the length um it's a lot of work like i can tell you that if you were to try to do that the editing will take a very long time but there's definitely a a decent chunk of developers who don't want to watch my videos because they're too long but want to learn the content and maybe and who are looking at videos maybe you do a blog version of the same thing but just you need you need to find your your space and look at something like um the Faster Than Lime blog which i think is fantastic um i feel like i don't actually uh aim us is that i think it's aim us so aim us has found um a sort of niche as well right where all of the blog posts are very long form very exploratory uh very informal conversation let's see what we find as we go and i think that's great i love reading things like that but for some people there's just too much stuff right like it's like tell me the commands to run or just show me the diagram or point me at the issue rather than give me like an hour long read blog post and that's okay it just means that you need to find your audience and cater to it if aim us started writing much shorter posts then a bunch of the audience would go away because that's not what they came for that's not how they learn or all of that if you think about taking an article that's this long and cutting it down to be this long there's stuff that you're removing right and for some people that stuff doesn't matter but for some people that's all the that's where you pick up all those little weird things you didn't know about the language um and this is the only way you get exposed to them so find your audience and then target that um you seem to have an analytical mind so i'm curious about your thoughts on the origin of the universe do you believe that there was a first cause or do you believe it has had always existed you know it's funny because i in high school i took a a philosophy class and i ended up participating in the international philosophy olympiads which yes is the thing um and the one of the first questions you so the way this olympiad worked is you're given a set of like five thesis statements and you have to pick one and write an essay about it and um i remember the first question that i chose the the one i chose for sort of the entry essay was um about the origin of the monoid on me looked this up so i don't say anything entirely wrong so not the monad but the monoid monoid um which is a the principle of philosophy let me see if i can i forget who the philosopher who started this was uh all i get is programming terms i'm not after the monodology okay so here's the Wikipedia article on monodology okay so this is the work of uh godfried leibniz um and i'm taking this from uh uh for mostly from memory here but the the argument is basically that um there is a smallest possible element that everything is made of and that is the monoid or the monad not a programming mon monad but like the huge sort of thing of the atom but like even if it's not the atom there's some smallest piece that just you know everything is constructed of if you go deep enough down um and the the the question in this in this essay question was is this true like could this be true um and of course there's no you can't really answer this question but for me this ended up being exploration of the origins of the universe which was um let's let's assume that there is such a smallest thing then we have a couple of options either um that thing has always existed so there's no beginning to time which is weird for us as humans to conceive of right like how could something always have been what does that even mean the second explanation is that they were made by some metaphysical being um and this thing just made the monoids and then they formed all of the rest of existence um that's sort of the the divine creation theory right of course then you run into the problem of well if everything is monoids then what was this metaphysical being made of was it made of monoids because then who made those monoids so it's sort of recurses but you can always make the faith argument of like you know um and then there's a third argument which is that these things did not exist and then suddenly started existing uh and this is sort of the the the physics argument of um for that to be the case something must have been made from nothing so the question is how is that possible from physics we we don't know how you can make something from nothing you could convert energy to matter right so maybe there was just energy but you still have the same problem then of where did the energy come from so you still have the same uh either it's infinite or something was made from nothing and so the possible origins of the universe given this monoid theory is that either the universe is infinite in both directions um because these monoids can never be created or destroyed um or there's a divine creator or we don't have enough of an understanding of physics to be able to explain this and of course my take here is this is the third one we don't know enough um but but those are my brief thoughts on the origin of the universe um uh yeah I had no idea there was a philosophy olympiad either it was very very funny I ended up going to Romania to like yosh this is city of Romania that's where we where there was like the the olympiad itself was held like I was one of two participants from Norway and it was a really bizarre experience um uh would you be upset if someone started studying your book in video format but it depends what you mean by studying um like I it's it's my very sincere belief that you can't teach everyone with one resource because people learn in different ways um and like as I said before not everyone will learn for me or learn from my way of teaching and that's fine um and so I think that the way that we disseminate knowledge to mankind is that you have reinterpretation you have other people learning and then in turn teaching like one day I will die and someone will have to keep teaching right um and so if other people take what they learn from me and then teach others based on that that just makes me happy right I don't own the knowledge that I teach on these on this channel and in the book right I guess in some sense I like own the words or something like copyright and whatnot but but if other people try to reteach that's great I do want to make sure that people reteach in their own words in their own way um because just like regurgitating exactly the things that I said I don't think adds value um so would I be upset no like if someone studies what I did that sounds great if there's discussion around what I wrote that's great I've seen a couple of like um rust reading groups that are picking up my book and having lots of great discussion that I sometimes get tagged into that's fantastic I that makes me very happy what inspired you to work on noria so you know noria was one of those I can't believe it doesn't exist type of problems which maybe is a good way to find good phd thesis projects but I I don't know a lot of web development in my past um and there was one point during uh during my thesis work where I was working on some like or during my early days of my phd where I was working on like some database stuff and I was like I don't really like databases uh I I don't want to work on a database I told my advisor that's like I don't want my thesis to be on a database of course here I am um but he and I had a conversation about like all right what's wrong with databases not necessarily like why I don't want to work on them but just like why why do we have this dislike for database and for me the answer was that they're never fast enough they feel like they're not made for what I use them for and after a bit of exploration that was really they're not made for read heavy workloads they're not they're not made for web applications which is the primary place where they get used now um and that frustrated me and then we sort of got the discussing of like well you just put a cash in front of it I'm like well why should you need to caching is a huge pain I don't want to write a cash I don't want to have to maintain a cash and implement a cash and run the cash service like I don't want any of that why can't the database just do it for me it knows my data knows my queries it knows my schema it should just do it um and out of their rows all right let's implement that then um and then five six years later we had noria um do you think that rust is a good option for writing video games I do and I say this with very little experience writing video games but I have this hunch that for video games they're kind of stuck working with c and c plus plus because they can't afford gc pauses of any kind you just can't in a video game setting and so with rust you don't have gc pauses so it's a contender and c and c plus plus are a pain to get right even for performance sensitive code so why not use rust there is there's obviously a bridge there of like all the game engines are written in c and c plus plus so like there's definitely a transition period but but I feel like it's a really strong contender there and what's missing is like all of the middle layers so you build games on top of um I mean I know that we're getting bevy and stuff and that that's really cool but I think it's really just a matter of time before we see it in a lot more games and I've really been curious about going into games myself because um game game development is a lot of concurrency and data structures and performance uh and latency and I I think that's great I think it would be really fun to to build something visual like that um but it would be a bit of a career jump um but it sounds really cool um would you live forever if given the option I feel like I would have a lot of follow-up questions like live forever in what way right in what physical form um and I think the answer is no like forever is a very long time this is also the question of like okay who else like is it just me am I gonna like outlive humanity and then just like live alone for the rest of the existence of the universe because that sounds terrible um so probably no unless the details were very compelling otherwise um for us unaware what is noria um noria is my phd thesis project uh there's a video uh where me presenting both uh there's one where I talk about a like a high performance database on youtube and there's another one where I actually give my thesis defense where I talk about it but very briefly noria is a database um or it looks like a database it quacks like a database it smells like a database um you interact with it like it's a database but it implements caching internally so that when you read you're basically getting the read speed of reading from a cache but it's automatically maintained by the database you don't have to do cache invalidations and stuff they just automatically happen in place whenever you do writes so you basically just did the work you didn't want to do yeah exactly uh that's exactly what happened uh why don't you stream on twitch i do uh all my streams go to both youtube and twitch so you can right now you can go to twitch instead um when you think the rust gooey ecosystem will be mature and stable enough for production ready apps i don't know enough about that space um there's a question earlier about like what spaces don't you know much about uh and potentially would like to learn i think gooey programming is one of them uh i think i've come to the realization that i don't know if it's a realization maybe i knew it all along but like most people don't want terminal applications they want gooey's and i think for me it hasn't mattered that much like i don't care about gooey programming because i enjoy building things for developers which means like can be command line based um but like gooey programming is just essential for getting in some sense computers to the masses like for for programming to really have an impact ultimately there has to be a user somewhere otherwise you're not making people's lives better you're not having an impact on people um so like there's interfaces downstream of you somewhere and therefore they matter um it's not something i work on i don't know that i would care about working on them um i don't know if rust has like a compelling new take on gooey programming i think it's really just catching up to being able to make interfaces for gooey's in rust um and i i don't have enough of a handle on that space to see say how far along it is does ownership model kind of break around classes otherwise it's going to be hard to breach gooey in games without them i mean there are no classes in rust um that what i've seen is that for game programming in rust you often use like the it's called entity component system which is like a neat way of representing entities in games and that apparently works really well i but i can't speak too much to it in detail because i don't have first-hand experience with it but that this is what i've observed from people talking about rusting gaming have you ever met gradient whore steve klabnik or someone from the rust core team i have um i've not made gradient whore uh i have met steve klabnik i met him where did i meet him i met him in boston for you know that's a very good question i think he was here for a meet-up like back in 2017 or 18 um but but very briefly um others from the rust core team uh i mean i've i've met nico as well because nico was in boston um as nico is not on the core team anymore but um but i did make nico in boston a couple of times i don't think i've met anyone else there i've like chatted with some of them one on one but but not in person uh what's your main goal this year oh my main goal this year so i don't know that i have a goal um so there's a there's a youtube channel called cgp gray which i highly recommend like he makes amazing videos and they're there's just really good explorations of sometimes weird sometimes just insightful topics um and i i really like their narrative style but they have this one video on you shouldn't have goals for the year you shouldn't have like new year's resolutions and stuff instead you should have themes you should have a theme for your year and i think that was a really cool twist on this um i don't know that i've decided on my theme for 2022 yet um but so i'm gonna have to get back to you on that one but but that that's how far i've gotten is i think i want it to be a theme rather than an explicit goal part of the reason is because you can't fail at a theme a theme is something that colors your decisions and color the ways you make decisions um but it's not like a checkbox where either you did it or you didn't um and i i like that because you can make a lot of progress in the direction that you want without necessarily committing to what the end goal is going to be ahead of time which buzzword technology would you advise actively avoiding NFTs it's a huge waste of time uh when do you think rust will be used in linux i think we're not too far off i think we're getting pretty close now like the latest iteration of the patches um i think got pretty good reception there's still like an open ticket with actually let me link that as well uh rust kernel there's this issue which is tracking rust unstable features that are still needed uh for rust to land in the kernel which is really cool um but we're we're still a little bit off but but there's certainly a really good forward momentum there that's exciting to see shows the cat okay so i now have two cats and because so it's kind of the situation of chi which is our first cat um is like an only child right like she owns the house um and then we got a second cat and chi did not like smelling another cat in here just pretty usual the other cat came from a foster family that had 12 cats that all live together so she's completely used to there being cats everywhere and it's now kind of lonely because she's alone with us um but so she really wants to meet chai but chai does not want to meet her um and so we've had to sort of separate them off so uh miso the new cat lives in our bedroom and the adjoining bathroom uh and then the doors that are closed off from chai and chai of course is furious that she can't go into those rooms because she owns them um so i can't actually bring you both cats because they're they're just separated i could maybe bring you chai but i don't know where she is right now um but if she if she comes wandering up here i'll i'll make sure to show her um what books are you reading i'm rereading the wheel of time um i read that book series when i was it's probably the first like fantasy series that are no i read juice burn before that but i think i read wheel of time starting when i was like well 13 maybe i started the first book i started in ewe jen and then i switched english partway through um and you know they're just great i'd i'd love those books um so i'm rereading those um uh i also have a couple of programming books that i want to read uh where so there's this one the visual display of quantitative information by edward tufta so this book is all about how to visualize data in a way that is helpful and sort of not just that it looks nice but that it actually presents helpful insights about your data um i want to read uh this one a program is introduction to mathematics because i feel like my math knowledge is not where it should be uh and a program is introduction seems good uh and where is i'm also rereading the pragmatic programmer i read this many many years ago but it's a new edition out now pragmatic program is great if you haven't read it absolutely read it um and then i've been recommended this but i haven't started it yet which is the algorithm design manual which is all about like cool data structures and like how to implement them and how to implement them efficiently this might make for a really good um like stream topic just like implement all the things from here like just looking at the um the list of the like table of contents it's god well there's like a bunch of things about like analyzing them so big o notation and stuff so there's uh stacks queues dictionaries binary search trees priority queues uh sorting heap sort merge sort quick sort binary search divide and conquer graph traversal breath first search step first search shortest path network flows by parted matching um backtracking this is like combinatorial search search pruning sudoku solving parallel algorithms uh dynamic programming like the partitioning problem and parsing context free grammars um and satisfiability p versus np uh kd trees set trees like it the list just goes on and on and on and like this is like gold stuff i i love fiddling with these kind of bits so maybe you have fun like stream series just do um just like implement all of the data structures from there might be really fun my books are mirrors oh no i'm sorry that's i don't know why oh i guess i haven't mirrored my screen and i'm also going to reread um brave new world and 1984 because they're really good books and i recently heard a uh intelligent squared debate on which one was more um like anticipatory of the times we live in now and it was an interesting discussion and made me want to reread both books and i realized they're actually both really short um uh john what is your amazon salary if not a secret uh is it a secret that's a good question i don't think it is i think in california are not allowed to prevent someone from disclosing their income but i'll be slightly vague just for reasons um so uh amazon pays in salary plus equity like rs use um and for your first two years or at least in my case the first two years um you get like bonus pay to make up for the fact that your rs use don't vest yet um and i think my total compensation currently is around 300k like i think just below 300k um that's per year if in case that was unclear and us dollars um what's your second favorite color orange uh specifically do i have anything in that orange right here i don't i thought i did but yeah orange is my second favorite color um what's your travel bucket list um my travel bucket list oh i used to have this written down and then i moved and forgot to bring the list i had a world map like a pinboard world map with different pins um and even traced out what the travel route would be um but places i want to go are i really want to go to japan um i would love to just take like a few months in japan and just travel the the country um i really want to go to hong kong i've been there briefly um but i would like a longer stay i really want to go to um to soul um i really want to go to singapore i really want to go to um i really want to go back to bali i spent two weeks in bali a few years ago and went diving there and stuff and it was amazing to go dive there um i don't really care about the party scene and stuff there but um but the diving there was really good i want to go back to australia just to visit like i have a lot of friends there and i haven't seen them in a very long time because it's so far away i also want to go visit new zealand because i didn't while i was in australia which was dumb of me because that's the one time you're actually close to new zealand um i also want to go to iceland again um i had a i went on like a company trip there like nine years ago or something now and we went like snowmobiling on a glacier and stuff and it was it was amazing it was real fun um where else do i want to go i really want to go back to ho chi min so in vietnam um i there was a trip that i went on many years ago now with some friends and we were supposed to spend a week in vietnam no a week in bali then a week in vietnam and then a week in uh thailand and we liked bali so much that we stayed there for two weeks instead and we only had one day in vietnam like we landed we spent the night and then we left the next day um but it it looked like a it's a really interesting and different city that i would like to see again i've been to bangkok many times and i think bangkok is great and i would love to see some more of that um what else is on my list um i i want to go to the netherlands um just because i feel like it's a place where i will like enjoy the energy somehow i can't quite describe it i i'm not a drug person like i don't care about that part of things but just like it just seems like a pleasant country and i want to go visit it's hard to get that from um you know just a brief visit let's see uh do you ever feel limited by rust type system compared to something more dependently typed ish like haskell i don't really feel limited compared to something like haskell i do feel or rather if i were to take a step up in the type system hierarchy i would go to something like idris or cock right where you truly just like have like formal verification like machine proof verification at your fingertips and you can actually prove semantic properties about the behavior of your code um uh dependent types get you some of the way but but i feel like realistically i don't know how much haskell would buy me over rust i don't know that that would be worth the downsides whereas something like cock or idris i think is or maybe like dafney or f sharp is a better comparison point here but somewhere where you can actually like verify the behavior of your program according to some there's like a big asterisk about according to some spec and who knows if the spec is right but like i think that is the realistically the step up and i don't really feel limited there i think it's great the people working on that but that's not that that's too far for me i care too much about the implementation of the algorithm and not enough about the type representation to go all that way do you want to check out india i do want to go to india too actually um i would love to go to india i don't really know where i would go um but i have a friend who um has gone to india many many times he's in a region but he's uh one of his parents i think used to work for the embassy in india i forget exactly what the connection is um but he went there a lot especially as a when he was younger and um i feel like he would be a good guide um oh mexico too i would love to go to mexico um all of i would go to love to go to um south africa i want to go to morocco i'm going to go to egypt i you know i just love traveling i would love to go lots of places uh and sub says i think it's more like which places are not on my list and i don't even know that i have many um how old are you i am 32 years old i'm halfway to 64 so people are like the important dates or the important years are like when you turn what 16 18 and like 20 30 40 50 who knows you know for me it's not that it's the powers of two those are the ones that matter right so you turn one that's a big one uh you turn two you've like survived your first two years you turn four maybe you're starting to become sentient um you turn eight and now you're like a kid and not a baby um you turn 16 and now you're like an adolescent and not a kid you turn 32 and now you're an adult and not like an adolescent anymore um and then you turn 64 and then you turn old so like it's the powers of two and if you get to 128 then you like that's the high score um so for me the powers of two are important and i'm now in the in some sense i guess i'm in the the last half which is disturbing no i'm not in the last last half 64 64 would be the last half i'm in the second quarter um or something that that turned dark but um but yeah i'm 32 and uh i think 32 is a good year um yeah i basically want to go everywhere Fibonacci over power of two i mean maybe but i feel like the power of two just has this magical property of it kind of maps the stages of life too um any general advice on how to get better at teaching especially things you understand very well and maybe don't have a lot of empathy for how it feels to be a beginner um i think the thing that taught me the most about empathy for beginners is to start teaching right like the moment you have to explain something and have like and i want to say specifically teaching within audience is um you start teaching and then realize that people don't follow what you're saying and the questions that you get are the things that correct your impression of what people know so my guess is as you start teaching you will be bad at it because you will assume too much and then over time you learn where your audience is at and then you can adjust for that and this is why like i think it's so valuable to have to do streams as opposed to just publish videos is because the feedback from chat makes sure that what i teach has a pace that people can follow right and it forces me to to re-explain if an explanation was poor it forces me to take a step back if i like did too much of a leap um and i think you need that correction to learn that skill so in some sense the way to get better at teaching is teaching um it's not super satisfactory but but i think that's the best i have um it's also you need to care about it like you need to really feel like you want to help people learn uh and and then it like then the feedback you get won't feel like a defeat it will feel like great this is information i can use to make this better the next time around um what is your favorite restaurant in la so far oh that's an interesting one um i don't know that i have one favorite um i really like the ramen from sujita um i really like the dumplings from din tai i really like the salads from mendocino farms um i you know it's a good question what else do i have i really like i mean i'm just gonna pull up my my order history here this is the other problem i can't really go anywhere everything is closed um the bowls from flour child are really good um the boba from teaspoon the burgers from the counter burger uh oh my gosh here oh there's a there's a restaurant called violet bistro that is pretty good food i've been happy with them uh yeah i think that's my oh and the ice cream from echo and poco i think those are my that's my that's my uh current shortlist i have many places i want to go though but many of them are closed or hard to get to at the moment um can you tell us about give directly sure so so give directly is is um i don't actually know a lot about it myself beyond the fact that um there is a so there's a website called give well which is a an organization that tries to figure out what charities are worth giving money to like where you can have the greatest impact and give directly is one of the places that give well recommended and give directly is on the list of charities that are registered with the youtube like uh charity lists that you can so on youtube you can like set videos to be found fundraisers for different charities and there's like a list of charities you can choose from and give directly was on there and was recommended by give well and that's why i chose them um uh and my understanding is that the uh the basic idea behind give directly is um one way to uh help people who are struggling is to give them money counterintuitively um so that's what they do uh and of course it's like you need to select carefully and make sure that it goes somewhere useful but ultimately like that's how you help a lot of people um i do like greek restaurants i i love greek food um i used to make tzatziki and i i should make tzatziki again it's so good um hey john i'm in my second year of a double major in mathematics and computer science and really considering going to grad school for operating systems what helped make up your mind about grad school um you know the reason i chose to go to grad school is because i really like to learn and that seemed to be the west day to do it once you go into industry learning random things maybe not random but learning whatever you want becomes a lot harder because during your work day you're going to be super busy with work um so you're only going to learn things that are relevant to your job uh and that might not even be that much especially the longer you're there the more you'll just be doing things that you know you'll still be learning like it's not like you'll stagnate completely but but in general learning is going to happen more on your spare time and i didn't feel like i was ready to stop learning lots and grad school is a great way to just learn learn lots of things that was the deciding factor for me um that i didn't really care about like going into the job market and like making money yet and that like partially because it's like a position of privilege right like i didn't need to make money um because the grad schools i applied to had stipends that i could live off of it's not like i lived super well and had lots of money but like at least i had a stipend pay for my grad school so it was an easier choice at least um and i just felt like there i would be able to spend my time sort of doing what i wanted and learning a lot more and so that's what i wanted to do where can i buy your book or download it for free what's the name of your book the book is called rust for rustations it's at like everywhere now like it should be at local retailers and stuff you can get it on amazon you can order it directly from the publisher from no starch if you order it from no starch then you get the digital version for free when you buy the print version so it's like the incentive to buy from there but otherwise like if you just like search whatever your book dealer of choice is you should find it there it is not available for free anywhere at least not anywhere legal microphone seems to be working well good i'm glad why did you relocate to the us do you think you'll come back to norway so i moved to the us uh primarily because this is where the university that i sort of dreamed of going when i was a kid mit was and so i went here and realistically the us does have very good universities i think that's the only real compelling reason for me to come here like there is some compelling reason in that they have a lot of the big tech companies are here this is where they're based um and it's harder to work if if you want to work for one of those companies it's hard to do that from the us um from outside the us i don't think that's a super compelling reason for me um i think realistically i'll probably move back to europe uh in two or three years um but it's a little hard to say what kind of music do you enjoy listening to oh that's tough so it depends on my mood um for writing i like uh uh somewhat slower music often more like video game soundtracks and stuff um or to some extent classical music but but more like video game background music for programming if i'm like deep into a coding problem i listen to um faster music usually without uh lyrics um and even sometimes really fast stuff like um me pull up i don't want to pull that up um even things like uh fury of the storm if you know this song you know me by dragon force which is very heavy uh not everything is as heavy as that but i like high-paced music uh for for like focused programming and then just for general listening i have a playlist that is all over the place like it's not it's everything from let's see what's in there uh the beetles is in there the offspring is in there um bob dylan is in there uh there's like a couple of like Norwegian songs by Norwegian folk artists that are in there uh there's jazz in there um there's like i i like songs more so than i like genres or albums or artists like i don't really have a lot of loyalty to any particular thing so i listen to just like a very wide random sampling of things um so i i don't really have a good answer to you but um it it's really all over the place can you remember your first large rust program and what was it you know it was my thesis project that's where i started um i finished just after the first year of my phd i finished the program uh that we wrote like a white paper on that was written in go and then i started playing around with the idea of of noria of this like database caching system and i started writing it in go and didn't really like it and then i saw some mentions of rust and i was like maybe i should just try this out and then i started writing it and i built a sort of small prototype and i was like this is worth it i'm gonna build it more properly and then i started building the real one and that is now like uh i forget how many thousands lines of code it is but it's pretty large um so my biggest project is also my first project this house music is in there too uh epic orc is orchestral music that too i wonder i can i do i have a way to share this one question let me see if i can um i don't want to open spotify my computer because i'm worried about it like messing up the audio interface somehow but i think this playlist is marked as public yes it is here i'll i'll uh how can i oh i can send it on discord nice this is why it's nice to have chat sync there so that is my spotify playlist for easy listening let me see if i can find the and then this one is my programming playlist and then this one this one right here is my writing playlist and they're very different in style all three of them having written a book do you think you'll be writing another one soon or soonish maybe a non-technical book probably not partially this is for visa reasons um the us visa system is real complicated and weird and i don't think i could write a book right now i could the year after i graduated there's like all sorts of complicated rules around this but basically i don't know that i could write a book right now um but also i i don't think i would want to i think i put all of the things i wanted to write into that book um and there might be sort of a second revision of that book down the line but probably not for a while and also because i need a break from it right like writing that book took a lot of time and a lot of mental energy and i've like poured so much thought into it that i just need to like hold it at at arm's length for a while um there's a writing non-fiction i did play around with writing a non-fiction a long time ago i don't know that i will do it again um or like actually publish something but you know i've been at least i've been through the experience now once so we'll see um i also have no idea how well this book will do right like i don't actually have the sales numbers yet i think i get them in like mid january um for the past six months so i have no idea how popular the book is i i don't like i see some people enjoying it um i also see some people like less happy with it i don't know it's like very hard to separate out the the feedback because very often it's like random conversations on discord and stuff it's just like i don't have access to all the people talking about it right and i don't know how many people bought it so i don't know the size of the audience i don't know the general reception and i think that's something i'll i'll get a sense from over time but that's probably gonna factor into my decision to write another one too because if it turns out the people let's say that it turns out that people don't enjoy this book like they don't feel like they learn from it um or they learn relatively little or the teaching style is not right for many people then i probably wouldn't write another one because why would i it wouldn't i i don't write the book for me right i don't write the book because i want to have written a book i write the book because it's my understanding that it might help people learn rust um and if that turns out not to be true then i shouldn't be writing books and i should be making videos instead um someone asked whether uh uh there's something that i regret that's not in it or want to add um i think there are some things like i think for example once the error story in rust stabilizes a bit more there's some stuff there there's some stuff on assembly once the assembly syntax lands that might be useful to put in uh wasm i think is potentially a big one gooey programming maybe um one thing that's tricky is that the book is intended to be about rust the language and not really the ecosystem right so i i want the book to focus on here are things that you need to know about rust the language in order to take advantage of its ecosystem and to add to its ecosystem and contribute to it but it's not like here's how to use this library like how to how to write a game with bevy like that's never going to be in the book and so there's a little bit of a fine line where there shouldn't be too many chapters in it that are not about core rust um let's see uh show us a physical copy of your book just just for the culture sure so it's a it's pretty small like it's a pretty thin book and this was intentional too i i know that a lot of programming books try to be uh how to how to say this um very guiding in their writing like you use more words than you need to to make sure that people follow and to to give more context for things i specifically didn't want to do this for this i wanted this book to be fairly dense because if you're reading this book it's because you already know rust you're already um an intermediate developer whatever that means but but you feel like you're beyond the basics as i wanted this to be a thing where you you read it and you keep finding new things you didn't know or that you get to understand better and i want it to be i don't want you to feel like you have to like get through a bunch of stuff to get to the good parts which does mean that it's fairly dense uh it does mean that it's not always like sometimes you have to read things multiple time to catch them and that's on purpose um because i didn't want to sort of fluff it up um but yeah so this is the book uh it's got pages in it um it's it's signed believe it or not um so yeah it's got my picture on the back right here see do you see the resemblance see it see it jay is uh is guarding the copies up there when does rust replace all other popular languages like cc posters and java uh never and there are multiple reasons for that um one is that there are cases where rust makes less sense than a run a language with a runtime like java um the second is that there is too much code in the world that rust will replace all of it like there's too much legacy code that just realistically is not going to go away um we can do incremental rewrites and stuff but but it's just the the pyramid goes so deep that the time frame for something like that is is very very long and requires long sustained effort i don't think it's i don't think it's something that's going to happen anytime soon and i also don't think that it is it should be a goal i don't think we should say rust is the only language now like i don't think there's value in that um the hair is less spiky yeah it's true spike of my hair a little um uh how's your cat okay so so chai my my cat is currently annoyed that she can't go into the bedroom which is her favorite place to sleep because that's where the new cat uh miso is but otherwise chai's chai's good she's getting a little bit chunky so we're trying to hold back on her food and and run her around a little bit more we have like a a toy on a stick that she loves chasing so she she needs a little bit of exercise but she's very soft and very cute and very cuddly um how much rust does someone have to know to follow your stream um so it depends a little bit the programming streams are the the programming streams expect people to know rust like i'm i don't take a lot of time to explain the syntax the basics of the language i take time to explain more intermediate concepts that come up but but it definitely assumes just you know rust um for the crust of rust streams they are a little bit more friendly towards people with less experience with the language there i would say it's for you if you're interested in the topic and know some rust but even there like they're not really beginner streams um um it's a it's not a complete answer but it's the best i can do uh do you think 10 years from now rust will be popular in the job market yes but that's speculation um i don't think people expected rust to happen 10 years ago so it could be that there are some new language that like does all the things rust does but better by that time i given how long it took for us to get from c to rust i think it's unlikely like it there's like a magical set of circumstances that have to come together to make a language compelling enough for the kind of uptake we've seen with rust um but it's hard to predict but but i think so um one will rust be accepted as a general purpose language i think it already is um but i think where rust hasn't broken through yet is in enterprise non-tech enterprise uh like there are a lot of companies out there that write a lot of software but aren't really tech companies um like i don't know take like jp morgan or something right or goldman sacks or these or um even like banks for that matter like there's a lot of software running there that matters the safety and security and performance of it matters a lot and they don't have their sort of finger on the pulse as much of like what are new programming languages they're they're more risk averse um so i think rust's getting into that space is probably the where we're pushing at right now um and i think rust has some really compelling selling points into those companies but it requires active selling because they're not looking they don't care what the most loved language on stack overflow is like they're not tuned into the world of tech they just care about their business and programming is a tool to get there um but but i do think rust is a pretty good contender for becoming like a language that's used in those kind of contexts too um can we use noria in production no so so noria the codebase that's on github is um is a i mean it's my thesis project like it's a research prototype it it's not like i don't want to say that it's like not something that could be turned into production but what's out there is not a production ready piece of software um um favorite games video games or board games because those are very different i have favorites in both um would your workout routine look like uh terrible at the moment that so i i really like rock climbing but i haven't gone rock climbing now in years so i don't know if i can really say that anymore um it's partially just because of the world situation but i really want to get back into that that was really fun um i don't really have a workout routine there's um there was an interesting like article or thing that made her the rounds many years ago called the seven minute workout which i thought was really cool the basic idea was that uh i think it was the new york times went and asked a bunch of scientists like hey if someone was going to work out just seven minutes every day what should they do um and that's the thing that i tried to do for a while and then i just got bored with it the problem is that i don't care i don't enjoy exercise um i don't i i like programming too much like if i have time i want to spend in programming i don't want to spend it exercising which i know is bad for me it's something i it's a flaw of mine it's a fault and something i want to fix but at the moment not really a workout routine uh oh the odd vacation okay so yeah this is a story i'll go through it fairly quickly so over the summer my girlfriend and i were going to go to norway to visit my my family and uh we were both fully vaccinated in the us and so we were supposed to be able to go to norway and then the rules changed in norway for whether you were allowed to enter the country so they changed so that you could only enter the country if you got like a written approval from the government uh to say that you had like a connection with someone who's from norway so i had that i was like i'm Norwegian i have a Norwegian passport so i'm allowed to enter the country but foreigners could only enter if they entered with someone with a connection to the country so we got a signed letter from the government all this all as well and then we had to form that actually that rule no longer applies no foreigners can get into the country unless they're fully vaccinated and we're like okay that's fine so this was like a few days before we're gonna fly all right well um that sucks but we're fully vaccinated so that's fine and then we realized that in norway they don't accept the the like paper certificate from the cdc saying that you've been vaccinated you need like a european digital certificate saying that you're vaccinated and we're like we can't i can get that because i'm regent so i can just like email my doctor in norway and be like hey here's the proof can i get a digital one but my girlfriend can't which means she can no longer go to norway and we learned this like a few days before our flight then we find out that in germany they are allowing people to come in to go to the pharmacy bring their cdc card and get issued a german digital certificate which is valid in norway so i buy a plane ticket from oslo to germany and back to oslo the next day the idea being that we take our normal flight to oslo and instead of exiting the airport in oslo which she's not allowed to do because they don't accept her or approve we instead do a transit and fly to germany go to a pharmacy get the digital certificate and then fly to norway we go to germany we do this we go to germany and we get to the pharmacy and they go um yeah we no longer do that and we were like what do you mean you no longer do that it turns out the day before we arrived in germany the entire digital certificate system for covid vaccinations in germany was hacked or rather there were like some security researchers who found a security problem in in the system and so they shut it down across the country no one could get a digital certificate in all of germany at all and so we're like okay um we can't fly back to norway now because you wouldn't be led into the country so we decide to stay in germany however this was a friday and so of course it's not going to get fixed until monday so now we have a four-day stay in germany we're going to stay unexpectedly in frankfurt for four days um and we're like stressed out and are like what do we even do now um and then we get to monday and it's still not fixed and the government is like we're probably going to be able to fix it by the end of this week now at that point my girlfriend was scheduled to return from norway to the us like the end of the next week she was only supposed to spend a week in norway um and so we're like well what do we do now and so we keep traveling through germany trying to like extend our stay and try to figure out how to get back to norway uh and just i don't know we were just like scrambling for ideas maybe we should have a vacation in germany uh then my girlfriend started feeling poorly because of the flight she had like an in-ear ear thing from the flight and so she was getting super dizzy and couldn't get in a car and the doctor told her you should not get on a plane either so now we couldn't fly back to norway either then norway changed the rules again so now she could come in if she was like double vaccinated but she had to go into quarantine which is fine because we could quarantine with my mom um in like at the basement so but she couldn't fly anymore so by this time i think it's like wednesday of that next week and we drive she was able to get in a car on that point but she still couldn't get on a plane so we drove from frankfort all the way up to the tip of denmark and then we took a ferry from den we'd stay in the night in denmark and took a ferry from denmark to norway to get into the country and eventually there my mom met us on the other side of the ferry terminal and we had like two days in norway and then she had to fly it fly back to the us so what was supposed to be a week of meeting my family in norway and just sort of relax during the summer ended up being a road trip through germany denmark and then two days in oslo so it was uh it was a mess um all right let's see uh i was a long story somewhat short uh is it possible to sponsor you somehow patreon github sponsor etc unfortunately not um this is one of the downsides of being a foreigner in the us so i don't have a green card i have a like an h1b like a work visa which means that i can't do any work except for my primary employer and patreon and and github sponsors stuff all accounts as um as work so i can't have any of them if i get a green card i can if i move back to europe i can it's just i can't hear and it's unfortunate um are you working with uh philips clock and nico matzak is at aws they're at aws they're on a different team than i am so they're on the rust platform team which are the people who work with rust itself like externally to amazon they don't really work on internal stuff they all work on sort of public projects uh and and on rust itself uh which is not what i work on right i work on the internal build system um what do you think about lufoten it's beautiful i was there once as a child and i would love to go back did you visit other cities in germany while you were there um so we were in frankfurt we drove to heidelberg uh for like a day trip which was beautiful um we were going to drive down to like the cinderella castle i forget what it's called uh noib noinberg hoff no one new anstein i forget it's like almost down by the swiss border so we're gonna drive this like long path down there which is supposed to be really nice um but then my girlfriend was really poor at least we couldn't do that and then we drove north we drove to munich um i spent one night in munich and then we drove through through denmark what university in london needed your masters at ucl university college london i was there for a year and then i did some research there too can you still do the amazon wishlist um so i've actually stopped doing that because i've now that i have a job i sort of feel bad about people randomly buying me things um and also i kind of ran out of things to put on there but i'll show you this actually so every time i get someone bought something from my amazon wishlist i get like with the little box i get a little card that says like oh i bought this for you here enjoy or whatever um and i i kept all of those up through the years because i was like so amazed the strangers would buy them for me and they were just sort of sitting on my shelf um and i didn't really do anything about them i just liked having them and my girlfriend for my birthday uh made me this little like leather booklet where she framed all of them so all of the thank you notes that i've gotten in all of the gifts people have sent me are now like in this little booklet that i can look at it's really nice so i have that now uh but no i don't i don't really do the wishlist anymore um i will probably do a patreon or get our sponsors and stuff once i can because i would love to be able to do more of this like basically do work sort of part time and then do this part time and have that be at least some portion of an income um but that's not really feasible at the moment uh schloss new schwanstein yeah that's the one uh you've been to watch tv shows yes i do yes i do ted lasso great show highly recommend uh what's the price of your book with your real signature i don't sell it with my signature um but if you find me i'll sign it i will tell you now because i've i've now started telling a couple of people um that i'm signing all the signatures i'm doing i'm signing with a number so i have here i have a little clicker i'm gonna bring with me and i'm gonna count how many signatures i do out so i number every signature so whichever book i sign next is going to be signature number 12 um so your your goal is going to be to get a low number but i mean like i'm just gonna if people want me to sign i'll sign but i don't think we're gonna i don't think i'm gonna sell signed signed coffees um definitely tea i don't like coffee coffee is just burnt it just tastes bad tea's great um how do you get that energy to do such long streams and coding stuff you know that energy comes from the fact that i work on things that i think are interesting i wouldn't be able to do long programming streams on like if someone just gave me a random thing to program i wouldn't be able to do that it's specifically because i choose topics that i care a lot about um that's why i do it um i i don't really watch soccer but i kind of like soccer football it's football you kick the ball with your foot american football is not football it's hand egg let's let's get this right um so i don't really watch football a lot um i used to watch it when i was younger and then of course my favorite football club was uh arabico it was more football club in uh norway from tronheim which is where my dad is from um i do for some weird reason though like playing football manager the game the video game and i'm playing that downstairs now and i'm playing as um middle spur because you know why not i don't know that i particularly care about middle spur but you know that's that's what i'm playing us um what's best in blood on the clock tower playing or storytelling so blood on the clock tower is a social deduction board game that i've been involved in the in the process of like developing and doing a lot of rules debugging on and stuff it's a really cool game i'm very excited that it's finally shipping and i love storytelling that game it's sort of a mix between mafia or werewolf and dnd in a weird kind of way um it's great i highly recommend it and storytelling is a lot of fun in that game although playing is also a lot of fun um what is your chair for long hours of work i have a uh steel case series two that what it's called it is very it's not this one it's the one i currently have on my work computer it's very very comfortable um all right i think so we're now at the two hour mark and i have to go play with both the cats and feed them and stuff um but i think this is good it sounds like the the sound was pretty good um hopefully we covered a pretty wide array of topics i'm sorry i didn't get to fully catch up with chat but there were a lot of questions and there are a lot of conversation but i i tried i tried um uh in that case i'm hoping to do the next stream on hazard pointer sooner rather than later because it's driving me insane to sit with the project like so close to finished um so once i once i have the time i will do it i promise um thank you everyone for for joining in i hope you have a great 2022 um and take care of yourself and everyone around you bye everyone and of course to everyone in chat um thanks again for coming out it's more fun to do q and a if there are cues um but it's it's fun this has been a good start to the new year i'm glad i did it it's nice to to be back um bye everyone thanks for joining