Episode 4: Who is Vincent DE Smet & what is Grid?
Published: Wednesday, Oct 29, 2025 • Duration: 65 minutes • Season 1
Download MP3 | Watch on YouTube
00:00 Why move to Vietnam? 33:34 Spec Kit and https://github.com/steveyegge/beads? 44:49 Demo of the Grid
summarize "https://youtu.be/OacVAuGFSHg" --timestamps --slides
Vincent De Smet discusses his professional journey from implementing ERP systems in Vietnam to becoming a specialist in cloud infrastructure and Kubernetes. The conversation covers the evolution of container orchestration, the technical trade-offs between different cloud services, and the development of his new project, Grid. De Smet details how his background in manual system administration led him to seek better automation and type safety in infrastructure as code. He also provides a deep dive into his current development workflow, which leverages AI agents and spec-driven development to build complex software systems.
From ERP Consulting to Infrastructure Automation
Vincent De Smet moved to Vietnam in 2006, initially working for a decade as a professional services consultant. His primary role involved implementing Infor ERP systems for international clients, including major hospitality brands like Hilton Hotels. During this time, he learned that you really only understand something if you if you can explain it to someone else while training users on complex accounting software. His transition toward software engineering and infrastructure began as he sought to automate the repetitive, manual processes of installing Windows systems. He moved from following static Word documents with screenshots to writing extensive PowerShell scripts. These scripts allowed him to interact with the .NET framework, load access databases, and create unattended installation routines. This early exposure to automation and the realization that manual processes were inefficient set the stage for his later interest in immutable infrastructure and containerization.
Gaming Origins and the Rise of Docker
The shift into infrastructure engineering was heavily influenced by De Smet’s interest in gaming. Around 2013, he attempted to run Counter-Strike: Global Offensive servers in Vietnam. He discovered that running game servers in traditional virtual machines led to significant performance degradation. This challenge led him to explore Linux containers and Docker as a more efficient alternative. He began building a gaming platform that required ingesting massive amounts of log data to generate player statistics, similar to professional platforms like ESEA. He utilized IRC bots and regular expressions to parse logs and manage tournament flows. This project forced him to learn modern web technologies, including NodeJS, Python, and Angular. By attending local meetups in Vietnam, he transitioned from the Windows-centric world of ERP to the burgeoning ecosystem of Go, Docker, and immutable server architecture.
The Early Days of Kubernetes and CoreOS
De Smet was an early adopter of Kubernetes, following its announcement by Google in 2014. He initially viewed the system as overkill but was fascinated by the kubelet’s ability to manage containers. He documented the “hard way” of setting up Kubernetes on Digital Ocean droplets, which involved manually bootstrapping PKI, configuring etcd, and setting up Flannel for overlay networking. He highlights the significance of CoreOS during this era, particularly its container-centric operating system and the Fleet scheduler. He describes the technical competition between Docker and CoreOS, noting how CoreOS developed Rocket (rkt) to address security concerns like image signing and verification. This period was marked by rapid innovation and shifting standards, as Kubernetes eventually superseded alternative schedulers like Fleet and Docker Swarm. De Smet notes that while CoreOS was eventually acquired by Red Hat, its influence on the industry remains through projects like ignition and the concept of automated OS updates.
Infrastructure Trade-offs and Resource Management
The discussion explores the practical trade-offs between using Kubernetes and managed services like AWS Fargate. De Smet argues that while Fargate offers simplicity, it lacks the fine-grained control over resource oversubscription that Kubernetes provides. In Kubernetes, engineers can oversubscribe nodes, allowing pods to burst and utilize available memory and CPU beyond their guaranteed limits, which is essential for handling bury workloads cost-effectively. He notes that the reason developers like to run docker compose is because it’s easy almost no dials and knobs but emphasizes that enterprise-scale infrastructure requires more robust controls. He discusses the evolution of ECS and the recent introduction of managed autoscaling groups, highlighting that the choice of tool depends on the specific business value and operational requirements of the organization. This understanding of trade-offs led him to develop Grid, a tool designed to manage infrastructure state with stronger type safety than traditional methods.
AI-Driven Development and Task Management
De Smet provides a detailed look at his current development process, which heavily utilizes AI agents like SpecKit and Beads. He describes a “spec-driven” approach where he uses AI to plan features, perform gap analysis, and generate functional requirements in Markdown. He highlights the challenges of managing massive AI-generated task lists, which can grow to thousands of lines. To solve this, he uses Beads, a tool that tracks tasks in a database rather than a flat file, allowing for better context management and issue linking. He explains how he uses different AI models for specific tasks: Gemini for reviewing code and plans due to its speed and large context window, and Claude for the actual implementation. This workflow allows him to “slice and dice” complex features into manageable issues with clear acceptance criteria. He emphasizes that the planning phase is critical, often taking up the majority of the development time to ensure the AI agent has sufficient context to execute correctly.
The Grid Project and Strongly Typed State
The final segment focuses on “Grid,” De Smet’s project for managing infrastructure state. Grid is designed to solve the problems associated with “integration registries” in large organizations, where different teams need to share infrastructure outputs like VPC IDs or subnet IDs. Unlike existing solutions that rely on loosely typed strings, Grid aims to provide strongly typed schemas for infrastructure outputs using Terra Constructs. This allows for better contract testing between teams and ensures that dependencies are versioned and validated. De Smet demonstrates the Grid API and dashboard, showing how it tracks dependencies between different Terraform states. The system can detect when a dependency becomes “stale” due to changes in an upstream resource. He explains that Grid uses state as an encapsulation mechanism, allowing platform teams to expose specific resources to product teams without revealing the underlying complexity. The project is built using Go and Connect RPC, providing autogenerated clients for multiple languages and a React-based visualization layer.
Model: google/gemini-3-flash-preview
Transcript (auto-generated from YouTube captions)
Why did you move to Vietnam? Just because you bought a place, I suppose, just like I moved to >> No, no. I I I came to Vietnam in 2006 and um I worked 10 years as a professional services um consultant implementing ERP systems like financial management system called infor systems. And so that was mostly with international clients. So I was based out of Vietnam but I would be traveling all the time. And my background is software engineering, but um I spent 10 years training people on how to enter invoices into an accounting system without knowing anything about accounting initially. Um, so that was like and that's kind of where I learned that you really only understand something if you um if you can explain it to someone else but also you get a very different perspective from other people cuz they put me in front of like manuals of this accounting system and they said okay in one month you're going to the customer you're going to shadow a senior first and then later you're going to have to do the trainings on your own. >> So you're training like Vietnamese? >> No, no, no. International. So I was based out of Vietnam, but um the company I worked for had a very big contract with Hilton Hotels Worldwide. So I went mostly to Hilton hotels like Gardening or >> Are you allowed to say these people's names or do I have to retract? >> No, it's fine. [laughter] I worked 10 years um for pretty much mainly on Hilton and some other hospitality clients. >> All right. But yeah, I mean it's it's not a secret. >> Yeah. >> Then how did you get into infrastructure then? How did you become a Kubern I mean I think I knew you back in Singapore as a Kubernetes um zealot, >> right? >> Made me absolutely made which made me want to push you away because I I I I just had bad experience after bad experience with with Kubernetes. I mean I use community don't get me wrong and when it when it's appropriate but uh it it does frustrate me. >> Yeah. So after about you know 7 years of going to customers. So from 2006 until 2013 about um most of the time I would you know we would we would be there to a whole day to install a Windows systems you know we would be having a word document and we would have our installation you know with the requirements for the client because every customer we work with they have different requirements. if they are a real estate investment fund in Luxembourg, they have different security requirements than the hospitality like the way that they manage the servers, the way that you get access to a server. And I also worked for Gadak Cement which is a whole wholesim subsidiary in Azarban and I worked and always had to like follow these manual like installation steps from a word document and I wrote a lot of PowerShell scripts to kind of like automate that process, you know. I had a lot of fun with with like um active is it ADO active objects from Microsoft uh inn net. So so with PowerShell you actually have like the whole net. So you could create any object that the Windows system had and I could load like uh access database files. So some of this software that I worked with used access databases. So I could use PowerShell to load the access database, read some of the data, modify it. So I started making >> back now. Gosh, you you must be as old as I am. >> Yeah. So, so that was a lot of fun like because we had a lot of bash scripts and stuff that other consultants had built. Um but yeah, I mean we as we do the same thing a lot. So we try to optimize our work, right? So, so we have some internal scripts that we have and um that's part of our professional services our our um you know expertise that we bring to to to okay supply the system right so I I actually spent a lot of time building unattended install scripts with powershell >> uh and it wasn't once I saw one customer which was kadak cementin they had the whole VMware that was back in 201 I don't know 2011 maybe before that VMware was already spread quite in a lot of places, but >> I was working on like preparing a training session and I had everything set up on my virtual machine, but then I had to copy over the settings to the the actual client server for um for an a training session and I said, "Oh no, um I ran out of time and one of the IT administrators says, "You have you're running VMware. Um what's your IP address? let me clone the VM machine from your laptop and I'll create four copies for every attendee. Yeah. And I was like what the hell? [laughter] So, so you know after you know spending all this time you know creating screenshots so we have a document we we we take screenshots of what we have actually done on their machine and then you know hand over to the IT administrator. um you know after doing that flow in many um you know for many customers I come to this place and they're like let me you know let me connect to your laptop to the VMware port and copy the VM. I was like, uh, okay, what the hell? At that point, I kind of realized that all of this Windows manual process is kind of nonsense. And I started looking also I wanted to run game servers. And I learned I I had like we we bought like a Power Edge Dell server that we wanted to put in a data center like a colo in in Vietnam with a friend to run games on it. And he needed Windows. >> Yeah. I wanted Counter Strike uh you CS:GO at the time, >> right around 2013. And um at the time he needed Windows for he he ran a big gaming uh news website iame.vietnam in Vietnam and um he needed he wanted to host an up andcoming game but it was Windows only. So I ran my my we needed to run VMs right Windows and um and Linux and so then I also wanted to have better performance because as soon as you run Counter Strike in the VM you start having performance problems. So I started to play with like Linux containers uh and Docker at the time and that's how I got into Docker originally and I started going to to uh meetups in in Vietnam to learn about like I want to ingest because I wanted to get create a gaming platform for Counterstrike that was like ESL existed, HLTV existed. Those are very big like Counterstrike related related services and I felt that they did not give a lot of like statistics. There was um fragbite sorry not fragbite got frag in America they gave oh and esa they had very detailed statistics uh like about your contribution to a round they calculated so they could assign skill points to a player much better than most of the other platforms. Yeah. So I was like I had built gaming I had run gaming tournaments in in Belgium. So I knew how to get all of the logs so you could get every single event from the locks. So you could tell the the Counter-Strike server to send all the locks to you. And I was used to like >> Yeah. >> Yeah. I was used basically at the time you used like like IRC bots, you know, you say a certain keyword and that message was received and the bot would would um identify with a regular expression or whatever or just look if the if the text starts with a certain keyword and then it would execute commands. So people would say things and if it had that command then the bot would respond. So, we had like a bot that would read the Counter Strike logs and then would keep track of the score uh and then keep track of like when it needs to restart or switch the teams so they could, you know, manage a tournament. So, I was like, cool, I just need to ingest all of the the statistics about the players. So, I wanted to build like a platform and I I learned Angular and NodeJS and Python and try to build this on my own at the same time, you know, as a side project. And I I then really got into Docker and and and go to meetup. So I I got into the Docker meetups and and then >> Yeah, that's cool. Like a lot I mean I I basically got into this into this game through gaming and I think that's a very common uh >> what do you call it? Origin story for a lot of people in this business. >> Yeah. >> Servers to infrastructure engineers. >> Yes. And also um going to the meetups gave you a lot of like insights um into what other people were doing and allowed you to talk to people and figure out like even though I was at my day job I was working for 10 years with like these just financial accounting systems and building you know nets power and powershell scripts and and things like that and then now I was like learning bash python docker like immutable servers and and and So that was like really exciting and interesting you know um but >> but then you then you got into Kubernetes hard. >> Yeah. So one of the meetups that was around 2014 after the Google people had announced Kubernetes as a project uh at the Docker Con. Um it looked way overkill like initially when I looked at what they talked about the cublet that was interesting. Yeah. you could run that separately to get like information about your docker demon and the containers on your host. So that was like yeah maybe I like the cublet but I don't like this everything else right and then >> the control plane is quite good isn't it like >> it was absolutely crazy in the beta. So back in 2014 uh I think around September they they went from beta to like sta stable v1 um around September. So they had announced it in July and it looked really complicated and at the time I was using digital ocean because I didn't know AWS and I wanted like simple VPS, right? A a droplet cost like $5 a month >> and it was great for a hobby, right? >> Ocean was great, wasn't it? It was so easy. >> Yeah. And and but they had also um an a bounty like if you if you propose an article and they approved it, then they would give you like $30 credit to run. >> Oh. and and write the article for them and their ex >> sorry >> that was a brilliant idea to get people engaged. Yeah. >> Yeah. So to to basically create a huge knowledge base and to have the community build a lot of interesting use cases on top of digital ocean and there was an article from a guy who worked at digital ocean I think about setting up Kubernetes on digital ocean droplets but it was like you originally kubernetes was all bash shell scripts like you had to run this script to to build this and that. I mean it was horrible installation mechanism and then Kelsey High Tower had written this um guide for core OS. So I was using coros a lot which is like >> yeah o really good >> everything is is through systemd unit. So it was all systemd and then they built their their fleet >> on top of system. >> I love the upgrade mechanism where where >> yeah so they have dual boot and they had like a locksmith um to basic and was was from coros right they used to to track um the whole fleet when one acquired the lock to reboot into the second partition. They also used the idea of channels. So if you are running on a certain version of chores and you're subscribed to like the stable channel and a new version is available, it would you know behind the scenes download the second uh the new version on a second partition and then it would >> I think that came OS >> slight slight little ch tangent before Chrome OS I had my startup web converger which had an update mechanism which I thought was quite novel I still think it's novel and that was based on git. So basically the whole root of the the OS is checked into git and then the idea is that it once it's running you do a git pull and that's how it gets the sort of like deltas and then on reboot it checks out the new um updates. Um, so I was quite and I'm still am quite uh well uh boasting well boasting or promoting my method over the Chrome OS one because I still think the Chrome OS one is a little bit overkill but anyway, >> right? Um so so the cool thing was I really loved Coros and Kelsey was working at Coros and had this very nice guide on how to set up a Kubernetes fleet using Coros. Um but he had only examples for AWS and at the time maybe even Google Cloud. was before he he joined Google and those guides were like first you have to create your your uh your private key infrastructure your PKI >> Kubernetes is the hard way that's how it starts I believe >> well it was the hard way before the hard way was a thing [laughter] so I I wrote this this guide for for digital ocean which was massive you know it started by you know bootstrapping your PII with selfert like self-signed certificate authority generating different client keys for the SC CD client setting up flannel you know and I I did a full deep dive into like how does >> I've forgotten it sounds >> flannel was a core o um pxlan packet encapsulation system so it's basically to create the overlay network right um when kubernetes that's one of the great things about kubernetes right every container within the fleet must talk to must be able to talk to other containers that may be running on different machines so they create this overlay network on top of the underlaying cloud network. So you create like maybe three core o droplets and then you create a bunch of flannel um demons that keep track of the range of IP addresses containers within their host can have and then flannel whenever a network packet comes in encapsulates it that network packet on the overlay network encapsulate it in the underlay network to then send it to the right node and then that decapsulated and then send it okay the source is this container. So, so Flannel was a very basic one you backed by CD and then um kind of merged with Calico because Kalico added additional ways of encapsulation that um were less like latency in introduced less latency. So, so it was super interesting. I mean all of these tools came out of Coros um and actually this was after somebody within the Docker meetup had asked like hey you know this Kubernetes thing does somebody want to look at it and I had and and it was around the V1 release. So a lot of these stuff was um you know getting stabilized. Uh so there were less bash scripts to download all the all the binaries. You actually had proper Golang binaries that you could download from the releases. And so I was able to to talk about it like watching Brandon Burns and Kelsey High Tower talk about Kubernetes and seeing the live demo of Kelsey High Tower where he just you know triggers uh a replica set. I think it was later that they introduced deployments. Originally it was um replication uh it was not replica set it was like replica controller um but it was very confusing because the name of the object was called like a replication controller where you give it the number of pots you want to run uh but then in real in reality the controller is something that runs inside the AP inside the control plane that that looks at the request and the actual object is the replica set is how many you want to run of them right so then they renamed it on v 1.1 or 1.2 and they introduced a thing called the deployment to basically control the rollover mechanism like how do you want to roll out between different replica sets. Uh so that was all introduced around the time that I went to for Asia in in Singapore uh and do a presentation about Kubernetes there. So I was talking about this amazing, you know, mechanism of replication controllers and then they changed it all to replica sets and I was like I'm very confused about this new stuff. >> I was a little bit puzzled about replica sets myself because because ultimately >> it seemed attached to to how you would want to scale your app because because if you have too many replicas then you you're going to maybe take too many too many uh CPU or whatever RAM resources. And I thought >> everything it changed so much >> like how like if I'm running my app how many replicas do I need? Do I need two three four five 10? Do I do I do it to to maximize the resour so >> like I I never >> when I'm talking about 2014 15 all of that was like very basic. Um today you would obviously use like autoscaling you would um even you have vertical autoscaling now you can resize pods without restarting them. Those are all things that you can do stable because like I just it is >> because because a few years ago I just thought I I just don't trust this autoscaler but um but yeah may maybe I'm >> so so that that's how I got into it right I mean initially I was doing coros for my friend startup um and every time the droplet every time cor updated nobody has access anymore because [laughter] I was maintaining their SSH keys separately >> what was relation ship between core o and kubernetes because coros came out of docker didn't it? No what did it >> no coros is a was a company um that was also called coros and they had an um they had an operating system called coros which was a container centric operating system. So you would run even your debug tools you would run everything through contra containers and the actual it was kind of like a precursor to Talos uh today I think >> um that idea of like using docker images to like I don't know um get your basic bash or something well I mean bash is not a good example but like your tooling yeah >> yeah and and chores originally they they had their own scheduler right um that they built separate from kubernetes which was fleet and fleet They basically extended the idea of a systemd unit to um to something that you could run across multiple nodes and you had some scheduling constraints on the systemd unit. I forgot the name of it that uh it was a set of units or something like that. Uh but as Kubernetes became more popular they deprecated their own fleet and they started they adopted um Kubernetes and then they built their own flavor of it called tectonic. >> The Kubernetes is system D3. Um, so it feels like systemd went head-to-head with Kubernetes and Kubernetes one, right? >> M, not really. I mean, systemd was the way to run like was replacing your upstart and your init systems on the operating system, right? And Redhead made it the default and a lot of uh distributions like rejected it, but then Ubuntu adopted it and then everyone followed. >> Uses a different well c what what's the name of the control plan? cublet or whatever to >> uh no kubernetes completely decoupled from it like systemd was purely your init system on your operating on your >> how does kubernetes managed the pods and >> well that's the container runtime >> right >> so the container runtime interface so originally a lot of them use docker to to use to basically like pull the container image set up the file system launch the process within the cont like the name spaces and the control groups set everything up for you, right? Um, and then over time there was this uh split between Docker and Coros because um Docker was moving fast and breaking things and so Red Hat froze the Docker versions and then Coros created a new project called Rocket which is using systemdspawn. >> Yeah, systemdspawn. Yes. >> And that was like Leonard uh was it name Leonard like pit one >> butering. Yeah, he he he basically said he came to Singapore as well talked about like systemd and spawn is how I debug. Yeah, systemdspawn is how I debug um kernels. So I use systemdnspawn all time. It's a very solid product and then Cororo built rocket on top of it and they added um the good thing about this competition was that they said like okay Docker is using very insecure uh like they didn't have proper verification of the images and and so Koro said we need to focus on that and Docker was like that's not our priority our priority is developer experience and Coro says okay we're building systemdspawn and we're adding this GPG based signing of images and and layer like image layer verification like basically what enterprises need for security and the response of docker was there well you're using gpg is so old we use tuf like the update framework and we are using like a notary for signing layers and and they they came up with like a new completely new tool set I think docker at the time had a lot of money as well a lot of VC investments and so they docker was like this one company and and Solomon hike was like fighting super hard against these giants Google redhead and and others and And um >> yeah, they had their own and whatever. >> Yeah. So when when they did a Docker con that year that um Cor and Stroet, they made an exposition about like um the the whale at the start of the conference. They did something. I only watched everything on Twitter. I I never went to any of these events, but I saw on Twitter that they had like this this opening of the conference and the rocket launch failed. And hint hint, rocket failed. Like [laughter] they would do these things all the time. Oh man, we can I'm just conscious we this is supposed to be the intro for your grid um app. >> Oh my god. This is going to be a video onto itself almost >> but like >> No, no, no. Yeah, just a background. >> Why did core OS fail actually? >> It didn't fail. It was acquired by Redhead. >> Okay. Well, they did I mean it did fail in my book because it did seem to go out of the view that it seems to have lost minds. I think the biggest problem was they had built tectonic which was like a terraform based kubernetes flavor. So they had their own um boot system. So they had like this um cloud init extension called I forgot ignition. They had this ignition u it's like user data on steroids uh for pixie booting on on on networks like your coros and so on. It was amazing like I never ran cor OS on on LAN but they they were focused on like enterprise customers not necessarily running in the cloud and Tectonic was all Terraform with like ignition provider and the problem was Tectonic was really expensive like the license to run Tectonic like you could run it for free but you wouldn't get some of the like SSO and other enterprise features so originally Tectonic >> was their their commercial offering What is the link with Terraform? You you you would use Terraform to provision it or something or >> Yeah. So they they had the like Tectonic was basically a whole bunch of Terraform packaged up with Kubernetes bootstrap with ignition with on top of core OS. So it would give you a fleet of coros um nodes and it would bootstrap CD and the control plane for Kubernetes and it would bootstrap every node to join the cluster properly and all that. So tectonic on top of that it was a bit like open shift right. So, so at the time a lot of these kubernetes distributions came out like open shift um from ranch like there was wrencher and there was also from fedora or susi linux they had also their own flavor and pretty much everyone was launching their kubernetes flavor >> um and before the clouds launched them like Google had >> I think had nothing >> yeah I did not like it >> it was I mean it's the same thing with like I I So my background's always been very operational. >> Sorry, >> it was the most minimal one. I think that's why I was attracted to >> it was the most like easy one like docker compos like the reason developers like to run docker compose is because it's easy almost no dials and knobs same like wrencher you would just run it it would just run it would spin up everything and it would just run and I hated that because I I was deep into like spinning up my CD my own certificates my own you know user data at that time. So, so, so the thing is I, you know, you start digging in really deep and then as you are, you know, I wasn't working at a company that was like having real needs. I I wasn't working at any company using Kubernetes, right? So, for I was doing this all for fun. So, all of this stuff that took away my fun like rancher that was no good. I wanted to do it myself. So I remember very early somebody asked like I was talking about running a mail server on the on on on digital ocean lotion and somebody said why wouldn't you just use AWS and I was like oh you know why would I pay all of this extra money [laughter] I can do it myself and then of course you you get called >> Yeah. No and then you get called in these problems um because my friend startup he's trying to send emails and then they go into like the they go into >> Yeah. they go in quarantine and then he's like, "Oh, Vincent, what is this? Like our our spam house uh reputation is bad and and then it's because you're using digital ocean IPs and they are obviously like blacklisted in spam house and so then you start to get all of these issues and also you know once I got all of the Kubernetes figured out and I could [clears throat] do cluster upgrades easily and all of that and then you don't want to bother with it anymore after a while like that's done. you've you've played enough with it and now you want to just focus on deploying things on top of it. So it took a while to get to that stage and also when you're in a company and you have to deliver a business value and not just spin up clusters >> then you start to say actually you know I can use >> in your current role are you still a Kubernetes u uh monkey or whatever the term is for >> uh so my last role that I use Kubernetes was like two years ago. >> Okay. So now you've like gone terraformish. Well, you got CDK or >> Yeah. Um I I really was interested about CDK. I just never had the opportunity to play with it, right? >> Um so so I got into >> an organization that used CDK and then um I saw the benefits of it and and then also I worked with I worked plenty of times that I trained people how to use Kubernetes. And when you use something like ECS and you have something like CDK that can create container definitions or Fargate backed uh you know just define my workload it's so much easier to to work with than if you have to like you know define everything with Argo CD and GitHubs and and endless lines of YAML and and so again it's one of those things that's very interesting for a while and then once you've done it you get really bored of it [laughter] you know initially. >> Well I mean yeah like I think I empathize with you. I I we we we're all exposed to these these technologies. Um and and we as you should and like Yeah. I know about Kubernetes, I know about Terraform, I know about CDK. The more we know the better we are really. It's not like I do find it weird when >> the more we understand the trade-offs as well. >> Yeah. >> Because that's a problem. Like we don't really know the trade-offs. If we only know one tool, we think this is the best tool ever until we start using other >> tools. When people try to sell themselves as as a Kubernetes infrastructure engineer, like why don't you learn learn other things, a dude? >> But the good thing is though, like I use Fargate a lot at work now. And there's several cases where we're like, oh, we need to do this thing or that thing. And I'm like, well, that that would just be an ingress manifest on Kubernetes and that would just be like something like a service mesh or like an >> trade-offs, the comparisons. That's very >> you very quickly like find the limitations where you're like well in Kubernetes I would have I would control my my service mesh or my uh overlay network. Uh for example one issue that we had is we wanted to save cost and use like memory swappiness and like be able to because we have very bury workloads of different um services. So one service we don't need very big machines but when they do need the resources when certain request comes in they they need to be able to to to take up a lot of memory and CPU and not necessarily fight each other. So the idea was to basically overs subscribe nodes. Uh which you can do easily with Kubernetes, right? You can you can have only two nodes and and give them give your pods a lot of memory even though you don't have the memory available. Um Kubernetes will be able to run them and you can't do that with Fargate obviously because Fargate you have to give it exactly what you want and it's going to run exactly that. You can't really burst. Um so so then we needed to run our own ECS nodes and um that was before AWS announced managed nodes by the way that they also just announced like a month ago. Um but anyway >> wait a minute AWS has had managed ECS for a while. I mean Fargate is managed. What do you mean? >> No no managed managed autoscaling groups like um you didn't have that until like a month ago. >> Okay, I'll take it away. [laughter] Okay. >> Yeah, they they just announced it like you could spin up right your capacity providers in ECS can be either Fargate capacity provider where they take care of everything and you just say the dimensions of what you want and they will just you know make it available but you can't oversubscribe really much. >> Okay. I see. Okay. So we I think we need to to to to what do you call it uh connect to your your grid project. So, how would you introduce your grid project? So, that makes the next video kind of >> makes sense. >> Um, how do I >> Well, let me let me see if I can jog your memory. Like, I think you introduced grid to me because you said that, you know, the the whole open tacos things was interesting, but it it didn't support strongly typed >> right >> stacks. So the grid API is sort of demonstrating that you can you can properly track your your infrastructure state uh yeah in a compelling way using yeah the the strongly typed CDK stacks. >> Yes. So, so a lot of these projects that were introduced like from Terram team which is the state graph and from digger which is the open tackle um they're just focused on classic terapform which doesn't expose a lot of the type system of the resources right so state graph does promise that every resource has a type so it should be able to give you more information it get it it gets rid of all of the states. So instead of having like many many small states, you have one big state graph. Every resource is in there. Every resource has like attributes that are strongly typed. So you don't need to go through the state as a boundary or as an encapsulation mechanism. Um because everything lives next to each other, right? Um with with Digger they are still allowing you to create multiple states and you are able to define the dependencies between the states and you're able to define arbback on top of that and now they're integrating with work OS for like you know your deployment mechanisms. I haven't looked at open taco recently. Um but the both of them I mean I I I kind of like the open taco approach because I still believe that you want to encapsulate a little bit like the the the for example the platform team may want to encapsulate the landing zone that they provide right um what we as a service provide to other teams we maybe only want to expose the subnet ids and the VPC ID and we don't want to like have all of the VPC information network gateways everything uh All these resources don't mean much for other teams. We just say this is the landing zone and we have a couple of outputs for you, a network ID and a subnet ID and you can launch in there. Right? So to me a terapform state as an encapsulation mechanism still makes sense. I don't know how state graph is going to solve that problem. Um and I talked to them and they were like we want type information just like you. Um but they're building it there on their own. They're doing it in Okamel and I haven't been really been like able to communicate with them much >> in Okamel. Oh man. >> Yeah. So, so then open taco they're building this in Golang which is much more approachable in in a DevOps ecosystem because you know Terraform Kubernetes everything is Golang. So, Golang tooling uh is is available and I try to talk to them but they don't really respond at all and also because of the reaction of the community towards open taco it feels a little bit like persona non grata. So, um I feel like I want something similar that allows me to expose the deeply typed information that I have from my library. So I have a library that gives you these higher level constructs. We talked about it. We showed like this the way that you can visualize it. You can define like hey by the way my constructs imple can be displayed on on a diagram and this is how it displays itself. So you can add these interfaces on top of it. Right. >> That demo that we recorded just for people's context was recorded like two weeks ago. >> You said that you were going to you were going to specitate the uh the or >> authentication. Yeah. I think I said [clears throat] in the video back then that I don't think it's going to be painful. >> It's going to be painful. [snorts] >> Yeah. So, so the Was I right, Vincent? For once. >> Yes, you were right, Kai. [laughter] You want Okay. So, so the speckit experiment was two, three weeks. I think by the time that we recorded demo, I had spent two weeks on it and I had it had raced through all of my questions and it had built a monor repo with Golang. It had built a CLI and SDK. has built a UI, hooked everything up and you was and that will be shown in the demo. Uh the one thing missing for me to deploy this into my organization is to have a strong authentication and because you know you want to be able to integrate with SSO uh and things like that. So I thought you know I'm just going to ask packet to do that. And I think my biggest mistake was to to assume that this could all be done in like one feature. >> Uh I didn't break it down. I said like this is authentication, authorization and um you know no web login and everything >> SL no SL just OIDC uh and and so specit did a great job three days planning it um like I said I spent 70% time planning and then 40% time implementing for some other features so I was like I was very confident I was done with the planning phase um however it kind of >> when when you say planning phase were you using like the plan mode of claude or would you use plan mode of spot? >> Yes, because the plan mode of cloud works within a context window, right? And then as soon as a context window is done, maybe you can carry over like with a compact, you can carry over some to-do items, but it's very limited and a lot of context gets lost. So the spec kits planning phase is really focused on capturing all of the functional requirements and like gap analysis and edge cases and writing that down into markdown. >> Did you ever play with beads in the end, Steve? Did you find Yay or nay? >> What's your So, so full honesty, I been playing with it only today and so far um it does some interesting things. I think Beats prompts the agent to spend a little extra time to to do its own planning phase on each individual issue. So my my biggest problem with speckit as doing this oidc which supposedly I said was going to take me three days and it's been almost four weeks. Um, my biggest issue is that the resulting task lists became a 2,000line markdown file and even you know even when I start on one phase maybe six tasks within that massive list of like 80 tasks um it kind of like blows the context pretty fast like hey uh cloud we're going to we've got this beautiful plan and research and everything. >> How do you track the context? is like I think in Claude you have to go slashcontext every time and that's annoying as hell. >> Yeah. So I there's this status bar thing now that you can do but I've got only my >> I don't think you can >> but there's quite a few people that write tools that run like demons in the background that that monitor the context and so you could run those demons and then display it in the status bar. >> How do you track it then? No, >> I I do context. [laughter] I haven't installed those state I I just I just initiated the status bar in my cloud right now. So I I do have like my original bash prompt. Um and I seen people talk on Reddit about hey here's a demon that shows you your tracks your usage. You run the demon and then your your bash prompt can show >> how everyone wants this but uh they they haven't delivered on this status bar shown. >> But they they have delivered on other cool stuff but you're really derailing me. But they have delivered for example on on the ability to like you can trigger a plan mode get a plan and then you can control G edit it control J J the the G how [clears throat] you say G >> okay >> gangster um >> yeah golf >> so you can you can edit the plan now before when the plan wasn't right you had to you put in a prompt and say no no no you're missing this and then it would do another plan and then it would miss something else >> okay so going back to beads your thousand line markdown or whatever you >> so so this a problem right uh I've got this massive task list from the speckit uh research phase and planning phase so not the cloud mode like not the cloud code planning but the specit planning which is multiple steps a big workflow generates a lot of research and creates very detailed tasks of like multiple phases it became huge because my feature was too big and I should have probably cut it down but what I'm hoping now um is with beats it actually parses out the tasks and tracks them not in a markdown file but in like a database like an SQL light right and it synchronize the database file to a JSON format like JSON L so you can you know committ it to your git so you can see the diffs yeah and they can even handle the merges of completed task better supposedly but I haven't done that yet so so with beats now I had a actually just had a very nice experience which was it had completed three tasks and it hadn't blocked so beats speeds ads workflow and it had unblocked the next task and then I was not using son I was using haiku and haiku looked at the issue that it needed to work on the task that it needed to work on and it went into this like planning mode which I think is something that beats introduced because I've never seen cloud do that until I activated beats and after it went into the planning mode it came up with its plan and it was different from I mean it something wasn't right I there was some mistakes in there I was like that's not right And so the cool thing is I didn't have to open my markdown file and then scroll down to this like phase number eight which is at line 800 and then find exactly what was the original task that it was supposed to work on. I could just run beat show that issue originally that you started with and I saw immediately like hey there's a mistake here. Uh and so it it really allowed me to slice and dice directly to the particular task. So instead of having like uh this massive markdowns that you have to also blow up your context with you can now like very directly ask questions about partic particular issues and look at them and find the links between them. So because it creates a graph of issues right so so far >> of the the links have you like linked them up like showing which ones depend on another or does it do it automatically? >> It did it automatically. So I I asked uh yeah I I have recorded the loom about this process. Um but it's a bit messy. Uh basically what happened is I was going back and forth between cloud and Gemini. Gemini is not good at writing code but it's great at reading code and giving like a review of another person of another plan. Codex can do the same thing but Gemini does it much faster. So what happened is cloud came up with this plan. we're going to do ABC. And then I went to Gemini. I said, "Mate, does that make sense? Like, can you go look if that already exists?" And Gemini says, "No, none of these things exist. That is [ __ ] but that is correct." So then I went back to cloud and I came up with like a 300line um prompt and and then I push push it into um a new cloud instance with Beats activated because you have to like install the MCP, you have to initialize your agent, you have to make sure that it knows that it needs to use Beats. And then I gave it this 300 line prompt that I fine-tuned with Gemini and it went ahead and created okay Gemini made it very clear we need to do this this this then this and then cloud used beats created all the issues linked them together what what depended on what uh what unblocks what and then created a a beautiful graph and it started with the ne the first two issues that were available. >> Show a graph. >> Um >> you're right. Uh I haven't I haven't looked at the I haven't seen a graph, but I've seen the the full JSON output and I've seen the full list and I've been able to look at the issues uh very quickly. So I haven't uh tried the graph yet but so far like I said I think beads adds through its MCP tools some instructions to like prompt cloud when it picks up an issue to do some additional research and and the issue itself that was created by cloud within beats actually has a lot of context. It captured all of the requirements, acceptance criteria and things like that, which is I was surprised because I thought, you know, when you have a to-do list in in cloud, it's just like one line. I need to do this one thing. I don't know how cloud tracks more information than that just one line. But in Beats, I can see it. Like there's a title and there's a description. It says like this is what we need to do. This is why we need to do it. These are the files we need to change. And this is the acceptance criteria. Was like, oh, that's pretty cool. I'm not sure. I'm not a thousand% sure it's the MCP because I noticed when I hit this MCP bug last week that that uh Claude, for example, was just invoking the BD CLI right on my my sh. >> Yeah, I I had to bootstrap um the agent to make sure that it has like you need to use the tools, not not the CLI >> BD quick start or whatever inside your agents MD or whatever. >> Yeah, I did. I did. I did the BD on boarding. Um, and so yeah, but I also wanted to originally like why do I need an MCP? Like I hate MCPS because >> Yeah, I don't that's what I was going to say next. I don't think you need an MCP, but uh just because >> it was broken and it seemed to still work. >> Yeah. Yeah. Yeah. And um I also installed the agent skill. So be beats also has like this new thing from cloud called uh a like skills. >> All right. I think I think on the web page you can it's called a plugin. Is that the same thing? No, >> I'm not sure. So I didn't want to install the plugin. I I didn't know what it was going to do. So I actually went through everything that the plugin does myself. Like I installed the the the CLI. I think we you have to do anyway. You have to install the CLI and then I used UV to install the tool which is the MCP. So I can run the MCP directly. I did not install it as a as a as a as a plug-in. And then I had to do the the the gith hooks, but that's part of your BD init. So when you init in a repository, it will create your git hooks. Then it had something like do you want to go multi-reo? And I think that's one of the cool features is that it can do multi-reo. But mine is a very big monor repo, so I don't want to do that. So I was like, it gave me a warning. >> I didn't know that. >> Yeah, there's a demon. >> Yeah, >> that's this is really good. Okay. I mean, I think we have to cut it here because I I >> think we need to do a separate session on beat. Yeah, >> I don't know if you have enough for intro. Uh, but yeah, >> we got plenty for intro. I mean, I'm hoping just to cut this. I also need to go and uh yeah, and I'll time stamp it so people could skip it if they wanted to. Okay, >> by the end of this week, I want to um try beads with speckit. So now I'm learning it like on my current task like but then the next step is I want speckit not to create this 20,000 line markdown. I want speckit to use beats. I haven't done that yet. Um, so I'm using I'm learning it first. Yeah, >> sounds awesome. Okay, we'll keep in touch. See you. >> Bye. Okay, see you. Have a nice day. Really really enjoy this. I think we covered a lot of things. I think >> maybe. Okay, one more thing. >> Um, so so basically we talked about open taco and all of these state management solutions also. Now we just talked about the integration patterns, right? We mentioned that you can you can use a variable file on disk or a big config file that keeps track of all of the different like a dictionary of all of the different integration keys. Right? So at my organization we we started originally trying to use an integration registry. Then we move towards like the teams only publish dev from their product repo and when they want to go to staging and need to integrate there they publish their infrastructure as a package and then we consume it and integrate it within our monor repo. So we have a big terapform monor repo. A lot of organizations have a big terapform monor repo because you have those file system requirements to read data, right? Um because we couldn't use the integration registry. So instead they publish their artifact, they version it and then we integrate it. The same for production. Um but I still want to have the ability to go across repositories and integrate without um you know having to publish things. So that's why I started to build this thing called the grid which is around Terra constructs. So Terra constructs has already the capability of strongly typing your outputs. So if you need to integrate on things, you know exactly what the shape will look like of what you depend on. For example, if we have a cluster, we we may have a VPC ID output. We have subnets which is an array of strings. We may have more more complicated integration points, right? Um but let me just let me just run the API real quick. API surf uh not server surf binary. >> Let's put it on the path. So now this the the grid API is running and I will go into the web app and run the the the dashboard. It's a very basic dashboard. >> Everything's a bit slow right now. I don't know why. Okay. Maybe it's because I have 100 different things open. >> Yes, it's V hot moderator load. Vue.js, right? >> Uh no, this is React. [laughter] I don't know anything about front end. Um so so this was all written using specit using uh specdriven development. >> Holy moly. >> And yeah and and some of the UI elements originally bootstrapped by bolt. Uh but then yeah so so this is basically the grid when you are creating for example the network which has a bunch of in this case there are zero outputs because I haven't really applied anything. Um but then you have dependencies that define for example the staging cluster depends on the subnet ids from the network and on the VPC ID from the network also the staging database depends on the VPC ID to provision into the network >> right so we have these dependency trackers and this is really the idea was mainly from open taco right >> why why are there two arrows going into the cluster am I going >> because multiple every output is tracked individually >> okay >> okay I I can do a demo where I actually apply things with Terraform so you can see the colors change when things and then you know why there's multiple errors. This this is a a preset database with some filtering. So I can >> you know we we we need to do like a visual I think the theme for the next chat is a visual infrastructure because I did want to talk about uh Adam Jacobs uh oh my god what is this startup called? Help me God. >> Uh system initiative. >> Yeah >> I right >> because I'm think I'm thinking system initiative when I'm looking at this. I'm not building uh what he call a dynamic graph where every node has like different their own um hooks on create, read, update, delete. So it's a programmable graph. That's what system. >> Okay. Okay. So yours is more of like a like a visualization type of >> mine is a terraform state on um manager and the idea is to integrate tightly with terra constructs so that all of these um all of these points here are actually strongly typed. So if I if I'm you can see your level twos and things like that in here. >> Yeah, but I'm I'm using modules as an encapsulation. So whatever the product team they can be writing terapform modules in here. Uh sorry I'm not using modules in encapsulation. I'm using states as an encapsulation. So the so in my case the platform team is using the AWS VPC module to provision the the network and all. >> Okay. Okay. State state state. Got it. >> Yeah. And if they want to expose the VPC and the subnet ids they should be able to expose them as with the schema. So if they're doing it using terra construct the schema is attached to the L2s. So if you you know you say to the L2 push your outputs out to your state so you know you make it available as a as a contract to other teams then other teams when they use Terra constructs they will read that output and they get the schema with it. So they know that this this output has this shape because this is one of the problems that I have when I was using the integration registry, right? I what are the parts that write things and how do I find the keys that I need and what is the shape of those keys? How do I write them down? How do I read them back out so that I get a strongly versioned um feedback >> contracts and stuff? Yeah. >> Right. So let me let me uh do a database reset here. Um go back make DB reset. It's going to delete the Postgress volume and restart it. >> Okay. Oh, >> by the way, um why didn't you use SQL light? You just >> It's I'm using an ORM. Uh and it's using the PG dialect if I want to use SQL. I'm actually adding SQL light as a next step. >> Um >> that's that's one that's the next feature that speckit's going to be working. Unsurprisingly, Claude is an absolute demon with uh with SQL Light because SQL Light has like no proper golem times and types and stuff, right? >> Um I don't really know. Couldn't >> When you say demon, do you mean the beast like really good at it or the demon like chaotic? >> No. No. I'm It's really good at it. Like it able >> I thought demon like like it's a devil. >> No, I love it. it like it it was able to create these like materialized views and other optimizations to to make quite complex views really simple to generate. I mean it's so incredible really. So I I will restart the grid API server and I will restart the web app. Okay. And now if I refresh there's nothing in there, right? So now if I go to the >> by the way you can you can bootstrap tasks in VS code if you have instead of like there. Yeah >> it's it's just search VS code tasks you'll find out how to do it. >> Okay I'll need to do that. So I go into the example Terraform. So here I have a some setup and I should clear but I will just create a network and um okay so I go into the network I I remove anything that's there. So right now there's just the terraform configuration which is >> just um a null resource. It's not really anything. It's not using AWS but it simulates a VPC output with the ID of the null resource and a subnet ID. It's not the list. It's just an example. >> Go to the top of the file. Why did you Okay, so you just specify the provider. Oh, actually >> it's a single file. Okay. >> Yeah, it's all it's all it's it's really just a sample Terraform configuration and I will use the grid uh control. So this command line currently is just a sample CLI implementation. For my personal use, I'm going to use it to integrate within our bootstrapping because we have like a a Golang CLI to bootstrap Terraform and so I'm going to use it to automatically integrate with the API. So the the CLI is just one sample implementation that I include with the monor repo but I have my own that I I need to integrate it into. So I'm using state create to create a new state and I have to give it a logic ID. So this is one of the first things in terapform or in infrastructure a lot of times names change. So maybe this could be like the uh product a network or something like that. But over time we realize that actually product a network should be shared and it should now become shared network. So the logic ID is decoupled under the hood. generates a unique identity separately. The CLI uses UID v7 but this is again the database accepts whatever the client wants to use >> that's actually uh a really good idea because the minute we have to change our TF state uh >> it becomes a nightmare more so if you use back end key uh I'm I'm always just yeah I hate that >> you need to do migrations then you need to keep tracking where the other states were that you depend on >> yeah so I like this idea but I mean you're only just using it to just keep track of it you're not using it to help manage uh what uh the logic ID yeah the logic ID is is is a is a mutable attribute of the state but it can be uh but it is globally constrained as unique so across the postress there's I mean >> I I like the idea but like you're not using it to actually store the state you're just using it to keep track of it of course >> yeah uh yeah we're just we're just using it to keep track of it as a unique identifier >> yeah it's a good idea so at This point I have created by the way I have not run terraform apply yet but if I refresh and I will make this like polling uh with like web workers whatever but right now I just forced it to be to this is one thing when you do specd driven development it's really important to scope things down and at this point I thought like this might be too complicated so I put it very explicit put >> I mean to be honest I'm I'm gang refresh I don't like to uh to wait for things to happen >> automatically so now terapform init and apply will then register the subnet ID and the VPC ID as outputs in in the grid. Right? So this this is running Terapform, right? I'm not running anything else. This is literally just Terraform talking to the grid API and then grid API is extracting the outputs and keeping track of them okay separately. So if I do grid ctl list >> uh state list, >> I can see it. I can also um I can see it's clean because it's just been applied. So if I go to my uh cluster which needs to depend on the network, let me remove every terapform file or grid uh file that should be in there. So it's only the no resources again that are in here, right? And in this case the cluster needs to read the network VPC ID, right? It it depends on that. So I can say grid ctl state create cluster u logic ID, right? And then grit ctl u deps add from network and it will bind the outputs of the network and this is where the type will be important right but right now this is a non Terra construct demo this is pure terapform no typing yet right >> so in this case I'm the the two the the selection is a bit weird you need to press enter I'm going to change that but anyway um it was a default >> generated by AI I can tell >> yeah [laughter] I think it's a pterm default so right now the network and the cluster has a dependency and now you see why these errors are separated because you have two different outputs and they may evolve separately. So the cluster depends on the network. >> Sorry, the yeah the cluster depends on the network. If I do grid ctl state list, I can see that the clust the the cluster is stale because it has not been applied. It has not been observed by the grid API, right? >> The grid ctl state in it again generates the >> the backend config for me. >> But now comes the interesting part. I can use grid ctl or whatever however I integrate the SDK into my command line or my Golang tooling to to in or to sync the depths. So to sync the depths means it's going to generate the remote state lookup for the network using that unique identity and then pre-generating the network locals for me. So I know that there's a subnet ID. Again, this is because I declare that this state needs those two outputs. So it's going to generate >> you're using the data is using the grid backend to grab the to make the link. Okay. You so you're not relying on the file system. >> So I have yeah no no file system. So I can go across repositories right. So this is an API server which is our think you can pretty much do this with space lift. You can do this with Terraform cloud for sure. >> This is something I think would be incredibly fun to deploy in my workplace. So I mean do you have a standalone binary which I can start running and linking up uh different uh state files and and drawing a graph? I think that has a lot of value actually. It has a lot of value. This is going to be Apache to open source. I want to open source this once I've got the type schema integration with Terra construct. I it's right now it's in GitHub private repo. I can give you access. Um I'm not sure about open sourcing it because it's very I mean at this point it's similar to open taco. I have to be honest. I I I talked to the Open Taco people. I understood how they use it. >> It's not Open Taco, it's the [laughter] grid. Um they're they're doing great work with Open Taco by the way. I look on the pull requests, they are adding a lot of features. They added SQL light already and and they they're using Lightream. I I think that's what >> So they they bas So so there's a lot of overlap what you're doing in open typing. >> There's a lot of overlap except I want type schemas and they're not talking to me. [laughter] So, I'm like, like I said, I told them that I could oneshot this in cloud, so I took 10 days to oneshot this in cloud. [laughter] >> Oh, man. I'm loving the innovation here. I'm loving it. Um, yeah, I mean, I I I definitely would love to to to have this visualization on on some state files. Um, but I don't I'm just playing I'm just playing devil's advocate here, Vince. I just I I I see myself >> u enjoying like a visualization >> but not the type schema. >> But uh but even the type schema that could help me uh to do some bugs or something like that. Um, I mean that's the way that's the way I see typing is like helping me figure out where there's issues >> uh like I I would see it as a visualization but like but that's that's a hard that's a hard sell as a as a product like you know like it's >> I'm not selling it like I'm I'm so my main goal here is um to basically make something available that I can use myself. Also the way I designed it, I I make the package the SDK is a strongly type Golang and because I'm using connect RPC, I also created TypeScript package because that's what I use in my dashboard in my web app. So in my web app, I'm actually using the um the grit um where is it the grid? Where is the grid tacons? Here I'm using the TCON. Um I'm autogenerating the clients in Typescript and in Golang. Uh it could be Java, whatever because it's using connect RPC. Uh al although I do need to wrap it because connect RPC handlers are pretty horrible. And anyway, what I want is to basically use this one in my library to >> interact grid. It's some third party. What is that? >> No, that's my workspace. So that's my TS SDK, right? It's autogenerated from from the protobuff definitions and then a little >> tons constructs. Oh, >> it's all my project, baby. [laughter] >> Okay. Okay. I'm a little bit slow. No, but it looks I I definitely see the value in that. I really would like to try that out, actually. >> Yeah. So, how it differs from open taco is they're focused on like you can control the grid using the Terraform provider. My goal is I'm giving you an SDK. I can generate the terapform provider from the SDK. I can generate um JavaScript integrations with the grid which is what I'm doing for my project because I want you know and I want additional endpoints control. I want to control what is it that you can attach to a state. I want to be able or to the dependencies the outputs itself. That's what I want to control. So um so I'm doing this currently with with specit and I'm telling you this like 14 days now and I've been able to bootstrap the repo, build the state dependency logic, add some CLI improvements, wire up the dashboard um and now I'm working on authentication and authorization. So OIDC integration >> actually I'm curious what it ends up doing there. I was think in a web app or whatever app is always interesting. So my prompt was very very dumb. Um and it took me I think the last [clears throat] eight hours to >> I want to out because no tech right you're not supposed to say the tech. So it's like I need to add authentication authorization and arbback control. I want to um basically protect both the control plane. Well actually somebody else onem I think I think again go codex doesn't doesn't give a [ __ ] Codex just went and changed my prompt cuz I didn't give it that prompt. I gave it a much simpler prompt and Codex went like actually the user is doing a lot more and he's like we have a control plane which is our grid API and then we have the data plane which is the terraform interacting with the terapform state. So both of them need to be covered by authorization and I need to expose like the authentication token to the terraform process so that it can actually run the apply. So it's very interesting. Uh I think I've nailed the tasks now. I'm pretty sure I can get this like authentication. Well, I'll be interested because I think this one might be one that it might trip on up on, but uh cool. >> Hey, >> I'll let you know. Hey, >> that was awesome, Vincent. Oh, one more thing. Just one more thing. >> So, so I just ran the apply, right? So, right now it shows that it has conf consumed and they are clean. >> Now, what happens when the network changes? Like that happens all the time, right? People recreate network. >> Why did you say clean and and and stale? I mean, that's doesn't seem like the the right terminology. I mean, with drift with drift detection in terraform, it's they do they say stale and clean? I've gone >> I have no idea. I just >> Okay, you just made them up. Okay, whatever. >> Yeah. >> So, there's a thing here with the network. For some reason, every time you apply uh a time stamp forces the VPC to be recreated. >> Very convenient. So at this point this one has changed and recreated the output. And if I refresh now we see that the subnets are the same but the VPCS. Well, this is not realistic example, right? But that's why >> it's interesting because it flags um a typical problem, right? >> Yes. So this is one of the problems of the integration registry, right? Where we're not able to keep track of like who lost the value. This is actually 100% open taco because they have an in digest and an out digest on the edge when the when you dry these edges. So whenever a state files get written it keep captures the outputs and writes out the out digest and all the other states whenever they apply they they they um observe the incoming outputs and they write out their indigest. So, whenever the indigest and the out digest differs, that's when an arrow is no longer um clean, basically. >> I don't quite understand, but I'll have to try it, I guess. >> Yeah, never mind. Like, >> okay, so time time out, man. My brain is about to turn to to mush. >> That's it. That's it, really. Um >> thanks, Vincent. And if if anyone got this far, I I really applaud you. You >> look I think we're gonna cut this. I drive for 4 hours to work uh because I work in London. So I I don't mind long form content to be honest. It's better than listening to like hey, you know, I kind of >> I think you will look Ah, you mean like last time when I cut it, it was too much. >> No, no, I think I think I think I think you do what what I would do. You mean you cut it pretty well for the first third, but the two the last two/3s you didn't cut it. I mean, that was my impression. Maybe you cut it so well I didn't even notice. >> Uh, I don't remember. But I do try to. >> This is two hours of content. It's It's going to be so hard to cut it. But if you want to cut it, you do you, Vincent. >> You don't know me. I I record myself using Speckit for four hours and I cut it down into like a 30 minute like to the interesting section. >> I do. >> So you're uploading videos of you using Speckit already. I have loom I share with my colleagues or with my friends and then I see nobody watch it. >> Come on, [laughter] get a YouTube channel. Get a YouTube channel. >> Someone will watch. I don't know who you are, but thank you. >> Okay, see you. >> I don't know how am I going to get this. Yeah. See you. Have a lunch or whatever. >> Yeah. Bye. You too. Cheers. Good night.





