 Hi everyone welcome back to another stream this time. It's a Q&A. We've done some of these before I'd end up doing them Maybe you know a couple of times a year whenever there's enough new stuff to talk about There's a I guess if you're watching this after the fact you can't now ask questions But hopefully you've asked questions before the recording of this video, but otherwise if you're watching it live I'll put the URL where you can ask and vote on questions into The chat here If I can figure out how my keyboard works like so So you can ask questions in there if you Have any or you can vote on questions that other people have asked In general like I'm gonna go through the questions that are asked here top to bottom So by most voted and then going down. We'll see how far we get there Way more questions that I have time to answer So we'll sort of do it by interest and I might skip some if I find that like okay this one We've kind of answered already I Recommend you sort of start from the bottom right like look at the questions that haven't gotten that many votes and then go You know vote them up so that we can then You know get some of the newer questions to also get enough votes to be answered So don't just look at the top ones because they're already at the top Let's Go ahead and start with the first one and then people will slowly but surely move through How is work at Helsing? Yeah, so I joined a new company for those who aren't aware I joined a new company starting August 1st and that company is named Helsing and they essentially build software for The defense of democracies in Europe is the very very brief way of sort of the the company tagline if you will I So I've been working there since August 1st and and so far I really enjoy it I think it is you know, it's a kind of unique job because the The constraints that we have to work under are just very different from what you have in a lot of other companies Right like you don't really have the cloud. That's not a thing you can use Because if you're working on stuff that's gonna like run, you know, let's say in Ukraine I would like this to pick a random, you know active Active area then you you can't really just build Software like assuming that everything is always connected assuming you have high performance TCP Assuming that you can just like spin up more hosts that you have lots of CPUs And that that makes for some really interesting challenges in terms of the developing systems on top of it And and you know in addition you have interesting questions around like how do you do deployment? How do you exchange data given that you're operating in situations where like there might be classified data There might be multiple levels of you know access secrecy that go beyond just normal access control and You know if you have you might have input data that is like classified and so now you need to think about well You know the input is classified, but the software is not but is what do we do about the output? Where is that allowed to go who's allowed to see it? It's just a fascinating set of questions that I hadn't really considered before and I think it's really interesting to be exposed to them Beyond the technical I think you know Helsing is a relatively young company. I think this started in 2021 and yet I think there are like 250 employees now about half of whom are engineers and so that that means that the company's grown fairly quickly and But but still like it's large, but it's young and that comes with some challenges But it comes with some nice things too such as you know The culture is still growing and I get to be a part of essentially shaping that culture and and when I say culture I mean both the the social aspect of it, but also things like how should we do? You know evaluation of engineers, how should we do hiring? How should we do? Engineering reviews of big and small proposals. How do we make sure that people have a chance to sort of grow their skill sets over time? What kind of infrastructure should we have a lot of those kinds of questions? That tend to be kind of settled in larger companies and it's really fun to get to be a part of Figuring that stuff out. So overall, I really enjoyed my my time at Helsing so far And then, you know, I'm planning to continue. So so ask me again. I guess in six months or so Well, what I'll do by the way is When I answer a question, I'll sort of check with chat whether there are any sort of follow-up questions Just to that question and answer those if you have completely new lines of inquiry then then ask a question in the sort of Tools so that we keep track of them. So I'll just do small follow-ups if there are any Is Helsing hiring? Yes. I think there there should be a bunch of job postings on the Helsing website there are a couple of Restrictions or constraints if you will when it comes to Location because of the kind of work that we do and the you know, we work with, you know, the militaries of multiple countries and as a result like you Like if you work remote from Asia, for example, would not really be feasible So so keep that in mind when you read through like I think it says so in the job postings, too But it's not like a global remote kind of company But in general like especially if you're located in Europe Then then we have job openings Let's see Did you have any moral hang-ups about working for a defense company? I think there's another question a little bit like that further down and And I also addressed this a little bit in the previous Q&A when I sort of just the denounce that I joined Helsing It was a difficult decision actually to Decide to join a company that you know works in defense but but ultimately I think I convinced myself that It's actually a good thing and and when I say convinced myself I don't mean like I had to find a way to make peace with it But but rather that I you know I spent a lot of time thinking about this question of like do I want to both be associated with but also sort of Contribute to this kind of of company in this kind of space and the conclusion the reason I came to the conclusion that yes I do is because First of all someone has to do it right like if if Europe did not have any kind of defensive technology Being developed like if either if we leased everything from somewhere else like that is a problem in it of itself, right? Do you lose sovereignty? But be if we didn't lease it and didn't build it ourselves Then now you're at a significant disadvantage and in particular you don't really have means of deterrence or the goal Here is that you shouldn't need to use any of this technology in the first place but you need to have the capabilities otherwise, you know the Other parts of the world that might want to sort of I don't know disrupt your way of life Don't have a reason not to try because they in some sense know they can crush you And if it is the case that this kind of stuff has to be built Then I would rather be part of figuring out how it should be built and how we can do so safely morally and Sort of be a part of of that decision-making process And also the technical process to make sure it gets built Well and in a way that I you know in some sense agree with so You know the the alternative would be to sit on the sidelines and just sort of condemn everything They're all the decisions that all the people who do have to do this stuff All the decisions that they make but but that feels Unhelpful right like I would rather be a part of the process just observing and criticizing it from the outside Do they offer visas to help with location and stuff and do they offer relocation I think the answer is yes to both I think they do both visas and relocation depending a little bit on Like I think there are some like Details about you know who and where and when But like I think they in the the general answer is yes to both Let's see What languages are you using at Helsing Helsing is a lot of rust and a decent amount of Python for AI parts of the stack Okay, I think that's Basically all the Helsing questions. I'm gonna mark that as answered and move on Okay Neo Vim hyperland arch alacrity Firefox Dev addition Neo mutt anything new feed us with the geek stuff Let's see. Do I have anything new beyond that list? Yeah, so I'm using Neo Vim using hyperland as my Wayland Desktop environment I'm still using arch. I'm still using alacrity for my terminal with Tmux inside of that and fish as my actual shell Still using the Firefox Dev addition with my custom user Chrome to put the the address bar at the bottom I'm still using Neo mutt for email Have I started using anything else that is like Tech choices in that sense No, I think that pretty much still sums up my stack like I haven't really added any new Neo Vim plugins either. I'm still using rust analyzer for the rust side of things. I Trying to think if there are any new like Geeky apps for my phone I've started using I have started using obsidian for notes And I've actually quite enjoyed that I it turned out that I had a lot of just like random text files around on my computer and in You know notes on my phone and in and in alarms Some of you might know that like those are all now in obsidian and that's kind of nice And I've also started using to do list for you know keeping track of to do use both the shorter and longer term ones I I think I like to do this, but I'm still I still don't know whether it's better than my alarm system Mostly because I find that it's easier to ignore things if there's just a notification that says, you know Do this thing then if there's an alarm that goes off, but but I think it's probably on balance better I Have not started using nix yet I keep being poked at to like go try nix go try nix and and the Helsing has some Nick stuff internally as well I just haven't had the need But you know, maybe I'll I'll take a look at it and then be Reformed and see the light but but as of yet, I've not started digging into nix Not using new shell still using base 16 for styling. So I'm still using the grovebox dark hard theme Color theme for basically everything like I have that in my t-mux terminal neo mut And alacrity and my console shell and those are I think are the places where I apply it I Don't think obsidian takes a theme file, but if so I would make obsidian use use my base 16 as well I Have tried emacs that's many years ago, and I did not like it. I don't see why you would use an OS instead of an editor Do you use Linux for work? Well depends on It depends on your interpretation of for work. So my work Laptop is macOS And then I run basically the same set of software I there I have to use like I use outlook for email because that syncs with all the you know contacts and Calendars and everything. I'm not gonna try to do that through mutt But I still use alacrity team ox fish neo of him rust analyzer On that macOS box, so it feels kind of similar and then you know, I'm a little bit sad that I don't have a better window manager But I end up using Rectangle which works okay Because I mostly work with one one application per desktop anyway Sometimes to like sometimes side-by-side browser and and terminal But so it generally works okay But it does make me sad and part of this is like I think I could use Linux At work now. I think there's been sort of a group of people trying to get that to work But it's still higher friction than just using a sort of well-supported setup And I'm like it doesn't matter that much to me what OS I work in for work Have not tried helix I really like my vim bindings to be accurate though So I think basically any other editor it would need to have full modal editing, which I don't think helix has I think it just kind of emulates vim bindings Bum bum bum bum bum Still not using any kind of AI for coding. Nope. Nope. I have not used that part of that is also like I I can probably hook it into new of him in some way, but I just I just have had zero need Okay Great what helix has okay helix has modal editing But it's not vim modal editing that sounds awful my hands are too used to vim ones Okay, let's move to the next one What do you think about zig? I still have not tried zig This is another one of those like people keep telling me to try it and I just haven't had any reason to And maybe that's just you know, I should just do it And then I will realize why I should try it but it but again like I just don't have a use case for it I don't see what the Compelling bit is like I keep seeing articles here and there that come up and then someone's like oh look I can do this thing in zig that I that was annoying to do with ruster. I had to use unsafe and That's fine, but I'm also less scared of unsafe and rust And less compelled that the approach the zig takes is better because I want safe rust most of the time And I don't want to have to use a different language for the unsafe parts I think that is a higher cost thing than the marginal added safety you get for unsafety in zig So yeah, that's that's the extent to which I have an answer about zig really is that I can't really make a A compelling review of it because I haven't tried it myself. So so it's all based on hearsay Okay What's the pathway to becoming a contributor to the rust language? This one I get a decent amount actually I think almost every stream someone asks a variant of this question and the interesting part here is that there's not really a It's not really a pathway. You just kind of do it, right? Like you can rock up to the rust repo on on github and just submit a pr that does something Right and that then you're a contributor to the language Realistically, you know, there's a there are a couple of paths that that you could choose to take One of them is to contribute to the standard library first the standard library is just rust Like it does use some nightly features and stuff, but it's like it's mostly just rust And so there you could either try to you know Improve documentation is an obvious start first place or improving testing but you could also pick some like Annoying thing you've really wanted and rust for a while and then you know try to implement it and file a PR You might think you're told no, we actually don't want to add this to the standard library That does happen There might be a bunch of bike shedding to you know get move things on but but that's sort of the lowest friction entry point Another one is to contribute to the tooling rather than rust itself So this would be things like rust up cargo rust doc clippy these often have Maybe more straightforward paths to contributions. They always have you know the need for more hands It might be less obvious what to contribute there depending a little bit on what exposure you have to rust as a project already But there like you can almost certainly find issues to tackle that you can then go contribute to It it might not feel like rust the language Right, but but if very much is rust the ecosystem and the core tooling And I think that is a good way to to start down this path And then the third which is sort of actually contributing to rust the language Which would be you know contributing to the compiler or you know, to some extent the language spec That one is a little trickier, but at the same time the rust compiler is just a rust program So like if you know rust decently well, you can understand decent parts of the rust compiler because again, it is just rust So and and I know that there's always a bunch of stuff that just needs to be done the compiler and someone needs to do the work And and that might require you know understanding a bunch of code But that's the case for contributing to any project like the you shouldn't really think about the compiler as being special even though We tend to hold the compiler in this like mystical light because it it is the thing that compiles the language we write in But the reality is it's just a big program um So I think this is one of those like just dive in and do it um the the uh There's the rust seed dev guide If you google it, you'll you'll find it pretty easily, um, which talks you through a little bit of the contribution process for rust itself um as well as an overview of the sort of modules of the compiler and the um You know the different commands that you might want to run where different pieces of code and tests live What what kind of data structures are being used? What information is stored where what compiler passes there are? Um, so that's a good place to start if you just want to learn Or if you think you want to go down the path contributing to the compiler That's a good thing to read first because otherwise you're just gonna have to learn those things through the code Which for some people that's the preferable path, but it might save you a bunch of time um Let's see uh error message translation and improvements is another good one. Um, which is sort of Falls a little bit under the compiler right like improving the error messages of the compiler is the compiler contribution But it's fairly well scoped. Um, and there's also sort of a team that's essentially dedicated to that task. They're pretty good about Um helping people contribute in that regard and it just meaningfully makes a lot of people's lives easier Um, so that's a that's a really good suggestion um There seems to be quite a high boundary of entry for contributing to the compiler. Um, no, I mean not really again it's like any open source project and Um, if you make a good contribution, then that's all it takes. Um, there's not really a there's a perceived higher barrier But I don't think it's actually a real higher barrier um Yeah, there are a bunch of issues that are marked specifically as like easy or mentoring. Um, those are also good places to start Although they also get snatched up pretty quickly because a bunch of people look for those And you know the the trick is after you've done your first one of those to then try something more challenging Which will take you more time. Um, but but that's the that's the way you become a sort of longer term contributor, right? Um Stabilization prs. Yep, that's another good example, right of uh, you know, it's it's just These are usually just uh fairly formulaic changes where when when there's been a decision to stabilize a particular feature You really just need to go through all the places where that feature has Like the unstable attribute on them and then change that to stable and set the right version and the file of pr So it's fairly straightforward. Sometimes you move some documentation around and such as well Um, but but stabilization prs, uh tend to be a good idea as well because they're they're a good place to start Um Yeah, the the chat is talking about the linux kernel too has a similar kind of flavor where You know, there are some things that are weird about the kernel But there's also a lot of stuff that's not weird about the kernel where it's really just a program, right? Like people I think Hesitate a lot before they consider making a contribution because they're like, oh, this is this Super complex piece of software that's used everywhere But in reality, it's a software project and you should just dive in and look at the code and contribute the code You don't need to understand the entire thing in order to contribute And I think that's where people get wrong is that for whether that's the compiler or the linux kernel They go, I need to understand all this stuff in order to contribute when in reality for any large code base That's not true You have to understand the things that are needed to make your change And then it's sort of the maintainer's job to be like To to keep the entire context in their head of being like well, but the change you made here also actually, uh, sort of Uh Makes shock waves over here. So you need to change this thing as well But but that shouldn't be on you as a contributor. Certainly not in the beginning So just like just contribute just dive in And the the zulip community for for rust especially on the compiler side is also really good And so it chances are if you dive in there and ask some questions people are happy to help you along Um Let's see Okay Let's move on to the next one Uh Before you started to code in rust what language were you using? Um So my programming journey started with Well arguably with batch so not bash batch like the windows command script Which I used to make a Virus when I was fairly young And the virus was a a sequence of commands that would open and close your cd drive three times and then shut down your computer Just by running like the the four commands that do that And then I uh put it on people's desktops and I would rename it to like game or something And I put a little dolphin as the icon and then I would I would snicker when someone clicked it So that you know arguably is programming um The after that I think the next thing I played around with was um Visual basic visual basic dot net I don't know if it was dot net. It might just have been visual basic where I built Um, I built a little calculator and then I built um I Built mind sweeper. I think I think my mind sweeper was like the second thing I built in visual basic dot net Um, and that was a lot of fun Uh, and then I started doing PHP so I did PHP for quite a long time and built a lot of just you know websites of various kinds Uh small and large um Some of which I still maintain to this day, which you know Is makes me sad, but but alas, uh, not so much PHP anymore. I think the last PHP program Website is now gone. I wrote one or two in ruby on rails and one of those I still maintain um and then Yes, a bit of ruby on rails tried python for a while and didn't really Like it although that was for web programming um these days I mostly use python for Plotting plotting for papers, which I don't do that much anymore Uh for for standard plotting. I just use r um And then I had a period where uh, I did some java That was mostly during university days where like java was the thing you needed to use for assignments anyway But that never made me happy. Um And then I did a research project back in 2014 that was in c plus plus and some open cl code um And then I did go for a while In my first year or two at MIT Um, and that's when I switched to rust in order to write Noria and then I've basically been using rust since and then bash has sort of been a constant throughout this bash and pearl actually Um, again pearl mostly for like text processing and scripts. I don't use it that much for that anymore These days. I just write a rust script for it But I've sort of been all around when it comes to languages um Excel programming, I mean, there is some really impressive excel program Out there, but I have not written any of them Like I guess, okay, so I guess arguably I've written a bunch of javascript too in my sort of web development days Um, but not that much in terms of something like no j s and certainly very little type script um Loves and hates from that language script list. Um Oh, I I quite liked go um I think now that I know rust well I don't miss it. I if I went back to go now I would miss typing too much like not as in typing on the keyboard, but types um I still have a weird like for bash like bash just makes me happy and sad at the same time um, and there's something just like It just feels very real to write bash and try to get it right Um, but that's maybe a just weird weirdness in me. Um I don't dislike ruby, but also I've mostly used it in the context of rails and so I don't know if that really counts um Did not like c++ I was That was a mess PHP too, I you know, it was it was handy at the time, but it's not a thing I would Really say that I liked Yeah, java was like Java was weird because I don't know that I hated java. I just felt like it was so unnecessary Like everything felt unnecessary and maybe that's sort of the sort of enter priciness of it Uh, but everything was just very verbose. There were a lot of rules about where files had to go There were a lot of like implicit things about class loading paths setting it up was annoying. Um Um Everything was very long all the names were very long everything was nested very deep It was just like it just felt unnecessary. It felt bureaucratic in a way Uh, and maybe those were the projects that I was exposed to and the ways in which I was taught to use java Um, but I just did not really that really didn't really jive with me. Um, but I don't know that I hated it I was just like Mildly annoyed the entire time like it never really made me happy Um Let's move on if if you have questions, by the way, um Please send them in if you have like new questions that are not related to the thing. I'm currently answering. Um, send them in the um, the actual like Question asking website. I'll send the link in here too Just because otherwise you just scroll past in chat and I don't really get to them So if you have new questions ask them in there Um Oh, yeah, and pearl I do like pearl. Uh, like I don't know why it's it's a Ugly language in a lot of ways, but I just like pearl And like I don't know if you have seen the the masterful stuff that happens in uh Uh, what's the name of pearl six is called like, uh, ro-roku Rocku Okay, so I want to I'll send you the link in chat here but in rocku So this is the the name that was given to pearl six instead of having it be pearl six there is an An operator. It's really an operator prefix Which is the unicode Atom symbol that you can put in front of something like a plus plus and that means atomic increment I shit you not Like you can write unicode symbol atom plus plus and it means atomic increment and that is just awful, but also so Fun, and this is why I think you know pearl is it's It's it's it's awful in the best kind of way So yeah, I just I can't I just I just I just can't it's so good Um All right next one How did you learn rust and how are you able to have such a good deep understanding of the language? um I think the the answer to this is partially that you know, I started rust quite early. I started using rust in Early 2016 late 2015 It's like shortly after the 1.0 release and I used it full time Like I used it for the research prototype that I was building which means that I was writing rust all day every day Since then pretty much and then you kind of inevitably get good at something if you just do it that much and You know there's a separation here between being good at it and knowing it really well Like I know it really well because I've used it a lot and I think I think I'm kind of good at rust and I think part of the reason for that is because I've been doing all these streams Writing the book and that forces me to be able to explain things to others about how rust works Um, and that improves my own understanding of those things um, so sort of by by being forced to Come up with good ways to explain it that other people understand I'm forcing myself to have a better understanding of them as well. Um So I don't think there's any like shortcut here or that this is like me being special in some way I think it genuinely is just Exposure and having spent a lot of time teaching it. I think that combination is just unbeatable You know, I I also have built a lot of different things with rust, right? I started out building This this database from scratch and databases inherently include a lot of different other kinds of programming problems There's concurrency. There's um, obviously database access. There's, um, networking. There's a synchrony. There's parsing There's like persistence and file system access. There's memory layout. There's serialization Um, and so that you know forces you into learning all these different bits And then after that I've I've done some, you know, cloud work. I've done build system work at amazon um, I'm doing sort of Distributed systems implementations now at at Helsing and so I've just Used rust in a lot of settings as well And that that adds to this feeling of sort of learning just all the bits basically by necessity um so Yeah, I think that's the The name of this is actually the Feynman learning technique. Yeah the Feynman method like you you teach in order to learn um Okay House life now back in norway. Um, I don't really know what to say like I I like norway Uh, I mean, I'm in oslo, which helps right? It's a it's the biggest city in norway And so it's you know, it's not like it's a small town somewhere Um, I like that there's people around that it's a city that there are things around um, there are some things where I notice that norway and oslo are On the smaller side. Um, I miss having access to amazon Like there are a lot of bad things one can say about amazon both as a company and as a store But it is extremely convenient. Um, and that's been a little Annoying to get used to and I think part of it is actually just finding things like like Sometimes the struggle is that I know the thing that I want to buy But I just have no idea what store might have it right like, um, the other day I needed to to get um this little adapter between a Uh, a microphone arm which has a a thread that's like Yay with and then I had a thing I wanted to mount on the microphone arm that had a slightly larger thread And so I needed to get an adapter and I'm like, okay on amazon I could just search for You know adapter and then the the thread sizes, but here I don't know where I would go I needed to like okay a hardware store maybe but this is like av equipment But if I go to an av store, they're not really going to have this kind of thing And so I just spent ages trying to figure out where to get it from Um, and there's obviously also just like generally smaller selection where there are fewer sellers here So you can buy things internationally and get them shipped, but then you have to pay Um, you know sales tax and customs as it gets through so it gets pretty expensive. So like That is it was the thing to to get used to It's also, you know, it's now what middle of december And it's quite cold and dark, right? Like so the sun rises around 9 9 30 and sets around 3 p.m So there's not a lot of sunlight right now And it's quite cold, right? It's I mean how cold is it right now? Let's find out It's minus five Celsius outside right now. Um, and it's only going to get colder. So minus five is What like 30 fahrenheit 25? Um, so it's it's like pretty chilly. Um, and we'll only get colder It's like snow and icy outside And uh, you know on the one hand, I've missed that like I I like seasons I like that it's cold and I kind of like the darkness On the other he does make it harder to like live your life because There's more friction to going outside going places meeting people Uh, and same thing like if you can't order things online, then now you need to go to stores to get them So so that's been a little bit of a Like I don't know. There's been a little bit annoying. I think, um But but I think those are my two Main complaints and then there are a lot of things that I like Um, that you know, I've talked about in the past too about living in Norway Apart from, you know, having family and friends close and being close to the rest of europe and being able to travel more Um, those I think are really nice and also living in a country where I More closely aligned with the the the politics of the country um So yeah, I would say on the whole it it's good. I'm still evaluating whether I think it is um professionally interesting enough like I for example I really want the rust community in Oslo to become more active so that I can participate in it And arguably that's something I could go and do something about but I would rather someone else do it because I don't really have the time and that makes me sad Um Uh, I I really like living in a city. I don't want to live in suburbs or rural rural area I want to be able to walk places and that's the other thing another thing that I like really Uh, quite a lot about european countries in general But norway in particular and oslo in particular is that it's very walkable like not only is the public transport good but like I can actually walk to Most places in the city like sure some of them might be an hour walk away But like it's an interesting hour walk Um, and most things are much much closer and I I've missed walking so much I don't want to ever have to own a car or use a car Okay Uh I'm seeing more and more tooling around wasm In rust and also other languages. Do you think that wasm has a real future? Do you think wasm can be used outside the web realm? Uh, like for os development as a sandboxing um I I think wasm is really interesting. Um, I think It it can grow outside of web especially for some for things like sandboxing. I think it's a decent fit same thing with um cross language interoperability, right rather than having to go through the c ABI you might be able to go through wasm instead and maybe that makes things nicer. Um I don't know right like I I still worry that there are some pretty big questions that are Annoying to deal with when it comes to wasm things like if you want zero copy, right like It's kind of hard to achieve with the way the wasm is currently set up. It's not impossible Uh, but but it's kind of annoying. Um, I also worry that with wasm because you require a runtime Like the sandboxing now becomes the implementation of the runtime, which means you still have to implement sandboxing Which is the case elsewhere as well But maybe it's easier because you know, you have the the sort of bitcode or you know, the actual web assembly that you interpret Uh, I in general I'm bullish on on wasm, but I I don't know that I have the hopes that it's going to take over everywhere I think to some extent it's like, uh you know We have a hammers everything looks like a nail, uh, and I think a bunch of things are nails and wasm will be a good fit But but I think we're probably Overusing it, uh, which which I think is actually necessary, right? Like it might be the wasm works for a bunch of things that We wouldn't have thought that they would be good for so we got to experiment with a bunch of things find a bunch of Things where it doesn't work, but then maybe find some some really good places where it does um Okay I've been working with rust for about two years now Uh six months of my own startup and my code still looks way too simple I don't make much use of boxed in another fancy stuff. What am I doing wrong? Um I don't I don't think you're doing anything wrong I think if your code looks simple, then that's arguably the thing you want to go after Usually the reason why boxed in comes up is And and fancy stuff as you say, right? Like it depends on what you define as fancy What what's fancy is sort of in the eye of the beholder here, but in general um, it tends to come up when you have to um Build systems that need Multiple back ends and when I say back ends here, I mean like, uh You know, you want to be Uh interoperate across multiple types of databases multiple types of asynchronous run times multiple types of image formats multiple types of network interfaces Like that kind of stuff and in particular in cases where generics won't do it Um, and I think that's actually kind of rare. Um, that there are a couple of places when it comes to like Futures because you don't have async and traits where you need like boxed in future But in general, I don't use boxed in all that often myself either I tend to just make things generic instead, but you could also argue that generics are fancy Um, I think ultimately the answer to this is like, you're not doing anything wrong Like if you write code and it does the thing you want it to do It sort of satisfies satisfies the use cases and the code is you know readable to others. It's it, um You don't find that it's holding you back that the the structure of the code is too hard to make changes to Then I think you're doing a fine job um I believe you've previously stated that you don't want to use AI code tools like github co-pilot Have you changed your mind in any way about this? You're not worried that you're missing a major productivity boost No, I um Let me answer this in the in the right order. Um, I still don't really use AI code tools Um, I've not really changed my mind about it And I don't worry that I'm missing out on major productivity boosts and to dig into that a little bit more um I heard sort of an anecdotal number from um Another engineer who's you know a fairly good engineer um that experimented with I think it was github co-pilot for like a month or so And they found about a 20 percent performance or like efficiency improvement on coding tasks And on the overall scale of the kind of work that I do that wouldn't really make that much of a difference right like the the bottleneck usually when I Build things isn't my typing speed And it's usually not even like looking up interfaces and figuring out how to use and sometimes it is But then it's usually for really obscure things like I think if you wrote a lot of code that interacts with let's say the stk Then this might indeed save you a bunch of time because there are lots of examples of people using that api um, and Therefore chances are the ai is going to be good at generating code that interfaces with that correctly, but like for example I had to write some code today that uses the tree sitter language parser for python in rust um to Do some stuff to parse out comments And I might have been the first person to ever write that code That's not a brag. It's just like I just It was fairly under documented. It doesn't seem like it's been used all that much the the code seems to have been kind of auto-generated and for that I don't I don't think the ai could have helped me. Maybe I should try it and and see but I don't know that it would it would generate something useful Because it can't it can't imitate right it can't draw from knowledge from elsewhere Which is sort of what ai is particularly good at because there is no such knowledge elsewhere And it can't really reason about the ai about the the interface about the api because that's not really what it does so Yeah, I'm just for the kind of things that I build which tend to be Either new developments or interactions with things that are not commonly used I don't know that it makes that much of a difference And for obviously for a lot of the work that I do that is not coding related like like for example doing reviews of other people's mrs or prs or you know Your your r of choice They're you know having co-pilot wouldn't help me at all For those of you asking questions in chat if you can put them on the question asking site That makes it more likely that I will actually answer Yeah, so so Again, like if it's if it's you know, plus 20 percent or 25 percent But it's 25 percent or 20 percent of coding time and again this engineer works on different things that I do So let's say let's say like If I'm going to be optimistic, let's say it got 10 faster on coding tasks, right and coding is let's say Quarter of what I do a fifth a quarter like actually writing code myself Then that that's not that big of an improvement And you could argue okay, but there's not really a downside and I don't know that that's true either because The moment you start relying on tools like this you still have to double check the things that it produces and this is where I'm still Unsure about the the benefits of this because the cost of verifying that the code it generated Is correct is proportional to the amount of code that it generated Which again is proportional to how valuable it is So the more valuable it is to you the more time you have to spend checking that it's right So And I worry that if you don't check what it's right that it's right It's going to just sneak in subtle bugs in your code That's gonna they're going to come back to bite you later you know Okay And actually too I do want to point out one thing here Which is I have used other ai tools like for example the other day there was a I was observing some really weird behavior with ffmpeg where I was trying to re-encode some video files and I needed to I had like an audio delay in the file that I needed to compensate for but the standard flag I was using didn't quite or I was using two flags and they interacted in a weird way And so I asked I think it was chat gpt I was using at the time like how do these flags interact and are there any particularly weird corner cases? And chat gpt actually gave me like helpful pointers in terms like oh, yeah, this is known weird interaction between these two So so I do use these tools But I use them for things where it's likely that other people have had similar kinds of questions or prompts Um, so it's actually likely that it has a useful answer for me. Um, but but for generating code. I'm much more hesitant Um, let's see Okay Mark has answered Compare rust's concurrency model with other languages you've worked with what do you appreciate about appreciate about rust in this context? um So it depends on what you mean by concurrency model. So so there are two interpretations that come to mind one of them is um concurrency model in the sense of async await Threads are spawned with closures um You know having executors like tokyo and the other interpretation is like send sync linear types Um, mu tex is holding their inner value like the more type system things. Um I think the the the part of rust that I appreciate the most when it comes to concurrency is that you can represent Um thread safety in the type system like this basically means the send and sync traits And just by having that that that enables you to do so many things um, plus linear typing like at most one, um exclusive reference at a time That that combination of things just has this um uh It was like an emerging emergent behavior almost where that ends up Causing a lot of things to be safer when you build in a concurrent In a concurrent fashion like that's the reason why Something like rayon works that you can actually take an iterator Just call like pair iter on it and now it's running parallel and that's wild It's really cool and you can only do that because Thread safety is encoded in the type system. So I really like that. Um In terms of things like async await, I don't know that rust has a Particularly compelling story there compared to other ones, right? Like it has one that works I don't have too many issues with it. Um, but I don't know that it's Significantly more compelling in rust like that part of the the concurrency model Um, can we do a video on embedded programming? Um, I mean it would be fun. I just don't really know what to build Um, I would also want to have an actual device that I can program Maybe one thing that'll be fun is to get like, um I don't know like a tiny I'm thinking like either something that can be controlled by a raspberry pi Arguably doesn't count as embedded Um, can you get an arduino, but I don't know what I would hook it up to I could get a little like uh Like a you know palm size like remote control drone and try to get it to do something interesting But but I feel like I'm I'm missing like the The compelling use case, you know the compelling thing to actually build Yeah, if you have good ideas, then I'm willing to listen Yeah, I saw I saw someone actually who built a um They they built a binary keyboard. It's really fun So they set up I think it was an arduino where they hooked up two buttons And when you click the left one, it makes a zero and it makes a you click the right one It makes a one And the way that you type on it is you type in the binary ASCII code for the character you want to type So when you've typed, uh, I think they used I think they used a byte rather than seven bits So when you type eight binary digits, it would output a character which would be that key code And then people complained that oh, it's so inefficient. And so then they They wrote a they they hooked a little Arm up to each button and then they had a second arduino That was hooked up to those arms and then they had a keyboard hooked up to that arduino So now you could type if you put a key code in If you type the key on the actual keyboard It would send messages to the arms to press the zero and ones Corresponding to the key code of the key you just pressed and then that would send the key code symbol to your computer So like you click a thing and it goes And then the the thing appears on your screen. It's fantastic entirely useless entirely useless, but very fun If I had uh, if I had thought of that idea, I would probably have built it But since someone already did then it's now less fun Oh, yeah, no latency issues at all But I think it's really fun Yeah, an esp32 would be a good place to start here too. I just again I don't really know what to build CO2 sensor could be fun, but like I already have one. I don't need one and maybe I should just not try to look for something I need um Train system for embedded. I don't even know what that would look like An eink screen might be cool A live light for outside my room That's not a bad idea like when I click start streaming although I think I think Everyone in the house realizes what I'm streaming anyway Okay Okay SQL functions for all application logic. No, absolutely not definitely don't do not do that. That's a terrible terrible idea Don't do it mark is answered Uh async iterator poll next and generator syntax or just next Um, I'm I'm pretty firmly here in the camp of poll next and generator syntax um, I think the that without boats article on On this topic and and the the argument for why we should go with the the poll next and generator Approach is is very compelling. Like I read it and went like yes, I agree. Um, I think There's a lot of value This is similar to like the future trait. It's similar to iterator where I think you want the the lower level I think you want the the interface to be lower level to allow more flexible implementations And then you put sugar on top to make it nice to use because if you make the the the primitive Um, inflexible if you will then now you're restricting all possible uses of them to be the ergonomic ones, which means you can't uh use an You can't there there's certain things you can't do because they don't have an ergonomic expression They they require you to like manually implement a state machine This is what we see for the future trait too where you know, sometimes You actually need to implement future yourself and write a state machine because you can't really express the thing you want to express where they sink Wait syntax, um, so very much in the poll next camp um Oh, yeah, the the keyboard video is called. I automated my bad keyboard on reddit um Okay How do you test concurrency bugs? Oh, I mean, this is an eternally hard problem. Um, I think, you know, I have uh Let's say four ways to do it. Um The first one is um to use um Loom so loom is a it's a rust library that Uh provides types that are named after what you have in the standard library like, you know, atomic u size r commutex, etc um, but if you write your Code using the loom types instead of the standard library types Then you can run tests that will test every possible concurrent interleaving of all concurrent operations using those types It's a great way to exhaustively test your program the downside being running it takes forever because it tries every possible execution Uh, but but it is a fantastic tool for if you have a relatively well contained set of functionality Where there are not too many concurrent interactions that you want to test. Um The second one is is a library called shuttle Which I think was built at aws Which is sort of like loom except it does It sort of does fuss testing for execution traces So rather than try every possible permutation of all the every possible interleaving of the concurrent operations it just sort of Tests a random execution and then test another random execution and then test another random execution What this means is that you can run tests that are much larger But you don't get a guarantee that you've exhaustively tested them So it's a good way to sort of like you can kind of like shake the tree and see if things fall down and If nothing falls down that doesn't mean that there are no Bad apples in this metaphor in the tree It just means that none fell down and the harder you shake or the longer you shake the more likely It is that you've caught the apples that were up there Um, but you kind of just need to like keep going for as long as you're willing to tolerate it and then stop And then that gives you some more confidence, but not all the confidence Um, the third is miri now people don't normally think of miri as a Concurrency testing tool and and it isn't but miri does have at least these days You can run multiple threads in miri and what miri will effectively do is sort of run a random one So think kind of shuttle like except it's not as fine grained But the nice thing about miri Unlike loom and shuttle is that it will tell you if you did something bad What what uh, both shuttle and loom will do is it'll tell you if you hit any assertions like any actual assertion or unwrap uh, or uh, you know a panic and unreachable Or Out of bounds access and debug mode like anything that causes a panic Those will catch but they will not catch if you let's say D referenced a pointer that didn't point to something or the pointed to like Uh, something that's been deallocated like those kinds of problems Miri on the other end will catch those but it will try fewer different executions Like each time you run miri it will only try one possible execution, but it does test for more things Um, and so running miri is often still a good idea Even if it doesn't like shake the tree, right? It's still going through it very carefully um Uh Loom will also catch data races on unsafe cell. Yes, that's true So it does catch a little bit more than just um, just panics, but but even so it it can't Check quite as many things as miri does Um, and so that's why usually you kind of want to use both Like you might even use all three because they they are able to test relatively different things Um, and then the the fourth is the sort of traditional path of using thread sanitizer and address sanitizer Um, so these you build your program normally You just compile your your Either your test or your binary and then you run them through the the address or thread sanitizer And what that will do is it will Keep track of all of the memory accesses that happen to your program and look for things that are bad access patterns like if you have um Threads racing to access of value if you have I forget all the checks in these in um T-SAN and asan, but it's like Uh, if you deallocate something and then try to access the thing you deallocated if Two threads both write to a memory location without having read it or have a barrier in between It basically looks for like common concurrency mistakes that can be detected through access patterns of memory Um, so that's also a good thing just you run your test read through it and it might not catch everything But it might but it will catch something. There's also the The leak sanitizer, which can be sometimes helpful for this specifically to detect whether you're correctly Deallocating all the memory in a concurrent setting. Um, but that one is only useful for that Still a good thing to catch though um Yeah, they so adder sanitizer and thread sanitizer. Someone points out in chat is is tricky when you have um External dependencies like non rust dependencies because you have to sort of you have to build your entire dependency tree using With something that supports asan t-san And so if if it's like built from source within one of your dependencies or something then that can be a little annoying So it's not a it's not a panacea, but it is useful Uh, what social platform do you get the most value out of? Um That's a good question. So I didn't actually let me pull up this document if I can find where it is um So the other day I ran a um I ran a poll on Uh Here I was like I was going to give a talk and I was running a poll. Um asking whether Uh people would prefer to hear a talk about Uh synchronization primitives in std synchronization primitives in tokyo or Uh both or neither. Um, and You know ignoring what the actual answers were to the poll I asked this poll on youtube twitter linkedin and mastodon and uh And then I after the poll ended so I gave the same amount of time on each platform And after the poll ended I looked at how many responses I got on each one and I got let's see 49 of the poll answers so almost 1500 answers on youtube and then I got 27 percent on twitter 15 percent on linkedin and 8 percent on mastodon Like I didn't discount duplicates and everything right like but but the numbers are 49 percent youtube 27 percent twitter 15 percent linkedin and 8 percent mastodon um, so in terms of like uh audience interaction like Being able to interact with people who Watch my streams. Um, or you know, otherwise, you know consuming the content that I make Um YouTube is by far the biggest one. I I don't think I can ask a poll on twitch without streaming So it's hard to take that into account. But like twitter is still pretty big Linkedin is bigger than mastodon is and mastodon is actually fairly small overall, right? It's less than 10 percent So in terms of interactions on that level, I think the platforms that I get the most out of our youtube and uh And twitter and increasingly linkedin actually linkedin has been growing and twitter has been shrinking Uh In terms of you know value to me personally Um, I basically don't use facebook anymore. Uh facebook is still used for like Events mostly right like if someone wants to invite a bunch of people to something They often use facebook for event invites And same with messenger is still like I still use that quite a lot for communicating with with friends and family I also use like signal and whatsapp But but messenger is used a lot And then I these days I use twitter mostly in read only mode and even then that's that's dropped significantly Um Same thing with linkedin. I've actually I read more linkedin now than I did before sort of twitter has gone down linkedin has gone up But not by as much as twitter has gone down And mastodon I mostly watch for like notifications when someone mentions me Rather than actively reading Um, I also have blue sky, but I don't post or read on there and part of the problem now is that like There are too many things to check and so I end up just checking none of them Um, and I wish that wasn't the case, but it's just I don't know. There's nothing quite like what twitter was Uh, and new twitter is not what old twitter was Uh, and maybe that's just old grumpy john, but uh, it makes me sad Um, there was co-host was the thing I used for a while, but I'm not really using that anymore There were just weren't enough people there to make it worthwhile Um, I think the one I have the most hope for maybe is blue sky Um, but it's still too far away from critical mass. I think um And then for I use discord for everything that has to do with like particular groups like, uh, you know, whether that's, um Locations near me, right? Like there's a board game cafe not too far away. Like I'm in their discord Um, is it obviously the rust discord the the russ station station discord The discord for tokyo Um, the discord for like a couple of things I support on patreon um Discords for like there's a board game that that I help run quite often So that has a discord and and I really like discord for those kinds of things for sort of group togetherness um So that one I would say I get a decent amount of value of um And then and then um tick tock like I I consume a decent amount of tick tock now when I'm just like idle for whatever reason um And I get pretty good stuff on tick tock Like it's a combination of things that are entertaining and things that are interesting Not very much tech stuff. Um, but like I don't know Interesting things that people have done facts history. Um Um Cooking um home improvement like all of that kind of stuff. Um, so I've enjoyed that too Um, I still I haven't now posted rust videos on tick tock for a while the same thing with youtube shorts Um, but those were fun to make and I might make some more ones. Um, but I also don't know whether I would call it a social platform in in the same sense that the others are right Because you don't really interact with people I have a I have a tick tock channel where people can ask me questions It's like a q and a section, but I don't think anyone ever has and so therefore I haven't posted any answer Tick tocks to those questions because there aren't any um So yeah, sort of all across the board and That is part of the problem. I I wish there were fewer But at the same time there are big problems with there being fewer social platforms too That's a very long-winded answer, but that's where I'm at Um Do you use tumblr or myspace in their respective heydays? No, um tumblr was I think tumblr was more of a us thing like I wasn't really in the us at the time when tumblr was big and I don't know what I used instead. Oh reddit. I guess is the the other sort of Arguably social thing that I use Um, I don't know why I never ended up on tumblr That just wasn't really I was really late to join facebook as well. Actually. I was a long long holdout um And myspace I think I had a myspace, but I think By the time I was interested in joining anything that looks like a looked like a social network at that point Facebook had already overtaken myspace um, so there there was not very much of a a reason Have you considered making your own discord server? I have. Um, I'm actually thinking of starting a patreon slash github sponsors slash tbd That would also have an associated discord um at the same time i'm trying to find the right way to do it because um I don't want to just create like an open chat forum Like I I think there are enough of those on the internet and I also worried that I wouldn't engage there All that much so I needed to be a little bit more structured and I want to figure out what that structure looks like um, and if I were to start some kind of sponsorship, um mechanism, I would also want to think pretty carefully about um Both what the tiers are and Who I would want to contribute to them? Like I'm not really in a position in life where I need like students to send me a dollar a month like that This that's just not not the right outcome um But at the same time I also don't think that I would offer like ongoing rewards That doesn't really make sense given the way that I do work Like for example, I wouldn't want to make my educational videos be only accessible to people who support me I want them to be publicly available But if I do that then the incentive to support me is also lower Um, and so how to straddle that boundary. I don't really know yet, but it is something that I think is Probably gonna happen pretty soon. Um, I just don't know exactly How and when yet Um, okay answered Uh, what are your thoughts on the rust foundation developing an official training and certification program? I think it's really cool. Um, I think this is something that I hear a lot from both individuals and companies that They don't know how to ramp people up on rust is not like an officially or not even officially there's not there's not a Well vetted and well trodden path for teaching people rust And I think that um having like an official training program and a certification program does give you a little bit in that direction um certification I'm I'm less sure about like I I have a I think I struggle sometimes to see the value in certification because I think it Tends to reward memorization more so than anything else Um, and memorization does not make you good at the thing that you got certified in Um, but but training I see is pretty valuable the the thing I would be hesitant about is that I give the foundation ends up with like a The only way to get trained with rust is through our program. I don't think they're going that way I think they're just saying like here is one that we have vetted and we think is good. Um And but but that seems seems pretty valuable I think there's a lot of Desire to have something like that and in particular to have something like that that Sort of scales as the world adopts rust, right? There are some companies that offer rust training But they're fairly small and limited in capacity, right? So the the problem becomes as the world adopts rust more You can't lean on like two companies in in europe or you know, whatever it ends up being um That has like I don't know like who which of these companies like integer 32 and Ferris systems. I think both do training But I think they have like 10 employees each maybe I'm guessing here, but like that obviously doesn't scale to training the whole world Um, and so I'd be curious to see how the foundation Tackles that like how do you how do you grow this in a way where you don't have to hire thousands of people Due to training, but you still manage to scale according to the demand Um Yeah, like certification certainly feels a lot like sort of corporate gatekeeping I think I think I agree with that I think some of them can have some value, but I would need to be convinced individually for each certification Um But at the same time, you know, if that's a if that's a way Like the flip side of this right is if that is a way to channel money from companies into rust the language Is to offer certification Sure. I mean, let's let's play the business game, right? Um, I think what one of the things that I think rust has struggled with both the foundation But also rust as a community is um How how to get money right like these Like a program in language does not thrive on like Well wishes and happiness, right like that money needs to come from somewhere And companies are hesitant to give up money for nothing And so the question is what do you give them in return? And it might be that certifications is one answer to that so Even if we collectively kind of agree that they don't matter that much Um, if companies value them or maybe even they don't value them, but they it's it's a valid excuse for giving money to the language Then I'm all for it Corporations got to corporate. Yeah, that's true um What do you think about the state of the rust foundation? It seems there's some really bad influences you know I feel like I get this question to Almost every stream which is like, oh the rust foundation the rust foundation and the rust foundation I'm actually pretty happy with the rust foundation like They they've had a couple of missteps here and there but none that I actually see is that fundamental. Um I think it's more that the Community is trying to hold them to a bar that doesn't exist is part of it And the community doesn't all agree on what they want and I I'm interpreting community here pretty broadly like not just vocal People on reddit, right? But like if you take into account Um, maintainers of projects both small and large communities on different platforms that includes like Zulip reddit the rust users forum the rust discord People on you know the various social platforms, but also um Like the small and large businesses that are using rust all of them make up the rust community and then all of the engineers just used rust and If you look at it at that scale, I don't think the foundation has actually done that many things that are bad for that community Uh, but but what they're trying to do right is satisfy an absolutely impossible Union of demands like there's just no way you can satisfy all of those people with anything that you do. Um, and and so My impression is that they're kind of doing the best that they can and I think what they're doing is pretty good So that's my uh, that's my take there Okay, answered Uh, why don't you use a macbook? Is linux actually that good? Can you do a set up your uh new vim live stream your previous one was old? My previous one is old. I promise is every stream that i'm going to do one and I will I just Yeah, I know I just need to do it one of these days will be a new stream about my setup All my configs are online on uh github though. It's like github.com slash john who's slash configs um And yeah, I I think linux is that good it does require more work to get it to The place where you want it to go Or the the way that you want it to behave and look um Certainly it's like much less plug-in like you can get a plug-and-play experience with linux too, but the But the plug-and-play experience I think is worse, but the customized experience it is much closer to the ideal um Whereas with with macOS for example, the plug-and-play experience is pretty good But you can't really customize it to get it close to your ideal As I think that is the the difference so the question is this whether you're willing to spend the time and effort to Learn and configure and make mistakes to get closer to your ideal um The speculation in chat about how old I am. I am 34. I turn I turn 34 on december 7th Am I roughly 40? I feel like that's a That's an overstatement. I'm not roughly 40. That's excessive um I slash we definitely need rust to be qualified for space slash avionics is ferocene the right starting point um So ferocene is the new certified rust compiler that came out of ferris systems and um I think ferocene is targeting an important but very particular use case It's not as though you need to use ferocene In order to do space slash avionics things with rust. It's more that if you need to build systems that are certified Then you might need to have a compiler that has been certified and ferocene is a rust compiler that has been certified um It it is to my knowledge Uh, basically just an older version of rust that has more testing done to it and has actually gotten Through the certification process, right? Like they've written up all the documents. They've written up the spec They've you know gone through it with a fine tooth comb And it's basically on a lag behind rust a little bit because the work to To certify incremental changes to the compiler is a bunch of work. Um I also Forget but I think Uh I don't think the standard library is certified. I forget exactly. There's some caveats to this um But but ultimately the answer is should be that you can use rust for space navionics like you can use it for Like uh, let's call it sensitive domains or critical domains Um, so so the the need for a certified compiler is only really if you need certification And if that certification requires your compiler to be certified and and those two ifs are pretty important and A lot of cases will not require both. Um, so I'm very happy that we have a certified compiler. I do I do think it unlocks Real use cases like real places where You couldn't use rust because it didn't have a certified compiler But there are fewer such cases than you might think And there are ways like there are cases where you can get certain kinds of certifications Without needing your compiler to be certified basically that you need the Like some certifications only require that the Output is certified like the the binary you produce is certified. Um, they do not necessarily require that the Means to get to that output is certified. So i.e. the compiler at the sand library Um, the beard is plus 60 years. That's funny. Um Let's see They're trying to compete with ada and aerospace certification. Um, I don't know that they're trying to compete necessarily so if if anything I seem to remember that there was actually a Like a sort of a collaboration setup or partnership of some kind between ferris systems and and ada I feel like I remember something about a blog post in that regard So I don't think it's actually competing as much as it's saying now you can use a different language as well Um, and I think there's value in that Um, what exactly is an iso certification? Who that depends on the iso standard? Uh, there are a lot of certifications that all mean wildly different things. There's not really Such a thing as certified like that word on its own does not mean anything It's always certified to a particular standard and what the different standards requires They're all over the place in terms of the actual requirements Yeah, that that that matches what I what I remembered the first thing is a collaboration between ada core and ferris systems. That sounds about right And oftentimes, um, you Like if you if you have the inputs to your system be certified, it's easier to certify the output But you can often often not always certify just the output without having to have certified inputs This is a matter of making this easier Okay, mark's answered Uh, how is your experience of the culture work life balance and leadership style there? There oh the glass door reviews of helsing are really concerning um So I remember I looked at the glass door reviews of helsing Before I first joined let me go see here uh glass door Helsing Uh reviews Let's go look Uh, sort by Uh lowest rating Just the summary isn't too bad 80 percent approved ceo 4.1 Here's what they're talking about. Okay, sort by worst Leadership by fear not inspiration Uh, oh, I guess I can I can share my screen, uh, maybe I'll try this see I knew this wayland is being unhelpful with me today I have to do this for it to realize that it I want to share my screen Okay, so I'm on the helsing Uh glass door page. This is again reminder sorted by lowest rating um Leadership by fear not by inspiration and motivation I mean, I can't say I've experienced this myself Well, okay, so this is like basically work life balance Uh the cost of health and social life Okay, so this is basically a complaint about, uh Work life balance. I'm just trying to get like a a sense of what the good and bad ones are Extreme pressure very tight deadlines. Okay, so a lot of work Positive reviews are not true. Okay. I I think I already disagreed with that because I think my review would be positive and would be genuine Uh High pressure and feasible deadlines Okay, so this seems to be a general positive of talent and commitment and compensation, but Work life balance seems to be the main complaint for the sort of one-stars here Yep Curiosity and awareness of other projects and teams and your own is seen as a bad thing I've actually experienced the opposite, but but that's something that's changed. I think recently Yeah, so this is a former employee. I suppose so, um Helsing was very much in sort of demo mode, right where, um, they were trying to You know figure out what things are most needed what things most to build And that caused everyone to sort of building a demo with their own team But I think that's changing now that Helsing has started, you know, landing bigger contracts and stuff is that now there is more Um cross-pollination cooperation between teams because that's what you need in order to build Large-scale systems that that operate interoperate. Well, so this I think is a past thing um over time work hours Constantly firing people with a given them a chance to improve first. I mean this side don't have any insight into uh Intransparent management Don't receive feedback In uh, this is also a former employee. Okay. I'm curious how long it's okay. It's in january Okay, so it sounds like it's mainly work life balance and Leadership. Yeah, because now okay. So now we go from we were once then we have one three and then we have fours um, so Getting back to the question the question being how's your experience about culture work life balance and leadership? Okay, so those are the things to sort of get a brought up not so much culture, but work life balance and leadership um, so I mean I can only really speak to my experience here um in terms of in terms of work life balance, um I haven't really experienced it being uh I haven't I haven't experienced there being a lot of actual, um Pressure that I think the the pressure that there is is mostly self-inflicted maybe so to give a little bit of context like helseng Grew fairly quickly. So but it is a startup right like it started two years ago or so. Um, and so as a result um There's just a lot to build right like when you're a relatively young company That means that a lot of the technology that you um That lies in your future you have yet to build So there's just a lot of things to build everywhere There's a lot of things to improve everywhere and that can often result in a Feeling of there's so much to do. I have to do go do all of it Um, and I think that second part of like I have to work really hard to get all the things done um is unhealthy unhealthy But also I think often internal So so there are two ways in which this can manifest right one of them is your manager tells you You have to do this by this weekend or you know If you don't do things by the time that they expect and they set very tight deadlines If you don't do it by that time you get sort of scolded for it I haven't experienced that at all. Um, like I work You know, basically nine to five every every weekday and then I sign off Um, and that's okay. I haven't I haven't had any pressure back on that Um, again my experience. I can't really speak to others, but I haven't felt any sort of condemnation for not working more. Um, I totally feel that there's a bunch more stuff I could do like I could work 24 seven and still not get through all the things that I have to do There's a there's a lot of things on my to-do list. Um, and so I could see how One might feel that there's a lot of work and feel that there's pressure, but I don't think that pressure is actually Um Manifested in like external pressure. I think it's more internal pressure Uh, but but I also haven't worked in every team with every manager. So it's hard for me to say Um, it is true though that Helsing is very ambitious and is a company that you know builds Um ambitious technology that requires a lot of work But but I think the the the way to handle that is if you get unreasonable deadlines push back and say that is unreasonable To essentially give back pressure to the system to say you can't just squeeze your people more you need to hire more people And whenever I push back if I feel like a deadline is too tight I feel that the response is usually understanding and not criticism. Um, which to me is a a good indicator here Um, but of course that does mean that if you don't push back Maybe because you don't feel comfortable pushing back or it's not really in your your personality to do so Then obviously that would manifest as you just keep taking on more and more work It's a very easy thing to default to and it does require a little bit of Like Internally in yourself to say no, uh, and then that gets easier when you discover that saying no is actually okay, uh, that that doesn't Um release a company or a manager from all responsibility, right? Like you should still make sure that it's an environment where people feel safe saying No, this is unreasonable or I'm working too much or pick it up proactively if someone is working too much. Um, and I I've seen some of that at Helsing already where people are pretty good about picking those things up But again, a lot of these things end up being in one-to-one interactions Where which I don't have insight into other people's one-on-one interactions, right? Um, but but again, like this is not a pattern that I recognize in my interactions at Helsing um And then there were a couple here just about like in transparent leadership I haven't found them to be intransparent at all like we have um All hands once a month where all of the sort of senior leadership at the company is present You can ask questions. There are relatively few questions. I think maybe people are Hesitant to ask questions such an open forum. So maybe that is a I think that could be addressed But in general I've I've found that when I raise things they get answered questions. I ask get answered I can ask candid questions to get candid answers um So so I I don't think I've I've experienced really in transparency um There there's a caveat to this which is you know, Helsing does work on some things that are confidential So there are some things that you don't get to know about or you don't get to know about until they become public um But but even there I don't think I've come across anything at least in my time there. That's been like concerning when it came out um So hard to say But but ultimately I think None of these are None of the sort of couple of one-star things here are things that um I have experienced or or seen and to be clear if I did see them I would call them out and be like this is a problem. Um, but but I can't say that I really have Um Is it considered a small or mid-sized business? I don't know. I don't know what the the thresholds are there Uh, we're I think Helsing is now like 250 people um, so I guess that's maybe mid-sized right. It's arguably not small anymore Um, do you work 100 percent remote? Uh, kind of so I work Fully remote from Norway, but I go to one of the Helsing offices Once a month maybe Particularly to you to London and and Munich So I could be part of this too, right? Like I'm not in the offices regularly. So maybe I don't see some of this but I don't know. I don't know that being there in person would would change my visibility into into things like this Um My work is recently transitioned from small to mid-sized coming with that has been more hr involvement and a ton more policy work agreements to sign Uh, no performance reviews yet, but I'm sure they'll be coming. Um, so I think this is something that Helsing did right From fairly early on is that there is a process for performance reviews And has been for a while There is you know A people department like an hr department, um that deal with a lot of the sort of Making sure that like people are treated well that we have processes in place for if people aren't treated well, uh, or and that there's sort of a you know transparency into how Roles are assigned performance reviews are done. Um All of that sort of stuff. So we've had that certainly since I joined and I don't think it was new when I joined um So so in that sense, I guess based on your earlier question that it is mid-size or or more mature maybe um Micro management and managers disappear, which is it? Yeah, I saw that that was one of those micro management I haven't really seen that much micro management either. Although um, Helsing has a a little bit of an odd setup where we have um The the tech leads so the people who lead a team are also themselves technical contributors Um, we don't Have managers and quite the traditional sense of the word And that does mean that the people who lead a team who have sort of leadership Responsible technical leadership responsibilities are also engineers and will you know dive into the code with you and that might feel like micromanaging but um But I haven't really experienced like what I would actually call micromanaging Which is like telling you exactly how to do everything. Um Okay Let me see if I can now go back to this one should now see my face again amazing um Update your setup. Yeah, I know I know I know I know I know I know Uh, the role of principal engineer how deep uh Are you involved in specifics in projects? Is there nothing about project management like budget resourcing at all sounds like a dream? um So what principal engineer means varies from company to company and from person to person I don't think all principal engineers do the same thing Uh across companies or even within a company. Um That said it is a role that I really enjoy because It it tends to include both technical work on like right code level but also technical work on the Sort of strategy side like are we building the right thing or are we building it at the right time? um Are we building the right thing for the future? um Like those kinds of more statistical questions. Um, also technical architecture, right? Like is this how these set of programs should be interacting or should be built? um But then also factoring more into the sort of human aspect of engineering, right of um Uh, do we have the right process for people to figure out? Uh, how they're performing how we evaluate their performance, uh, how we um Like promote people for example, how we hire people and I don't mean that in the sense of like all the hr processes but but more like as a principal engineer, I have a little bit more leeway to look at Like one step higher right if we look at I don't know Hiring for example, um at amazon if I thought hiring was being done wrong Like I don't think we should be hiring by asking these types of questions The chance of me having an impact on that is basically zero at helsing as a principal engineer I have a lot of uh leeway to sort of start conversations there and try to actually make a difference and make changes And that's partially A result of the company being smaller Partially a result of it being smaller and partially a result of being a principal engineer, which allows me to sort of float around um The other thing that I really like about it is um, I get to Observe a bunch of teams and you know, sometimes I come with advice to them and whatnot But but more importantly I get to observe things that don't work in multiple teams Or that work well in multiple teams but aren't really shared and then I can go and do a thing on my own to You know help all those teams at once. I can try to identify Um opportunities like cross team or cross organization opportunities and then try to implement solutions for them Whether those are technical or process wise, right? Like if I discover that, you know, lots of teams are um Making strategic errors about how to make long-term planning Maybe having to come up with a better way to sort of a rubric for how you calculate what things you should be working on next If I observe that lots of teams are getting high incoming support load on slack maybe I can look into Can we build some tools to better handle support requests so that they don't all just like paying individual engineers on slack? um but also technical ones like you know, if I find the teams are not very good about documenting the Reasoning behind technical decisions that they make especially larger technical decisions that they make Can I build technical tools that make it easier for them to document those things? review those things and observe them over time and retrospect on them um If I observe that lots of teams are having too many meetings. Can I do something about that if I observe that? You know, um at the company we're writing comments wrong or people are commenting their code sub optimally You know, I could write an internal blog post talking about how I write comments. Um, and so I I think Being a principal engineer gives you a lot of that ability to go where the pain is greatest Or where the potential impact is the highest And yeah, I mean I I enjoy that a lot. I enjoy that flexibility a lot um okay, um Neo vim vanilla for rust no astro vim or space vim or helix No, I'm just using vanilla neo vim and then a couple of plugins um, again, my my config is on github, but it's mostly um, I use uh, it's called airline like that bar at the bottom. Um, I use Uh control p although, I don't know if it's actually control p. It's some variant of it That gives you like the quick open which to me is tied to Uh tied to What is that called A little tool that gives you fuzzy finding Fcf, I think it's fcf Yeah fcf So I use that as sort of a quick opener with a couple of Like a little bit of logic around it to give me better autocomplete. Um, and then I have, uh I use the native neo vim lsp to give me syntax highlighting and autocompletion stuff with rust analyzer Analyzer That's all I really use Like I don't use lots of plugins for it and then I have like I have a config file where I've configured everything the way that I want it to be um Someone said check the comments people are telling you fcf the problem is the comments are delayed by like 10 to 15 seconds So I didn't those didn't come up in chat until I'd already said what it was Um, but yeah, so I haven't really needed a um Any of the sort of Bigger here's a full configuration things. I'm pretty happy with the one I have Uh, will rust 2.0 be just another release? It will be different. I don't know that we'll ever see a rust 2.0 I think we might actually only ever see 1.x versions. I think if we see a 2.0 um It would have to be like some dramatic new compute paradigm like Maybe rust 2.0 supports Quantum computers in order to do that like the whole language has to change or like something fundamental in the language has to change that they can't change on an addition boundary but like I don't really see a path to rust 2.0 in Any, you know, short to medium term even long term. I have my my reservations um I'm in the web industry and use rust in my work But for my future career, I would like to work around the rust ecosystem Not in a web services company. Do you have any advice on such how to get such a job? um It it's pretty hard to work full-time on a part of the rust ecosystem um Like even at companies that invest pretty heavily in the ecosystem like let's let's think of um uh Like uh embark studios for example the the game studio like they maintain, you know cargo deny and I think that they have a couple of like you know david peterson is um Is who works at embark is also the maintainer of axum and obviously does a lot of work there as as part of his his work um but Even there, you know, he's sort of an exception not the rule like It generally a company is not willing to have most of their engineer time be spent on the ecosystem because ultimately they're selling some kind of Product and most of the people most of the investment needs to be spent on that um So I think if you want to work full-time on things in the ecosystem There are fairly few places you could go or you would need to find a place where The company relies pretty heavily on something in the ecosystem And you can make an argument that you should be the person to help maintain that dependency for the company um And those are hard arguments to make for all but larger companies Or if it's a small company it has to have a very heavy reliance on some part of the ecosystem um, I think the more realistic path to take here is um You know look for a company that has Uh Reasonably tight integration with something in the ecosystem finding that out from the outside can be hard um, but but if you find somewhere where they both have a relatively Uh positive attitude to open source Ideally like you see other people contributing two things in open source from that community like two things in the rust ecosystem specifically That's a good indicator And then when you come in try to find ways where you can deliver value for the company by doing something in the ecosystem, um I don't really know of places where you would get to just work in the ecosystem Um, at least not off the top of my head um Uh, if I remember correctly you mentioned that Helsing utilizes nix which you haven't done before What do you think of nix now? Okay, so I've already answered this one uh Why so few rust jobs? I don't actually think there are a few rust jobs uh, I think Uh, I've gotten this question a few times too and I think the reality of the situation is that there are um, there are a lot of Relatively junior or let's call them non senior engineers looking for rust jobs Um, and there are more non senior rust people looking for rust jobs than there are rust jobs. I think in general, um So so some of the Trickiness here is that you know, if you if you talk to companies, they say, oh, we struggle to hire rust people If you talk to the community, they go, oh, it's so hard to find rust jobs And I think it's actually a mismatch of seniority. I think what companies are saying is it's hard to find senior rust people Um, and I think what people in the community are saying is as a non senior person It's hard for me to find rust jobs And so both of those are kind of true like they can be true at the same time because they're different pools of people um This is speculation on my part like it's not I don't know that this is true I don't have the data but but this is the Uh, the general pattern I've seen um And I think the the answer for companies is to look for uh To be willing to hire people who are senior engineers But not necessarily senior and rust or people are senior and rust but not necessarily senior engineers The the ladder is actually a riskier bet like it's it's riskier to hire someone who has lots of rust experience But very little sort of senior engineer experience um, it is probably better for the health of the company to hire someone who is a Uh hire someone who is a experienced engineer like a senior engineer with with that kind of experience and and um, uh an expertise Uh, and then have them just learn rust on the job than the other way around At the same time, they also mean to be more willing to hire less senior people Who will be less experienced and will be less good at what they do from the get-go and then be willing to train them um so I would uh I think part of the problem here is on the the company side of things um, and then I think the uh On the people side of things There's not really a great answer to this right like if if companies aren't willing to hire non-senior people than if you are a non-senior person It's going to be hard. Uh in reality I think the the path here is more one of um Be willing to apply a little bit above What your experience indicates right like be willing to stretch yourself a little bit in terms of what you apply for You might be rejected more often um, but it is probably the the right thing to do like You might need to apply for things that look a little more senior than you are Uh, and then you know stretch and sometimes fail, but I might be the the need um It is true like there's a real risk that if someone is a senior engineer from another language and then they try to just learn rust that they're gonna like Just transfer the knowledge they have from other programming languages and just use those patterns in rust too like object oriented programming being a good example of this um That does happen and it is a risk But it's a risk that you should keep in mind and still be willing to Tolerate and then counter if it comes up Um, let's see. How do you know if someone's senior? That's a great question. I don't have an answer to that Uh, let's see Okay, I see people cheating on the votes. So I'm gonna hide some questions Uh mark is answered Um I can see you already be assumed without being earned cross language It's tough like it's really really tough to to figure out whether someone who is senior um In one language is likely to be seen to be Uh well suited to be a senior within a different language There's no clear answer to that one. Um I think my general answer to this one is um If someone isn't able to transfer to to transfer their expertise across languages, they're probably not senior in the first place Um, not that that's helpful in hiring, but I think it is true Uh Let's see favorite book. Oh Oh Oh, it really depends though because like I have favorite books in a lot of different categories um like You know my favorite book my favorite fiction book is very different from my favorite non fiction book and I wouldn't want to pick between them I think my favorite books of fiction is uh, I really like the wheel of time series The the books are are great. I've read them now like three times. Um Uh in terms of non fiction I really liked, um, what was it called? It's a book called the code book by simon sing Uh, and it's about cryptography, but like the beginnings of cryptography and it's a very, um It's a book that's written to like teach you Not like public key crypto and stuff but more like Substitution ciphers like the the origins of cryptography Um, and it's a fascinating sort of exploration of that world that shows you how How it works and how to break it. Um, I I thought that was a really interesting read. Um There's also a book by Nicholas eppley called Mind-wise it's sort of a pop psychology book. Um, but I thought it was really interesting look at, you know the The ways in which we see other people the ways in which we Try and fail to infer things about what other people think and feel Um, and then like presents a bunch of interesting, uh Results from research studies and stuff that I thought was interesting Um I think those are like the The first few that come to mind Yeah, let's let's those are that's a good sampling Uh, is wheel of time actually any good or is it too much time to get into I think it's actually good Uh, there's so there are a couple of books in the middle that people tend to say are kind of slow I enjoy them But I think it's a little like the the series is long enough that it goes through like different type of book almost Like the middle ones are more like political intrigue. The early ones are more like Uh, you know journey away from home Discovering magic that kind of stuff and then the last ones are like epic fantasy And so they read very differently. I happen to enjoy all three And then the book is also like it starts very small and local and the middle ones are like Very broad in terms of like what geographical setting they're set in like the the world sort of opens up And then towards the end it like closes in again and everything gets brought back together Um, I I think they're great and I unlike for example, some of the Uh Like Stormlight Archive by Brandon Sanderson, which I think is pretty decent But that one took me ages to actually get into like I felt like it just took forever to get started Whereas uh with wheel of time I did not have that experience. I sort of enjoyed it from the early from the early beginnings There are other Sanderson books that I really like they're like Mistborn for example, I thought was pretty good. Um, there's also one by uh, what's Victoria Schwab wrote a book called uh A darker shade of magic that is also really good There's all sorts of cool fantasy books Uh Okay What is the biggest cultural difference of working in the eu versus the us? um In terms of working culture, I don't know that I See that much of a difference um what one often stated difference is that uh Europeans and this is very broadly speaking, but Europeans tend to be Uh more willing to work less or more eager to work less and to keep a sort of More healthy work life balance, maybe um But at the same time, I don't know that that's something where I've particularly I I don't think I've really gotten that impression both because I feel like when I was working, uh At amazon There were people in the us who Worked what I would say conservatively right like they worked the sort of normal hours and didn't really Uh struggle to keep work life balance and there were also people in Europe again with amazon who I would consider us working too much um and same thing now at helsing like I think there's a there's like a variety of uh Let's say, uh Leanings when it comes to work life balance whether you know, some people work less some people work more um And I don't really see a big difference there um I think One thing I've maybe noticed is that uh, you know Employee protections are better in Europe. This depends on the country. Uh, but certainly in in norway germany france The Like your contract is like less adversarial You have more rights as an employee. You have things like notice periods and and those things make a difference There's like more things that you and the company have to do in order to Uh, you know safeguard Your your rights as an employee and I like that. Um I I don't know that it really affects The experience of working though like in the day to day. It doesn't make that much of a difference Yeah And I guess this feeds into the next question, which is what did you like about amazon dislike compared to helsing? So amazon Amazon is very large like very very large even aws very large helsing is much smaller I get helsing I don't want to claim that I know everyone at helsing. I don't um, but there's like I know a good proportion of the people who work there I have a fairly short path to the people who are the sort of leadership at the company At aws, that was obviously not true, right? Like there was like What six people between me and like the ceo, right? Like that's pretty far if you think about just the the sizes of the the trees involved here um It means that it's much harder to have To affect meaningful change across the company. It also means that everything Especially anything that involves other teams is much more work. It's much more of a heavy lift It's much more of a long-term commitment um and so I'm I'm I enjoy much more being in a company where I feel like I can make more of a difference um at the same time one thing that was nice about amazon was that You have so many people working there that in general if you need an expert on anything you can find them internally Um, and that means you can reach out to them. That's not as true at helsing, right? Like it's a smaller company. There aren't like world experts on everything. Um, like I'm among the most senior people, uh at the company sort of engineering wise. Um and Uh, you know, it's nice to be able to reach out to You know people who have been into the industry in like 30 for 30 years. Uh, not always but sometimes that can be nice um amazon has a lot more process for things as well Uh, helsing has much less and that's partially partially because of age partially because of size So that might change over time, but I'm glad to be rid of some of that at least as well um One thing I actually quite like about amazon is the leadership principles. Um, I think There's a bunch of stuff. I don't like about them and in particular about how they're applied or how they are Uh, selectively applied like sometimes people hold you to it and then other parts of the company or other Higher parts in the company are not held to them and that bothers me. Um, but but in I like the principle of them and I like the phrasing of many of them. I think they they're they're Many of them are right somehow they they resonate with me Uh, helsing doesn't quite have something comparable like helsing does have a set of like value company values but but they don't have the same I don't know weight and anchoring effect as the as they did at Um, uh amazon, they're not as much part of like the institutional muscle And I would like to see more of that at helsing um And obviously like the stuff that I work at I work on at the two companies is quite different right at amazon There's a lot of build systems. Uh, whereas at helsing it's more like distributed systems So that's obviously different, but you know, I could have worked on distributed systems at amazon. I could have worked at build systems at helsing um Does helsing have a no vampire policy? No, no, no vampires are welcome Uh, what do you do while waiting for rust to compile on a big code base? Um You know, this is not a problem I have very often because usually my compiles are incremental incremental compiles are fast um If I do build something that actually takes a while to build like I'll just switch to my browser and I have like I'm not exaggerating like probably 250 tabs open That are all collectively sort of my work to-do list and so I will go do something else in the meantime um Or you know check one of the bajillion slacks or something like it but if it's not normally a problem that I have Uh How do you feel about mathematics and computer science? I I like mathematics. I like being able to express things in symbols and formulas. I actually had a a problem a month or two ago at work that I ended up Solving using set theory like it was a The details aren't terribly important, but I had to optimize some code that effect like The code didn't know that it was doing set operations, but it was and so it could be expressed as a set um a set computation problem and so I could apply some Uh, basically the the set equivalent of demorgan's laws to do transformations to allow us to Cache a part of the computation more efficiently and therefore get the overall operation to be like Order of the difference rather than order of the size of the of the biggest set Uh, and so that was really I I like that kind of work where you can just like Use something from maths to to make computers better Uh, it comes up fairly rarely, but I I enjoy it when it happens uh, well when it comes to more like the Things like runtime complexity analysis, um, which also arguably is maths. Um, you know, I I think there's value in having a general sense of how something scales with size um I'm not one of those where like you need to be able to like tell me off hand what the runtime and storage complexity of All of your data structures and algorithms are I don't think that's terribly important. Um, but having a general framework for it And a general understanding I think is useful Um If you had kids, would you want them to grow up in the us or in nordic countries? Nordic countries not even a shadow of a doubt. I would not want to raise kids in the us. Uh, there's a whole bunch of reasons for that. Um ranging from health care to walkability of the city to public transport to safety and communities to gun control to abortion access to Like I don't even employee rights I there's just just not even a question in my mind that I would much rather raise them in a Nordic country. Um, I I think raising kids in the us is a Yeah, I'm not going to go so far as to say it's immoral because that's just blatantly false and and hyperbole hyperbole hyperbole, um, I just like I don't envy anyone who raises their kids in the us and I don't envy the kids being raised in the us That's not for me. Um And and I think it's hard it's hard to Like I can list a bunch of things, but it's like hard to really appreciate until You've not lived in the us to see how different it is but like I I just Yeah, the the the thought of raising kids in the us just has me I Has me that's my skin crawling Oh, yeah student debt. That's another one. Yeah, like for example, I did my So I did a year of my bachelor's degree in Oslo I did not pay anything. Uh, and then I did a bachelor's degree in Australia, which the Norwegian government paid for um, and I ended up with like a It's like a student loan to the government um that Like covered my entire education um and Part of it is stipend and part of it is a loan and the part that's a loan is like the lowest possible interest rate And also you don't have to pay it if you don't work Um, so it's just like the most ideal loan you can get um, and that enabled me to like study elsewhere Right it enabled me to broaden my horizons and enabled me to if I had stayed in Norway My education would actually just be free. I would have no loans It was only because I chose to go internationally that I accumulated a little bit of debt um, or sort of a student loan there, um, but just the The fact that like everyone can get an education in the country is That a loan is worth it, right? um And and to be clear, I'm not claiming that the us is worse than everywhere else on the planet except like There are places where it's worth worse to raise your kids in the us too. I'm sure it's more that like There's just not no comparison between the us and the nordic countries and in terms of raising kids at least as far as i'm concerned um Okay, uh, will you do some advent of code in rust? Probably not. Um Uh, I think advent of code is great, but it's not for me. Um, I like to build like bigger things Uh, I like to build things that are more real or useful. Um the sort of coding challenge type things So when I say coding challenge, I don't mean like the coding challenges we did like, you know, um implementing the distributed system thing or Uh, the bit torn protocol stuff we did like those kind of coding challenges I enjoy but the sort of Here are some small coding tasks Is just not for me. I don't think it's that interesting. Um, I I know a lot of people do and I'm not saying it's not a good idea It's just like that that's not my preferred way of working. I like to build larger more complex things Uh, so I will probably not do advent of code in rust or any other language Maybe in css Uh, what's a project you would like to start but haven't had the time to okay Let's see here Let me open my obsidian. Okay, so I have I have a document called random ideas Uh, where is it here? And on this I have I want to start a new podcast It's a podcast called forgotten tech and it's I don't know if that's actually going to be the name but it's basically a um I want to start a podcast where I talk to the people who build technologies that we Kind of have forgotten because they just fade into the backgrounds of our lives like who programs the The like baggage claim belt like the machine that brings out your luggage at airports And that has like a laser system that detects when bags are coming and the decides when to release the next one Like who releases that who built that? um Who builds like the who programs the systems for in-flight entertainment on airplanes? um Who programs traffic lights? who programs the The thing that injects ads into podcasts that depend on the country you are in when you downloaded the episode Uh, who programs elevators who programs cheap children's toys? um Who programs the machine that you talk to if you drive through a mcdonald's Right, like I want to talk to those people and make a podcast out of it. So that is one of my ideas um See what else I can dig up here. Um I want to start a um sort of hard side chat Uh on technology topics like basically I want to basically do a rust Um Not talk show But like I want to pick just random people in the rust community and then sit down and talk to them for 30 minutes Probably on stream. I don't know yet. Um, but I want to start to do something like that That's more about you know, let's talk about the language and its future and your experience with it and Uh, maybe less of an interview style and more of a conversational style. I think that would be really interesting Um What else do we have here? um, I want to write a simulator For that can run. I want to basically program the last battle in the Um wheel of time series. So the the wheel of time book series has a giant last battle with like there's like lots of Different armies with different like intentions with different leaders and particular events that happen in different technologies And I want to try to program a simulator for that battle and then Try to display it and something like unreal so that you could see the battle unfolding and then play through the entire last battle Be really cool Don't have the time, but I would love to Um, I want to program a gps receiver from scratch Don't know what i'm gonna do that Um I have a bunch of new crates I want to make Like for example, I want to build a crate for making open loop benchmarks Um Uh, I have where's the other one I had? I want to do a director's commentary video series about rust forestations um, I want to do a course, uh, that is more of a intro to rust, but I specifically wanted to be Um learning rust by doing so I want to do a learn rust by Let's dive into this giant code base and understand what everything in this file does um so Yeah, I have a lot of projects I would like to start but don't have the time to those were only some of them I'm glad these resonate with people, but uh, unfortunately I don't know that I have the time to do any of them anytime soon the But the answer to the question is yes, I have a bunch Um Okay, we're at the what two hour and 15 minute mark So what I'm going to do is I'm going to do my little speed run at the end to get through a couple more questions And then I think we're going to call it a day So before I do the speed run, here's what I want people to do Um Would you mind if people stole those ideas go for it? Absolutely do it if someone else does it That means I don't have to uh, so please do um What I want to do before I do my speed run of questions, uh, everyone take like Two or three minutes to go in and first ask a single question if you have one Let's not spam it with a million questions But like ask a single question if you have one um and then Go through the list and vote for the ones that you would like me to answer And then when I do my speed run, I'll probably answer. Let's say the top 10 or 15 and don't cheat I know that it's possible to cheat on this voting site That's on purpose because it's really annoying to build it on otherwise, but don't cheat. I will ignore questions that cheat so let's take uh, like two or three two or three, um minutes to Ask and vote on questions and then I'll do my quick pass Yeah, the idea would be something like learn by project instead of learn by example. That's the idea like take a I don't know what I would take like Hmm, maybe the ripgrep code base or Maybe tokyo actually or axum like I would take something that is like Has a bit of meat to it does a couple of different things um Maybe after the rewrite of fish to rust happens, maybe I would do that Like I want a real meaty code base and then I want to pick some Decently good chunk of it and the goal would be for us to Understand everything that's in that file by the end of the course Um, I've not read the Dresden files. No Uh, do you believe the rust foundations goal are impossible? Oh to be clear. It's not that I believe their goals are impossible It's more that it's impossible to please everyone But I don't think they should be trying I don't think they are I think they're trying to Further rust the language rather than pleasing everyone and I think that is the right goal and it is achievable It just means that you'll always end up with some people unhappy about the way that you did it Oh, yeah, I would love to do Podcasts with people who are not rust people like I want to talk to people from other language communities too I think that's something that we as rustations do Don't do enough of Okay, time to do the the speed run. Are we ready? Here goes Uh, what are your thoughts on capture the flags ctfs? Have you ever played them? I played some hacking ones a long time ago, but nothing really since they were fun though How are you so cool? I don't think I'm particularly cool. I think that's a lie. I just talk a lot Uh, how is slash r the cat slash s adjusting to the move? Uh, the cats are uh adjusting really well. They think this is home now Um, and you know, we've put up like furniture on the walls for them to run around on They really like the fact that we have a heated floor in the bathroom So they're there like 90% of the time now. Um, they're adjusting just fine. They've seen snow now That was exciting. There are birds at the window who came like we hung up a little bird feeder They're very excited about it. They're they're happy How are you doing I'm doing pretty well, um, I think the biggest frustration I have at the moment is I wish I had more time to work on all of these ideas that I have Um, and I think I've come to the conclusion that it's probably not doable with a full-time job. So I think Medium to long term my goal would be to move to part-time work Um, so that I could do more of this if I can find a way to sort of supplement the the fact that I'd be working less Um with something like a patreon or something Um, and I the reason I give this answer as part of how are you doing is because I'm finding that it Affects my happiness a lot that there are all these things that I want to or arguably should do like a They're more open source projects that I should be doing better maintenance of and it bothers me that I don't have the time to Um, and if I did do it, I would have no time to spend with my family my friends my girlfriend my cats Um, and so that that tension is hard to navigate Uh any ideas to make profiling of rust programs better I don't think profiling rust programs is that much of a problem except for the async context Uh program, uh profiling async rust programs is pretty painful You can kind of do some of it with flame graphs and perf, but it's not ideal Tokyo console helps here and I I'm hoping that we can get further in that direction What I would love to see is like a tokyo enabled version of perf kind of but I don't have any good ways for how we can achieve that Uh, how do you use properly mpsc receivers inside of four loops on separate threads? Uh, so mpsc is multi-producer single consumer, which means that they are just fundamentally not multi-consumer You can stick them in a mutex, but then you sort of lose a lot of benefit instead I would use some like a channel that is specifically built to be mpmc's a multi-producer multi-consumer So that means the receiver is going to be cloned, which means you can give it to multiple threads Uh, use a debugger print or both Almost exclusively print debugging. I rarely pull out gdb or ldb I do sometimes like especially if I end up with like wacky pointers But it's pretty or a seg fault of some kind, but it's pretty rare. Usually I just print rerun That gets me far enough rather than uh, you know, try to find the break point and then print it out I know how to use gdb fairly well. I just I don't know print debugging just comes more naturally to me Uh, what's your rust 2.0 wish list? Um I want pin to be part of the drop trait. I want pin to be part of the iterator trait um I think those are the two main things that I would break Can't immediately think of oh, I would probably change um The name of mute Because I don't want it to imply mutability. I wanted to imply Exclusive access and mute feels like it should be mutable, but it might not be even if you have exclusive access Um, so I want I want that to change Uh, what do you think about certifications in general like certified professionals for software or anything? Is it all overrated scam bubble to do some trainings of this kind? I have not done any training of this kind I don't have any certifications and I think I'm a pretty good programmer and pretty good software professional Uh, I don't think they're entirely just scam like I think to some extent they are a valuable way to uh Get companies to pay money for other things like soft skills. Uh, and that is valuable I don't know that it matters a lot that someone has one Uh Why do you look so old by some young guy? I don't know. I'm I am old I guess Like I have aged a bunch since I started streaming. I am now 34 You know hair is thinning. It's like I'm getting getting uh getting older. I don't think I look so old I think that seems excessive um Any tips on how to increase my salary? Uh, as an argentinian developer, I'm at 500 us dollars monthly learning rust is it worth it in latin america um I don't know what the rust community is like in latin america Um, the the salary you're quoting sounds like You might be better off trying to look for a remote position that is likely to pay more Um, like usually salaries are low for local businesses And if you look at companies that have to compete globally, you're more likely to get better offers Um, but there's also more competition for them. So it's harder to get those jobs Apart from that like increasing your salary is really hard it within a company Usually moving companies is the easiest way to do it and even then it's not guaranteed Oftentimes it requires that you like know your own worth and is willing to stand up and say no, this is not good enough Um, what does your ideal team look like? Oh I don't think I have an ideal team. I have an ideal team size Uh, which is some somewhere around six people five or six people Once you start going beyond that people start to lose track of what each other is doing You you lose some of that social cohesion and the the feelingness of like we're together in this um, and so I wouldn't want it much larger than five or six But in terms of composition I like to have I like that one person is responsible for um interactions with stakeholders like think like Some of the project management things because I think it steals it saps a lot of time and energy from engineers And they're often not very good at it, but the pm can usually be shared with other teams There doesn't necessarily need to be one dedicated for each five or six person team Oh and in terms of seniors and juniors, um I I think it's okay to have One senior person I think it's better if you have two on a team because otherwise You end up with one person with too much of a Overriding power. Uh, it's useful to have some, you know, uh checks and balances at the top if you will So maybe two senior, uh, at least one maybe two who are Learning uh, and then some people who are sort of have been part of that journey And so that that's how you get to six um Is there any issue or topic that you're too busy to do but love is so if someone did Basically all of the ones that I listed so far Um Like in the previous question of like things. I don't have the time to do I would I would love for people to pick those up um apart from that uh There are some um There are some open source projects I have that I basically Realized that I don't have the time to maintain well as I would love for someone to come along and Basically take over as a maintainer. This has already sort of happened with the open ssh Open ssh crate, which makes me really happy like that's one of the ones where I built it originally and someone came and just did a Bunch of really good, um contributions is now basically owning the crate and that makes me happy Um, I think technically I'm still a maintainer, which is fine, but um, But I'm glad to have been able to give that one away I think there are three others I have or I would love something similar to happen one of them is fantachini, which is this um fundamental library for browser orchestration basically implements the web driver protocol I don't use it anymore myself. Um, and so I feel like I'm a bottleneck for it progressing. So I would love someone to help take over there um Factory, which is a crate for interacting with uh factory, which is a re-implementation or a better implementation of a queuing system like Sidekick by the same developer um Never used factory myself. I just wanted to build the binding. So I did Uh, I'd love for someone to take over that who actually uses it And the imap crate, which I've owned now for a long time. I sort of accidentally became a maintainer of it Um, and I think there's so much good stuff that can be done to that crate It could arguably be rewritten almost from scratch, but I just don't know at the time I would love someone to take that one over Uh I'm a back-end dev with two years of experience currently learning rust and distributed systems Could you suggest some beginner-friendly open source rust projects? I can contribute to preferably ones which are also higher remotely. There's no answer to this question. Um, so Like in general open source projects are not going to be places that hire you that's relatively rare There are some exceptions, but usually open source projects that are run by companies are Usually not run very well as actual open source projects. Usually they end up being sort of a Mostly one-way directional publishing. There are some companies that do better That that actually maintain open source projects respond to prs respond to issues take contributions But that's relatively rare There are some companies that you know open source something and then it sort of gets left there to rot or not to rot It's just like not an active. There's no one actively working on it from the inside of the company It can be a way to get into a company if you really become an expert on the thing that they put open That might give them a give you a path into their hiring pipeline, but it's pretty rare Are there jobs for junior rust developers? Yes, but there's much more contention for the junior positions Because a lot of people are picking up rust, especially junior engineers Because it's a language that seems exciting and people decide to learn it for that reason But that means that there's a lot more of them and I think we have fewer companies that are in a position where they're Able to take on junior rust people. So there are some this is a lot of competition sadly You previously mentioned in in a video that one needs good letters of recommendation to get into grad school Could you provide more information on your statement of purpose and your letters of recommendation? How do you approach professors to secure admission to mit? Um, I got into mit um on my fourth try So I applied, uh, I originally applied for the bachelor's program straight out of high school in norway My letters of recommendation were written by Norwegian high school teachers who were not used to writing letters of recommendation and like in norway People don't really people aren't really comfortable ranking people So when the forum asked like in what percentile of the class is this person the professor or my teacher was like I can't answer that question like that's not a thing that we track um That obviously did not go very well um And then I applied again after a year during a bachelor's degree in oslo Um at the university of oslo and I got letters of recommendation then Partially from those same teachers and partially from professors at the university of oslo That did not get me in Then I went to australia I did my bachelor's there and I applied again, uh, then with letters of of uh recommendation from australian professors at that university Did not get in Uh, and it was only after I did my master's degree and then some research at, uh, UCL in london that I ultimately and then got recommendation letters from the professors there that I then got in um, I think a big part of letters of recommendation is Whether the people reading them recognize the people writing them especially at the very high end institutions because if you get letters of recommendation From relatively unknown people and I don't mean no personally, but no professionally or you know, I've read papers by um If you get a letter of recommendation from a person that you have no Professional association with then they could write the most glowing letter But you don't know what the point of reference is you don't know whether they're reliable and can be trusted You don't know if they're real And so I think you know, you need to have letters of recommendation from people who have um Some amount of weight in the community and I don't mean like they're super senior well-known professors But just like they should they should be google-able. They should be ideally have some some papers written or some You know be well accredited Such as the person reading it is more likely to put some stock in that recommendation In terms of statement of purpose that one's um harder writing a statement of purpose Uh, like I wrote mine basically saying I am interested in the I forget what I even did Like the intersection of two fields, but I was very open like I don't know exactly what I want to work on I think these things are interesting Here are some of the things that I've done in the past that make me think those are interesting And then I might be good at it. Um, but I don't know that I have any any great answers for that one Uh All right last two What do you think of rust Of the rust 2024 roadmap and how do you like the focus towards embedded and do you think that area needs improvement? Um because I haven't done a lot of embedded programming myself It's hard for me to say um the last time I looked at embedded stuff. I think was uh When I was writing rust forestations in a little bit since and my memory was that it was still very Much fledgling like both the libraries and the especially the documentation especially end to end documentation What was lacking? um And so I think it's a good idea to focus on making that better because I think rust is really well positioned to do well in that area, um But I don't know that I can say more about like the specifics of what I think rust should get better at um I don't know that I've seen the sort of official 2024 roadmap has it been posted somewhere? Ah rust lang roadmap for 2024 uh Scaling empowerment flattening. Okay. So flattening the learning curve. Yes. I agree I think doing so in practice is really hard But I think it's valuable help rust users help each other Help library authors so they can in turn empower their users This one I've seen some effects of already like the ability for library authors to make use of more of the techniques As standard library uses. I think it's a great thing to do And helping the project scale I think is one of the problems that the rust project has and so addressing it is good Um, so so in general this this seems pretty good for me It also sort of jives with the fact that I think most of what we need now is not the language to improve But the experience of getting started and growing the community and growing the scalability of the language Okay last question Before I take the last question, I'll let everyone go through and like do some voting So that we'll we'll see which one is the top one now that we're at the last question And then I'll check chat in the meantime Uh I read that like joey from friends how you doing Uh It'd be awesome if you posted sometimes ideas what to implement so others can do it if you don't have the time Finding good practice to implement something meaningful that'll be used That's true. I I have thought about posting some of these for someone else to implement But often they're like vague ideas where like I have some thoughts in my head about how maybe I could do it uh, and so it's not clear how I would summarize it enough to uh to Give other people the ability to to implement them um John looks handsome and presentable. Thanks. I'll take it Are badly you're waiting for generators in rust. I I think I find myself wanting generators maybe once a month I have your book and it's hard for me to read rust for a stations is not a beginner's book It's also not really a book to read a front to back It's one you should use more as a reference when there's something in particular that you want to look up It's also non-trivial in terms of like the language. Um, like it is an advanced book Um, and so some of the struggle might also be if you're a non-english native speaker Um, but but as you work more with rust you should find more of it be approachable um Okay, which question is at the top Okay, how do you get excited to build stuff and improve without getting burnt out? um It's hard to answer this question because like I I did get burnt out like when I did my research Uh for my phd You know, I was very very burnt out from that code base And and that was in part because like I had been doing nothing else thinking about nothing else for Almost six years. Um, and so of course that burns you out And so this is one of the reasons why you know, I I co-founded ready set Which is this company that take is taking noria that research database and turning it into a a production um piece of software But I did not join the startup like I helped found it But I did not join it to work on it because I was just I was too burnt out. I realized that you know, if I were to sit and try to um Lead that code base or contribute to that code base I was my speed was going down and down and down because every time I was going to sit down and work on it I could just feel my brain being like no not again. Um, and and honestly, you know, that was in in What end of 2020 and Still to this day, I have some of that feeling remaining of like I don't I can't think about databases It's certainly not that code base without like Some of that feeling of dread coming back. Um So the the burnout is very real Um, I think I've felt less of it in the things that I've worked on since then Uh, partially because I've been moving between projects, right? Like I was at amazon for three-ish years two and a half Um, and over the course of that, you know, I built a new thing from scratch there like a new tool for for the rust build system internally Um, and so that was refreshing to build something new in a new space Uh, and then I moved away from there before I really had the time to burn out on it Um And at hell saying, you know, I as a principal engineers too I I get to move around a fair bit and I I have the hope that that is going to allow me to Um To to to stave off the burnout, right? Because one of the ways that you avoid burnout is to Not dig too deep on one thing or spend too much time just driving yourself to insanity on one project um I think The the other piece of advice I would give here is Uh, force yourself to take breaks like, you know, there sometimes I work on something that I think is so interesting That I just want to keep doing it. Like I don't want to leave work at five I want to keep programming it until nine or ten until I like have to go to sleep And then I want to start again in the morning or start again on the weekend because it's super interesting But that's dangerous Like it's great if you enjoy your work that much But it does lead to burnout and so what what I will do now is like forcibly Leave a piece of work that I think is interesting and then be like, okay I'll be excited to return to it tomorrow or I'll be excited to return to it on Monday But it is actually important that I stop even though I'm excited There are sometimes when I don't manage to hold myself to the standard where I'm like No, this is just like burning a hole in my brain and I need to get it into code to see if it works Um, but I I try to resist that or just much as I can Um Okay I think I think we're at the end there. Are there any follow-up questions on burnout I'll take those before I before I sign up or sign off signed up um I'm surprised there's no q&a burnout in this stream. It has been a long q&a, but for some reason like q&a is I just I I can go for a long time now. It's mostly because I need to eat dinner Like I can feel my stomach is not happy with the q&a, but my brain is okay um All right, no more questions about burnout That's good. You've all been do you like burnout paradise? I played burnout paradise. It was decently fun All right. Well in that case, I think it's time everyone. Thank you for joining. Thanks for uh watching Thanks for uh asking all the questions I hope this was useful as always the video is going to come out on you know video on demand and I'll tag All the questions there as well So if you join the stream late or if you're you know watching this after the fact by now You already know that there are chapters in the video but down in the video description There'll be little links to every question that you can go back and watch this later So thanks everyone and I'll see you next time