Welcome everyone. My name is Ramesh Thomas. I work at Intel in the open source technology center. I've been working on the Zephyr project for about a year now. A year is a good time to stop and think what you're doing, and I did that. I find this has been one of the most interesting project I have worked on. Primarily because of the open source, you can easily get hooked to open source. There's a lot of development going on in this project now, and it is in a stage where a lot of things are getting shaped, and power management is one of them, and that makes it very interesting. I think it is a right time to be involved here. I've been mostly working on power management. Recently, I also introduced file systems into the project. Today, we'll be going into details of the APIs and the infrastructure and how it's getting used. Before that, it'll be useful to talk about the design, the reasons we did via the wave. They'll be designed certain things, the goals and the motivations. What are the problems we saw in the IoT environment in the power management, and how the Zephyr design was designed to meet those challenges. IoT could mean different things to different people depending on from which angle you're looking at and what are your interests. For some it would be the collection of data for data analytics that can help provide better services in the future. There could be other use cases like the connected wearable devices, like for example, for use in medical purpose, that can enable low-cost applications in remote areas. But all these things has one element I see is in common, and those are the tiny devices and the edge. Those are the things in the IoT, in the Internet of Things. I think without them, the concept may not be even possible. It is one of the reasons why this technology has been so widely adopted in almost all industries. One of the reason is it is easily deployable, because the size, the low-cost and the ease of setup, we don't have to run power lines to it. Some places may not even have power supplies, and the important point, it can be left unattended for months and years without having to recharge the battery, at least that is what it's supposed to be. Sometimes extending the battery life for a few more hours, it becomes critical. We take it for granted, sometimes we don't think about power management, but that's what when we look at our phone and everything, that's what it is. Sometimes even the few hours makes a huge difference. And no matter how much good your battery technology does, there will always be this requirement to extend it a little bit more. And when we do this, keep doing this, and we also extend our limit of our expectations of the battery life. And that, as I see, is more very fascinating. It enables us to think more possibilities. We can think of small computers, computers getting tinier and running on tiny sources, power sources, that can be tiny enough to even be injected into the human body to diagnose diseases. You don't have to hesitate to add features because sometimes we'll be concerned about the new features, more features will consume more power. So when you have a good power saving scheme in place, you can add more features into your product, and that will add value to your product. We talk about connectivity and security. Power management makes it even more reliable, so that it makes sure that it is available when you really actually need them. Hardware manufacturers are taking it very seriously. They're putting it, I know they'll put a lot of resources in this area. They're adding a lot of advanced power saving features. The software needs to take advantage of it. Along with those features, also an operating system, especially compared to a bare metal loop, operating system can do more. It can take advantage of this forcing features as well as other features. So it'll be a really useful, when you can take advantage of all the advancements in the SOC in the technology. So that's where Zephyr comes into the picture. So there has been studies mainly centered around the year 2020 around the number of devices, that connected intelligent devices. There are different numbers. This one I've found is 200 billion, but other ones I've found 50 billion. Whatever it is the number, it is in billions. So when you think about this numbers, it is reasonable to expect that there will be a lot of diversity in the, I mean, there'll be a lot of different ways of doing things. There will be multiple architectures, people coming from different background in these areas and this is, it's already there and it's going to get more diverse. So the Zephyr power management like the Zephyr RTOS, the core, the design goal, the main design goal is to have multiple architecture support. You write a power management solution in one architecture, you should be able to move it to another very easily. I've worked on the power management in the PC area. I find this approach taken for the IoT and embedded systems, the power management is a little different. It's no longer driven by hardware, kernel or specifications. It is actually use case driven and their usages are so diverse, so dynamic and varying. Even in the same application, the application may want to use a device in different times in performance mode, power saving mode or turn it off when it requires. And the decisions to do the power management is no longer centered in one area. You can, it'll be in multiple components. We'll make a decision, some may be doing a decision specific to SOC features, some may do with device features. So the power management infrastructure should be enabled, should be able to enable this coordination between these components, as well as it should be able to be allowed this give features tools, means to do this dynamic power saving using strategies. One thing we see when we look for a power management solution, that is maybe already the solutions already existing somewhere and you may want to get it into Zephyr. So now, when we want to do that, you will be looking at okay, I am used to doing certain things in a certain way, are those interfaces, there's kind of things available in Zephyr. So for that reason we give, we try to make it very flexible, so it is, you can find some matching, something or you can, we will be able to implement your own very easily. So that flexibility along with the various variety of options and another thing is the Zephyr OS does not enforce any one way of doing things. They have free, we have implementation, there are a lot of ways to fit it into the Zephyr power management infrastructure. So we'll see how that is done. We also need to maintain architect independence as well as do this in flexibility. So it has to be both girls has to be met. I have shown some components that are relevant to power management. Mostly we'll be talking about the device management, power management subsystem and some to some level degree, the kernel scheduler it has. And then of course, we'll be touching on other components also. While I'm at this slide, I can talk, as we talked about the architecture, independent nature of the Zephyr autos and the power management. How do we do it? So some components, this API device management, power management, they are, they explore the interfaces to the applications and those interfaces are device, independent and architecture independent. So the reason for that is the application that sits on it, I mean uses them, wouldn't have to change when you change your underlying different devices and SOCs. So now it may sound very difficult sometimes. So if I have to implement, I have to go through a lot of general generic interfaces. I have to put some, so that is not true. So all this architecture independent nature it is built into it. So if you write a driver, it automatically will fit into those things. And we give a lot of this flexibility to add SOC specific implementation. And you can just put all your SSCs even including the flows and then you can implement HAL, there's some HAL to export interface, give an interface or interface into the existing infrastructure or to give an interface to the application. So similarly for the devices, you can have shim layers. And so there's a lot of flexibility in that. So when we, this is a rough layout, an example layout. When you implement power management, and then you will be dealing with three components, the application which knows the devices the best, which is the one is using it knows when to turn it on or off or set it to low power mode. And there are these device drivers which know about the features of those devices. So it can utilize those, it knows how to set those power features. And then similarly there will be this SOC interface which as the utilizes the power saving features of the SOCs. So there are different power states that the hardware supports. Some of them may save more power while they'll have also have higher wake latencies. Well, there'll be different characteristics. So depending upon the time on the available for saving, doing a power management operation and the other conditions. So these components can make these decisions. So this all these components like as we saw that this is everywhere, all these components are making decisions in their own area. So all these components have to interact should be easily. So the power management subsystem along coordinating with the device management and the kernel, kernel to some extent will give the, will export the power management interface. So we talked about now the problems in the IoT power management area and how Zephyr approaches them from the high level. Now we'll go into the, actually how we do it. The power management, it can be seen in a category, the power management support features. So some of them are some feature that is the first one is built into the kernel, into kernel idling logic. We'll look at that first and then we'll go and the other classification is based on which area of the SOC does the power management happens. We'll go into that in detail now. So for the, for to know the, to understand the features in the kernel power saving feature, we need to take a quick look at the scheduler. There was a presentation on Tuesday where the kernel in detail of how the scheduling is done. You can refer to the recording or talk to someone in the Zephyr booth. But for this discussion, I will be covering it very briefly and only the areas that are relevant for the power management, especially this idle thread that we see here. We want to see how it gets into, it gets active. So the Zephyr, the scheduling, it is priority based and also round robin based on the equal priority thread. But for our discussion, the current discussion, we don't have to look at the round robin because we are only dealing with high priority or the priority based scheduling. So, and they are scheduled. So the threads whenever they go and wait on a semaphore or yield, they are marked non-runnable. And the next lower priority thread is scheduled. When all the threads like that are going to a wait state, finally there is one thread remaining and that is the idle thread. So this idle thread is the thread that is a special thread that is created with the lowest priority. And so the system power management is run, is implemented inside this thread. The idle thread is basically a simple loop. It is started at the beginning of the boot and it goes and waits in a CPU wait event, it uses one of the CPU's low power state. Whenever an event happens, any timer or any interrupt happens, this wake will be, it will be woken up. And when it woken up wakes up, the ISR gets executed and one of the things that the ISR, the way the kernel scheduler works is the ISR, after that it will pass on the control to the scheduler. And the scheduler, what it does is it checks is that any thread now ready to run. If a thread is ready to run, it will schedule that thread and if not, it will go back and schedule the idle thread again, so then this thing will continue. We have to, the Zephyr scheduler kernel is now tick based. It may, it will change in the future, right now it is tick based. So the timer is set in the periodic mode and every tick period there is an event and that generates an interrupt. So now if we don't do any of this power saving feature that we are going to cover in the next slide, what will happen here? At every tick, this will be woken up, even and thus all this kernel checking will be happening and it will again go back to, if there is no thread ready to run, it will go back and do the same thing. So all those processing is wasted and consumes power. To avoid that, we should not wake up until there is a thread ready to run. So how is this done in Zephyr? Whenever a thread goes to wait on a semaphore or yields, it puts itself in a queue with the timeout period and that queue is ordered in the sending order. For example, the first thread here is waited for two seconds. The second thread is waiting for seven seconds, two plus five, seven, and then you offset the difference and you keep adding them to the queue. Now we go back to this idle thread. Now we add some more components here. So we don't want to have the periodic timer keep waking us up. So what we do, we turn off the periodic mode timer because we saw that there is some thread that is not, there is no thread ready to run within that periodic mode timer period. So we turn off that and then we set the one-shot timer for the first wait period that we have. In this example, it's two seconds. So for that period, we no longer do those waking up. We just wait and if there is any other event comes, some other interrupts, it'll wake up. So if there is no other event, the timer will not unnecessarily wake it up. So we save power by doing this. One thing to note is the ISR that gets invoked as part of the event handling. And before it starts the schedule, it also turns back the periodic mode timer. So you'll be wondering what happens after this one shot, after time it will, if you don't start the periodic mode timer again, the system will be dead. So it starts the periodic mode timer again and then the things continue to go back to what it was, the periodic scheduling. So now we'll go into the system power and as we mentioned earlier, as I mentioned earlier, it is done inside the idle thread. So how do we do it? Now we saw that we have so much time here to idle. There's nothing to run. And what we use here, we use a CPU, wait on a CPU power state, but usually in this one, this feature we call it a tickless idle or event-based idling. The CPU power state feature we use has short wake latency and usually any power state feature that has a low wake latency also saves less power. But the associates have other features such as lot of, can save considerably lot more power. And the wake latency will be higher, but they can do more. If there is enough time to use any of those features, we should be using that instead. So to do that, the kernel in Zephyr by itself does not do any of those parts. So it provides the interface, the power management system provides an interface to someone implementing someone with some component that has the knowledge of the associates that it supports. It knows about the features. For that to implement power management, we export a hook function, the syssoc called syssoc suspend. This hook function will be implemented by that component. And when the system is about to go to idle, we call this hook with idle time. And that component can take a lot of decisions. They can know based on the time, it can do several power management operations. And we'll see how, what are the fort is the flow in the coming slides. Similar to that is a corresponding syssoc resume hook function. This function is kind of many times it is optional and it is a SOC specific implementation, depending on how you implement the wake from the sleep state. So we go back to the idle thread again. We saw that we do the same thing. We turn off the periodic mode timer, set the one-shot timer and call the hook function here. Now when this hook function suspend function is called, it can do two things. One is it can handle it and do some, set some power state or it can just, if it says the idle time is not enough or some other condition is not met, just return not handled. So when it's returns not handled, the tickless idle logic will use its own weight and do its own idle processing. If it returns handled, yes then it will skip the weight because there was a weight already done here. And the wake from that weight and the way the ISR then kicks in with the periodic mode timer and the scheduler is the same. And not only this awake in the weight win, it is also, if any other event comes in between, that also will stop the wait and it'll do the same thing. So before we see just a quick introduction of the categories of the power management features that can be done. In a typical SOC there are, we can categorize the power features as two categories. One is the CPU low power state. In this state, what the way discuss the is the CPU is clocked and retain most of its states. And after it is woken up, it resumes after the next instruction, after the instruction that set it into the low power state. So, and peripherals don't lose power. And the other category is the SOC deep sleep in which the CPU is power gated, it loses all states. More devices also lose states. And then the RAM is depending upon the SOC feature and the RAM may be retained or not retained. And the main category classification is done with the way the resume happens. If the CPU loses all its context, then the resume happens from the boot from the again from the reset vector. There can be different implementation like there may be boot ROM support to have a resume vector to handle those circuits. But generally the classification is based on the way where the resume path goes after the week. And there is also the power savings are different. The CPU low power states usually have less power saving, but it is also very quick in recovery. So if you have a few microseconds and you want to save power, you can use that. And if you have a long time to sleep, you can deep sleep and can save considerable power. And states like hibernate is expected to make the batteries last for more than 10 years. So quick flow, we already talked about it, but that is what I wanted to touch on what goes on inside. So first you set a wake event whenever it goes, because you know the time that was you have to idle. So you can set a wake event using any of this. It's typically used as some always on timer or RTC, the set of a wake event. And so that you can ensure that you wake up well within the idle time, so that you have enough time to do the recovery any other restorations or anything that you do so that you don't go fall right in the edge of the idle time, disrupting any of the scheduling. And you can, and it decides on different policies. There are some other subtle details that is very implementations, I think like very detailed, that is the system is suspend is entered using with the interest disabled. One of the things it has to make sure, ensure that it is when it comes back, comes out, interrupts are enabled. I saw in the idle thread, it is called within the idle thread. So that when it comes out, it has to be able to process in the next interrupts. So this is the resume we talked briefly, that is like implementation dependent. Let's see how it is used when it comes from the deep sleep wake. The deep sleep wake it comes from the reset vector S. So there are implementations. Some implementations may would have a different flow using a boot rom and some may go through the actual same path as the cold boot and then decide in order to, the idea is to restore all the context that was saved when the suspend happened and to resume exactly after the suspend part, suspend by the suspend. So it should for the suspend code, it should be seamless. It should not, it should just for, like it is containing from the next instruction. There is another place that the resume is used and which is to notify the wake event, the ISR, we saw the ISR when it comes up, it will start the schedule and the scheduler will can switch to another task. So in some architectures and in sub power states, for example, C1, when you go to the power states, C1, you have to atomically enable interrupts and then go to that halt. And when the wake happens, the control first goes to the ISR. So it doesn't go to the instruction after following out. So what happens if you have any change in each state in the suspend, you need to be, before the scheduler schedules another task, you are given a chance to restore whatever. And this, but there are other CPU power states which may not need it because which can continue after the next instruction without enabling the interrupts. So it is optional. And if you don't want it to be called, you can call this API. So that will, you can save some cycles but not getting it getting called. So device management. This is the, there is the, between the last to Zephyr 1.5 and now the next, coming in the next 1.6, we made major enhancements in this area. So we found that this is one of the very important areas in the embedded system and IoT power management. So we've added, it's already in master. It's going to, will be in there in 1.6. So main per reason it was added because many times the power, before that, the device power management was done only when the system goes to idle in the CIS SOC suspension. But that is not a really practical use case. The devices, the applications may be running with the CPU may be active, but the devices you may have to, you can always save power by turning it or turning some devices off or putting them into low power state. So to give that, we created a new infrastructure that allows that to do that. As all APIs in Zephyr, we export architecture and device independent API.  And so the, and the device drivers which are knows about the device's specific features can map its own features to any of these power states. The classification is done based on what we saw the actual use cases from applications. The applications would look for what, when it wants to select which power state to do, it will look how much time will it take for it to how much power is saved and how much it takes to wake up how much of the latency. So this classifications done in the, in terms of order of the state it is returned. If the more state it loses, the more time it takes for it to recover and allow to do a lot of saves and restores that will take time and it will need to be done if you have more time. Device power management is integrated with the device management interfaces. So and the one of the main thing is that every device has a device structure in there. So the drivers in the maintain for the drivers that support is for each device they support, they maintain the device state in that context structure. And then there are APIs to set and get those power state. And one feature is one, another additional thing that we had was there is no restriction on which component calls this the application drivers or the interface that we saw earlier, they all can set driver the device's power states. So the history of this device power management. First we had this, only we had the central mode as I mentioned it was done only in the system. So now we have this other mode. So that opens up a lot of new possibilities here. And these are the, so the, as I mentioned, the device, every device is a, that's for every device that is a device structure. So whenever all APIs in the device management interface requires the device structure. So the first API gets all the device structure, the array of device structures in the system and the next two are straightforward. And the last ones are something that we added earlier, mainly for the central mode but can be used any other modes also. So the devices when they start a hardware transaction which does not, should not be interrupted by a deep sleep because deep sleep will turn off power to the devices. To be not interrupted, they can set for each device that is a bit. So we'll call the base is that, this set and we see clear. And the component that is doing the power trying to go to deep sleep, we'll check this, we'll check any device or check a specific device. And before deciding whether to go to deep sleep or not. And this is how the drivers implement this interface. They implement the set and get power state and we use a control function method. And that is, but the APIs all go through the device, the device management areas. And so which is, and the applications don't see this directly. So we can go through some examples now to see how some of these things are done. So first the distributed model, how to do it. So the application, now here in this example, we have a UART and the SPI device. The application, it finds that it is done with the UART, it doesn't want to use the UART for now. So it calls that state suspend. So it could do other, other power states also. In this example, we'll set it to, so that your device actually goes off. And it will save state and goes off. And then the applications goes and waits on some semaphore or yields. And we saw in the previous slides what happens when the threads yield. Assuming the application has one thread. All the threads in the system yields. This is marked runnable, not runnable. The kernel will schedule the idle thread. So it goes to the idle thread. And we saw in the idle thread, it will turn off the periodic mode timer and it'll go to the idling logic. So in that, at that time, it will call the SoC suspend. And now the component that knows about the SoC features will be implementing the SoC suspend. We'll get this call. Now this component, in this example, it is, it checks, it doesn't want to go to deep sleep or any power state. If it is, not all the devices are already off. So it checks every, all device, it has some way to check all the devices are off. And if it is off, then it'll go to deep sleep. But here it is not. So it just returns. It could also go to some CPU for low power state which will not turn off those devices. And then the application again goes to, then it sees that the SPI is also, it has done with it and it says it turns that off also. Now next time it goes to the yields, the now, the SoC interface sees that all the devices are off and also it sees that time is good to enough to go to a deep sleep or state. So it sets the deep sleep. And the second example is to show the central mode. Now here, the application doesn't do much. It just needs, it just does yield. I mean, in reality, there will be other interfaces between the application and the SoC interface. But in this example, for this flow, we'll see that it doesn't do any device permit by itself, it just yields. And the idle thread sees the calls as a suspend. And now here the SoC interface should have some way of knowing all the devices. And one thing it can do is call the busy check functions to check if any of the, any of these devices are busy or if not, it can just turn off all the devices one by one and set the call this and the devices will save the states and go to deep sleep depending upon is the time available. And when the resume happens, it has the responsibility to again turn active, turn the devices back on. So one problem with this, this component needs to have a lot of knowledge about all these devices. So it may not be really possible at that time but enough for it to know that which device it should turn it back on here. Maybe the what was not even, it's not even being used but in this model, unless there is a way for the application to tell this interface, there may, it can be designed. So it can, the application can always, there are several communication means in this affair, the message box, mailbox and other methods to communicate. So it can always keep that informed to make a informed decision. The last example is just to show that this can be, this device PM interface can be called from multiple components. For example, the flash is dependent on the SPI. Now the application turns off flash. Now the flash knows that it depends on the SPI. So it calls set state suspend on the SPI. Now the SPI driver can decide if there are any other devices that is using it. If not, then it can decide, it can go to off. Otherwise it'll ignore this call. Similarly, when the application turns it back on, the flash can turn SPI. So this is one way to use this model.  So there's a lot of ways, lot of potential to use this infrastructure. So a quick way, this is how to add a new support if you have a new board or SSC. So this is like same as any application in the Zephyr. If you check whether your board, SOC, CPU arc is already configured, supported. If not, you can quickly add them. And then using the configuration mechanism, you can enable and disable features. So if you have multiple SOCs going on, some SOCs you don't want to enable some features as of now because you are in the middle of development. You can, you have the flexibility. You can turn off, for example, deep sleep, for instance. And then you implement this hooks in the SOC interface component. And then we add the drivers and the application and they all somehow, you should have the same, your bond management, the schemes. So before we go back to somebody, we just quickly touch on something, things that are coming up. There's a lot of development going on in the kernel, yes, you might have heard in that Tuesday presentation. One area thing is coming is the Nicholas kernel. And that will have had more power saving features. And along with that, there will be different time now. This is the past takes here in the Nicholas kernel, it could be possible to pass a wall time. Currently we have the samples that we have is kind of based on the old model of the central model. And we also put clubbed everything in one application, like it's called the power management application. We got a lot of feedback saying that that is very confusing because usually the, so the power management is handled in some component like the BSP or some component that is in the, which is deal to the SOCs that we just, so then we are planning to add new examples in that way, so removing from the application, putting in this and add for different architectures. Currently the one that is there is for Cork AC. So we're going to add more for these different architectures and the distributed device examples will be part of it. So to summarize, it is the multi architecture is the supporting goal is the main goal of the power management design and we provide the way to inside the kernels idling feature from there, you can, like when you implement the Hocus Ascotas, you are part of the kernel logic. And the device power management is the new thing that is added. And then I can ask, I take questions now. Yeah, so the second question I'll come, I need more clarification, but the first one, yeah, we did look at that the latencies that is involved in the particular side of switching the timers, right? But you are pointing at the switching timers between the periodic and one shot. Yes, we are trying to, we are looking at different timer using timers and some other logic improvements in that area, we are looking at that as well. And the second question, can I use that the CISOSI suspend needs to know about the, yeah, yeah, yeah, this one, yeah. Oh, yeah, right, right, yeah, so this is just an example. So as I mentioned, there could be interactions, usually in the real case, there will be interactions between the application and the component. There will be knowledge of what has happened, what it is, it'll keep updating some state of what are those devices. So there should be a way for it to know immediately what exactly is the state of all the devices at this point. So that is implementation dependent. So instead of calling get state of each of these devices, we want to some way of knowing that some devices, all the devices are ready to, yeah, so yeah, we'll look at that, something like that. Especially you're talking about not just any, okay, well, yeah, but we're abstraction, yes, I got the point, yeah. Thanks, any question, yes. Yeah, so that is also, yeah, it has to be, there are interfaces, we have clock control interface, there is a separate clock control in the Zephyr. So it provides those features to control the clocks. There is no, currently there's like a notification of, maybe I can get back to you, someone in the Zephyr booth can explain, get more into that. So, any question or any clarifications or any of the slides, I can go back and, we have got some time, so I can also, if you want any more clarification of any of slides, I can do that too. Right, depends on the SPR driver implementation. So it is an example to show that, so if the SPR driver implements a reference count, yes, that's way to know, you can, yeah, yeah, when you get the, so the drivers implement the setState function. So when the setState is called, they get the control and they can go around, go check all their clients or whoever is using them. And if any, it is up to the driver implementation, how it maintains this. Any questions? Okay, if you have no questions, thank you. Thank you for attending.


The Tiger. Financial News Network. News Update.  Gold contract down $29, trade at $19.93. We had Silver down $0.37, $23.92, an ounce of light sweet crude off $0.52, $70.59 a barrel, notes and bonds. A 10-year note, down $7.06, trade at $1.15, a 30-year off $15 at $1.29, $11 and $1.00. $1.75, trade at $1.02, $6.09. The Euro is at a price point of $108, the end's at $1.36, and the British pound's at $1.24 to $1.00. We get over to the, you know, we're talking about the high volume lows out here, bottom line, the other get hit, and what helped them get hit for sure folks is that NBC had come out and said that Biden was gonna basically, let's see, he's going to Japan for sure, because that's a G7, but he's probably gonna can Australia and a couple other places that he's going to, he's gonna cut, shot the trip. So cutting shot the trip flat out means what? Means that, you know, we're going down to the last day on this deal. We go look at the spy and at an inside day in the spy. We take a look at this, you know, you're down to 70, but you're still inside from yesterday. We go look at the cues, the cues are the same type of setup we have inside the cues. Well, the cues actually rejected its high. Yep, 37 cents. That's, that's, if you're still at high, 327. And it's all, it's all gonna be about this dollar though. This dollar looks to me like 106 is on the agenda. We'll see if it shakes out like that. What happened today is that it got down to 102, 200, rejected it, closed 300 points higher than it. And that's after the reason that I'm thinking it's going to go there. Well, first off, the swing point is the 105, 900. And then what you have is this folks, is that we've got over just barely, but you've got over this base that has been built and that base was built going all the way back to March 15th, you know. So when you have something like that, that's a long base that did not break its low. The low was established in January. So you have higher lows all the way up. And now that was yesterday, no, two days ago, Friday was the first time we had a higher high. That's telling me, guess what, the dollar's on the move again. Have a great night folks. Have a safe night. Come back and visit Tommy tomorrow morning. Kicks us off 9am. Great show, folks. Wee! Yeah, look at him, folks.


Good morning everybody. I'm not too sure how to Start this video today Yesterday, we ended off our vlog saying that there's some changes coming that I had to go into the office today and Have a meeting and the changes were coming and that's sort of where we left that and Changes are definitely a foot Oh, I can't get comfortable. I've been walking all morning I've been as you know, I've been sharing with you Stress levels have been Higher than they ought to be and I've been struggling with this truck With maintenance of it just like everybody else, you know, my story is not much different than a lot of truckers so I Don't want to act or sound like I'm Going through something that no one else is but it was really tough and Got ourselves into a little bit of a pickle a little bit of debt keeping this truck running and Had to come to the hard decision of Returning the lease on this truck It wasn't an easy decision to come by been back and forth thinking about it for Well, I guess the last few weeks last month as I was nearing the end of my rope and I Found the end of the rope. I found the wall. However, you want to look at it where I just could not go on any further So This was a lease purchase With the option To end the lease like I've done and I've Didn't want to I wanted to hold on to it the longest time but it's come to that situation where that's what we had to do and Here we are This truck will be moved on to a regional fleet someone else will be driving it and it will be staying closer to home as the miles are getting high on it and As it's been shown to be getting a little cranky You're gonna be staying a little closer to home. I will be jumping into a Newer, I believe it's going to be a Peterbilt. I will not own it I will be driving it as a driver But I am happy with the way all the the cards landed and how everything worked out I think we worked out a good deal. They're very generous and very helpful and Very thankful to be where I am working with the people that I work with that treat you like family and Take care of you and help you when you're having a hard time Which they've done now and they've done in the past So very thankful for that and We're gonna keep on making videos here We're gonna keep the vlog going but you will see me getting into a new truck on our next trip today is Friday and On Monday, I come in I'll be switching trucks and moving all my stuff over and We'll be returning to van division and Going back to where we were for the first You know for the last six years really well, I've been doing flatbeds now for three years And it's been great. I mean the people I work with are fantastic the it was fun I learned a lot. I had great experiences You know, we pulled over dimensional freight pulled all kinds of different freight I've learned a lot my skill set has gone through the roof I have learned a lot of new skills that I'm very happy to say I now possess possess those skills But in all honesty my heart wasn't in it anymore and my heart has always sort of been with my old routes And it's not the work. It's not the tarping or the strapping sure that takes up a lot of time and But it was satisfying when you tie down a good load right you tie down a good load and Be proud of it pulling it down the road But to be honest my heart really wasn't in Flatbeds So for the meantime anyways, maybe we'll see what happens in the future I mean, I'm only 32 so I've got a lot of life ahead of me yet. See what happens in the future But for now, I've made the decision to return to driving a Truck that I don't own so as a company driver On van division back to my old routes that I did for six years. I liked it. I like that a lot My favorite part about the job is driving down the highway you can call me a steering wheel holder if you want to What it's not like that's not true. I'm a steering wheel holder. What? But it's not like I don't like I haven't explored other other industries different divisions or Explored by industries. I mean like different different kinds of freight I'm happy with where I'm at and I'm happy with what the future looks like So I wanted to let you know that we've already been talking for six minutes here.  I don't like change. I like I'm a conservative.  It makes me nervous It makes me anxious. So this morning. I went for a good long walk cleared my head prayed about it and I'm happy with I think I made the right decision. I'm happy with This change right now at this point in my life. So we'll see where it takes us I'm gonna take you with me though. So things are gonna change. Okay, but not much. We're still gonna be trucking We're just gonna be on van division. We're gonna be seeing a little bit of different sites We're gonna be doing a little bit of different work and we'll be in a different truck and The dream of me owning my Kenworth W 900 We'll have to return back to the back burner Maybe one day down the road the stars will align just right and we can get into a Kenworth W 900 But I'll tell you something right now in all honesty the stars are not aligned. It is not the time it is not the time and I'm not going to bury myself in debt that I can't pay back and Lose everything chasing my dream. I've got more than just myself to think of I have a family at home. I Have a wife. I have we have dogs to take care of and we are working on starting a family having a child and This isn't the time to go risking it all For my dream of owning a fancy shiny Kenworth W 900 as awesome as it would be The stars have not aligned right now. We'll see like I said, I'm only 32 got a lot of career ahead of me yet Maybe sometime in the future. Maybe it will we'll see what happens for now. This is where we're at So now that I've filled you in with everything I'm just waiting for Brit to come and pick me up because the truck's gonna stay here because it broke again. I Have a leaking wheel seal you want to see it? Come on. Let's show you what what broke today. Let's show you I'm just gonna go around. It's the front drive axle Back here on the inside. Alright, so we're gonna crawl in here. I'll show you what happened. Take a look at this mess Okay, I think a look at this mess Look at that. You see that All that oil dripping down all around the rim there Yep That happened yesterday some time because I did my pre-trip. It was fine Checked it halfway through my day. It was fine got back to the yard did my post trip That was there We're crying out loud. I guess we got to go out with a bang, right? Maybe she's angry that I'm giving her away I'm fine with that. Whatever. I'm angry with her.  Tell you what My other wife Brit she won out. She gets me all to herself now This truck was always my second wife. Anyways, you know, she's always number two She never liked me that much. She didn't treat me very well So it was an abusive relationship. I was getting abused and now The paperwork has been finalized We're breaking up and you know, I have this giant feeling of relief just After I walked out of the office and I just took a deep breath and it's a beautiful day outside It's a little like overcast and rainy. It looks like it's gonna get rainy But it's still compared to what we we were used to in Manitoba. It's a beautiful day outside When I just took a deep breath and just oh, thank you God I'm not kidding. I was joking around before this is an abusive relationship. But no, this this was an abusive relationship this truck was Hammering me daily with problems again and again and again and it I've replaced so much stuff on this truck and that was the problem right because I had invested so much money into this truck already That I wanted to keep going but every time I invested a few thousand dollars into it another few thousand dollar thing would break So I'd fix that and then the next thing and then the next thing and the next thing it all happened at once Which is what made it so difficult but You know what? It's gonna be all right. We're okay We got a good team of people here. We got a good family here and They're taking care of me. Thank God. Thank God for the people here So on Monday like I said Monday, we're getting into a new truck That'll be a fun video to make So tune into that video for sure. Maybe I'll make some videos. I'm going home for the weekend now to sort of just relax and let loose because finally this big weight I've been carrying on my shoulders since January it's just It feels like it's just floated away and I sort of just want to go and Kick this truck in the grill right in the teeth. Just give her a good kick. I Won't do that though because it's not my truck anymore, but you know in my mind. That's what I'm doing Kick her in the teeth Sayonara, bye-bye Moving on to different things


Hi everyone. Thanks for coming today. My name is Gracie Gregory. I am the director of communications and marketing at the Rest Foundation. I do not typically wear an eye patch. I gave myself a paper cut next to my eye this morning, which is an incredibly analog injury. So the irony of that is not lost on me at this conference. Nice to meet you all. Thank you for coming. Hi everyone. Again, thank you all for coming. I'm Rebecca Rumble. I am the executive director and CEO of the Rest Foundation. And yeah, I'm really excited to talk to you all today about developing strategy. I think I need glasses for this now. So just to give you a little bit of background, the Rest Foundation is a pretty young foundation. We have been constituted for about two years, but in terms of like actual operations, we've probably only had about 18 months. So we've had to get going pretty quickly. We've had to kind of figure out a lot of our priorities and, you know, rest is really hot right now, if you don't know. So yeah, we've really had to kind of get going really, really quickly, try and figure out an awful lot of stuff at the same time as kind of hiring people, figuring out our friend and situation and what our priorities are. So this has been a bit of a baptism of fire for like the whole staff team, trying to figure out a strategy instead of just kind of treading water and firefighting every five minutes. So hopefully we've got some useful lessons that we can share with you today. So just as a quick background, open source foundations are kind of at the same time much of a muchness, but all unique in their own little ways. In open source, we have a tendency to like to make things from scratch rather than just use the wheel that's already been invented. So our governance is slightly different from other open source foundations, but still, you know, the main principles of community and corporates and trying to get everyone together in consensus. So we're independent. We are funded by our members. We're funded by philanthropic bodies and other grant making bodies. And yeah, we're here to steward the language. So we're not here to dictate. We're here to make sure that the legal assets, the trademarks, for instance, are stewarded right. We're here to make sure that the project and the maintainers that support that and develop the language are well supported and well funded and that gaps in the ecosystem are plugged and that the infrastructure upon which everything is built is well funded as well. And so yeah, our mission is, you know, to make sure that the Rust language is safe, secure, sustainable, and that computer systems around the world are more secure through using it. So yeah, now that we've sort of laid that out a bit, sort of want to talk about where the Rust foundation sits within the Rust ecosystem. So obviously this is an important consideration for us as the Rust foundation, but why should it matter to those of you who are here today? Possibly hopefully you're interested in Rust and the Rust foundation, but also, you know, you're probably here for takeaways for your own organizations, your own spaces, your own projects. So I think we really see this understanding as really important context as you're sort of navigating the many opinions that you're probably faced with. The many perspectives that you're faced with in your own spaces. So understanding this breakdown of exactly where we sit in our own ecosystem really helped us see exactly how much we need a strategy. So sort of going into the breakdown, obviously we have the Rust project. So this is the hardworking group of maintainers and leaders building and maintaining the Rust language. Closely related, we have the community which is composed of contributors, users, you know, that means both organizations using the language and also individuals using and supporting Rust. And then of course you have us, the Rust foundation. We are an independent nonprofit serving as essentially the custodian of the language. We really provide support structures and services that allow Rust to thrive. And again, going through all of this as a preliminary exercise of just really mapping out where we sit is was really essential in shaping our strategy, which we'll talk to you about today. Yeah, again, real basics. And I'm assuming none of this will be a big surprise to anyone. 501C6, there was always a conversation about whether we wanted to be a 501C3 or 501C6. 501C3 is completely chargeably focused. That's a lot more paperwork with a 501C3. 501C6 is a trade association. So it's not quite as heavy on the bureaucracy and it still allows us to act as a nonprofit and to serve our members. We're essentially a kind of trade association. As I said, we're funded by our member organizations amongst other things. We also get a lot of in kind things given to us run by a small team of foundation staff. There are 10 of us, so we're not huge. We're governed by a board of directors. We have member directors. These are the people that are placed on the board by our Platinum members. We also have project directors, so a core group of maintainers from the project who were voted in by the project. And they have equal decision making capacity on the board. We also have a system of supermajority on the board so that the voices of the project don't get squeezed out by corporate interests. Sorry, we strive to do our work in the open as well. So we try and do as much consensus based work as possible and we try to be as transparent as possible about what we're doing. Yeah, so what we do is we'll sort of walk you through the primary areas where we focus, which we've already started to do. So really first up, we provide the infrastructure that's critical to the rest ecosystem and we also help maintain and improve it. We provide resources and guidance to advance rest security as well, related to the first point, infrastructure and security. We really tackle the behind the scenes legal and administrative work that would otherwise bog down the project and community and really distract from their essential focus of building and maintaining a valuable language. We also advocate for and support the rest language through things like event sponsorships grants funding. And we also forge industry partnerships outreach efforts standardization and adoption efforts, all of which make it easier for organizations and for people to learn and to implement rest. And I think I might have been behind a bullet so sorry about that vision issues today. But let's sort of talk about the broader perspective of these activities, not again, not simply to stand up here as the rest foundation to talk about ourselves, but really to help you understand how our strategy came together and some of the takeaways for you, having a clear understanding of all of this will really allow you to build better relationships within your ecosystems and anticipate strategic risks. So our perennial goal with infrastructure and security within the rest ecosystem is to really help maintain and advance the progression of rest because we see it as a very critical programming language as it seems an increasing number of organizations, people, communities do. Our legal and administrative goals are really centered around supporting rest to ensure its long term success. So that includes things like legal compliance, very, very important, fundraising, managing and allocating the funds that we raise, managing a staff to support all of our activities, complying with legal regulations, etc. We really, we really try to run an organization that's well managed, that's effective and again compliant while taking that background grunt work off of the plates of the project and community. Our community advocacy work serves really to nurture and support both the existing and the future base of rest talent, and we really try to do this through education and training efforts which we're definitely working on more in our next phase which we'll talk about, and also broader community support initiatives and special funding programs. We are also very actively focused on advocating for rest in relevant industry forms, much like this one, through storytelling about rest, and by developing resources that really outline the benefits of rest through really important industry partnerships with other organizations and companies that are aligned with the mission of rest. I really see driving adoption in the enterprise in the public sector across the global community as one of our most essential roles. The rest foundation wants to make it as strategic as possible for as many people, groups, companies, government organizations, agencies as possible to adopt rest and to reap its benefits which include, as some of you might know, memory safety, performance, reliability. It's quote unquote as simple as that. That's simple though. So yeah, those are kind of, you know, those are kind of the headings we've grouped roughly what we do, what we thought we should do, what we have been kind of plowing along doing thus far. That's how we kind of think, okay, these are roughly things, but just because this is kind of what we do, it doesn't necessarily mean that this is a strategic approach to do it in language, making sure that we are sustainable, making sure that we're delivering for the future. But we do kind of think these are all roughly things we do need to continue doing. It all costs money. Any kind of like strategic effort, any kind of planning that we're doing, we want to be strategic but we need to also be strategic with how we're raising our funds and how we're spending them. And not just actual cash dollars, but all of that in kind support that we rely on as a foundation to provide the foundations for us to be built and to grow. So these are, it's really, really important as part of the strategy, not just to think, okay, we want to do this or we need to do this. It's like, okay, what are the financial resource constraints that are going to shape how we approach this in the future. So these are kind of the strategic considerations that we were asking ourselves when we were developing the strategy. You know, as I said, finances, that's a really, really big consideration. How is that, how is the kind of external big world financial and resource landscape going to exert pressure on what we are able to do, what we're able to afford to do, and how we can kind of plan to sustain, maintain or grow in the future. And you know, I have anyone here probably that runs a project or an organization knows that you probably have a really long list of stuff you'd love to do that you'd be really excited to roll your sleeves up and get stuck into. But there's only so many hours in the day, there's only so many people that you can enlist. You know, there are a lot of resource constraints. So like those are big world stuff like at the moment, you know, the kind of mini tech recession and a lot of redundancies. The cash restriction has implications. I'm not sure we could have foreseen that two years ago, maybe some people could, I don't know. But yeah, we have to kind of build this into our kind of strategic planning so that we're not just kind of, oh yeah, growth is going to be exponential, and it's going to be fine. We also really need to know who our stakeholders are, you know, not just, okay, the project maintainers. Yes, they are probably the most important people. Without them, there's no rest. But there are a bunch of other people as well that are, you know, deeply involved and deeply concerned and invested in the language in the foundation and in where it's going from here. We need to kind of build their needs and their expectations and, you know, their requirements if their governments, you know, their regulations, we need to think about all of these things too. And we want to be cognizant of where we want to be in the future as well. You know, it's easy to say, well, you know, we're just here to steward, but to what end, you know, are we here to kind of keep the status quo? That's easier said than done. And even if we want to just keep the status quo, that actually requires some strategic foresight, right, to avoid being kind of sent off on a tangent or down a rabbit hole. So really, you know, when we're kind of talking and developing this strategy, trying to figure out, okay, what is our vision? What does our mission look like in three, five, 10 years time? Because the world's going to be a very different place. So market forces, I think the policy focus has changed so massively over the last couple of years. Security in particular. I don't know how many of you have been coming to this conference or similar ones for a few years, but like four or five years ago, supply chain security was barely a thing. It was a kind of little bolt on one session right at the end of the conference. It's now one of the biggest things that the people are concerned about talking about governments have woken up to this and they now want to speak to us and they now want to look at regulations and other kind of structural mechanisms to ensure consumer protection. There's there's growing commitment from enterprises as well. There's lots and lots of leadership decision making at the moment that it has an interest in open source and how we are conducting ourselves. And there's just a lot of a lot of new need, you know, there's a lot of tech out there and there's a lot of people that are interested in, you know, for us, you know, as the rust foundation rust is something that people are super interested in. And there's a lot of potential experimentation and a lot of stuff that, you know, we simply, we know that there's some cool exciting stuff possibly coming down the road, but we're not quite sure what it is yet. So again, we kind of talked a little bit earlier about, okay, well, these are the things we do. I think what we what we needed to do when we were trying to figure out our strategy and when we were talking to our stakeholders is try and find a difference between okay what's absolutely mission critical like what if we stopped funding X or we stopped doing why would that mean that there was no point in us existing, you know, if we had to scale everything back, if we have to go completely back to basics, if we were going back to just being volunteers, and not having any paid stuff, what are the things we would still have to make sure existed for rust to be a thing. So we had to kind of identify, okay, yeah, like infrastructure, for instance, if we can't support crates, there's no rust. So, you know, that's kind of got to go right at the top of this is absolutely absolutely critical, just maintaining it. But, you know, how can we improve it if that's one of our mission critical things. Again, lots of these things, like from the top, these are kind of our most important things, these are the things that will make us sustainable, it will, it will maintain a certain level of quality. And like coming down these against that kind of wish list I was talking about like things like much more advocacy, I mean advocacy, like, how long is a piece of string, you do a bit of advocacy, you do a buttload of advocacy. But these are things that we can, we can make bigger or smaller, depending on what kind of resources we have available. But yeah, these are kind of like, okay, identify your mission critical, and then identify what is nice to have, what will support the mission critical stuff to be better or higher quality, and go from there. So, also, our stakeholders, in other words, who has a voice in the conversation of rust's use, its growth, its adoption, its success, whose perspectives are we considering on an ongoing basis. I won't read through this whole list because it's right there, but I do just want to say at the top that it's really important to consider this when you're doing the work of building a long term strategy because again it allows you to better understand the system's needs and its priorities, and having this clear understanding really allows you to build better relationships and anticipate strategic risks. So, this breakdown is really related to that slide that I shared earlier about, you know, the differences and similarities between the Rust project, the community, the foundation. All parties listed here are stakeholders in regards to the general work we do on this ongoing basis, but in terms of the stakeholders that we worked with in the process of really drafting our three to five year strategy, we developed it first within our team, within the Rust Foundation team, and then we involved our board of directors, the Rust project directors that also serve as our board members, as part of our board members, and leaders within the Rust project. It was important to us to sort of sketch out our general plan that I'll walk through in a minute within the foundation team and sort of share it for comment within the groups I just mentioned, sort of first before sharing it publicly, mainly because although of course we strive for transparency and we do our work in the open, we wanted to involve a small group because it really allowed us to gather action oriented feedback and make adjustments to our plan in a really short time frame, which when you have many perspectives, requests, opinions being shared with you as a foundation, as an organization, it's important to sort of set up that strategy in an expedient way and put it in place so you can act upon it. So we really wanted to have this whole process be very action oriented, and we plan to sort of share the strategy more widely very soon. So I always end up talking about the funding landscape, like my only job is just to go around and ask people for money. Anyone that manages the project here knows this right. So, I mean currently, you know, as we, as we kind of spun up the foundation, you know, we had a mix of membership fees that was like the primary source of funding for us, but we've also had like a few grants. And we, in turn, you know, we give sort of grants and fellowships to like budding maintainers. We support the project through employing, directly employing engineers for kind of critical parts of the project and the infrastructure and, you know, have in-kind resources. One of the biggest problems for any organization, foundation, whatever project is like protecting that core funding. Core funding is always a risk. You know, you can be fantastically well funded one year and then all of a sudden, oh, it's 2023, there's a mini tech recession and actually the funders that you have relied on for years are all of a sudden thinking, oh, the optics aren't great for us throwing money at you while we're making redundancies. So funding is always a little bit of a risk and it's something that it's really, really difficult to secure for like more than like a yearly basis. Very few of our supporters will say, well, give you three years funding, which would give us so much more security and ability to plan strategically. You're always kind of thinking, oh, it's only a year. So even down to things like recruiting, you know, it's really difficult to recruit really good people. When you can, when you have to honestly say to them, look, I want to keep you for more than a year, but I can't guarantee it because my funding only gets renewed on an annual basis. So it's a risk and it's something that is kind of to the detriment of long-term strategy planning. Again, all of these, you know, big world funding issues are a problem. We're also, you know, for the Rust Foundation, it's super that so many people are interested and excited about Rust and experimenting. You know, governments are kind of going around saying, yeah, memory safety, use a memory safety language. Yes, Rust, that still costs us money. You know, oh, is this perennial thing that open source is free, but it's not really free. We're still kind of having to pay for all of that infrastructure and maintain and manage it. So whilst it's great that people want to use it and we want to be there for you, we, you know, have to figure into our planning that we have to pay for all of this growth. And yeah, there's, there's, there's very, there's myriad things, but yeah, funding kind of colors everything that we're thinking about in terms of strategy. And when we're talking to our stakeholders, you know, that there is a balance between even our partners who are very generous and who, you know, give us money as saying, well, we really want you to do X, but we can't give you the money for it until next year. Okay, well come talk to me next year then. And in terms of that kind of, you know, the further away you get in terms of looking into the future, your crystal ball and where we want to be, the harder it gets to be really detailed. I think with a strategic plan, the best thing is to not really be too detailed, you know, have a vision of how you want the world to see you. When we were doing this, it was, it was really difficult. When we were talking to our partners and our stakeholders, they would give us a shopping list.  And it's like, great, yes, we can build that into a strategy, but that's not the strategy, because that's not the, this is where we want to be an X number of years. And what we want is, we want the language to be really high quality and supported by XYZ kind of regulation or specification or whatever. We want it to be recognized by these agencies, NIST for instance, and you know, that means that certain conditions have to be meant to be there. We're trying to kind of get a bigger picture of how we want the world to see who we are in this point. What we want the world to think of the rest language, you know, is it delivering on all the promises that we're making about it right now? And how is the world approaching the language and the foundation in terms of that narrative? So now that we've sort of walked through those five questions that we asked ourselves and we set out to build this strategy, you know, you sort of have an idea of where we started when we began flushing it out. This foundational work that we did, no pun intended, really allowed us to more clearly see where our focus needed to be directed in the short, medium, and the longer term. And where we landed was really on five pillars of strategic action that guide our financial and resource investment decisions. And so those are as follows, as you can guess, because we've talked about it so far a lot, infrastructure and ecosystem management, community development, my personal favorite and area of expertise, storytelling, member investment, and expert stewardship. So as I've mentioned earlier, we have not yet published our three to five year strategy. So today is a bit of a worldwide exclusive, maybe. But we will be doing that soon. And so today, I'll really give you a brief tour of where we landed thanks to this focus planning and those considerations that we laid out and that we did in collaboration with the stakeholders that we mentioned. So I'll sort of take it pillar by pillar and don't strain to read this because there's a lot of information there. And again, we will be sharing this very soon. So our first pillar, infrastructure and ecosystem management. So our vision here is really for the infrastructure supporting us to be well managed to be financially sustainable, to be scalable, and to be coherent. The work associated with this is includes things like our security initiative, which is an effort that we launched last year with with very generous support from Alpha Omega from open SSF and from J frog who also who also donated in kind support. So thank you to both of them. Another another piece of associated work is is developing strong cloud infrastructure and fundraising for very critical infrastructures infrastructure services to the rest project that are reliable and again scalable. So on to the next pillar, community development. Our goal here for the next three to five years is for the global rest community to be to be diverse, inclusive, and really composed of a well supported staff, well supported contributors, maintainers and stakeholders. And some of the breakdown of how we hope to achieve this is through targeted support and development programs so that includes things like our community grants program and our fellowships, which are part of that. Education and training programs and work and support for moderators within the rest project and similar things like that. For the storytelling pillar. Our primary goal here is for the rest language and it's many, many benefits to be well known and well understood, which is very important. This needs to be not only within the global software community but also by regulators by by governments worldwide by regulatory bodies, and also for the rest foundation to be recognized as a recognizable steward for this work. And the way we plan to fulfill this is through very focused marketing and communications work, including the development of a robust thought leadership program, as well as a as a rust evangelism strategy. And all of this is very dependent on strong strategic channels of communication with regular activity. On to member investment. Our goal is for corporate members of the rest foundation to be engaged and very active in the work of the foundation. And also for the foundation to play an active role in identifying and also addressing key development opportunities within this ecosystem. We want to ensure that we're also providing them with with really high valuable high value resources so they can do this work and really show up to the full ability of their role. I would also just like to do a shameless plug here. If your organization is interested in in membership at the rest foundation please come up and see us I might not be able to see you, but we would love to talk to you. And finally, expert stewardship. Our vision is really to demonstrate holistic up and down excellence in management and in administration as a nonprofit to be considered influential and effective and of course professional. And this can really only happen if our policies and our processes continue to evolve as we scale which we continue to do and we intend to keep doing. We also, this is very important have to meet our regulatory and our legal obligations that's ongoing work it requires a lot of attention again this is an area that we ideally we're taking this work off of the rest community and the rest project. Our staff needs to be and feel well supported, our budget needs to be stable and well funded, and our team and our board need to feel really empowered to act as vocal advocates for rest and for the foundation as well. Easy peasy right. Yeah, so as you can see, we were quite ambitious like that the way we ended up structuring those pillars. It was roughly similar to how we started out at the beginning of the process like trying to roughly group some of our kind of work. But the difference is that when we started out was like right okay what are we doing right okay we're doing a bit of this we're doing a bit of that. We're definitely doing that because that's really important. We mustn't forget that. But there was a lot of stuff kind of underpinning it that that we weren't really thinking about it's like we have to do this. Not we have to do this and we have to do this well and we have to do this in a way that means we're not burning out people in the community or in the staff team or we're not just relying on one source of income or one source of resources, which means it's like high risk for sustainability right. So even though we kind of almost feel like we've come full circle. Having this process means that we have thought about it in a far more kind of strategic sensible rational way that will enable us to be sustainable. The other really important thing about having this strategy like as like Gracie said you know it's not quite there yet but it will be soon. Having this in the public domain enables us to be really transparent with everyone about where we're going and why we're making certain decisions because we're always going to have to make trade-offs as to what we prioritize or what we pursue versus what we don't pursue. You know and sometimes we'll make a decision which might be okay well they've offered us X amount of funding while we're biting their hands off but it means that it's actually not serving us to get where we've decided that by consensus is said we want to be. This document and this document enables us to actually look at opportunities and say okay that sounds exciting and it might have been something that you know like a dog chasing cars I would have run off that like a year ago. But actually having this enables me to sit down and say okay how does this serve us? How does this serve the foundation? How does this serve the language? Does it get us to where we want to go? And you know I'm not saying we've thought of everything you know there could be something that is completely unexpected that falls out of the sky and it's like okay well it wasn't in the strategy but it's very very clearly part of achieving this vision. So you know that will be fine but this enables us to kind of legitimize our decision making. If people from outside say why haven't you done X or actually this thing looks really hot right now we want you to spend time on it we can bring this out we can sort of say well this is kind of what was agreed you know like can you explain to me how you think this fits. It enables more structured conversations about how we direct and how we prioritize our resources which is really really useful because again as Gracie said when you're talking to so many stakeholders and there's so many opinions. It's difficult to try and like cut like get a message that cuts through and is like resonates with people so we're hoping that this helps in our communications in future. And it helps us think about scaling it's like okay we've decided this these are the things that are like these are the activities that we think are going to get us there. But again we're not like getting down into the weeds. I don't know how many of you probably quite a few of you I've been in so many organizations that have written a strategy and it's been like. 72 pages long and there's bullets for absolutely every activity. Apparently every employee is going to do for the next five years. And within like three weeks it's out of date because something something's changed or they haven't thought about like big world stuff. So when we're not aiming to get that granular you know this is all about these rough things these overarching things that are going to get us to where we need to be. And it enables us to kind of have a clear narrative it enables us to talk to members to the community. On all sides these are just things hopefully that people understand are invested in. Yeah I think that that's I think it's a really good point to the back made that you know although this is a very structured organized strategy that we've come up with it doesn't mean that it is rigid it actually allows us. More flexibility to consider things that are brought to us and it really allows us to be more organized and how we sort of field. All those things and I think what I've learned is it's it's through this process is it's made. It's made it a lot easier for me to just make sense of everything that's sort of coming at us as a request and all the different areas of need within within the ecosystem. So on to the good stuff takeaways for all of you here today. From that very brief tour of this strategy I hope you can sort of see where those five questions those five considerations we laid out earlier sort of fit in and how they helped frame the pillars that we landed on. You probably also noticed in that rundown that we really broke out. Although we have obviously this this larger mission of the foundation which we ran through in the beginning there there there are specific visions underneath each of these pillars that sort of support that mission. And then underneath that there there are specific actionable things that we need to accomplish that sort of that sort of how those questions and form the strategy and that's the structure that it took. So some some lessons learned and some takeaways for all of you prioritization. It's really key to prioritize actionable goals that might sound simple but it is as we have spoken to a little bit it is actually it can be quite difficult. As as many of you know when you work for an open source community you're going to receive constant feedback about where to focus differing opinions about about what a priority is what that even means. And the truth is everything cannot be a first priority even if it feels like a first priority. This is why a strategy is necessary and it's also what makes this work difficult and interesting and challenging. But really there there is no path towards making an impact as an organization like ours without prioritizing actionable goals and sort of staying firm on them. Again flexible but firm success is not instantaneous. Chances are that if you are here you are driven like we are to have a positive a positive impact in your specific arena. If this is true you probably also know that that it's important to sort of set and adhere to ambitious goals. These goals take time to yield real results that are even worth presenting and talking about publicly. There is going to either occasionally or very often be an expectation for for instant results because we're working in the open source community. We're working with the open source community and this is a passionate group of people. If your organization is structured like ours there's also there's also money that's being factored in from organizations that also care about your mission. And because of that again there's an expectation for quick results and while all of that is understandable it's to be expected. It it's just not realistic. So I think with all of that said although you can't guarantee instant results having a strategy really allows you to build high quality and very real momentum which will sort of drive your organization towards the results that you're after. Long term sustainability is non-negotiable. This again factors into that kind of prioritization point. There are there are numerous opportunities sometimes to like grab on to something that's exciting or new or interesting. Equally you know you might have a groundswell of enthusiasm for one particular thing that's really interesting right now or that everyone's diverting their attention towards. And there might be really really loud voices saying you need to focus on this or you really need to put money in this right now because this is what we're interested in. And it can be really hard sometimes to take a step back from that and you know kind of going back to what I was saying earlier you know ask the question instead of just like going with it because this is the popular thing right now. Take a step back and say does this actually get me to where I need to go. Is this going to serve the goals that we have agreed. And if the answer is no you know or if the answer is even worse actually doing this short term thing that everyone wants might actually destabilize or risk our future as a foundation and as a student of the language. You know unfortunately sometimes we have to make decisions that are unpopular in the pursuit of sustainability and financial prudence. These are super boring things to most people but you know we have to sometimes be the boring people in the room that say budget says no. Or actually if we take a punt on this or if we go off in this direction there's probably no way back and you know people a lot of the time simply are not thinking in the kind of long term way that you need to think. If you are sustaining an organization or you're trying to achieve something strategically if as Gracie said a little bit slower than people would like. So yeah it's really important to be able to say no to explain that and again having this kind of strategy in the public domain enables us to point to this and say well this actually is what agreed we cannot see how it fits we cannot see how this serves all of the goals that we've already agreed on. And finally strategies are strongest when everyone's involved right. It's easy for us to write a strategy if it doesn't actually speak to people then we'll publish it on the website. No one will ever read it and in two years time maybe someone will suggest we write another strategy. This is meant to be a living working document you know and it's a game why I said earlier we're not putting loads of detail in it we're not going to be like in April 2023 back is going to do X. This is not what it's about it's about kind of driving that ambition that we've identified and part of that is making sure as Gracie said earlier our members are super engaged you know the people on the board the people in the communities. The people that are in think tanks and governments and everywhere else we want to co-opt these people we want these people to come with us on this journey and help us get there because we can't make people interested on our own. We can't change the world on our own we need to work with other people to make Rust as amazing as we know it can be so yeah bringing everyone with us is our goal as many people as possible. And that's it. Let's just shout out to everyone who was involved in in helping us with the strategy because like we like we outlined there were many different stakeholders and I. As Beck just mentioned in that last point we could not have gotten here without all those voices so yeah thank you.


Meanwhile, President Mohammad Abouhari has sent a letter to the Senate seeking an approval to take a loan to the tune of $800 million from the World Bank to cushion the effects of subsidy removal. This follows the federal government's April announcement of an $800 million World Bank grant targeting 50 million vulnerable Nigerians, or 10 million households, as part of a subsidy palliative measures. The Minister of Finance, Budget and National Planning Zainab Ahmed highlighted that the engagement are ongoing with the newly established Presidential Transition Council, PTC, and the Incoming Administration to drive the palliative program, which includes the need for buses amongst various considerations. In a letter read by the President of the Senate, Senator Ahmed Lawan, President Bouhari, who noted that the loan would be utilized to scale up the National Social Safety Net Programme, said the loan would be sourced from the World Bank. To know that the program is intended to expand coverage of shock-responsive safety and support among the poor of vulnerable Nigerians.