00:00.47 James Welcome back everyone to Merge Conflict, your failure developer podcast in the entire world where we just ship all the bits and just merge and ship stuff to NPM accidentally. Whoopsies, what happened? Just ship all the maps. 00:12.98 James We can find everything with a map. 00:13.82 Frank Oh. 00:15.98 Frank I've never heard of map files. Tell me more, James. Did someone accidentally upload a map and now everyone's reading a map? That sounds ludicrous. Why would anyone want to do that? 00:25.43 James I did watch a video from, I'm pretty sure it was the the guys at Syntax. They were talking about source mappings and why you may want to because I think Apple. Remember when Apple, they shipped their source map accidentally for the new Apple App Store page where you can browse apps on the website. 00:40.79 Frank Oh. 00:45.88 James And they accidentally shipped their source maps. 00:45.98 Frank Yeah. Yeah. 00:50.42 James To me, these are like PDB files in a way, but like different. I think they're like also like the entirety of the source code kind of, but not really. The source maps are important because they kind of allow you to like really do deep debugging from my understanding. 00:58.62 Frank yeah 01:03.94 James because it's like the source and it is the map X, Y, Z to it. It's not like a one-to-one writer. Is it a one-to-one? I don't know. 01:10.39 Frank No, think of it more like as the de-obfuscator. So like you take your JavaScript file, you obfuscate it, and it's the information you need to turn it back into source code. 01:22.30 Frank So everyone ships their JavaScript apps as obfuscated, compressed, compiled, whatever silly web term you want to use there. And it you know it it turns all the variable names into underscore A or something stupid like that. 01:37.30 Frank And then the map says underscore A is actually the variable called prompt, let's say. 01:45.70 James Eww. 01:47.10 Frank Yeah, they're they're useful um because, yeah, it's you you want to test then actual release bundle because bundling JavaScript is such a pain in the butt and getting that all right is a pain. So you actually kind of want to test your app in that compiled mode. Plus there are efficiency gains, but they're very minor. um But you want to be able to read the code in the debugger. And that's why I think you think of it as debuggable because yeah, it puts the variable names back, puts the white space back, all the important things. 02:19.27 James Yeah, it's good to do that. And I think obviously if you're doing like internal testing and obviously running on your mobile machine, that's super important, but you probably don't want to ship them to production, although you can. i mean gen i think, could. 02:30.99 Frank Yeah, I mean, If you don't care, like who cares? Like software's free now. I believe I heard someone at Microsoft say, so like what's the value in anything anymore? You might as well just ship all the code. Now I got i think like is if it's open source code or if it's just like a bunch of front end stuff that's, you know, validating a text box, who really cares? You don't need to obfuscate that stuff. But if it's all your API keys and core logic to your application, maybe, maybe you want to protect it. 03:03.61 James If it is cloud code, maybe you want to protect that accidentally. And it's an easy mistake to make. But yeah, there's a whole thing. I didn't dive through any of the code. I don't even know. I think all the code's taken down or something. 03:14.61 James Someone's converting it to Rust or something crazy. 03:16.89 Frank and 03:17.28 James But yeah, think in world of... in the world of software development, right? it's It's a great reminder. Apple did and Anthropoc is some of the largest companies in the entire world. It's easy to to to slip up a little bit here and there and that happens, you know, but also give people grace. Like there's a human, there's a human that that accidentally flipped a flag, right? And that kind of sucks for them, but it's a bad day for them. 03:41.42 Frank chance it was a human. 90% chance it was a human. But it could have been anything accidentally flipping that flag. 03:45.62 James ah or a human instructing, human in the loop. 03:49.72 Frank Right. 03:49.86 James There's gotta be a human somewhere. there's a human somewhere, Frank, that's human. 03:53.11 Frank Someone has credentials. We'll put it that way. 03:55.90 James Yeah. 03:56.31 Frank Whoever's credentials is used. Yeah, you know, it's funny because i was just going through a whole thing. 03:58.78 James But talk, 04:02.51 Frank um was getting the weirdest.NET compilation error. like get it when Whenever I was trying to do things in CICD, it kept hitting this weird firewall rule. 04:14.87 Frank And it would keep coming up in my CICD. Everything was working. But this firewall is like, we blocked your access to this domain I've never heard of. I'm like, what the heck is that? And finally tracked it down. 04:24.25 James Weird. 04:25.94 Frank i was using it. I was even using it. There was an ancient, ancient obfuscator referenced in in the repo. It wasn't even referenced. It wasn't used. Nothing was executing it, but it was sitting in there there in the repo because i am dirty. I am sloppy, and I just leave stuff in the repo from decades ago. And um it was AIs futzing around promiscuously trying to load yeah URLs. was trying to load an obfuscator yeah URL that is just so ancient that like it was hitting all the rules and everything. I was like, oh, yeah, I remember when I used to obfuscate my C-sharp code. 05:05.43 Frank And I think people still do that, but I don't know. No one decompiles code anymore, or at least you know at given the web and how every app is basically open source because of JavaScript. 05:19.06 Frank What's the difference? 05:20.95 James Yeah, it's tricky. I would say that that is, you have like an idea and people then you can just, you build it. It's easier to build it faster than ever nowadays. If you have an idea or you see something, um I think back in, well I think in the enterprise it's pretty important because they really want that extra layers of security, right? 05:39.85 Frank Yeah, I guess. 05:41.86 James So especially on like Android and like obviously with, 05:43.74 Frank Or at least the theater of it. 05:45.72 James Yeah, there's a theater. there's a There's like a feel-good feeling that i've I've obfuscated my code and I went through all this stuff. 05:53.21 Frank Yeah. 05:53.55 James And look at all these look at all these checkboxes I checked, boss. 05:54.57 Frank Uh-huh. 05:57.63 James No, 05:58.17 Frank There's absolutely no way an AI could just sit there and give it good variable names. That would be impossible. 06:05.42 James impossible-able. Well, and that's, you know, we talked about when you disassembled that thing that fell off the submarine or whatever, the boat. 06:10.74 Frank Mm-hmm. Yeah. 06:12.79 James Was it a boat? Was the submarine? What was it? 06:15.40 Frank A frigate. 06:16.59 James A frigate? It was a frigate. You know, you nowadays you can point it at the thing and then figure out the thing. So I think that's a beautiful world that we're living. I was, we're at MVP summit in, you know, aerial tramways are having, having a moment, thanks to SNL. 06:28.06 Frank Oh yeah, that was great. 06:29.53 James and i And didn't know much about aerial tramways. And ah yeah i think the thing is I can point AI and say, give me a thing about aerial tramways. 06:33.72 Frank Funuculars. 06:38.05 James And then I can have a generator report, a PowerPoint. 06:38.70 Frank Hilarious. 06:40.57 James We um got invited to this wedding ah that's um um in another country, in a beautiful country. I'm not going country, because this thing's a beautiful country in South America. 06:49.83 Frank Cool. There's many to choose from. Yeah. 06:53.52 James South America. Latin America, South Latin America. 06:54.49 Frank Ooh. 06:55.90 James Latin America. And um I was like, well, I want to go to this wedding center, been in this country. So I went into Microsoft Copilot, normal Copilot, and they have this new tasks. 07:03.90 Frank oh nice oh 07:10.20 James And our friend Craig works on the MAI Copilot team. And you can go into tasks and you can ask it to do a bunch of stuff. So for example, I had a book a date night for me and Heather. 07:22.49 James And opened OpenTable, it did a thing, found a restaurant, did a thing, right? 07:23.16 Frank oh 07:25.55 James I'm going to have it book super, mm-hmm. 07:25.94 Frank Wait, wait. You did the actual demo thing where you had it book you a dinner reservation? mean, that is the classic AI demo. I'm so proud of you. I've never done that. 07:34.04 James Yeah. 07:35.32 Frank ah 07:35.74 James I was like, Hey, find some restaurants that we haven't been to and go book it for me and make it happen. 07:39.16 Frank Yeah. 07:40.48 James I said, I said, you know, um, you know, you know, want to have dinner around, you know, but six o'clock. 07:40.87 Frank Cool. 07:45.46 James So we got to be home by like so eight o'clock for Millie for insulin and, you know, you know, see what nights are good. I prefer a Friday, but a Saturday would work in these day range. Like I'll make it happen. 07:55.20 Frank Mm-hmm. 07:55.31 James And it, it made it happen. and i was like, cool. Thanks. Awesome. I just did it. 07:59.93 Frank I love it. 08:00.38 James Did the thing. 08:00.53 Frank I mean, the next thing I know, you're going to order a pizza and book a flight. like it's I mean, you're using AI so correctly at this point. 08:06.16 James It's close. 08:08.66 Frank Yeah. 08:09.21 James So for this trip, I said, Hey, we got invited to this wedding. 08:09.64 Frank okay. 08:14.00 James Here's the wedding website. Here's where we, you know, you know, they know where I live, obviously, because I've told it, it's got the memories. 08:15.86 Frank Okay. 08:19.96 James And I'm like, Hey, you know, Heather and I need to go, like, go figure out optimal flight. I want the best flights, reduced hours. 08:27.26 Frank okay 08:27.33 James I'm okay with an overnight, but like, we want to spend some time in the main city before going over here. 08:29.62 Frank Jeez. 08:31.89 James I said, put together an itinerary of everything we need to know for the wedding, getting a flight options. said, I want Alaska, but I also want United because i got I got credits on United. But I'm also cool splitting one way each, right? 08:43.58 James I said, I got about $500 in credits. you know What can we do? 08:46.71 Frank Smart. 08:46.84 James um And then I was like, you know when we stay in the city, you know um and in the first city, i want to stay at a Marriott because I got points. And then we'll stay at the the wedding hotel here. 08:57.43 James I said, go. i said, you know what? it i want you to not just research this. I want you to create a a PowerPoint presentation to convince Heather that we should go to this. And it generated the most beautiful, stunning experience thing in the entire, I'll send it. 09:11.55 James It's like, it mind bogglingly amazing. 09:12.98 Frank Oh, my God. 09:14.63 James was like beautiful imagery and like all this stuff. And then, um, I didn't have it book the things for me. That was like the next thing I could have. 09:20.79 Frank OK. 09:22.01 James Uh, cause I sat, we don't, we sat down, but it was really nice cause it did give a review. So I've been doing that. So thanks. Shout out to Craig and the entire MAI team for, for hooking that up. was pretty cool. And, um, it was nice. 09:31.11 Frank Well. That's very cool, but you just gave me the idea. Now you need to code um an MCP server that logs into all your reward accounts. So it can be like, hey, you got points over here. You got points over there. going to distribute your points to the economy and hook you up with the best date night ever. 09:50.93 Frank Mm-hmm. 09:51.78 James I do feel like that's like the next level jump of, of whatever this is, is that if it can have access and just even just understand it doesn't a be to have access, but understanding to my points and my things, 10:05.94 James Like ideally what I want is an agent. I want to be like Hey, I want to go to, we just went to Korea, Korea. You know, we want to find fly Hawaiian airline and we got this Alaska airline. We got this many points. 10:18.17 James Like we want to go sometime for this long, blah, blah, blah. Right. I want you to like monitor, and optimize the absolute absolute best you know point to dollar ratio spend upgraded business class blah blah blah i don't want to spend more than this point and then it could just work in the and it's just an army things or or it it could just ideally it should just know and it could just give me recommendations and non-stop right there's services that i have like there's um 10:31.45 Frank Yeah. Love it. Right. 10:40.47 Frank and 10:45.82 Frank Yeah. 10:48.81 James what is it a points path, which when you search on Google flights, it'll tell you like the points of like if it's a good deal or not. But you got to be proactive. I listen to all the hacks and he's always like, oh, here's how I do this. I'm spending lots of, years I don't have time to research, right? 11:01.11 Frank Yeah. 11:02.07 James So our flight back, we had this like, you know, point, I was like, oh, it seems like a decent amount of points. 11:02.15 Frank Yeah. 11:06.17 James I have no idea if it's a good idea, but i was like, seems all right. It doesn't seem like too much. Well, I'll get it. 11:10.32 Frank Mm-hmm. 11:10.60 James yeah Let's book it, right? But is it a good dollar to point ratio? I have no idea, but I do think that that's the that's the the agent that needs to sit there and whoever builds that billion dollar idea, I'd pay for that. 11:16.22 Frank since 11:21.47 Frank I've got half a feeling like Open Claw does it because, you know, there there's skills for everything. 11:24.51 James Probably. 11:25.87 Frank But yeah, someone get on that, please. And I'm just realizing, like, I actually do need to start taking advantage of this because living on the island here, all I think about are logistics when I leave the island, like timing this and timing that. 11:39.27 Frank got to time the fairies, got to time this. It's horrendous. I hate logistics. I'm willing to do it for very important events, like to go visit you, but that's about it. And so I'm like, oh, but if an AI actually did that and maybe coupled in my points, which I don't have any of, but you know I could pretend we could start building some points together. uh yeah i do need to get it on logistics thanks for the uh tip i always think of it as ordering pizza but now that you've reframed it in my head as getting on and off the island i think i might actually try to tap into this 12:12.20 James I did think about this recently and like recently I did a door dash. I don't door dash very often, but like I was, I was, i was remote. I was in a place where there was no food in the house. 12:24.22 James that we were at temporarily. And i was like, I gotta order some stuff or some bars and some, you know, some waters and some stuff from seven 11, got it delivered. You know, I didn't have, but I couldn't leave the house. 12:34.64 Frank Classic. 12:35.96 James And this weekend where we're working on this, in this, in this area. And I was like, it's like three o'clock. We haven't eaten anything yet or anything in the house. I was like, I'm just going to like reorder. 12:47.99 James But I like, because I don't like apps, like I'd already deleted, I'd already deleted the DoorDash app and I got to reinstall, I got to like re-log in, I got to go pick it up and do it, want everything. 12:48.56 Frank OK. Hit me again. Yeah. 12:55.56 James What would have been cool is I, and I should have done it, go to task and be like, hey, go place that last order from, it's the same, but this address, like go, make it happen, right? 13:04.12 Frank Yeah, I love it. 13:04.34 James And I bet I would have, it might've been able to do it. would have been good test, you know, how close does it get? It gets pretty close until I also like enter a credit card, you know, so. 13:13.40 Frank Yeah, exactly. Well, we both keep talking about, i think at the MVP summit, you called me skillless. And it's almost true. I have one skill. But it sounds like we both need to build up our little skills so that we can do this kind of stuff. 13:28.70 James Well, it sounds like somebody to deployed ah a agent fleet onto a code base over here. 13:29.00 Frank We'll just call it. 13:36.91 James I don't know. You came back from MVP Summit and all of a sudden Frank's using all of his tokens. And that's the 31st. guess you guys it's about to reset. um So C language, Frank's C++ plus plus parser, compiler, and interpreter for.NET, which think you use this in iCircuit, right? 13:54.38 Frank iCircuit, yeah. So it it simulates Arduinos in iCircuit. So you can just write Arduino code in iCircuit, and while it's simulating the circuit, it's also simulating the Arduino code. 14:05.82 Frank And so I have a full high-performance virtual machine written in C Sharp that runs on.NET on any platform, all sandboxed up with a little C compiler. So you know it's an open source library because I think like I don't know who else could use this, but it's good for parsing header files. 14:24.39 Frank If you wanted a plugin system for your own apps and you were willing to have people write those plugins and see in C and C++, which is a little weird, um it's great for that. 14:34.67 James Well, that doesn't matter anymore. 14:35.31 Frank But... 14:37.34 James Anyone can do it and just 14:38.01 Frank Exactly. Right. 14:39.13 James Yeah, just but do it. 14:39.25 Frank Just have an AI generate the code. 14:40.13 James Yeah. 14:40.85 Frank You might as well. 14:41.50 James yeah 14:42.01 Frank Then there's a plugin system. I make it super easy to like integrate the the the sandbox virtual machine with your own code so it can talk to like your own objects and everything real easy. 14:53.24 Frank But yeah, I've had this, ah it's ah some old artisanal code I wrote by hand back in the day. Yeah. 15:00.63 James Last last last ah release before today was almost two and a half years ago, by the way. 15:03.96 Frank m 15:06.41 James And original releases are 2018. 15:07.86 Frank I mean, yeah, it's like, well, the C language hasn't really, OK, the C language changes constantly. 15:08.43 James So this is super artisanal. eighteen so this is super artesal 15:19.50 Frank But like the important parts of the C language don't change that often, so once you have something working. So the deal is this library was a C parser compiler in virtual machine. But a lot of Arduino code out there is c plus plus And C++ plus plus is a much bigger language than C. 15:37.15 James Ah. 15:41.33 Frank Much harder to implement. C is this beautiful, tight, easy to implement language. C++ plus plus is the monster from the middle of the ocean and coming to conquer your town with its nuclear ray breath and all that kind of stuff. 15:58.26 Frank That kind of monster. Kaiju. That's the word I was looking for. C++ plus plus is the kaiju. Anyway. ah So I was basically goofing off all last week at MVP Summit. 16:08.69 Frank And I came back and I'm like, I have not used up my tokens. And I swore i was going to use all my tokens every month. And so I'm like, what am I going to use all my tokens on? 16:17.56 James Yeah. 16:20.40 Frank So I did two things. um We talked about it a little bit at the and MVP Summit episode, which everyone you should watch live because we were facing each other. It's always very awkward and cool. 16:31.35 Frank um I actually implemented my agentic workflow, which is really cool. It goes through past issues and triages them. That's that's a side point. 16:42.17 Frank That was not using my tokens fast enough, James. I had tokens to burn. So I'm like, you know what? It time. is time to improve my C language and turn it into language. Or at least get in some of the bigger features it's been missing for a while, namely like inheritance and polymorphism, operator overloading, the stuff you need to kind of support the more sophisticated Arduino libraries out there. Because no one writes in C. Everyone writes in C++. 17:13.62 Frank Um, so you say I ran a fleet. Call me Admiral Frank because I did not use the fleet command. I was one at a time banging through these puppies, one PR at a time. Also, ah Pierce made me feel bad at MVP summit because he was asking who, who launches an agent and then sits there and watches it instead of multitasking. And like, that's, that's me. 17:38.87 James Everybody. 17:38.87 Frank Hi, hi. Yeah, because, look, AIs have improved. but They really have in the last year. I get it. Opus, awesome. But they still make mistakes. They still take every little shortcut they can possibly take. So, like, you do have to babysit these things a little bit. Anyway, Pierce put me on the spot, and I said, I am going to... I'm going to multi-agent James. I was creating issues. I had agents creating issues. i was creating PRs. I had agents critiquing those PRs. was agentifying everything. 18:10.94 Frank And I... I, you know, not to over ah compliment myself here, but i crushed it, made some awesome features and really improved the library and full credit to Opus for doing all the hard work, obviously. But I feel like that was a blitz of dev lead management. 18:29.11 Frank um I'm kind of exhausted after just like two days, but the agent and I, we accomplished a lot. And it was honestly really thrilling and fun because like it just got so many big features done and bugs fixed that have been bothering me for literally years. like Some of the issues were five, six years old that we fixed. Anyway, that's a long rant. I just want to say I had so much fun. like This has really inspired me again to like, you're not coding, but it's coding. It's weird. It's a different kind of coding. 19:01.03 James It's coding. is is is there we I think this is a cool example because you know now I can see in your repo you got an agents MD file, you got some like workflow files, you know you're trying to agentify this puppy. 19:02.60 Frank It's coding. Yeah. 19:12.85 James You got the releases and like it touched all aspects of it. and Funnily enough, like One of my new favorite things to do is what you just did here, which is like go find one of my projects that I just haven't touched in a long time and can I facelift it, right? 19:28.17 James It's still deployed, I'm still using it, maybe it's an app, it's whatever. 19:30.52 Frank yeah 19:31.38 James um Maybe it's an open source project. ah Recently, there's a project on the my on the Microsoft GitHub called Cloud Cloak, okay? 19:39.95 Frank Cloud Cloak. 19:41.24 James Cloud Cloak, it's github.com slash Microsoft slash Cloud Cloak. 19:41.91 Frank It's hard to say. Cloud Cloak. 19:47.67 James What Cloud Cloak lets you do, is's in a it's a browser extension. And it is when you log into GitHub, into AWS, into Azure, into other services, it will blur all of your API keys, subscription keys, all that stuff for you automatically, right? 20:04.97 Frank Oh, fancy. 20:07.19 James This is a hackathon project a few years ago, pre-AI. 20:07.31 Frank Mm-hmm. 20:10.94 James maybe maybe early co-pilot days of like auto-completion. 20:11.51 Frank Nice. 20:15.09 James And a bunch of people worked on it. 20:15.10 Frank Mm-hmm. 20:17.09 James Scott was like a sponsor on it, like real excited about it and it's great for demoing because it can auto-hide a bunch of stuff even on your screen in the browser. 20:22.78 Frank Right. This is in the browser, I'm assuming? Yeah. Mm-hmm. 20:28.18 James So you just turn it on. It'll auto-detect. has a bunch of yeah URLs that'll auto-detect and turn on automatically. was like Azure, AWS, or things like that. And it's like, oh, flip it on. you know, if you decide to enable it or not. 20:37.87 Frank Yeah. 20:39.77 James um And this is super great. So for example, even if you have an API key, you can say show API key, it'll still blur it, but the copy button will be available for you. Right. So that's kind of nice. 20:49.58 Frank Yeah. Great. Yeah. 20:50.90 James Um, uh, so this project was sitting there and I got a report, uh, from our video editor. It's like, Hey, like, this is a pain in the butt to like edit it out and blur all these things. 21:03.89 James Like there's gotta be better ways. 21:04.59 Frank Yeah. 21:04.89 James Like, Oh, there's this cloud cloak. And I went and I looked at the repo and I was two and a half years old and like no one's touched it. 21:10.67 Frank Yeah. Well, 21:12.15 James And I was like, can I get the admin? 21:14.04 Frank ah if it works. 21:14.18 James Give me the admin. Give me the admin. 21:15.78 Frank Yeah. 21:15.90 James Give me the admin privileges. 21:16.88 Frank Okay. 21:17.66 James And I unleashed. 21:18.26 Frank Mm-hmm. 21:18.38 James So I pointed Copilot and I was like, I said, I want you to analyze. And there was about like 15 open issues. And I said, I want you to, and there was no release pipeline, no anything. So I was like, first and foremost, like there's no tests. 21:30.03 James I was like, let's get a baseline test. Boom. 21:31.99 Frank the 21:33.11 James And was like, all right, I want you to analyze all of the issues. I want you to understand what's still valid, what's not valid. And some of these don't have a lot of information. Can you research and like based on the code base, update the issue to see if there is more information so we could triage it. 21:48.50 James And I said, I want you to put together a plan, a phase attack plan of like, what's this boom, boom, boom. 21:49.38 Frank Love 21:54.74 James And it just got to work. And like within one day, i was just like, I i did so much. fixed up. I added tons of new Azure websites. I like fixed so many bugs on it. Just like you're saying, it's just like this army of, I've never i've never seen this code. 22:08.64 James I've never seen this code. Right? And it's just like, boom, it's like doing the things. 22:11.32 Frank love it. 22:13.85 James i was like PR in it and doing all this stuff. I was like, dude, crushing it. It was fun. It was fun. it's It's coding a different way. 22:19.00 Frank Yeah. Yeah. thanks Thanks for making me feel better because like i I did, I did have to do a tiny bit of code patch it here or there, but like for the most part, this was all AI code. Like if it did a bad job, I just yelled at it. um I've really gotten used to, um this is another reason to babysit the agents steering. 22:39.32 Frank um I didn't know that this feature was added. 22:39.54 James o 22:41.24 Frank it It was added to VS Code, but it's also sitting there in Copilot on the GitHub website. So when you when it starts a PR, you can click view session and you can monitor it, see what the heck it's doing. 22:54.21 Frank But there's also a little chat window in there. And if you see it doing something really dumb, you can just type to it and say, hey, buddy, stop messing around with that. Do it this way instead. 23:04.40 Frank And hit the button. And they say on the next tool call, they'll just kind of inject your prompt in there. So you're not like stopping it. You're not restarting. And it's you're just kind of sliding a little message, and sliding into the DMs of the AI there. And so I found that that was a really great way to steer it when I saw it going wrong. 23:24.12 Frank And then obviously you go patch your agent's MD file. So it doesn't make those kinds of mistakes again. But boy, it was gratifying, especially like the way it was building unit tests and everything. And there were features like in the library that just like, I know I implemented this feature, but I don't know if it's complete or not. Can you just write a test suite for me? 23:46.17 Frank yeah. 23:46.58 James Yeah. 23:47.58 Frank like check if it's finished. Cause like that, that was one thing I learned when I started my agentic workflow, which has been really beneficial where I ask it, um go through the old issues and just do deep research. 24:01.97 Frank on don't know why i keep using that term. i I think I heard it at um MVP summit. 24:04.83 James a good, yeah. 24:05.45 Frank I just liked it. 24:05.88 James Deep, deep research. 24:06.65 Frank I'm like, like do deep research on this. 24:07.51 James I mean, you can do... you can do You can do research, but then you can deep research. 24:12.26 Frank Right. 24:13.31 James like the Research, that's garbage. 24:13.65 Frank That's what I'm saying. Yeah. 24:16.06 James That's 2025. 24:16.60 Frank yeah 24:18.02 James We're We've got do deep research. 24:18.36 Frank Right. 24:19.12 James Deep research. 24:19.16 Frank ye I need deep research here. 24:20.70 James Hmm. 24:22.43 Frank And I want you to come up with a test suite. I want you to do this and that. And it's really satisfying to see, like, generate those tests. Because I'll be honest, James, like, um we used to say at Microsoft, devs make the worst testers. 24:35.30 Frank And I do believe it because we're so happy when we get our own code working that we don't really want to break it. We say we want to break it. We don't really want to break it. don't want to break my code. 24:45.37 Frank I know my C compiler has issues and I don't want to look at those issues because they're big and scary and compilers are hard on us. 24:46.07 James Yeah. 24:52.73 Frank But the AI is just like, no, um ah ah we're going to do multi-base class inheritance. And i'm like, no, that's not going to work. It's like, yeah, it's probably not going to work, but we're going to test it. 25:04.52 Frank I'm like, no, don't test it. It's not going to work. and it's like, oh, it doesn't work. Let's implement I'm like, how about you implement it? And then, you know, life is good then. Yeah. It's actually, i'm I'm lying about that one. 25:15.73 Frank It really didn't want to do multi. and For those who don't know, C++ plus plus has multiple base class inheritance. You can inherit from multiple different types all at once. 25:26.16 Frank And basically every other language has dropped that kind of support. But C++ plus plus has got it. for better for worse and if you have a c++ plus plus compiler you got to support it yeah so it's funny like even the ai is like let's not do that i'm like let's do it let's do it i got i got tokens to spend baby and you are you have no feelings as far as i can tell i anthropomorphize you but i i don't believe you have feelings so you're going implement multiple base classes and it was great it's it's just um what did i say i think we got like 25:32.38 James Yeah, it's bananas. and That's crazy. 26:02.28 Frank 31 different issues resolved and fixed in two days. 26:04.31 James It's a good day. Two days? Yeah. 26:08.63 Frank Two days, two days. And i have to say, like tiring days because multitasking is hard is what I've learned. like you've You've always got like one running, one that you're reviewing, one that you're thinking about running. 26:22.01 Frank And I find about three is about as much as I can mentally handle. I see that like tweets of people with like a grid of 27 processes running. don't know how they keep all those in their head. 26:33.77 Frank Or how do you verify any of them? because like The AI kept making mistakes. I had to keep telling it, like, no, no, stop cheating. 26:38.80 James Yeah. 26:40.47 Frank um 26:41.36 James Yeah. 26:41.82 Frank But like I found three is a good number. 26:45.06 James I think like that's a good number, especially if you have like certain things in your project that you know. i was talking to someone like, well, how do you do it? like How do you like have all these sessions? 26:56.50 James was like, well, I kind of understand the code. So I can look in triage like in my mind, either features or issues or bugs. 26:59.77 Frank Mm-hmm. 27:03.19 James And I can run things in parallel, even on the same branch. If I want to if I'm just working at main or on multiple branches, I find work trees and I want to avoid merge conflicts. 27:07.03 Frank m OK. 27:13.06 James So in my mind, like you can have the AI prioritized, but in my mind, if I know the code, which is beneficial, and can then have the ai work on different pieces of the code that aren't going to conflict with each other. 27:14.81 Frank Yeah. 27:23.72 James Right. 27:24.71 Frank Right. 27:25.38 James Hopefully. Right. obviously it can, it can resolve merge conflicts and be all smart about it. 27:27.91 Frank Obviously. 27:29.30 James but then that gets another cognitive load. That's another thing that I don't want to deal with. Even like if I'm just writing code manually, I don't want to handle merge conflicts personally. 27:37.49 Frank Right. Yeah. 27:37.78 James But then I also said, you know, I'm not just working on one project. I'm working on other projects too, right? so in an ideal world, I have like, um, you know, multiple VS code windows open or get up.com open or whatever it is, whatever app is open. 27:53.18 James And I'm working on multiple things at the same time. Not that I'm focused on all of them, but if I have ideas or I have a backlog item or have something, maybe while I'm waiting around, I'm like, Oh, let me just go check on this other project or do this other thing. And I kind of sat around today. 28:08.50 James And I was like, I don't really have anything to work on. so i was like, that seems problematic. 28:11.41 Frank Oh, wow. Yeah. 28:13.98 James you know At least on my current projects that I have. and i said, that seems problematic. i need to like Maybe I need to go tell the AI to come up with new features to implement, right? 28:17.90 Frank Yeah. 28:21.14 James you know And in some workflow. um But then I was kind of like, I'm kind of bored with all my agents getting to work and doing something. I kind of found this flip side where i was like, I was exhausted when they're all doing too much. i have to review too much. 28:31.72 James And I'm like, now I'm kind of bored. The agents aren't doing anything. I need them to do something for me. 28:35.26 Frank a 28:36.62 James I need, I don't have a new idea, but like, well, let's go. 28:37.43 Frank yeah 28:39.58 James So yeah, it's kind of interesting. 28:41.94 Frank Yeah. 28:42.02 James Yeah. 28:43.10 Frank So even though i said I was getting tired with three running and I got 31 things done in two days, I was also working on other projects at the same time. 28:51.86 James Oh, cool. 28:51.94 Frank So I was working on iCircuit. 28:52.34 James Nice. 28:54.46 Frank And iCircuit uses two libraries. I mean, it uses lots of libraries. But the two libraries I was also working on were C language, the C compiler, and CrossGraphics, which is the rendering engine used by iCircuit. 29:07.35 Frank And forever, I wrote the most beautiful artisanal metal graphics layer in cross graphics, all in the name of performance. Always just trying to like you know get get those frames per second with using zero CPU was always the goal. 29:24.41 Frank um But there were a few quality issues. So I was always had one or two PRs in iCircuit running. three or four things in C language running all on GitHub because I hate work trees. I think they're gross. 29:40.12 Frank ah Now that I've had time to experience them, I think they're terrible. um And then i had like, as a fun side thing, if I was waiting for any of those to finish, I'd spin up cross graphics and keep working on the metal renderer where, you know, it's funny. 29:58.80 Frank it's It's those funny conversations you have with the AI now. I'm like, hey, there's a bit of code. I've always been afraid to write because it's really math heavy. I'm good at math, but it's still intimidating. Let's work on this together, babe. 30:10.58 Frank And it's like, let's do this. And it generates the absolute worst code I've ever seen in my life. Completely fails, completely breaks every test. I'm like, well, that was way worse. um Can you review your own code and figure it out? And we went back and forth and like we both decided the math is really hard. 30:27.26 Frank in this case but because of that dialogue um we came up with a whole different way to implement the feature that i wanted and it came out much cleaner and much better and it came out actually really fantastic in the end and that was a third side project while working on two other projects each of those projects having well i circuit i could only handle about one or two on at the same time because they're much more complicated, a lot more to think about. And the C language one was just blasting away. Man, I've been productive for the last two days. I don't know if I can do it every day. Oh, every week. 31:01.74 Frank It's too much. 31:02.90 James Well, I would tell people some pro tips that I learned from going to Harold's lab at the MVP summit and conversations afterwards, which was like plan more, my personal opinion and Harold's as well. 31:14.97 Frank evening 31:16.25 James He's like, if you're not planning, you're doing it wrong. And I'm like, Whoa, shit. I'm not planning enough. 31:18.92 Frank Yeah. 31:19.53 James oh Oh, crap. I crap. Oh, I swore on the podcast. i was like, I'm not doing it enough. You know, um I do plan a lot. And now some of the agents in the main loop will ask you questions. 31:26.26 Frank yeah 31:29.10 James And I really like that. I wanted to ask me questions. In fact, sometimes if I'm not in plan mode, I'll say, ask me questions if you're not sure, right? um But i do think plan mode always, 99% of the time, results in better results at the end of the game for implementation. And then the other thing that he said, so so be planning. So I'm interested if you were to go back in time and instead of just if you went into a deep plan mode and and going back and forth, I wonder if that would have resulted in better results first. 31:56.34 Frank No, I have my own technique now. So I definitely do plan mode when I'm just like coding in VS Code or something. But I have my alternative to plan mode that I very much enjoy, which is I always have it do first a plan mode where we talk it through. 32:10.20 James Deep research. 32:11.86 Frank Then we do deep research, James. And we summarize the plan, the deep research, and the discussion as an issue. 32:15.06 James Yeah. 32:21.94 Frank have that put up on the thing and then I assign the issue to a coding agent. 32:22.03 James Hmm. 32:28.18 Frank So there's almost three levels involved. 32:28.79 James Nice. 32:30.62 Frank There's the planning, then the finalization of an issue which generates a real artifact that I can reference and think about and critique and play with and then I code from that. 32:36.73 James Yeah. 32:40.09 Frank And that has been my favorite process so far, because having that like codified issue up there that is like, here is our plan. 32:40.60 James like that. 32:49.35 Frank This is what we're going to do. And it's done the deep research. So it's all I know I approve of it. 32:53.27 James and And like the context is fresh there. So it only needs to know whatever you it did. It doesn't need all that other crap that you threw away in its context window. 33:02.74 Frank Mm hmm. 33:03.55 James So again, start fresh. The last thing, which I like this approach too, that you just did. um i like, i love creating issues is the last part is the really, the review part of it. 33:15.58 James Because I think there's the human review, but now I've been using the GitHub Copilot code review agent much, much more. And additionally, what I've been doing in the CLI is I'll point it at a PR and I'll say, hey, there's this PR that just finished. 33:29.50 James I would like for you to review it with multiple models. Like give me a GPT-4 model, give me an Opus model, give me a, you know, whatever model. 33:35.17 Frank Mm-hmm. 33:36.82 James right Maybe I have my own model, my Gemini model. I said, give me these. I want you to review. and What you can do is say, review with these different, because who knows who implemented it? right maybe it's Maybe it's one or the other. right maybe it's a Sonnet model. 33:47.24 Frank Mm-hmm. 33:47.70 James said I want you to review. We have the context of the PRs and then battle each other. ah Come up with your own decision, then battle and decide together and fight for with each other. 33:53.98 Frank Oh geez. Yeah. 33:58.14 James like and Then give me an impact. 33:58.55 Frank That's some pro level there. 34:01.37 James And you don't have to go that far. If you just do the the review agent, you can say, oh, okay, yes, yes, yes, no. But what I also like to do is this. I'll do um i'll do a hybrid, which is I will do a the pull request, and then I'll do the review. So I'll do the code review. 34:16.28 James And then I won't review the code review review. I'll pull it. I'll say, Hey, listen, on this pull request, I ran the code review and this, and and it left a bunch of issues. Can you go validate all the issues and give me a report of what you think is actually important based on the code review? 34:31.70 James Because I think about it as this. 34:32.31 Frank Yeah. Yeah. 34:34.39 James I don't like to think about these AIs as humans, but i like to think of them as personas, right? And a persona is like, this is a code reviewer. Frank could be reviewing my code. Heather could reviewing be reviewing my code and or the GitHub Copilot could be reviewing my code. 34:50.07 James Do I blindly trust everything that Frank tells me or Heather tells me or the code review agent tells me? 34:50.30 Frank yeah 34:54.87 James No, I need another set of eyes. They're either my eyes or another pair of eyes on it, right? So Frank reviews my code's least comments, I don't blindly trust them. I might have Heather reviewed the comments and my code as well. 35:05.80 Frank Yeah. 35:06.55 James So that is like a nice approach. And I think we forget sometimes in this world of AI of how we work in software development. You can apply those same concepts to working with AI, right? 35:17.41 James At the same time, you know, and I do review the code, but also like have another set of eyes. It's there, it's waiting for you, right? To review those, that review. 35:26.33 Frank yeah 35:28.07 James And I think that has been really helpful. And I've caught some really be intriguing bugs. And I would also encourage you to, to do this in your code, which is like, do a performance analysis, do a security audit, do what, like tell it to do the things that you should probably do and then have it create detailed, then do deep research on each of them. 35:42.57 Frank Yeah. 35:48.95 James Right. And then generate reports for it. 35:49.25 Frank Yeah. 35:50.86 James Right. I did this thing, which was, I use, um, um, it'd be really crazy if this actually, if it, if it happened, but we have, um, of automation for the the GitHub Copilot CLI, um the Twitter account for the changelog. So whenever it gets the changelog, it sucks up the changelog. 36:11.86 James And what it does is it does an AI generator report. So it takes all of it and it shoves it into ah Microsoft Foundry and I have it generate a really cool report with the top features and categorize them into all this stuff and add emojis where appropriate. 36:26.74 James And one of the reviews was like, hey, you like you're not doing any like prompt injection detection. And I was like, well, I probably don't need to use it from the change log. 36:37.17 James But I was like, but I probably should? Like, I probably should, right? 36:40.82 Frank I that's Twitter. Yeah, anything could happen. 36:43.58 James And I was like, okay, cool. Yeah, do that, right? So that was a nice one. it was like security audit. and it's like, oh, I see that you're calling an AI service. The thing that you probably want to do are these things. So it was neat a neat way of thinking about just using these agents in different ways instead of like, go do this thing, right? Oh, think about this thing in a different way. 37:00.47 James And I've been doing this other thing, which is using these tools together, which is like do deep research in this thing and then take that output and then put it in another thing, right? 37:01.41 Frank Yeah. 37:06.67 James Just like how you're doing it. Like take this research, put it in an issue, then assign it to a thing, right? 37:07.64 Frank yeah 37:12.09 Frank Yeah, I think I will give that a whirl. um Because my biggest complaint through the process, I really enjoyed my process of creating an issue and then a PR. I i feel like we got good quality code out of that usually. 37:24.88 James Hmm. 37:24.89 Frank um But I was still catching stuff in the PR and it was getting a little tiring hand reviewing all the code. 37:30.23 James Yeah. 37:30.88 Frank Oh, what a tough life I live in 2026 having to hand review all this code. um So yeah, I think I'll give that a whirl though of trying to set some agents to do the review first. 37:43.67 Frank I did notice in Copilot on GitHub, it does run some kind of sub-agents where it does like at least a little bit of a security check and something, but it's a bit black box. like I have no idea what's actually going on there, but if I had my own agents with my own prompt and saying something, yeah, I could see how that would be beneficial. Worth a try, worth a try. I did get a little tired of like clicking all the boxes in GitHub because like with every PR, you know, you you got to wait for it to finish, which is a random amount of time. It can be two minutes. It can be 42 minutes. You know, you never know how long it's going to take. So I wish there was a better notification system there. 38:22.46 Frank And then you got to click the box that says ready for review. Then you got to go review, fill in all that stuff. 38:26.25 James Yeah. Yeah. 38:28.50 Frank Then you have to approve the workflows. Then if you had any changes requested, you got to repeat all those steps all over again. 38:30.79 James Yeah. 38:35.99 Frank um So I feel like the GitHub UI can be improved for this new brave world that we're in in 2026. And I know, I know there's there's different code editors out there and everything. But I like working through the GitHub UI because it's not on my machine. 38:54.04 Frank um It's in parallel. It's doing its own branches. I'm not filling my beautiful directory structure up with gross, gross work trees. So I just like the cleanliness of it all just being up in the cloud. 39:09.21 Frank um But I feel like the UI could use some refinement. 39:10.78 James Yeah. 39:13.54 Frank I was that close to vibe coding an interface because all this stuff is obviously accessible through the GitHub APIs. So was like, very close because I was getting tired of clicking all the buttons to streamlining the experience. 39:29.39 Frank And I might still. We'll see. We'll see if i'll see if GitHub decides ever to update their UI ever again. i feel like it's been decades since they've updated their UI. 39:42.17 James that thing's happening. think per perf I think is the first before facelift. 39:43.93 Frank We'll see. 39:45.89 James So you know, 39:47.30 Frank It's not face. It's just, it's UX. It's how many clicks do I have to do for this thing? 39:51.67 James it is it's UX. Yeah, I agree. 39:53.78 Frank Yeah. 39:53.99 James I do a lot of that stuff from the mobile app and the mobile app I to do the same thing I have to boom, boom, review, boom, click merge, go five too many clicks. 40:00.14 Frank Yeah. 40:02.87 James Yeah, so we'll see if that changes. 40:02.87 Frank Yeah. yeah 40:04.22 James And and that that is like an anti-agent flow, right? it's like very manual, like lots of safety checks. um So let me be introduce a few of that evolves. But it seems like you're evolving slowly but surely, Frank. 40:15.50 James I love it. It's good. 40:17.14 Frank Not so slowly, man. That was high efficiency the last few days. We'll see if it's a burnout, though. We'll see if, like, can I keep this up for five working days in a week? Because feel like this high productivity is going to come at a cost. 40:30.95 Frank I'm curious to see how we all feel in, like, two years. We're going to be like, man, I generated so much code. 40:37.44 James Well, it sounds like he works really hard for two days and he's gone vacation. Done. Shipped it. 40:42.58 Frank I gotta pull a James and work from the airport. Get the app installed and just do the clickety-click in the airport. 40:49.69 James like it. All right. All right. We'll go deploy your own fleet of agents on your code base. have any tips and tricks, write into the show, mergeconflict.fm or leave most likely a comment on our YouTube. 41:01.63 James Now, if you haven't caught last week's pod, I posted it late, Frank. Oops, it's on Egentic Workflow. 41:05.85 Frank Oh. 41:06.47 James So, you know, 41:07.54 Frank I didn't notice that. 41:11.70 James if you go and check it out, go check it out. And it's got really nice. It's got a really nice camera lighting. 41:25.41 Frank Lighting? Camera. 41:26.86 James So very nice, nice nice camera lighting. 41:26.92 Frank It is. We had a red camera. 41:29.46 James So give it a look. 41:29.48 Frank Yeah. We should have made a movie while we were there. 41:30.10 James We got a red camera. It's pretty good, it's pretty good. So give it a look um and see what you got. And 41:40.41 Frank Is that better than an iPhone camera? 41:44.27 James yes, I think it's tiny tiny is bed better. 41:44.95 Frank Hard to say. 41:48.44 James it' I mean, it is hard to say, but it's tiny is better. 41:49.02 Frank Okay. 41:51.69 James We're both in the studio together, so give it a look-sies if you're listening to this. Obviously, if you're listening to the last one, youtube.com forward slash at Merch Conflict That's going to it for this week's Merge Conflict, Frank. So until next time on James Montemagno. 42:06.90 Frank And I'm Frank Kruger. Thanks for watching and listening. 42:10.39 James Peace.