In this episode, I sat down with Gerald Versluis from Microsoft’s .NET MAUI team for a wide-ranging conversation that started with mental health, sunlight, and fitness, and quickly moved into the future of cross-platform app development. Gerald shared what it’s like building .NET MAUI today, why creating apps for iOS, Android, macOS, and Windows from one C#/.NET codebase is still a deeply complex challenge, and how the platform has matured from its Xamarin roots into something far more capable for production use. We also talked about Blazor Hybrid, native UI versus web-based approaches, and why MAUI continues to be an appealing option for .NET developers who want flexibility across platforms.
The biggest theme of our conversation was how AI and Copilot are transforming the way Gerald’s team works. He explained how Microsoft’s MAUI team is using AI not just to generate code, but to review pull requests, validate fixes, interact with running apps, and even expand MAUI into new territory like Linux support through the new MAUI Labs efforts. We explored practical patterns for agentic development, custom instructions, skills, MCP servers, and self-verifying workflows, along with the broader implications for software careers, education, and the future of developer productivity. If you want a grounded but exciting look at what AI-assisted software development already looks like inside a real product team, this episode delivers.
People / Social
• Gerald Versluis (guest) on YouTube: https://www.youtube.com/@jfversluis
• Gerald Versluis on X/Twitter (@jfversluis): https://twitter.com/jfversluis
• Gerald Versluis on GitHub: https://github.com/jfversluis
• Gerald Versluis website/blog: https://blog.verslu.is
• Jonathan Dick (creator of DevFlow, .NET MAUI team) on GitHub: https://github.com/Redth
• David Fowler (Microsoft, mentioned re: Aspire) on GitHub: https://github.com/davidfowl
Microsoft / .NET
• .NET MAUI: https://dotnet.microsoft.com/apps/maui
• .NET MAUI on GitHub: https://github.com/dotnet/maui
• MAUI Labs (mentioned explicitly): https://github.com/dotnet/maui-labs
• DevFlow (in MAUI Labs): https://github.com/dotnet/maui-labs/tree/main/DevFlow
• Blazor Hybrid: https://learn.microsoft.com/aspnet/core/blazor/hybrid/
• .NET for iOS (formerly Xamarin.iOS): https://github.com/dotnet/macios
• .NET for Android: https://github.com/dotnet/android
• .NET Aspire: https://learn.microsoft.com/dotnet/aspire/
• Microsoft Learn (docs): https://learn.microsoft.com
• Microsoft Loop: https://loop.cloud.microsoft
GitHub / Copilot tooling
• GitHub Copilot: https://github.com/features/copilot
• GitHub Copilot CLI: https://docs.github.com/copilot/github-copilot-in-the-cli
• GitHub Agentic Workflows: https://github.com/githubnext/gh-aw
• GitHub Actions: https://github.com/features/actions
Partner UI frameworks
• Avalonia UI: https://avaloniaui.net
• Uno Platform: https://platform.uno
Other tools / libraries
• Lottie animations: https://lottiefiles.com
• Rive (interactive animations): https://rive.app
• Appium (UI test framework): https://appium.io
• Anthropic Claude (Opus 4.6 referenced): https://www.anthropic.com/claude
• Duolingo (mentioned re: Rive animations): https://www.duolingo.com
Off-topic / lifestyle
• Hyrox (fitness race, Maastricht / Lisbon / Madrid mentioned): https://hyrox.com
Hey. Hey, Gerald.
[00:00:08] Gerald Versluis:
How are you doing? Hey. I'm good. How are you?
[00:00:12] Barry Luijbregts:
I am good because the sun is shining and we are in The Netherlands.
[00:00:17] Gerald Versluis:
Yes. That is typically a good thing. I love it. I do not do very well during winter, so I should probably find a country where I can go during the winter or just go to a country where the sun shines during summer and winter. I don't know. But, yeah, definitely. This is I don't know where this conversation is gonna go, Barry. But if we're gonna talk about mental health and that kind of stuff, like, yes, that's my mood definitely improves whenever we get to spring and then summer, absolutely. Me too. I think sunlight is an essential
[00:00:51] Barry Luijbregts:
vitamin for humans. Yep. And we don't get enough of that here in The Netherlands. Maybe you get a bit more because you're in the South. I don't know. I'm all the way in the sunny South. Yes. Absolutely. Sunny South. Yeah. Yeah. So maybe I don't know. Every year, like at the end of February, March, something, I tell myself, you know, why why do I live here? I should move. We should all move to Spain or whatever. But I never do. Yeah. And I never do. No. Exactly. The other thing that will help, will say, is
[00:01:22] Gerald Versluis:
regular workouts, whatever it is. I got into running. I recently signed up for the local gym. Again, that's how it goes. Right? Summer is coming. You want to get ready for that summer body. So you sign up for the gym again. But actually, we are doing it with a couple of people. So we are motivating each other. And they're big into the high rocks thing. And that all results to, you know, me working out for like even I think last week was like four or five times. So also something even if the sun does not shine, definitely something that helps improve my mood, getting out there. And, you know, I sit behind a desk most of the time. I have standing desks, so I stand sometimes. But, you know, just overall good for health and mental health.
[00:02:05] Barry Luijbregts:
Okay. No. That's that's interesting. To the listener, I promise we will get to the But tech in a Hyrox is pretty cool. So do you do the Hyrox workouts as well? Because I do them as well.
[00:02:17] Gerald Versluis:
Oh, that's really we should sign up for a race. There's one in Maastricht, which is close where I am in September, I think. Anyway, I I do the workouts. I I haven't looked at an actual race yet. How it goes with social media, I am now in the algorithm, so I get the videos pushed to me. It seems that you cannot do high rocks races with a shirt on. So You can. I don't know. You can? Is that not illegal? Oh my goodness. But yeah. So I I've I get into these things also with running, like, some point, I just started running just to work out, and then I signed up for a half marathon, and I was like, oh, that will be cool. And now I did a couple.
So in the back of my head, it's going like, oh, the next goal should be, like, a full marathon. And now with the Hyrox thing, it's to like, oh, maybe I should do a race at some point. But for now, it's just like at the gym, they do the actual Hyrox Yeah. Workout things. So, you know, lifting things, pulling things, pushing things. Wall balls. Yeah.
[00:03:20] Barry Luijbregts:
Yeah. It's a it's a challenging workout. I've done one high rugs in Madrid last November. Oh, cool. And I'm doing one in May 1 in Lisbon, Portugal. Oh, nice. You're a pro. Cool. No. I'm not a pro, but I I do go What'd do the best? Nice weather.
[00:03:38] Gerald Versluis:
Oh, that's right.
[00:03:40] Barry Luijbregts:
Yeah. Very well. Really good. Very cool. Okay. That's very cool. So maybe I'll see you in the Maastricht or something. I haven't signed up for that yet.
[00:03:48] Gerald Versluis:
Now I have to. Now I have to. Yeah. Now you do.
[00:03:52] Barry Luijbregts:
So you do that to kinda, you know, offset the bad weather here, and you're sitting all day in front of a screen, which you do for Microsoft. Yes. What do you do for Microsoft exactly?
[00:04:04] Gerald Versluis:
What do I do for Microsoft? That is a great question because also that changed radically over the last couple of months. So that's very interesting. Yeah. I'm part of the dot net team at Microsoft, specifically dot net MAUI, and dot net MAUI is the cross platform framework that allows you to write iOS, Android, macOS, and Windows apps. Soon, a lot more, but maybe we'll get to that. All with using C Sharp and .net. But, you know, as you hopefully know, listener, right now, everything is about to change with the use of Copilots and AI.
So that's also something that we have been focusing on a lot. And of course, you know, we're still building dot net MAUI. But actually, we've been a lot more efficient with all of that by leveraging all the tools that we now get with Copilot and AI. We've historically been a small team. And finally, we can act like we're a big team because we suddenly have all the tools and all the co pilots to help us build the things that we have been wanting to build for years. But that's a big shift in how we work and also what we focus on.
But, yeah, that's that's in a nutshell what I do for Microsoft. And then do I do it for Microsoft or for myself? I don't know. But besides that, I've been very active in the community, putting stuff out there, being on podcasts, putting videos out there on my YouTube channel, being at session sorry, being at conferences, doing all kinds of sessions. Basically, just whenever, you know, it's fun where I can interact with the community. That's where I'm at because I just love doing doing that, and I love what I do. So yeah. That's
[00:05:45] Barry Luijbregts:
a good place to be. Do what you love. Yeah. Yep. So Maui is a very interesting, let's say, platform slash framework. I've been using it myself as well to build production apps, and it used to be super painful. Yeah. But that's kind of to be expected. Right? If you want an app to run on everything, then of course that's hard.
[00:06:08] Gerald Versluis:
Yes. Yes. So if we go back in history before times, it was called Xamarin. Right? And Xamarin, you want to go way back, that was a separate startup acquired by Microsoft. They had cool technology to build for all these platforms that I just mentioned with C Sharp and .net. But then at some point, Xamarin, the name was a little bit funny to begin with, and it didn't align with any of the marketing and any of the names and the brands that Microsoft had. So they rebranded it to dot net MAUI. And it was not just a rebrand. At that point, Xamarin and specifically Xamarin Forms was already six, seven years old.
So it was time. We had a lot of learnings from kind of like that period, and we had a good couple of things that we wanted to fix, also kind of like architecturally. And now with the transition to dot net MAUI, we had the opportunity to do that. So we architected a whole bunch of things for the good, I hope. But yeah, it's just a very complex space to be in to begin with, even if you just use the tooling from the platforms. Because, you know, if you're gonna build an Android app or an iOS app, especially an iOS app, like, you're gonna need specialized hardware because Apple does not allow you to build iOS apps or macOS apps on a Windows machine. So you're gonna need a Mac. Then you're gonna need an Apple Developer license, which is a $100 a year.
You're gonna run your probably you're gonna develop your application on an iOS simulator. And it's called a simulator for a reason because it just simulates iOS, but it secretly uses all the resources on your Mac hardware. So suddenly, the iOS simulator that you're looking at uses your one terabyte disk drive or your 96 gigabytes of RAM. Right? That's not super realistic for an actual iPhone. So you also want to test on an actual super complex landscape. And then I didn't even talk about Android and all the different form factors, etcetera there.
To make it extra interesting, extra challenging, what we're doing is trying to combine all these tools, all these stacks, and those tools and stacks aren't necessarily built to work together. Right? So what we're putting on top is an abstraction layer so that you as a developer, as a C or dot net developer, do not have to care or at least have to care less about all of those differences. And you can just specify a button, and that button will be rendered as how a button should look like on Android and iOS and on Windows. We take care of that for you.
And then, of course, like to make that happen, we have to bring in all the Android SDK, the iOS SDKs, etcetera, etcetera. And again, like, you know, we're not necessarily enemies with Google and iOS, at least not at this front, but we're also not friends. Right? Especially iOS, they don't give us a heads up with like, hey, this breaking change is coming up. Make sure that you have it. We found out together with the rest of the world and then have to scramble to to get it all working. So very interesting space, but that's also why it was a little bit of a rocky road to get to where we are.
From time to time, it's still kind of like interesting. But I think we're in a much better space than we have ever been, and we can we can see that by the numbers as well. Like, the people who are building MAUI apps right now is the highest that Xamarin has ever been, that the highest that MAUI has ever been. So, yeah, I think people are picking up on that and they're happy to build their production apps with it.
[00:09:37] Barry Luijbregts:
Yeah. It's a good form factor because you could just use c sharp, which is awesome. Yes. Yep. And so, you know, I tried with Xevo to build something. I just I I'm not native to it, so I you know, everything I need to look up or use AI, of course, to do that. But I went the Blazor hybrid route. Oh, cool. Yep. Which means that you just have basically
[00:10:04] Gerald Versluis:
web application and that thing then gets packaged and runs on iOS and Android and wherever else you want, which is very cool. Yeah. Yeah. Exactly. So the the thing I just mentioned is indeed kind of like, you know, it's XAML because all the Microsoft frameworks tend to use XAML. I learned to love it. I can I can read it? I can write it. We're actually making big improvements in the XAML space to make it a little bit less verbose and easier to work with starting in dot net 10, but definitely for dot net 11 that's coming up. But, yes, the other route, we have so much more options for you, is Blazor Hybrid. And Blazor Hybrid allows you to write these apps. .Net MAUI app's still native. You can still get push notifications. You can still get all the things that a native mobile app has.
But now you can compose your UI with Blazor, so with Razor syntax. So if that's something that you like more, you will have less native looking apps, or at least it will cost you a little bit more effort to, you know, make it look and feel more native out of the box. But, you know, as a trade off, you will get a a stack, a web stack that you probably know a lot about already and that you love working with. Right? So we got those. And then even if you want to go a step further and you're like, hey, I have this stack with like an Angular apps or React apps or whatever, we have a specialized web view for that as well. So maybe you have an existing app there. Put that in a dot net MAUI wrapper.
You can interact. We have all this interop going on so that you can send messages back and forth to C, and suddenly you could back up your React app and package that as a dot net MAUI app because you're still a dot net developer by heart, and you can do all these amazing things and still have an app at the App Store. So lots of options.
[00:11:50] Barry Luijbregts:
Yeah. Which is awesome. And so you started up by mentioning all the platforms. Right? It's like iOS, Androids, and maybe perhaps a lot more?
[00:11:59] Gerald Versluis:
Oh, yeah. Yeah. So what we've been doing recently, like I mentioned, like, hey, We've been so much more productive with all the AI stuff that we have. That allowed us to at the time of recording, like, I think for the release that is coming up anytime now, We merged like 300 PRs or something. Before that, that was like insane. We could never have thought of that. And honestly, like we had 600 plus open PRs. I think we hit up to six eighty open PRs, which is not great, which is totally on us. There's a whole bunch of reasons for that. I will come back on this podcast and talk just about that.
But it was there. Right? And now we were having a hard time getting that number down, which is a good problem to have because this meant that we had a lot of community people, a lot of people on our team who were doing great things, and we just didn't have the capacity to review. So also with AI, we didn't stop at letting it write code for us, but also make it reliable enough that we trust it to review PRs. Still, we should look at it. Sure. We still look at it, right? But we are building up a confidence with this whole thing that it's also like, you know, whenever it says like, oh, this is good to merge, we can usually trust it. And then we have a bunch of tests that are running, etc.
So we just have so much bandwidth to do cool stuff, which one goes into investments to make it easier for you as a dot net developer to leverage Copilot to build MAUI apps. Right? So we're doing everything we can to make it best in best as possible to also let the Copilots understand how to build a MAUI app, whether that's Blazor Hybrid or XAML, and some tooling around that. Right? Command line tooling is all the rage right now. It's coming back because all the co pilots understand that. But, also, we introduced MAUI Labs. So if you go to github.com/.net/maui-labs, then you will see a whole new repository with whole new cool things. Again, tools to support AI assisted Maui development. But also, we have just merged, at the time of recording, a Linux back end.
This is something that so many people have asked for over the years. There is no conspiracies there that Microsoft hates Linux, and that's why we didn't do it. If we just look at the telemetry like Linux people asking for Linux, and then, you know, all the rest that we already are building right now, the people asking for Linux is, like, only a small percentage of the people. Maybe it's because we don't have it. Right? Or maybe it's kind of like a chicken and egg problem. Maybe Linux isn't there because not people not enough people are asking for it, or maybe not enough people are asking for it because it's not there.
So now this, again, AI Copilot gives us the opportunity to do that. And it's not just like now we do that because we can, because we want to, But, you know, we have partners also in the dot net space. So we have, like, Avalonia and Uno who have been very eager to also work together with the dot net MAUI product. So to kind of, like, dog food our own project to try it out, we're coming up with these new back ends. So we have Linux. Maybe we have some others coming up in the future that will plug into dot net MAUI. And with that, we can spot kind of like problems in our architecture that we need to open up more so that other back ends like the Linux one, but also from third parties can plug into that and make their own kind of like back end support for dot net MAUI and kind of like everyone wins. So, yeah, the Linux one has been merged. That one is coming. I've already seen people even taking the CI bits and and going with that, so that's been really cool.
But, yeah, what what other things dear listener, what ones do you want to see? Because the sky is the limit with with all of this AI craziness, so that's really cool. Yeah. That is really cool. And and like you you you just mentioned it already, you can now basically just create anything that you can think of. Yes. Yeah. That's been the big realization that we had to like, I I don't think it's a secret, but we at Microsoft, we're currently I don't know I don't know if it's gonna last forever, but we're currently blessed with unlimited requests. Everyone is always very jealous of that. So we have unlimited copilot credits, so we could just go wild.
So we're building all kinds of stuff that we are like another smaller example that I had was a side project. So you have like the Lottie animations, l o t t I e, but you also have Rife, r I v e. And I've always wanted that because they look so cool. I think that's the animations that you see in Duolingo as well. They can be interactive. They can be everything. And I always they only have libraries for, like, native iOS, native Android, and then a bunch of others, but not .net now. And I was like, oh, man. I really want to have those.
And now I just pointed Copilot to it, and I said, like, hey. Here is the .net for iOS. So that's the Xamarin iOS previously repository because they are full of the bindings. They're full of the magic of how we make the translation from native iOS to our abstraction layer. And here is the Android one. Figure out how to do this, and it did it. It just created that library for me. It figured out how to make those bindings because of the tooling that we had, like I mentioned earlier, to build actual MAUI apps. It could self verify. It could start up an iOS simulator. It could look air quotes, look at it to, you know, take a screenshot and and read from that screenshot what it was seeing, and it would iterate over it until it got the whole library done. It's out there. You can use it right now. You can use it in your MAUI app. So that's the kind of stuff like we we as developers, you know it too, Barry, we have tons and tons and tons of side projects that we never get finished, and now we can finally finish them.
[00:17:51] Barry Luijbregts:
Yeah. That is awesome. That is just really cool. And And like you said, you know, we can do that type of stuff because we have unlimited tokens.
[00:17:59] Gerald Versluis:
Yeah. And tokens are expensive, so I get that, you know, not not everybody is able to do that. Not everyone is there, but, you know, that's that's a question, of course, I get a lot as well whenever I go out to conferences or do things online. Like, oh, yeah. That must be nice. You have the unlimited tokens. You can do everything. Yeah. Which is fair enough. Right? Like, that's the case. But, you know, the model that I'm using right now is pretty costly. It's like, you know, 3x or 6x. Right? Like, it has a little bit of a multiplier there that you have to multiply your tokens by that, and that will be the actual cost of it.
But those will only become cheaper. And there will be better models? Yes, of course. And those will probably be premium and cost a little bit more. But the ones that we are using now are the worst models that you're ever going to use. Right? And that's something that you need to kind of like take into account. If you you know, if some point in the future, you're gonna have these models, maybe you can even use them for free at that point, and you will have all this power as well. So, yes, we at Microsoft are a little bit ahead of the curve. I think that's to be expected, but this is coming to you. It is there for you already right now if you're willing to invest in that, if you want to hold off a little bit more.
[00:19:08] Barry Luijbregts:
Again, fair enough. But this is coming. This is this is available, and it's going to change the way you work. I promise you. It's really really cool. Yeah. And and you just already kinda explained what your loop is. Like, you you point a thing at something and then it can self verify. It starts it up. How does that work? What do you do?
[00:19:27] Gerald Versluis:
There is, I guess, two sides to this because, you know, I'm now building the framework Maui and not so much building actual apps. Well, I'm doing that on the side so that we can, you know, I can I can then again, like, dog food and experiment and try our own things that we are putting out there? So because of that, you know, I'm also building apps just because I now can with the power of AI, and also to kind of, like, see that the things that we're actually putting out there make sense from a developer's perspective.
But on the dot net MAUI team to to kind of like, you know, work better with MAUI and and work more effective there, we've done a ton of things. Like, we're highly encouraged at Microsoft to use all of this stuff. That's also why we have the unlimited credits, right? So that we can improve on the CoPilot as a product as well. And I think at the .netmauiteam, we've really taken that to heart, we started going hard at it and building all kinds of cool things. One of which is we build a product, air quotes, that is called PolyPilot.
And that takes the GitHub Copilot CLI SDK. That's a lot of acronyms. So the SDK that will allow you to manage kind of like the Copilot sessions. And we put that in a Blazor hybrid application, a dot net MAUI application. And with that, we can actually manage multiple sessions at once. So you could see it as a WhatsApp client or a Signal client, just a messaging app that allows you to chat with your copilot. And then we have multiple sessions, so we have multiple conversations that we can have. And then for each of them, you will get a notification whenever one is done. You put in a new message and it will go.
But before we I already kind of like alluded to that a little bit earlier that we got CoPilot into a state where we trusted enough to also review RPRs. This was months of work, right? Shaping the instructions, shaping the skills, doing all kinds of like the tools that we have for Copilot so that it understands what we try to do, what the quality should be, how our tests work, how our entire code base looks like and works. So yeah, there's a whole loop there, and it is not just the Copilot or the Polypilot thing that we've built to fire off the instructions and let it generate code. It's also the reviewing.
It's also the testing. So what we did, it's starting now a little bit. You have something that's called GitHub agentic workflow. So that's not just the GitHub actions, but there you can also put a prompt in it and not just have scripts run and hope that it works. But now you can also put prompts in it, and and Copilot will go off. And what we did is we put Copilot CLI in our GitHub actions and in our pipelines. And one of the things that I still think is really cool is what we did is whenever a PR would come in that has tests, we would have a skill that could validate that fix. So what that would do is undo the fix in code, run the test, verify that the test fails, which is to be expected, right? Because we took away the failures. Then we apply the fix again. We run the test, and it succeeds.
So that's one well, hopefully it succeeds. Right? That's the That is cool. So but that's one of the things that you can kind of like do to let Copilot validate itself and, you know, give it to tools to give us the confidence that it's actually doing the right thing. And then it would give us the output of like, oh, yeah, the whole validate fix thing that produced output that we expected. Or, you know, hey, the functionality already worked without the test. And then it's like, okay, without the fix. And then you should go like, okay, is the test not right? Is the fix not right? Was it already fixed? Like, is it already maybe fixed by another fix that we weren't aware of?
And then you start looking into it deeper. Right? But those are the things that you kind of like should look at to to to do that and not just think about making it a code generator, which it does very well. But also, you know, if you really want to take it a step further and really incorporate it into your way of working for your whole product, that kind of like the things that you should be thinking of, I think. It is so cool. And and how do you get it to
[00:23:54] Barry Luijbregts:
start up an app and see what it's doing?
[00:23:58] Gerald Versluis:
Yeah. That's really cool. So if you talk about token efficiency, which we all should took talk about, not even from a cost perspective, but also from an environmental perspective. Right? Because it's easy to forget that this is burning a lot of cycles and and, you know, more data centers will come with with everything together there. Again, that's a whole new podcast episode on its own. But if you just tell Copilot that was early days. And I was working on an app, and I was like, okay. We have these UI testing tools. Right? At in the MAUI code base, we have, like, thousands of UI tests. And UI test is it starts the app, and it knows by identifiers on the controls where to click, what to enter, what to do.
These tests typically by nature are a little bit flaky because the iOS simulator might not start up or there's a little animation and it's already starting trying to click something. So there's all kinds of timing issues and whatnot, which is not great. But it knows how to parse the UI, how to parse the visual tree. So we can automate with that. So I was like, hey, look at Appium in this case. Appium has been a UI testing framework that has been around forever. Here are the tools. Here is how Appium works.
Verify how this all works. So it started doing that, and it did an okay job. And even without that, if you say like, hey, I want to get a screenshot from my iOS simulator or I want you to do this or that, it will figure it out, but it will burn through a lot of tokens to kind of like do that. So, again, that's where kind of like the instructions and the skills come in. If you can tell Copilot this is a skill and a skill is like a atomic kind of like thing that you wanted to do, like start up an app. I don't know. What is another good example? I see it kind of like as a unit test, but now for a skill, something that you want Copilot to do.
And it can involve scripting and everything. But if you can tell Copilot, like, here's the skill with an instruction on how to do a thing, then it doesn't have to go out and figure it out themselves and burning tokens as they go. So that's something that you want to do. But at some point, again, we are investing heavily in, like, making it easier to for you to build dot net MAUI apps with all of this stuff. So we came up with something called DevFlow. Again, that's in the MAUI Labs repository right now, which is a super cool tool.
Someone on our team, Jonathan Dick, has started it, and now it's an official product. And that has a couple of components, which has an MCP server. Right? So an MCP server is again a standardized way for co pilots to talk to APIs basically. So an MCP server that knows how to interact with apps. Also a CLI tool that does a couple of things. But that CLI tool connects with an agent that we inject inside of your Baui app. So now there is an agent only for debug, of course, for for your actual production apps and release. You don't want to have that. So we disable it for that. But for your debug apps, we inject a little agent, and that from the inside out knows how to take screenshots, give you information about all the APIs, the battery and the visual tree. Right? Because that helps. Because sending screenshots over your Copilot connection also, again, very costly for your tokens. So if we could just give it a visual tree and all the APIs to inspect all the property elements, then you can just use that. And so that agent gets injected into your running MAUI app. And then with the CLI, you can connect to that and ask the app basically, hey, all the information, what's your visual tree? What's the color of this button? What is the current battery level? Take me screenshot, etcetera, etcetera.
But also click on this button or swipe down on this thing or do whatever and and much, much more. Right? So we have a set of tools there that will make it so much easier to start up the app, interact with the app, and then again, let co give Copilot the hands, eyes, ears, and everything to interact with your app and self validate if it's actually building the right thing
[00:28:02] Barry Luijbregts:
that you're looking for. That is that is so cool. And that is, you know, like the the the pro level use of of AI and Copilot.
[00:28:12] Gerald Versluis:
Hopefully. Yeah.
[00:28:14] Barry Luijbregts:
And yeah. I always think like, you know, do we really need all these skills and custom instruction and all that type of stuff? Because especially now when these models become smarter and smarter if I just put in a lazy prod, build this thing or something. It usually figures it out, although maybe it uses a lot of tokens, Princess, or it takes a while, or it's not exactly what you want. But I guess with something so specific as Maui, you kinda need more car trails. Right?
[00:28:42] Gerald Versluis:
Yeah. So that's the interesting about our space indeed. That's kind of like what we began this this whole podcast episode with is like, hey. You know, it's a very complex landscape. For web technology, a, there's much more content out there. Right? So the models are trained on tons and tons and tons of JavaScript content whether you like it or not just because it's out there. Right? Yeah. For MAUI and for cross platform as a as a whole, not even MAUI, it's much less. Like, you know, even if it's like Objective C, which is native to iOS, there is just much less content than a lot of the JavaScript and all the HTML and CSS out there.
So that's one. And then, you know, starting up the iOS simulator, knowing how to interact with all those stacks Super specific. Yeah. Super specific. Am I running on Windows? Oh, then I can't do anything with iOS at all. So it needs to know about that and detect all of that. So that's why we're trying to really put these guardrails in place. And what you were saying about the instructions and the skills, I think that will come in handy in either case, but I definitely noticed in the last couple of months depending on the model.
We are big Opus four dot six fans. That has been working really well for us. But if you take some earlier ones from a couple of months ago, then it would get it wrong a lot of times, and now it would be like, oh, yeah. No. I understand what you mean, which can be because the model got better, but also because our instructions got better. And one of the things that is always really telling and easy to forget is that these models are trained up to a certain point in time. Right? So I already mentioned like .net 11 is coming out, and maybe even a better example is iOS jumping from version 18 to 26.
So when that just happened, I was talking to Copilot, and I was like, oh, yeah. Look at this. Because iOS 26, like, the new Liquid Glass, all the kind of things, all the new UI stuff. I And would say like, oh, yeah. We need to implement this thing with the newest API with iOS 26. So make sure to, you know, look into that. And it was like, very confidently, iOS 26 it must be a typo because you must mean iOS 18 because iOS 26 was not a thing. So I'll just go off and look for iOS 18 things. So with those things, it's super helpful to have an instruction in there, not even mentioning these specific version numbers, but just saying whenever the user says a iOS version that you are not familiar with, go out and look on the web to verify if that version exists and then focus on that. Because the number of times that I have repeated to it with like, No, iOS 26 or dot net 11 exists.
Really, trust me. Go out looking for it. Then it would be like, you're absolutely right. Right? That's the the the thing that you see everywhere. Genius. Yes. Yeah. You know, for those things, if you notice about yourself that you keep explaining something three times in three different Copilot sessions, that's when you should think to yourself like, okay, this is something that I need to put in an instruction. And if you see, if you follow along with the Copilot session, and you're like, oh, it's trying to figure out how to do this basic operation, that's the moment that you're like, oh, I should wrap this in a skill. And you can ask Copilot, right? You can just ask Copilot, hey, update the instructions with this or that, or hey, figure out how to how to make a skill out of this operation, and it will do that. Actually, I think the skills were an invention by Anthropic. Right? So that's one of the vendors that that are known for the clot models. And I think they came up with the whole concept of skills, and they released a skill that you can plug into your Copilot to write skills. So, you know, full circle, plug that in, and you will get the best skill that Copilot will understand.
[00:32:21] Barry Luijbregts:
Yeah. That's a fact. All these custom instructions and skills and plugins and and and CP servers, they sound very complicated, but you can also just ask the AI to create a Yep. Yep. You don't have to make that yourself. Yep. And do you see other dot net teams, other development teams within Microsoft also using or reusing, like, your practices?
[00:32:42] Gerald Versluis:
Yeah, absolutely. And that's what I kind of kind of like mentioned, I think even before we started recording to you, but but also like, you know, we're still building dot net MAUI, of course, because we also realize, again, we're ahead of the curve and it's probably gonna take months or years for this with all due respect, of course, like the the more regular air quotes developers Mhmm. Companies, like, you could be skeptical about the use of AI, which is totally fair. Then there is the whole cost perspective. So it's gonna be a while for the whole world to be convinced of where we are and that what we are already convinced of.
So, you know, we we still see the because that's kind of like the the question coming next. Right? Like, how much does it still matter if it's dot net MAUI or Objective C or Yeah. That it's even C Sharp or .net. Right? But let's park that for now. So we're still building dot net MAUI, but this whole revolution brought some new energy to our team. Our team is still largely the same as the team that was working on Xamarin that was even acquired by Microsoft at the time. Xamarin was a very startup kind of like it wasn't even a startup like company. It wasn't like a startup as you would expect.
So, you know, the sky's the limit. Everything nothing nothing is too crazy, and we are leading the way. And then at some point at Microsoft, we were just another product. Right? Like, that makes sense. We have ASP. We have Blazor. We have tons of things, and you're just another product suddenly. And now with this whole revolution, our team has really, you know, done the work. We dug into it at some point. Think in reports higher up, we showed up as like, you know, the top contributors. Well, not top contributors, but the top users of Copilot and AI, and actually doing useful stuff with it as well. So, again, like we merged, like, I don't know how many PRs and and reviewed and done all these kinds of cool things. And that shows up. Right? Our leadership is interested in that. But also other teams. Suddenly, teams are coming to us with like, oh, how did you set up that thing? How can we do that for us as well? So everyone at Microsoft is like, you know, doing really cool things with this.
But, you know, as it goes also in like the real world, some some people, some teams are more convinced or more more of believers than others, so some will go faster. Some will go a little bit slower. But yeah. Well, especially the Aspire team, like, of course, they are very well known. They have been big into this AI adoption as well, and we kind of like have a friend friendly competition with them where we are like, oh, we did this thing, and then they'll come out with like, oh, we did that thing. And, you know, we showed up in kind of like it's not really public leaderboards or anything that we have, but I think at some point there were some metrics that were showing kind of like David Fowler and and people from our team kind of like catching up in in terms of tokens just because, you know, we feel so productive and we have all these processes running.
So, I think everyone at Microsoft is doing a really great job, and I can only comment on kind of like the the dot net team all up. Everyone is super excited, and we have tons of chats and meetings where each one blows my mind even more than than the last one because the stuff that people come up with, it's it's just crazy. It is crazy. Yes. And I also see that with colleagues
[00:36:00] Barry Luijbregts:
of mine, like fellow cloud solution architects who go out to customers and need, for instance, a custom PowerPoint deck and they just ask, you know, Copilot to do that based on Yeah. Whatever the newest information is of something Yep. Which is just it it can do anything really because it can code. And that's that's amazing.
[00:36:19] Gerald Versluis:
Yeah. I think and I think that's just the start. Right? We've been very hard trying to get it to code. And ironically enough, maybe our job our our jobs are the first ones to go because we traded really hard how to code. And then from there, it will do all the rest. Solutions with OpenClaw where I think it went through a couple of naming transitions. But yeah, that basically means like, hey, you have this model, you hook it up to everything, everything, everything, all the APIs that you can find. You can chat with it through Telegram, I think, and it could do anything.
Yeah. That's you know, if if if you were brave enough to hook it up to all these things, like, GitHub Copilot can do all those things as well. It will figure out a way. So it's exciting and a little bit scary, but definitely just lean into that a little bit,
[00:37:10] Barry Luijbregts:
and you're you'll be blown away with what's possible and and what what power it can give you, what how much more productive you can be with this. Yeah. And that's a good point because there's OpenCLaw. There's Clawd has co work Yeah. Clawd Desktop. And Yep. We also have that within Microsoft Office three sixty five Copilot. There's also a co work coming Yep. Which is kinda similar to that, and that thing can just do autonomous
[00:37:35] Gerald Versluis:
stuff for you. Like, clean up this or look at my emails or throw them all away. I don't know. Stuff like that. Reorganize my calendar. I don't know how well that works. I haven't tried it yet. Yeah. We have an internal tool. I don't think we can show it to the world just yet or maybe never because that's also another interesting thing. Right? Like, all the teams are kind of, like, definitely doing some duplicate effort in inventing the same things because the Poly pilot that I just mentioned, at the time of recording, GitHub Copilot CLI just announced their remote sessions capability. So your CLI will run on your desktop, but you can say, hey, slash remote, and now I can suddenly interact with the CLI session on my desktop from my phone, from some web interface, anywhere in the world. But it will be executed on my actual device. And that's great because now suddenly I have all the power of my device and all the prerequisites for building a MAUI app are there, and it it can just build it on my desktop. It could send me screenshots to verify while I'm on the beach. My wife loves that that it can even work even more.
So, you know, that's definitely coming, and that's something we knew that would happen. Right? Like, built PolyPilot knowing that the kind of like the first parties would build something like that into their products as well. So that's also with the co work and all those kinds of things. But it is definitely super helpful. Like, we send as a team a little overview of what we did this week through email to the rest of the team just so you know, like, hey, what's everyone doing? What's what's going on?
And it's now super easy. Like before, I would have, like, on one screen, I have two screens here on my desk. And on one screen, I would have, like, a dedicated loop page, Microsoft Loop for note taking with like, you know, whatever I did and I thought would have to go into that email every week and put in a little line for each of those. Now we can just say at the end of the week I can I I didn't get to the step of automating it? That would be the next step. But, actually, I could I could just say, like, hey. What did I do this week?
It will go out and and print that list for me, and I can just put it in an email and then send it out. Actually, that's sorry, Barry. I'm just taking I'm just taking all of the speaking time. That reminds me of kind of like, you know, where is it going with your workflow and and AI? That's another cool thing that we are thinking about more end to end. It's like, hey, Microsoft big company, dot net MAUI, big product. So we also we don't just have the dot net MAUI repository repository with all of our code, but of course, we also have Microsoft Learn with all of our documentation.
And then we have a samples repository with all kinds of samples that show kind of like bigger functionalities that people would be interested in in like, hey, how do I set that up? How does that work? So what I'm trying to at the time of recording, I'm trying to set this up with the GitHub agentic workflows is whenever a PR gets merged, the agentic workflow will kick off. It will look at that PR and be like, oh, is this something that needs changes in the documentation or is this something that should need a sample?
And then for the first iteration, I wanted to open an issue on the separate repositories for like, hey, we need something on the docs or we need something for the sample, but why stop there? Right? Why not have either the same Copilot or a Copilot on that repository You're just automatically up, make a PR, and propose it to me, iterate a little bit over that, and, you know, boom. We got the whole cycle kind of, like, complete. So the sky's the limit. I just So keep cool. Saying Yeah. So
[00:41:02] Barry Luijbregts:
what do you think? Will he be out of a job in three years?
[00:41:06] Gerald Versluis:
Oh my goodness. I don't know. So if I take my Microsoft hat off, and I'm not a doom and gloom guy, I'm usually pretty optimistic. But I do think that you need to get on board with this. If you're not looking at this right now, if you don't feel more productive with AI today, you're probably already lagging behind. And I'm not saying this for the one liners or for the catchy quotes. I really think that you need to get on board with this, because if you're not, then you're probably not the first in line to be hired by companies if there are other people who do know how to work with AI. I do think that we're still like I already said a little bit earlier, there's all kinds of different companies out there. Some are bigger, some are smaller, some have more resources than others.
So we're still years from, you know, it taking over the world everywhere, but this will definitely take over some jobs, which is, you know, gonna be interesting. Like, are we still going to train juniors? How is that gonna look like for education, etcetera, etcetera? But I think at least to kind of, like, stay relevant in our field, be sure to know how to work with AI, know how to work with Copilot, be more effective there so that you will at least stay relative until the very end. But I don't know. I don't know. I'm I'm a very bad visionary. At some point, I very early on, I started mining Bitcoin, and then I was like, no. This is not going anywhere.
So, you know, don't listen to me. I don't see it going that fast that it will take over the jobs by the time that I retire. But who knows? I also didn't expect for all of this to go so fast as it did right now. So but in instead, that that's what I'll say. Instead of being scared, try to be excited. Try to just learn, learn, learn. I think that's kind of like developers by nature. We love to learn. We love to stay ahead. We love to tinker with all the cool new stuff that's coming out there. See AI and Copilot like like that thing as well. Learn everything there is about it, and and make it your own.
[00:43:19] Barry Luijbregts:
And then you'll probably be good for at least a couple of months. Maybe a final question. I struggle with this myself. Like, what what would you advise your kids to study?
[00:43:32] Gerald Versluis:
Oh my goodness. Well, then they should never get into software development to begin with. No. I don't know. I I I love what I do. I've been loving it for a long, long time. I don't know. Like, I have two boys. They're six and eight, so they're not quite there yet. Obviously, they're interested in gaming and everything that has a screen. But I'm not sure if they would go into software development necessarily. But this is an honest answer, like all kidding aside, I'm not sure if I would recommend them going into this field anymore, or at least have a wildly different approach than I had, which is just, you know, learning a programming language, learning all the architecture, etcetera, etcetera, the best practices.
And maybe maybe that's the thing how we should look at this there too. Right? Like, let's incorporate AI and Copilot there from the beginning. Maybe, you know, because people just starting out are still young. They're very resourceful. They can still learn anything. So, you know, they'll probably adapt very fast and just figure out a way to still do these things and do it better than us and work with all of these new tools and even invent the next generation of all of these tools. Right? So Yeah. That that's the best I got. I'm sorry.
[00:45:00] Barry Luijbregts:
No. It's good. Yeah. Who knows? Nobody knows. Nobody knows. So we'll we'll see. Alright. This was very cool. Where can people find out more about you?
[00:45:10] Gerald Versluis:
Find out more about me? Well, that's I if I would have known that I would be doing these things, I would not have chosen a very unpronounceable social handle. But it's my initials, JF from John Fitzgerald. I don't know if that's publicly known, but here you are. And then my last name is always a mess, Versluis. I'm sure you'll have some show notes, Barry. But just I don't want to be arrogant here, but just find my name in Copilot or any other old school search engine. And you'll probably find some stuff about me and what I've been doing.
[00:45:46] Barry Luijbregts:
Yeah. I'll have some links in the show notes, and people can go there and click on it and come to your amazing YouTube channel, for instance. Oh, thank you. Alright. Thank you very much for this very interesting conversation.
[00:45:59] Gerald Versluis:
Thank you so much for having me.
Sunlight, weather, and mental health in The Netherlands
Workouts, running, and Hyrox as mood boosters
What John does at Microsoft on the .NET MAUI team
Why cross-platform app development is so hard
Blazor Hybrid, XAML, and web apps inside MAUI
AI accelerates MAUI with PR reviews and Linux support
How Copilot validates code, tests, and running apps
Why MAUI needs guardrails, skills, and instructions
How other Microsoft teams are adopting AI workflows
Will AI change developer jobs and what should kids study
Where to find John online