WEBVTT 00:00.000 --> 00:15.000 All right, this next session clearly does need no introduction, because you're all here for a reason, so Christopher Dolby. 00:15.000 --> 00:44.000 Okay, we're traded. Okay, cool. Hello, everyone. I'm Christopher. I'm going to tell you a bit about the project. 00:44.000 --> 00:59.000 The project I work on and also the company I work for, which is head scale and tail scale, a bit about dynamic, and I spend a lot of time picking the correct English world complementary, because complementary is very close. 00:59.000 --> 01:25.000 So head scale is kind of this open source complementary, no complementary thing to tail scale, but first a little bit about me. So my name is Christopher. I'm from Norway. I live in laden and I'm a software engineer at tail scale and I spend half of my time dedicated to open source and more specifically head scale, but so not everyone might know what exactly the two projects are. 01:25.000 --> 01:40.000 It's not really about a project in per se, but I'm still going to tell you like very quickly and overview of the thing. So tail scale is like overlay network solution. It allows you to connect nodes together and it makes sure you get like direct connections. 01:40.000 --> 02:09.000 The way that works is that you have a control server, which is a software as a service hosted solution, where all your nodes essentially exchange keys and information they need to be able to connect each other. Head scale on the other hand is kind of this host it yourself, run your own infrastructure, open source clone of this product, which allows you to do essentially all the work yourself, but you also then have all the power yourself. 02:10.000 --> 02:38.000 And we're going to touch a bit upon like why that it sounds a bit odd to be allowed to work on these things. So we're going to go through why hopefully that makes sense and a little bit about the community and stuff like this. So head scale first of all, we're a pretty pretty sizable community now. We have like 32,000 stars and get a we have a discord with 6000 members that have a lot of community moderators, people help each other. 02:38.000 --> 02:47.000 We have a bunch of very active users who contribute to like new people, all people who have a lot of if they have challenges or exchange solutions. 02:47.000 --> 03:04.000 We don't collect any data because it's a bit like anti the spirit of what we stand for, but we did once find that you could actually search like certificate ledgers for like domains that start with head scale. So we know there's at least 3,000 installations out there, 03:04.000 --> 03:12.000 but presumably there might be more if you call it like the VPN dotter or something like this. So it become rather successful. 03:12.000 --> 03:20.000 It all started back in like 2020 where my friend had one fund, you kind of started the project, that's like, oh, tail scale is pretty cool. 03:20.000 --> 03:33.000 I want to figure out how they do all this stuff and try to kind of like play around with the debug options in the client and then kind of see can I can I make it work if I didn't use the control server. 03:33.000 --> 03:39.000 And now the few commits and like it's it rolled all along a bit like the beginning of Corona, you know, when I had anything to do. 03:39.000 --> 03:50.000 And then it kind of picked up again in 2021 where I also got bored and we used to work together, so we had contact and so on and then we're good friends and I started committing a bit as well. 03:50.000 --> 03:58.000 It's 2021 and I check in and kind of like, oh, it's not really working. So I brought tests. There's a talk about this a few years ago in the go room, so check that out. 03:58.000 --> 04:07.000 But overall it was already starting to get quite a lot of traction because people found that it could be used for many use cases. 04:07.000 --> 04:16.000 And then in 2022 I got opportunity to join tail scale because they kind of recognize that actually this project is quite nice to have out there in the community. 04:16.000 --> 04:25.000 So that obviously in the open source world and in general, just like software, there's a lot of skepticism and things like this. 04:25.000 --> 04:33.000 We saw a lot of kind of sentiment both directions. So a lot of this is kind of like hacker news and discord and read it. 04:33.000 --> 04:46.000 Things that I found for like the presentation. One of the quotes that I really liked is like, oh, I'm actually more likely to use tail scale because this this focus of kind of like supporting open source makes it. 04:46.000 --> 04:54.000 So I'll use the sauce one, but I know the other one is around and it's a good good will presented by the company and that's that's kind of cool. 04:54.000 --> 05:02.000 But at the same time, there's also this thing that head scale depends on the debug function or debug feature that allows you to kind of override the control server. 05:02.000 --> 05:06.000 And of course, that is a feature that could go away if so desired. 05:06.000 --> 05:17.000 So people who are more on the pessimistic side, they will kind of go in and say, oh, we see eventually a certification disk in this can go away. 05:17.000 --> 05:26.000 And that is, it's a truth, but the client is open source. You can fork it if, you know, you're going to start doing something like this. 05:26.000 --> 05:36.000 So I want to look a little bit about the reason why this is actually quite a nice synergy and it works very well together. So why would tail scale fund head scale. 05:36.000 --> 05:44.000 So tail scales relied from very early on in the marketing model, which is kind of like bottoms up. So you, they give away a free plan. 05:44.000 --> 05:55.000 At home to do their home labs and stuff like this. And then they go to their company and say, like, oh, why am I using this legacy VPN concentrator? That's not really pleasant. 05:55.000 --> 06:03.000 And then maybe eventually these champions will bring tail scale to work and head scale kind of had a very similar similar way. 06:03.000 --> 06:10.000 So like, I also was our hobbyist. We love running around infrastructure, but maybe at work you actually don't want to run your own infrastructure. 06:10.000 --> 06:16.000 So you would still run head scale in your home lab and then you would go to work and just like maybe you should just buy support. 06:16.000 --> 06:30.000 Or maybe you try head scale and use head scale to companies as well. So in, in general, it had a very similar notions. It was kind of like just in addition to the same, the same kind of marketing motion if anything. 06:30.000 --> 06:37.000 In addition, it's kind of like a bit of a bonus that like tail scale wants to build an overlay network for everyone. 06:37.000 --> 06:47.000 And one of the cool things is that if you are multiple implementations of this of the protocol, you kind of have to make sure that you're adhered to like good practices. You document it. 06:47.000 --> 07:00.000 You make sure that you are backwards compatibility. You are more concerned to make sure that you don't break things. And this kind of helps people at the engineers of tail scale kind of sharpen their focus and code reviews goes another round. 07:00.000 --> 07:17.000 In addition, we kind of had like good communication with tail scale engineers. So for all these, it was quite cool because a lot of them are very pro open source. So even in the beginning, we got like invented invited to design documents for a new upcoming protocol change. So we could implement it and be ready to when the client was launched. 07:17.000 --> 07:29.000 And there's also a couple of other implementations as well, not only head scale, there's also iron scale, there's one called wire fire with like a bit smaller communities, but still pretty cool that multiple people are being able to do this. 07:29.000 --> 07:45.000 In addition, there is this notion that like a lot of people, these days, one wouldn't be locked into a vendor if they don't have a way out. So head scale kind of work as an escape patch. Like if you, you might be happy to use tail scale for an hour, but what if something change? 07:45.000 --> 07:58.000 Well, all the same network parameters, at least the ones we managed to implement so far, will still be available as long as you use you have head scale as a backup. So for the time being, you might be happy to actually use this software as a service. 07:58.000 --> 08:08.000 But then you switch on later. So it's kind of like, it works as a way to keep for tail scale to make people more comfortable if they were to be like skeptical towards it. 08:08.000 --> 08:17.000 Which is quite interesting as well. And one of my favorites, this is quite new. I was installing like Incus OS, which is this quite cool distribution for Incus. 08:17.000 --> 08:41.000 Which is like Alexey and VM management type of OS. And then they implemented tail scale recently and in the YouTube video, the maintainer calls out that actually, he's got happy to implement tail scale support even though it's not fully open source, just because when he implement it, he still can fall back to head scale. 08:41.000 --> 08:52.000 That means that it's like still sticks with the ethos of the project, but you kind of get both the commercial popular support of tail scale, but you also can use it with your head scale. 08:52.000 --> 09:07.000 So you kind of become more, it becomes more interesting for all the open source project to implement tail scale support even if it's not like strictly open source, because the clients are sort of the service I'm more less interchangeable. 09:08.000 --> 09:19.000 But then there's come to, yeah, then there's like running the project after you kind of go from free to or unpaid maintainer to kind of salary it. So how do we kind of do it? 09:19.000 --> 09:25.000 Over the years we kind of figured out how we can improve. So these things that make it run for us. 09:25.000 --> 09:34.000 And most of the times we do the right thing and sometimes before short, because there's a couple of things that changes when you when you go from unpaid to paid. 09:34.000 --> 09:48.000 So for example, so now I have a lot more responsibility, not necessarily directly, because there's no boss in the open source world that comes and tells me, but like I am paid now to work on this all the time. 09:48.000 --> 09:59.000 So what I kind of like loose the ability to, oh, I'm not going to bother with this, let someone else do it because I am kind of the main contributor, that's at least the most time. 09:59.000 --> 10:14.000 And if if no one picks it up and even the hairy issues, you kind of have to go and do something about. So if something goes wrong, then you kind of have to do more first line, you're the first line when it comes to urgency and these kind of things. 10:14.000 --> 10:20.000 And at some point there's quote from Nolan Lawson from quite a fun blog post, interesting blog post. 10:20.000 --> 10:24.000 At some point you earn up against issues that are more social problem than technical problem. 10:24.000 --> 10:34.000 One human just doesn't scale and I'm kind of half a human because I only were 50% in addition to some time that still comes out of my evenings. 10:34.000 --> 10:40.000 And you have this problem of like features, code reviews, conflict of interest. 10:40.000 --> 10:50.000 You're always made, when you're paid, you're kind of always paid and you can't forget it because if you forget it, then conspiracy theories may arise. 10:50.000 --> 10:56.000 So any decision can always be perceived as protecting telescope, which is a bit of a challenge. 10:56.000 --> 11:07.000 So we had this issue where at some point I was grooming the, I was a bit tired, I was grooming the issue tracker and I started closing a bunch of things that we thought we would never implement because it was quite complex. 11:07.000 --> 11:14.000 It was kind of out of scope of this project to do a few people and all of two providers, for example, which is quite a complex thing. 11:14.000 --> 11:17.000 I know how to do it and also it requires quite a lot of security on it. 11:17.000 --> 11:22.000 So we closed it, but I made a mistake. I closed it with this very, very undescriptive message. 11:22.000 --> 11:27.000 And of course, that's not for a year and then suddenly someone found it. 11:27.000 --> 11:33.000 And it was like, how are you closing all these issues to protect telescope's interest? 11:33.000 --> 11:37.000 Because this will eat their market and then it will take it down. 11:37.000 --> 11:46.000 And you can kind of make this argument, but I don't think it's really realistic when like you have a 50-end organization, 11:47.000 --> 11:49.000 like half of the developer. 11:49.000 --> 11:56.000 But the other thing is like keeping all these issues open in the tracker at all time is also like a mental toll. 11:56.000 --> 12:13.000 And the kind of thing that came out of it was this long post about how potentially I was planted two years before I was employed by telescope to embrace and extend an extinguish to project from the inside. 12:13.000 --> 12:21.000 Because, you know, it could be true, but that is quite a lot of planning and I think that it's a bit challenging. 12:21.000 --> 12:28.000 So there's a couple of these things that you kind of always have to be in your tiptoes and that makes everything a bit more tiring. 12:28.000 --> 12:32.000 And I found that that is a challenge that you sometimes need to do it. 12:32.000 --> 12:34.000 We had the other one which is quite interesting. 12:34.000 --> 12:38.000 It was like a simple flag missing from one of the command lines that no one really got around to. 12:38.000 --> 12:47.000 And this because we have to draw on this like, oh, is this like this software play to make sure that this never gets implemented and that it's always a little bit worse than telescope. 12:47.000 --> 12:51.000 And I was like, oh, never mind, there's actually a PR for it, it just doesn't merge that. 12:51.000 --> 13:01.000 And that is, you know, you have this like the 2% of skeptics that has this recurring pattern where like they assume malicious intent and then they make an accusation. 13:01.000 --> 13:07.000 And a accusation might often be wrong or not necessarily is rooted in something. 13:07.000 --> 13:14.000 And then they kind of move on with like, acknowledgment of like, if something was actually wrong. 13:14.000 --> 13:16.000 So it just sits in the issue tracker forever. 13:16.000 --> 13:22.000 And you kind of have to deal with this like amounting thing, which is a bit challenging. 13:22.000 --> 13:29.000 So you're going to have this, I like this henland racer friend of mine tiptoes, which is like never attribute mouse. 13:29.000 --> 13:32.000 That which is adequately explained by stability. 13:32.000 --> 13:34.000 And that's not to say that these people are stupid. 13:34.000 --> 13:41.000 There's a lot of things that are just like mistakes and misunderstandings. And that is more of the truth to it, I think. 13:41.000 --> 13:45.000 On the personal side, some of these events are kind of like frustrated with me so much. 13:45.000 --> 13:51.000 And I took a step back and kind of like, instead, I just, I have a 50% part of my job where I can work on telescope. 13:51.000 --> 14:02.000 So I would just work on more telescope projects, which means that ultimately I spent less time working on the open source project, which I think in the big picture is actually quite a loss. 14:02.000 --> 14:09.000 Because it takes like a, it's a project, we invested a lot of like personal time over the years. 14:09.000 --> 14:12.000 And there's no, we want to best for the project, no matter what. 14:12.000 --> 14:15.000 So yeah, it's a bit of a challenge. 14:15.000 --> 14:17.000 So I'll talk a bit about how we structure it. 14:17.000 --> 14:20.000 And I think we do it quite well. 14:20.000 --> 14:22.000 We become a lot better at doing it in the open. 14:22.000 --> 14:25.000 So we have like a roadmap as planned by maintainers. 14:25.000 --> 14:28.000 It's mostly informed by like reaching future parity. 14:28.000 --> 14:31.000 And also like what's fun to work on and it's kind of things. 14:31.000 --> 14:35.000 And then we see, before all of the issue trackers see what is very popular and things like this. 14:35.000 --> 14:40.000 Usually people will come with like, there's a person posting a very, very businessy thing like skim, 14:40.000 --> 14:43.000 V2 groups in support for enterprise Microsoft stuff. 14:43.000 --> 14:47.000 And then we say like, oh, this is probably out of the out of scope. 14:47.000 --> 14:49.000 Of course, that is a business thing. 14:49.000 --> 14:53.000 So you might get told that, you know, you're ruining the project from the inside again. 14:53.000 --> 14:57.000 But luckily, there's not a lot of upwards for skim, V2 support because most people don't need it. 14:57.000 --> 15:00.000 In their home thing. 15:00.000 --> 15:03.000 But you get like all the features from TAVS get that we never got to implement. 15:03.000 --> 15:06.000 And over time we're going to get to all of them. 15:06.000 --> 15:09.000 But it still takes time is like half a person. 15:09.000 --> 15:10.000 And so on. 15:10.000 --> 15:12.000 TAVS can't really inform anything. 15:12.000 --> 15:15.000 But I saw I have my time. 15:15.000 --> 15:18.000 I spend the time and I plan everything and I plan it with the old maintainers. 15:18.000 --> 15:19.000 And so on. 15:19.000 --> 15:21.000 And it works pretty well. 15:21.000 --> 15:24.000 I'll even shut down slack the days I work on ahead of skiers. 15:24.000 --> 15:27.000 I don't get disturbed by like other company things. 15:27.000 --> 15:30.000 And a quote from the one of the founders is like, 15:30.000 --> 15:35.000 they never really open source TAVS get because by the time it came to that was so many kind of like, 15:35.000 --> 15:40.000 it was built for a very specific set of day-round for deploying it. 15:40.000 --> 15:44.000 There's a lot of like customer if else that happens with early customers. 15:44.000 --> 15:46.000 And it wasn't really practical. 15:46.000 --> 15:47.000 And on head scale was already there. 15:47.000 --> 15:49.000 So might as well just support that instead. 15:49.000 --> 15:51.000 So sustainability. 15:51.000 --> 15:56.000 So one other thing we say no to sometimes getting in maintenance. 15:56.000 --> 15:59.000 Or like in into thing because like a lot of men. 15:59.000 --> 16:03.000 There's a lot of maintenance to people committing things to your project. 16:03.000 --> 16:05.000 Cold typically outlived contributors. 16:05.000 --> 16:08.000 They would come like this drive by PR and then they disappear. 16:08.000 --> 16:10.000 And then you have to fix all the bugs. 16:10.000 --> 16:12.000 Not always, but often. 16:12.000 --> 16:16.000 And this kind of like that's why we make sure that when people contribute, 16:16.000 --> 16:19.000 it aligns with like the roadmap so we don't take in everything. 16:19.000 --> 16:23.000 And we try to have this model we say like open source discussed contribution. 16:23.000 --> 16:28.000 Because if people just come and drop by 2009 PR, 16:28.000 --> 16:30.000 then it's very hard to kind of understand. 16:30.000 --> 16:34.000 It takes a lot of time just to like beat it into shape to get it into the project. 16:34.000 --> 16:36.000 Contributions. 16:36.000 --> 16:38.000 We do get contributions. 16:38.000 --> 16:39.000 Like I think I'm the main one. 16:39.000 --> 16:42.000 There's a couple of other people historically. 16:43.000 --> 16:51.000 We have an excellent documentation writer who is helping out and helping a lot with testing. 16:51.000 --> 16:54.000 And then there's like the occasional things come here. 16:54.000 --> 16:56.000 So all of them are LLM based. 16:56.000 --> 16:59.000 4,000 line PRs that you kind of don't know what to do with. 16:59.000 --> 17:02.000 And some of them are like this one fixes my problem. 17:02.000 --> 17:07.000 I'm going to speed up a bit because my time management is getting here. 17:07.000 --> 17:11.000 But at the same time, we never implemented the web interface because we're not web developers. 17:11.000 --> 17:16.000 And it also makes it so that everything has to implement it in the full stack to kind of get it out. 17:16.000 --> 17:19.000 So we made an API and I would like the community to take care of it. 17:19.000 --> 17:22.000 And this is just the top for the first ones. 17:22.000 --> 17:25.000 There's even a lot more of these UIs you can run with head scale. 17:25.000 --> 17:26.000 And that was great. 17:26.000 --> 17:30.000 We had a lot of people who wanted to learn Reactor, Swalter or whatever. 17:30.000 --> 17:33.000 And they kind of made their own UI that now the community uses. 17:33.000 --> 17:36.000 And there's a lot of there's a discord channel where they help each other. 17:36.000 --> 17:38.000 And it's great. 17:38.000 --> 17:41.000 Not everything has to be implemented in the project that is core. 17:41.000 --> 17:43.000 So our community is awesome. 17:43.000 --> 17:44.000 Reflection. 17:44.000 --> 17:48.000 So it's not just us that that is like very specific thing. 17:48.000 --> 17:52.000 We're like someone's making a semi-competitor like looking thing. 17:52.000 --> 17:58.000 I found this, there's this project called WorldWarden, which is made by employee who works for BitWarden, 17:58.000 --> 18:01.000 which is this self-hosted password manager. 18:01.000 --> 18:05.000 It's not completely the same because it does it on this own time. 18:05.000 --> 18:07.000 It's not paid by BitWarden to do it. 18:07.000 --> 18:12.000 Maybe this is an encouragement for BitWarden to actually pay him for doing it. 18:12.000 --> 18:17.000 But there's a couple of things that works in this way. 18:17.000 --> 18:23.000 Another thing that I saw recently is this, in the ghosty repo, which is like Mitchell has a lot of new project. 18:23.000 --> 18:24.000 There is this. 18:24.000 --> 18:29.000 They look all the get-a-bishes and not only men's handers can add them. 18:29.000 --> 18:33.000 And then they force everyone to go through kind of like discussing to figure out if it's a bug. 18:33.000 --> 18:41.000 To kind of filter out low cost or like the, sorry, the high cost very low description type of issues. 18:41.000 --> 18:44.000 It's a very good strategy. 18:44.000 --> 18:48.000 I really want to adopt it, but I'm kind of afraid that if I do, then people will say like, 18:48.000 --> 18:53.000 you're guarding the issue trackers and no one will come with features that will compete with tail scale. 18:53.000 --> 18:55.000 So it might not be a thing. 18:55.000 --> 18:56.000 But this is a cool model. 18:56.000 --> 18:59.000 I hope more open source projects adopt this. 19:00.000 --> 19:03.000 I think also, and this is a bit to the previous talk, 19:03.000 --> 19:08.000 donating time, I think is a really good way for companies to go to open source. 19:08.000 --> 19:14.000 Then the project can figure out what they want to do with the time instead of having like, 19:14.000 --> 19:21.000 companies come in and force different things that I need implemented. 19:21.000 --> 19:26.000 So yeah, sure, you get the future you want, but also you contribute a couple of other features. 19:26.000 --> 19:30.000 So you can detach business interest from project interest. 19:30.000 --> 19:34.000 Last slide is kind of before assuming malice. 19:34.000 --> 19:38.000 I don't think the vast majority of people I speak to is like, 19:38.000 --> 19:42.000 I think it's super awesome that I get to contribute to this project. 19:42.000 --> 19:44.000 And I also think it's pretty awesome. 19:44.000 --> 19:50.000 And it's pretty, like a lot of them have recognized that we don't get, 19:50.000 --> 19:53.000 we wouldn't have gotten as far if this wasn't the case. 19:53.000 --> 19:58.000 Even if there is suspicion, we still aren't much, much further than what we would have been. 19:58.000 --> 20:01.000 Yeah, so this is really cool. 20:01.000 --> 20:04.000 And I'm very happy this quote at the end here is, 20:04.000 --> 20:07.000 it's not something you see every day from a VC backed company. 20:07.000 --> 20:09.000 I wish more companies did this though. 20:09.000 --> 20:10.000 There's definitely a possibility. 20:10.000 --> 20:12.000 So I think I'm out of time. 20:12.000 --> 20:15.000 So this is the slide for the questions. 20:15.000 --> 20:16.000 Thank you. 20:16.000 --> 20:28.000 Thank you. 20:28.000 --> 20:33.000 Any questions? 20:33.000 --> 20:47.000 There's not a follow-up. 20:47.000 --> 20:48.000 So I want to clear. 20:48.000 --> 20:49.000 I'm not assuming malice. 20:49.000 --> 20:53.000 I took a minute to read tail scales patent portfolio while you were talking. 20:53.000 --> 20:59.000 It's pretty clear to me that head scale has to implement the teachings of the patents that tail scale holds. 20:59.000 --> 21:04.000 And since you're under BST license, users of head scale don't have a patent license to those. 21:04.000 --> 21:20.000 Have you had any users who probably mostly be for profit corporate users who are concerned that they don't have a patent license to use head scale? 21:21.000 --> 21:25.000 The answer I have to this is, no, I'm not aware of any of this. 21:25.000 --> 21:28.000 And I don't know anything about patents. 21:28.000 --> 21:30.000 If I'm going to be, I have to be honest. 21:30.000 --> 21:32.000 The licensing is open. 21:32.000 --> 21:35.000 We just follow the same license as the tail scale client. 21:35.000 --> 21:37.000 But yeah, patent license. 21:37.000 --> 21:40.000 Yeah, I will not say anything because I don't know. 21:40.000 --> 21:43.000 This is out of my kind of knowledge space. 21:44.000 --> 21:49.000 Thanks, cool talk. 21:49.000 --> 21:55.000 How you keep up with the future priority because it must be very hard. 21:55.000 --> 22:01.000 So I think the future priority, the core tail scale product is fairly simple. 22:01.000 --> 22:03.000 We're not future part with that yet. 22:03.000 --> 22:09.000 But I feel like I have a very decent idea of what is like the core and then what is like, 22:09.000 --> 22:12.000 okay, this is a accelerated and nice to have some stuff like this. 22:12.000 --> 22:14.000 So keeping up very hard. 22:14.000 --> 22:20.000 But I think when we nail connectivity works always as it should. 22:20.000 --> 22:25.000 You kind of have all of the access control features and these things. 22:25.000 --> 22:28.000 It's going to be a lot easier to build all of the other things. 22:28.000 --> 22:34.000 But I think that is also like, it could be in the section about how overtaking tail scale is not really realistic. 22:34.000 --> 22:36.000 Because they're again 15 engineers and we're half. 22:36.000 --> 22:40.000 I don't think they're concerned just because of this fact as well. 22:40.000 --> 22:47.000 Even as there might be many people starting to contribute to a project is still going to be very hard to keep up. 22:47.000 --> 22:49.000 So I try my best. 22:49.000 --> 22:54.000 That's a good answer. 22:54.000 --> 22:59.000 Yes, so I wonder if you can say more about the governance of the project. 23:00.000 --> 23:07.000 Because you said that tail scale donates time and then the project decides what to do with it. 23:07.000 --> 23:12.000 But you also said that nobody is your boss in the open source project. 23:12.000 --> 23:24.000 Yes, so the way it's organized that is that I have a fork of the project and all of my code go into kind of this is the very technical part. 23:24.000 --> 23:32.000 The fork goes in my branches going in my fork and IPR into the project and then the project is still in one's name which you will see and get up. 23:32.000 --> 23:38.000 And so on so like it's still one kind of step away from tail scale in that way. 23:38.000 --> 23:50.000 Other than that is like there's no one in tail scale that kind of I still have a manager right but like the manager doesn't really isn't really involved in the things around tail scale. 23:50.000 --> 23:56.000 So it's more of a country the main the all the maintainers which is currently and blocking one. 23:56.000 --> 24:06.000 We kind of sit and look at through the issue trackers see what's going on and then the goal is to just do the governments with a full roll map in the open. 24:06.000 --> 24:13.000 So we tag kind of like all the future releases and say which what we're working on and then kind of people can see what we prioritize. 24:13.000 --> 24:19.000 And then they could kind of challenge it if they want to in discord or in something else. 24:21.000 --> 24:30.000 So if you work for both tail scale and head scale, what stops you to just copy tail scale code into head scale. 24:30.000 --> 24:35.000 That's a very good question. It was actually one thing I was trying to put in but I couldn't fit it. 24:35.000 --> 24:44.000 So we did like tail scale for sorry head scale for two years before I joined and had like access to any other code and the code is very different. 24:44.000 --> 24:57.000 So like they're at the moment like all the APIs for like how to calculate the mesh or how to generate like the packet filter has already been written bespoke and there isn't really like anyway to. 24:57.000 --> 25:04.000 It takes the same time to kind of like write our own thing now as to it would be to kind of like take a hammer and beat it into fitting in the other thing. 25:04.000 --> 25:22.000 And I think the other we have kind of like built it from a bottoms up of like making it first work and then making it like more performance while the tail scale control service quite a lot higher performance and can handle advanced vast vast majority of more nodes and stuff like this. 25:22.000 --> 25:29.000 So it's a very different style of code also written by better go programmers than I am. 25:29.000 --> 25:31.000 So yeah. 25:32.000 --> 25:37.000 Thanks for running off time. Thanks, Christopher. You come. That's for more questions on the side. 25:37.000 --> 25:46.000 Finally? 25:51.000 --> 26:00.000 Well, suppose anything. 26:00.000 --> 26:03.240 Why was he sent to the Blue Arc 26:03.240 --> 26:06.240 Yeah, but why can't you do that?