Raw Data By P3 Adaptive
Why is Everything So Slow w/ Scott LouvauListen Now:
Today we welcome to the show Scott Louvau, twice retired from Microsoft and now focused on his Relentless Optimizer blog, he is our second twice retired from Microsoft guest. If his last name sounds familiar, it should be. Several weeks back, his partner, Darinee Louvau was our guest. Her absolute enthusiasm caused us to seek out the other half of the equation and invite Scott to share his take on life at and after Microsoft as well as his data origin story. How exactly did Scott go from a small vineyard in North California to being twice retired from Microsoft and what set him on the technological path?
Like Darinee, games were Scott’s gateway drug to technology. While growing up in a home with software programming parents, Scott was exposed to how programs work and most importantly, granted access to tinker with the hardware side as well. Frustration with slow gameplay or loading freezes led to the educational process as Scott learned to free up resources, jettison drives, and optimize the remaining parts to make the gameplay better, faster, and longer. In a time when there was no internet full of resources available, debugging issues was both more challenging and more intense. Back in the day, if you wanted to play, you had to make it work on the system you had.
Scott used these hard-earned skills between high school and college as he started working as an internal software developer before switching to a programming track at college, falling in love, and joining the dream team at Microsoft. He found joy in automation both for Microsoft’s clients and for his team, going on to reduce frustration in debugging while increasing optimization in the process. It isn’t all programming and coding today though, as we also delve into Starbucks Cold Brew Refill Hacks and using AI to dominate game levels. Stuck on a level of Kingdom Rush? You can find a solution for that and more, in this episode.
As always, if you enjoyed this podcast, be sure to leave us a review on your favorite podcast platform to help others find us. And, be sure to subscribe below for new episodes delivered directly to your inbox.
Also on this episode:
Rob Collie (00:00:00): Hello friends. Let me ask you a question. Let's say you have a laptop and it's gone to sleep and you say, hey, laptop, wake up. Have you ever thought about why it takes so long for most laptops to come back from being quote unquote asleep? My laptop has a solid state drive in it. There are no moving parts in this computer other than the fan, with multi-billion calculation per second processors, and everything moving basically at near light speed inside the machine. What is it doing for those 15 to 20 seconds? You ever thought about that? That ever make you angry? Well, it makes me angry. And today's guests, Scott Louvau is very much a kindred spirit of mine, because that's the sort of thing that bugs him too. Scott is married to one of our past guests Darinee Louvau, and they are quite the interesting couple. Going back to the kindred spirit thing, another thing that Scott and I have in common is that he really gets a charge out of building things for people that he actually can see, the people that he knows, and that's an exception in the world of software.
(00:01:02): When you work at Microsoft, like Scott used to, and I used to, the vast majority of the people who end up using the product of your work are people that you will never know. And when I changed gears in life and became more of a consultant, I really got a charge out of seeing the actual faces of the people that I was helping with the tools I was using. Well, Scott was doing that sort of thing while he worked at Microsoft, which really speaks to how strong that feeling is for him. He cannot resist the problems that he sees directly. Those become his mission, and as you listen to some of the things that he built at Microsoft for internal usage to help his fellow engineers out, I think it'll be very clear to you that he made a tremendous impact, almost certainly more of an impact than he would have if he had just been focused like they wanted him to be, on that outward facing software mission.
(00:03:04): Imagine being able to solve basically any sort of computer related problem that comes before you, that would feel amazing. I'm just going to have to wait for that in the next life though. But in the meantime, let's get into it.
Announcer (00:03:16): Ladies and gentlemen, may I have your attention, please.
Announcer (00:03:21): This is the Raw Data by P3 Adaptive Podcast with your host Rob Collie, and your co-host Thomas La Rock. Find out what the experts at P3 Adaptive can do for your business. Just go to P3adaptive.com. Raw Data by P3 Adaptive is data with the human element.
Rob Collie (00:03:46): Welcome to the show, Scott Louvau. How are you today, sir?
Scott Louvau (00:03:50): Good, thank you. Thanks for having me.
Rob Collie (00:03:52): This is the first time ever we've completed the set, the husband and wife combo on the show. Probably not going to happen for a while. Darinee was on the show, gosh, six weeks or so now. As we were recording that, we were saying, oh yeah, we got to talk to Scott. It just takes a little while to get it scheduled, but here we are. So tell us a little bit about yourself. So like Darinee, are you like the twice baked potato, you're the twice retired software professional? Did you do the same thing she did?
Scott Louvau (00:04:20): Yep. We followed the same pattern. We quit in 2014 and then stayed out for a little while. Kids were age three and one at that time, so it turned out being at home with them was pretty intense, more than we expected. And Darinee did a great job filling her time with hobbies, which she heard about on her show, I think. But I less so, with kids at home, I couldn't program because every 20 minutes they'd come in for something. When I got a chance to go back for some contract work, I decided to go for it, and went back for a little while and then in 2020, later in the pandemic we quit again and so far have stayed away.
Rob Collie (00:04:57): And so you both were at Microsoft retiring in 2014 and then kind of unretiring in 2020, leaving Microsoft, going back to Microsoft. All roads lead to Microsoft. That's not where they started.
Scott Louvau (00:05:08): Right.
Rob Collie (00:05:08): Microsoft, I know the farthest back point in your life that I know of is meeting Darinee at college, at a bike rack. Am I remembering that correctly?
Scott Louvau (00:05:20): As we were parking our bikes outside of class on the second day of school.
Rob Collie (00:05:24): All right, there you go. Everything beyond that in the history of Scott is unknown to me. What were you doing before showing up at that bike rack, where you were parking your bikes that day? What's the origin story for you and computers and data and programming and all of that?
Scott Louvau (00:05:40): Well, I grew up in a vineyard in Northern California.
Rob Collie (00:05:43): Of course.
Scott Louvau (00:05:44): My parents were actually both in software, which I think is rare for somebody my age, but they worked at IBM, and then my mom quit when I showed up to be an at home mom. They knew a lot about computers and they had a lot of computers at home. And so I got to play with those. The first computer I remember playing with was an Apple IIGS, and I played some games on that and kind of puttered around.
Rob Collie (00:06:07): Fancy, you had the GS, you were the upscale kid. I mean, Luke and I were puttering along with our IICs and we were oohing and awing over the GS. The GS stood for graphics and sound.
Scott Louvau (00:06:18): It was amazing what it could do back then. And then my dad had a portable computer. It was called a luggable. It was not a laptop, it was about the size of a suitcase and the top of it where the handle was, came off and was the keyboard. And there was a little seven inch screen behind it and two floppy drives, the three and a half and the five and a quarter inch. And so I played with that a little bit, and I learned a little bit of just how to use DOS and batch scripting and toodled around a little bit. And then I think my dad gave me ... it was probably a 486 to play with, and I played my first games on DOS, Sim Farm and stuff, and just got into computers that way and kind of learned how things worked. You had to figure out how to free up low memory. So auto exec and config.sys changes, and memory compression and jettisoning device drivers that you didn't need for the game you were playing. And then moved on to Windows and learned a little about networking to get multiplayer games to work. And that was my history.
Rob Collie (00:07:22): Games were the reason. Games were the reason you had to learn to config autoexec.bat, and config.sys, these are such anti appliance things. They're the opposite of a gaming appliance. Oh my goodness. Well you've got to jettison those unused device drivers from resident memory. You need that space, otherwise the game's not going to work. So those are the things about computers that I never enjoyed or even tolerated. I want it to work. It's not surprising to me that you and your wife completely share, you and Darinee are both like this, you're not going to just be dissuaded by some setting that isn't configured properly. You're going to dive in.
Scott Louvau (00:08:01): Yeah, I think there's a magic of childhood in the eighties and early nineties that maybe lost on people today, which is boredom. There wasn't as much to do at home. I had these seven Nintendo games, so if you wanted to play, play one of those seven again, it's not like there's a catalog of hundreds that's rotating every month. If you want to get this game to play on your laptop and it isn't, then figure it out or do nothing.
Rob Collie (00:08:25): I had a game for the Apple, it was supposed to be really cool. It was like Kings Quest in Space or something, and it wouldn't run on my IIC. I took it over to someone else's house one time that had the IIGS and it ran on the GS. And I was like, oh, this is awesome. What a cool game. Then I go home with that disc and that's it, still the end of the story. I'm not looking for ways to make it work. I bet you would've made it work on the IIC.
Scott Louvau (00:08:54): Well, maybe. I mean, you don't know a lot of debugging stuff. You can't look up stuff on the internet.
Rob Collie (00:08:58): No Google, so debilitating, the no Google thing. I would have Googled it. I would've had sufficient energy and motivation to Google it to find out if there was something I could do. I wasn't going to go reading magazines or something.
Scott Louvau (00:09:13): And they probably had some troubleshooting stuff in the manual in the back. And so if you read through the pages of the manual and you bought other games from the software store and read through the backs of their manuals, you'd have some things to try. But that's it. Hard to overstate how much web searches have changed learning anything, troubleshooting anything.
Rob Collie (00:09:31): Completely. Okay. So games for the reason that dragged just sort of into the innards of the machine and demystified it a bit in the process. What next? Did you end up working for some sort of game company? I've heard rumor of this.
Scott Louvau (00:09:46): Not a game company, no. I learned a little bit of batch programming and a little bit of quick basic when I was young, and then I was just playing on my own. And then just a little bit before I turned 16, my mom was volunteering at the schools a lot, and the president of the school board had a software company. It was an industrial automation company. So what most people working there did is program the embedded devices basically that control conveyor belts and lifts and things in factories. And she got me an interview and I remember he asked me, do you know what a database table is? And I said, no. And he said, okay, do you know what an array is? And I said, no. And he was like, and I don't remember what he asked me after that. I think it was just questions about school and how that was going.
(00:10:36): He's like, yeah, you're hired. We'll see how this goes. And he gave me a book on a language called PowerBuilder, which was for building database tied user interfaces, 4GL as it was called in the time. And I learned how to build database tables and build forms and kind of automate business stuff. And so my first task was to automate the invoices for a motor shop that would rewind motors. And so they gave me these forms that printed on form fed sheets with the little dots on the side, the little holes on the side. And I figured out how many lines down and how many characters over to get it to print in each of those fields. And then I made a database table to model that, and I made a form on a computer screen that looked like that, and would insert into the database and print out that form, and kind of grew from there. And I eventually did time tracking and expense reporting and automating parts of the sales process, and quotes and billings and all that stuff. So I was an internal software developer for them for the last half of high school and a little bit of college.
Rob Collie (00:11:40): So a couple of funny things there. First of all, I can just sort of see it in your eyes as you're describing. Get the spacing just right, the down and the over to make sure that things printed in the right place.
Scott Louvau (00:11:51): Right.
Rob Collie (00:11:52): Talk about boredom. When I was a kid, my dad taught me a game where you took a piece of loose leaf notebook paper and you folded it in half. And then each opponent in this game, you got to draw five space ships, little space ships on your side of the paper, and then you'd take turns taking your pencil, had to be a pencil now, and drawing a big dot on your side of the paper really hard. And then you fold the paper over and squish it down and you'd see if your dot landed on top of one of your opponent's spaceships. And then if so, that was a hit. Can you imagine talking to a seven year old kid today that's grown up digital and trying to convince them that this game was something worthy of their time? I probably played 300, 400 rounds of that growing up. It kind of reminds me of that same sort of like, Oh, let's see if this lines up properly kind of thing. You also mentioned PowerBuilder. So what year were you given this PowerBuilder assignment?
Scott Louvau (00:12:46): So I think that was 1997. I think I got hired a month before I turned 16 and my mom had to drive me to work for the first month. And then I got to the point where I could drive myself.
Rob Collie (00:12:56): Because back then we got our licenses immediately. As soon as we turned 16, that's no longer a thing apparently.
Scott Louvau (00:13:02): More restrictions now. Probably a good idea.
Rob Collie (00:13:04): No, actually not restrictions, it's that some large percentage of teenagers now aren't excited about it.
Scott Louvau (00:13:08): Oh yeah.
Rob Collie (00:13:09): They put it off. They're not as motivated. I mean they go everywhere digitally, right? Again, boredom. So the funny thing about Builder is I remember out of college I interviewed with Anderson Consulting, which is now Accenture, thanks to the Enron scandal. I interviewed with them, I interviewed with Microsoft, and I remember sitting at the interview slash recruitment lunch in Atlanta, after I flew for these interviews. And I'm sitting with people who are a couple years older than me that the relatively new hires that took me to lunch. And we're all sitting there in suits and ties, and this guy is telling me whose job it is to kind of recruit me and sell me on it. He's telling me, [inaudible 00:13:46] they've had me doing like this. It's been, I don't know, kind of boring, whatever, but I'm really hoping that they're going to let me get into PowerBuilder next. Because I'm really excited about that.
(00:13:55): It was just something about that conversation that I could tell that even PowerBuilder was going to be boring. It was sort of like I could see his future and I'm like, I don't think this is going to solve your problem, man. Is what I was thinking to myself. I have no idea what PowerBuilder was, but it just didn't sound like it was going to be fun. It sounded like it was going to be like Lotus Notes all over again, which I'd had some exposure to. So did you enjoy PowerBuilder? Was that the stuff, was I wrong about this guy's fate?
Scott Louvau (00:14:20): I thought it was fine. And I mean I didn't have any real basis for comparison at that time to a worm in horseradish. The world is horseradish. But it was a very efficient language for writing business software. And their magic was something called the data view or data grid, I think. And basically what you could do is you could draw what controls you wanted on the screen, and bind them to database columns directly. And it understood database column types. And so it would constrain number fields to be numbers and do validation and dates to be dates and all that for you. And then you could tell it how each row would lay out and then it would draw another copy of that for each row that came back from the database. So the data binding and getting stuff out of the database and putting it into a UI and then accepting changes from the user and changing that into an update statement, that was all taken care of for you. So it was definitely very efficient for writing database software quickly, which was certainly helpful to me at that point since I didn't know that much.
Rob Collie (00:15:20): Yeah, I mean it sounds like a really good citizen developer type between heavy real programming and Excel. I love that kind of stuff. It actually kind of sounds like what Power Apps is today at Microsoft, except it sounds like it might actually be a little bit easier than Power Apps to be perfectly honest.
Scott Louvau (00:15:37): I think at Microsoft, all these people are very sophisticated software engineers, very passionate about it. And it's easy to forget that a lot of our customers are not that interested in software. They want to solve a problem, they want it to be easy. If there's a drag and drop or scripting or kind of visual interface for stacking together steps, that works for so many more of them. And it's just so much easier.
Rob Collie (00:16:02): Completely agree. There was, and still probably is, a very ivory tower ish component to the Microsoft culture, because the software engineers, especially the developers that are hired, are really elite. And so that elitism is necessary to build the types of things that Microsoft does. But you're right, it doesn't reflect the audience at all.
Scott Louvau (00:16:26): Right.
Rob Collie (00:16:27): And Microsoft has proven very proficient, I think, both accidentally and intentionally, of developing some just massive audiences and user bases of that flavor, that just drown any professional developer base in size. It's just, they're not even on the same order of magnitude. So I was picking on PowerBuilder that I'd never used. Turns out I probably would've appreciated it. So industrial automation before you were even 16?
Scott Louvau (00:16:54): Well, I never programmed any conveyor belts. I got to do a tour of a couple of facilities at one point during my tenure there, somebody took me to Masonite, who made pressed doors, and they showed me the factory that made these doors and pressed them out of sawdust and particle board, I think basically. And how all that worked. And I got to hear some stories about how things went. They told me about a bug where ... it was a factory that made computer servers.
Rob Collie (00:17:22): You never got to program like the industrial press that would squash the terminator?
Scott Louvau (00:17:26): Right, no, but I sat with a lot of people who could, and understood how that worked and that was really cool.
Rob Collie (00:17:33): So you're sitting there going, hypothetically, if we needed to squash a terminator, we could write this batch script.
Scott Louvau (00:17:39): The logic is pretty simple really.
Rob Collie (00:17:41): Yeah. Line 20, squash terminator.
Scott Louvau (00:17:44): Yeah. I think the language you used to program them was ... it was Visual or you could type and it was really low level. It was kind of latches and registers and do you want me to remember this value across clock cycles? And how does this input make this other input grow? Very specialized for the task at hand. And it could run on these tiny little embedded computers.
Rob Collie (00:18:07): That's cool. What kind of embedded computers ran machines like that? Did they have an operating system? It doesn't sound like they did. What was it?
Scott Louvau (00:18:14): They're called programmable logic controllers. PLCs. And so if you remember reading about the Stuxnet virus that got in there and tried to hamper, I think-
Rob Collie (00:18:24): Centrifuge's, yeah.
Scott Louvau (00:18:26): ... nuclear system. It was the same kind of device that's running the centrifuges. So it's a little tiny device that you hard wire to power and connect to stuff. Think like a Arduino, that sort of device, that's just running your one program and knows how to get connected to a dozen inputs and outputs, and can get connected to hydraulics and machinery and motors and stuff like that.
Rob Collie (00:18:49): And then naturally you take that device and you plug it into ethernet, the virus port, it's cheating, if you air gap that stuff, you have to make it available so that we can spin your centrifuges.
Scott Louvau (00:19:00): If you imagine a factory like Tillamook in Oregon and checked out their creamery, they're really big, right? It's like a hundred by a hundred foot room or something like that. And so each one of them is going to have a controller and you may want them to talk to each other, and you may want to have a central board where you can see everything that's going on where you can shut everything down if there's a problem. Where you can measure throughput of the different machines and how stuff is going. And so the easiest way to do that is to connect them all to a network, and the easiest network to connect them to is the same network that you're using for everything else. So I'm sure that happens a lot.
Rob Collie (00:19:32): So then you go to college, then you land at Microsoft, right? So I forget, do you and Darinee both get jobs at Microsoft at the same time?
Scott Louvau (00:19:38): Yeah, we ended up in the same major, all the same classes, basically after that first quarter at school. And then we joined a programming club, and one of the students in the programming club with us had had an internship at Microsoft. And so we asked him to pass our resumes along and we both got interviewed. We graduated in 2002, which was kind of the aftermath of the Y2K crash, and recession. And so it was harder to get jobs around then and we weren't sure what we would get. We interviewed for a couple places, but Microsoft gave us both offers and we knew we were going to stay together. So we headed up to Seattle and started our life the same day, that's July 29th, 2002.
Rob Collie (00:20:20): That's amazing. Even when you consider the difficulty of the Microsoft interview, it's hard to get a job offer from Microsoft. It's no mean feat to go through that gauntlet and come out the other side with an offer. There's almost even a combination of lucky and good. If you're super, super, super good, you don't need any luck. But if you were maybe good enough, like me, a little luck was helpful. And so to be a couple and go out there and both get offers, it's difficulty squared. That in itself to me is just an amazing sort of couple's achievement.
Scott Louvau (00:20:52): We got pretty lucky, and we both knew what we were doing in our programming classes. I remember one of our last classes in college was software engineering. And it was meant to have a real project that you spend about eight of the 10 weeks of the class on, and it was an airline reservation system. And I remember that on the last weekend before it was due, we went into the computer lab, and our version had already been totally done and we had tested it on Windows, on our browsers at home. And so we were going into the lab to try it on Linux on the browsers. And we were dealing with stuff like February 29th, bugs in our date fields. And the entire computer lab was full, it was sweaty, it was smelly. There were people like, why isn't it compiling? It was compiling before, what's going on? We saw how the rest of the class was doing and it wasn't good.
Rob Collie (00:21:42): Yeah. And Microsoft to its credit, very, very, very good at identifying the people who are actually comfortable programming. If you're going for a programming role, they're going to know whether you can program and that real world experience and like your code compiles and you're debugging the last mile while everyone else is still trying to build a road. They can tell in the interview process, they can tell the difference.
Scott Louvau (00:22:05): And if you can write code on a whiteboard and you can simulate how it's going to run in your head and identify bugs, the stuff you'll do in an interview, then you could probably code. And certainly having programmed professionally before that really helped. And doing programming contests with the team really helped, just thinking on your feet and trying to solve problems quickly and understanding algorithms. I think it's crazy how much prep software engineers put into interviewing these days, and how much it seems like they have to. It's definitely hard to show those skills on your feet on a whiteboard.
Rob Collie (00:22:35): It is, for sure. So where'd you land? You landed on Visual Studio, is that right?
Scott Louvau (00:22:40): Yeah. At that first company at Sarah Systems, I wrote internal software for people who are right around me. And I really enjoyed that. I really enjoyed understanding and seeing my customers. And so I think when they asked would I'd be interested in at Microsoft, I thought, I want to write software for people like me. I want to write Visual Studio and help other developers with their own work. And so I ended up getting paired up with that team and I talk-
Scott Louvau (00:23:03): And so I ended up getting paired up with that team. And it was actually, my mom took over my job at that first company and built a web version of the internal software that I had built with PowerBuilder. And so I was like, "I want to build software to help my mom build software."
Rob Collie (00:23:18): Your mom took over your programming job.
Scott Louvau (00:23:22): Yep.
Rob Collie (00:23:22): That's so cool. That and growing up on a vineyard. These are just the cliches. Everyone has this story, right?
Scott Louvau (00:23:29): It's a common upbringing.
Rob Collie (00:23:30): Totally. So what was it like working on Visual Studio? Was it what you expected?
Scott Louvau (00:23:35): Yes and no. I really enjoyed it. I was shocked that Microsoft had accepted me and just hoping not to get fired for that first year or so. I was hired as a tester and I really, really enjoyed it. Because testing was creative, like getting games to work on DOS was creative. You just think about all these different things you can try, and mark them all off the list and try combinations of stuff.
(00:23:57): And all of the tests that testers wrote were automated tests in VisualBasic.Net that automated the UI of the product. So you could see Visual Studio come up. You could see it click new project, and pick a project, and type in the folder name and the project name really fast. And add things in the Solution Explorer and type code in the editor. And I was fascinated and I loved that.
(00:24:19): And so I really got into writing those automated tests, and making them fast and making them robust, which was quite difficult. And then into the library underneath them. At the same time, it was really difficult learning how slow big company software was. And so I would talk to customers on the forums. That was something they wanted us to do.
(00:24:40): Sometimes they would talk about feature gaps or bugs. So we would file bugs for them, and sometimes they would get accepted by triage, which is great. And then we could come back and tell them, "Hey, we'll fix this for you in three years in our next release."
Rob Collie (00:24:54): Yeah, it's coming.
Scott Louvau (00:24:55): That was difficult for me because I thought what customer could be happy with, "We'll fix that in three years"?
Rob Collie (00:25:01): It's better than telling them we're not going to fix it, which happens a lot too.
Scott Louvau (00:25:04): That happens a lot too. But just the slow pace was difficult. So as I continued my time there, I drifted toward internal tools at Microsoft, automating the test process on the team. And the same kind of thing, where I'm helping the people who sit right around me.
(00:25:20): If they have a problem, I can fix it that day and then visit them again and see their face light up when it works better now. The thing they had to do manually 10 times a day doesn't need to be done anymore. So that's where I ended up going.
Rob Collie (00:25:34): That's a similar experience that I've had. When I was at Microsoft, it was still the three-year product cycle. And of course, even if it would've been fast, you're still at great distance from the customers. So it's slow and great distance.
(00:25:49): And then now in the consulting world, especially the way that we operate, it's fast and it's really close. You get that same human emotional feedback loop, which is so valuable. You can't put a number on it. So I can see why the internal tools were such a strong pull.
Scott Louvau (00:26:09): It's a lot of fun.
Rob Collie (00:26:10): I was not wise enough when I worked at Microsoft to have that sort of observation. I had to leave to acquire it. I'm not sure I would've had the ability to get excited about internal tools. But I would've been if I'd gotten into it.
Scott Louvau (00:26:22): And it's tricky because they're really fun to work on, but they're also difficult to value as a manager. If you're working on the product that's earning the revenue and you're doing a critical part of it, then everybody knows you matter, everybody knows you need to be there. If you're making the developers around you a little bit faster and more efficient, or saving them time, it's very hard to quantify that.
(00:26:43): And so I definitely ran into a lot of problems with internal tools work not being valued, being difficult to measure. And so I understand a lot why you hear about big companies that have difficult engineering systems and really slow and painful build processes and release processes. I just can't imagine wasting that many engineers' time that much. But it's hard to see the value sometimes.
Rob Collie (00:27:08): It's funny, isn't it when you think about it? Microsoft's tools that they produce for customers are, to a large extent, used by customers to do exactly those same sorts of things we just talked about, make their own teams more efficient.
(00:27:23): But internally at Microsoft, it's very difficult for them to value it in the same way that their customers value exactly the same thing. It's so weird, but I completely agree with you. It wasn't the hot thing to do.
Scott Louvau (00:27:35): And the other problem was that at least, for a long time I was there, I think recently it's gotten a lot better. But for a long time I was there, Microsoft was not making tools for making software at the scale of Microsoft. And so the Visual Studio team could not use Visual Studio because Visual Studio could not open a project like Visual Studio's Code base.
Rob Collie (00:27:58): I remember that. I remember that.
Scott Louvau (00:27:58): That made it really difficult. And our own tools were so much worse than the tools we were making for customers. But we were thinking, "This dream, if you only had half a million lines of code, man, this would be awesome. It would build so fast and you could search through everything."
(00:28:11): But we had this horrible command prompt for hacking together this project that hard-coded all your dependencies. So you didn't have to build anything except this one binary that you were working on, that your team was working on. You'd open it up in a weird version of Visual Studio that could sort of debug. Those were the tools we had.
Rob Collie (00:28:28): I remember laughing out loud the day that I discovered that most of the developers on my team were writing their code and editing their code in a tool called Visual SlickEdit. I'm like, "I thought Visual Studio?" "Nope. No, that's garbage. We can't use that."
Scott Louvau (00:28:46): And as time has gone on, Visual Studio has aimed for a larger and larger scale. And now that source control is Git-based, and they figured out how to get Windows and Office and Visual Studio, and get those giant scale projects. You can use the same tools your customers use, which is really, really cool. So it's getting better, but it took a long time.
Rob Collie (00:29:05): So did you eventually get worn out by the headwinds of trying to get appropriate level appreciation recognition for what you were doing in internal tools and change jobs? Or did you just power through that dynamic?
Scott Louvau (00:29:18): No. I just kind of dealt with it. So I was on the Visual Web Developer Team, which was the part of Visual Studio for building web applications in ASP.NET. And then I built stuff to automate the testing process. And then in 2010, we were doing a phase of testing called app building, which is where we took a couple weeks to build a real small app, end to end, like a hackathon or a hack month, to find these deeper problems in Visual Studio where this combination of features that you would need to get through something smoothly wasn't there.
(00:29:50): And I don't think it was a super efficient process for finding bugs, but it found unique bugs. So what I decided to write with my little team during that was a fast bug search tool. We downloaded all of the bugs from our bug database, and I talked to Dharini about how does web search work? What are the data structures?
(00:30:09): And she told me about inverted word indexes. And I was like, "Oh, that doesn't sound too bad." So I built a word index of it, and I built as-you-type search, like Google instant search for our bug database. And it was fantastic. We decided to call it Bung in kind of a disrespectful streak. So Bing for bugs. And you could search our 60,000 bug database in milliseconds per keystroke.
(00:30:37): You get feedback instantly. And it was fantastic because for a bug bash, where you're using your product manually ad hoc, trying to find bugs, if you find a lot of bugs during a day, you got to spend a lot of time trying to find out if they've already been filed before. The state of the art at that time was a little query builder where you'd say, "Title contains this," or "Description contains this," or "Repro steps contains this."
Rob Collie (00:31:00): I know it well.
Scott Louvau (00:31:01): It took 15 or 20 seconds for every query to run too. So you could spend 10 minutes just looking for duplicates, just trying a couple of terms.
Rob Collie (00:31:09): So then you did what any good responsible tester would do, and just file the bug anyway. Why perform an exhaustive search for whether or not this bug is already there when I can just file it now and move on?
Scott Louvau (00:31:20): Not super respectful, but it turns out that the triage team, deciding whether the bug will be fixed and the developer, who will be given the bug to fix, are much more aware of whether there are duplicates than the tester is.
Rob Collie (00:31:32): That's right.
Scott Louvau (00:31:33): Because they have this list of 15, and if they're the same, it's very easy. But once I wrote instant as-you-type bug search with my product group during that project, it really caught on, on my team. And then across Visual Studio and then across Microsoft.
(00:31:47): And so I figured out how to scale it up and how to run it for, I think in the end, it was two or three million bugs across the company that it had indexed for 25 different teams. I took that project with me.
Rob Collie (00:31:58): Did you call this new version Big Bung?
Scott Louvau (00:32:00): No, still Bung. So it's Bung/VS or Bung/Office or Bung/Windows
Rob Collie (00:32:07): Not Giant Bung?
Scott Louvau (00:32:09): No. No more creative than that. And I took it from team to team. I worked on Visual Web Developer, and then I switched to an engineering system team in Visual Studio that built tools for Visual Studio, Visual Studio's build system and Visual Studio's test lab, automation and the automation frameworks.
(00:32:28): So my day job was working on the automation frameworks, and I continued working on these tools. And then I went to the browser tools team, which was working on this idea of building Windows 8 apps, called Metro Apps, before Windows 8 was released. And so wherever I could find a manager who was willing to have me take my baggage, my internal tools with me, and had something that seemed kind of fun for me to do, that's where I went.
(00:32:54): When I was working on Windows 8, app testing, they wanted us to install a new build of Windows and a new build of Visual Studio on top basically every day in order to try it out. And I did that a couple times, and it took about two hours each time. And then I thought, "I'm not doing this. This is awful."
(00:33:11): And so I figured out how to automate Windows setup and Visual Studio setup. And I built a virtual machine based system that would build a virtual machine with Windows and Visual Studio on it. And then test it a little bit to make sure it worked. And then publish an image of it, using the same infrastructure that Dell and HP use to set up all their computers before they send them to you.
(00:33:33): And then had a little harness on my own machine, where you could boot to a different partition on your machine, and grab an image that had all of today's builds on it in about 20 minutes. And then, if today's build was a total disaster, it didn't work at all, I had a undo feature.
(00:33:49): So you could go back to yesterday's build very quickly so that you wouldn't be blocked. While I checked my mail in the morning, I could have another one of my machines updating to today's build. And if it didn't work, then after standup, I would roll it back.
Rob Collie (00:34:02): That's a place where you and I overlapped a bit is I was program manager on the first version of Windows Installer MSI. Now of course, that wasn't an imaging-based setup like what you're talking about. But oh, my gosh, did I have to run in my first couple years at Microsoft. I had to run so many Windows and Office setups over and over and over and over again.
(00:34:26): I was testing setup. That was my first job. So even if there were images available to me, I wouldn't be allowed to use them because I had to make sure the installer actually worked. Especially, when you consider how expensive these software engineering people are to Microsoft. Saving a couple hours of time every day, times the size of the team, they should have been backing a dump truck of money up into your office every day.
Scott Louvau (00:34:49): Yeah. The imaging software got to the point where I saw people were picking up 1,000 images a day internally and installing.
Rob Collie (00:34:57): So 2,000 hours. Let's just make it rough. 2,000 hours of saved productivity a day. Every day you were saving a year's worth of software engineering labor. Unreal. Make this man partner, VP.
Scott Louvau (00:35:13): The feedback was usually, "Please stop spending so much time on tools and work on the product our team cares about."
Rob Collie (00:35:18): Ah, so awful. Oh, my gosh, I'm sorry. But again, it's that different mindset. Hey, you mentioned inverted word index.
Scott Louvau (00:35:27): Yep.
Rob Collie (00:35:28): Is there any way that... Can you explain that to us? Because I don't even know what it is. I worked on Bing, but I was so not into it that I never learned. Is this the tool, by the way, that you showed me at your house one time?
Scott Louvau (00:35:41): No, that's a different one. So in inverted word index is really easy to explain.
Rob Collie (00:35:45): Awesome.
Scott Louvau (00:35:45): If you've ever looked at the index in the back of a book, it says, "The word, editor, is on page 73." An inverted word index is exactly the same thing. Instead of, "All these pages have these words on them," it's "For this word, here are all the pages that that word is on." You could do the same thing with bugs.
(00:36:05): You could say, "The word, editor, is in these 27 bugs." And so my initial implementation was just a C# dictionary of string to list of int, "This word is in these bug IDs," and that's it. And when you type something, what I'm going to do is search that word list, all the keys in the dictionary, for every one of them that starts with what you typed.
(00:36:29): And then union together all those bug IDs, and then find the most recent bug ID, the highest numbered bug ID. And give you the most recent 25 bugs filed that have that word in it. And that's really it.
Rob Collie (00:36:41): So then how do you do the type ahead when I type in the next word? Like, "Editor won't load."
Scott Louvau (00:36:45): So a couple of features there. So if you want to do multiple words, then for each thing you typed, you'd find all the words that start with that. You'd union together all the bug IDs that contain words that start with that, EDI. You do that for each term that's typed and you intersect them together. It has a word that starts with EDI, and it has a word that starts with int and it has a word that starts with ADI.
(00:37:11): For IntelliSense, for query words, where I suggest words to you, all I need is the word list from that dictionary. So you type ED, and I go find all the words that start with ED, I'm doing it anyway because I'm going to get you all the bugs.
(00:37:25): But I can also return you a list of all the words I know that start with ED. And I could filter it to just the words that are in more than 50 bugs or the most common words that appear. Or I could even intersect with all the other terms in your query and figure out what are the most common words that are in bugs that match the rest of the query you've already typed. And show those to you in IntelliSense. And it turns out that that's a feature that amazes people, but it's really not that hard to implement.
Rob Collie (00:37:52): Something very different happens when you press the space bar. So far, I completely understand, I start typing EDI, you have that dictionary. That dictionary is even weighted by the number of occurrences. And of course, you know what letters I've typed, and that starts to disqualify more and more and more words in the list.
(00:38:10): So single word autocomplete against this database, totally straightforward. Then I press the space bar. How do you decide what to display next? And there's something about sequence here. It doesn't really matter what order I typed the words in. Or is your autocomplete, at that point, sensitive to the fact that the word, editor, came first?
Scott Louvau (00:38:28): Bung did not care about phrases. It didn't do phrase search. It initially didn't suggest things based on what the rest of the query was. And a feature that I added a little bit after the initial release was searching in specific fields of the bug. So you might want this word anywhere, you might want this word in the title, or this word in the area path, or this word in the build that it was found on, the bug was found on.
(00:38:54): And so I added these to my word index by just coming up with a prefix for each of them. So title was T colon. So if you type T colon-something, it means this word, but only in the title. And I add all the words I find in the title to the index without a prefix and with the T colon, prefix. So after you hit space, what I would do is tell you about all the column names that I have indexed.
(00:39:15): So it was kind of a database query where you're filling in the column part. And then we added a feature where, after you typed the colon, then I would find out the bugs that match the rest of your query, and for that field, how many distinct values are there? And what are the most common ones?
(00:39:32): And then we would show you IntelliSense, with a background highlight behind it, like Excel's data bars that shows you how common those different values are. So you would type editor IntelliSense and then P colon. And it would show you the distribution of priorities for bugs that have editor and IntelliSense in them.
(00:39:49): Or editor and IntelliSense and S colon for state. And it would tell you how many of the bugs it knew about were closed, versus active, versus duplicate, all the different resolutions. And that also was a pretty well-loved feature.
Rob Collie (00:40:02): Yeah, I bet people loved it when you put the colon in Bung. Couldn't help it. I couldn't resist.
Scott Louvau (00:40:09): It should have been there from the beginning really.
Rob Collie (00:40:13): And when you said P colon, I was like, "Oh, my God." The intersection of dad jokes and 12-year-old humor.
Scott Louvau (00:40:23): I think the shortness and the inappropriateness of the name may have helped its virality. You're not going to forget the name of that tool after you've heard it once. And if you overhear a conversation where this term is used, you're going to go, "What are you guys talking about?" It's going to spread. And it did.
Rob Collie (00:40:40): I think it was genius. I can't help it. So can we talk about the other thing? The thing that you showed me at your house that time? Was that related to Bung?
Scott Louvau (00:40:50): Distantly, I guess you could say. Working on Bung taught me that I loved working on search, I loved working on performance. And I was interested in the concept of the internals of a database. And so that initial version of Bung was just a word index, and that's it.
(00:41:06): And then I found the time to re-engineer it to kind of be a database. So it would store data in separate columns, and you could do range queries in those columns as well as word contains. And you could do analytics, you could do sums and averages and mins and maxes, compute analytics across a whole grid of things. So you could say, "I want to know how many bugs are in different states for bugs opened this week, for these seven area paths."
(00:41:35): This grid would light up and dance with every keystroke as you're typing. So I built the word index version, I built the kind of database version. And then I moved to another team, the Windows security team. The problem I saw that that team had, is they had a lot of different data from a lot of different sources at a lot of different scales. And they were in different places.
(00:41:57): So some of it was Excel spreadsheets that got sent from one team to another. Some of it was in SQL Server, some of it was a little too big. So it was in a tool called Kusto, which is the internal version of Azure Data Explorer. Some of it was way too big, so it was just in Azure Storage in these enormous files. And the team had to report on that data, and they had to explore that data when there was a security incident. And so it was a nightmare because they had to use so many different tools to get the data they wanted.
(00:42:28): It wasn't all on the same place. And so I had this idea of trying to build an engine that they could use for all of that, that would work at different scales that would work with data and files. So the files could just be in Azure Storage or on some file share or whatever. And it would understand tables and have very simple query operators, and allow you to do your initial ETL work where you were filtering things out and doing joins between tables and computed columns.
(00:42:55): And you could do your reporting, where you would compute this official list of, "These are the servers that need security updates installed," or "These are the machines that have too many administrators on them." Or whatever. And you could do ad hoc exploration. And you could combine data that was official respected data with this ad hoc data you had put together that was not necessarily a trusted data source vetted by the team yet. You wouldn't want it in the main database server.
(00:43:19): And that's the thing I showed you. So that was called XForm, a little query engine for file-based tabular data. And it used a pipelined query language, like Azure Data Explorer does. So your query is built up of a set of stages, one per line. So from this table, select these columns where this condition, add this computed column, join in this other table step by step.
(00:43:44): Because from my first job, I felt debugging SQL statements was really hard. A SQL statement goes wrong and you get no rows back, then the process of cutting it down and trying to understand where it's falling apart is a disaster.
(00:43:59): I thought that this idea of a pipelined query where, on each stage, a human can rationalize about what's coming out of the query, what should be coming out of the query. And could just go back and hit a five on an earlier line and see if it made it that far. Is it falling apart at the join? Or is it the computer column? Would be really helpful.
Rob Collie (00:44:18): It's very Excel-like, being able to see intermediate steps. Traditional SQL's more like, "Oh, yeah. You can write your Excel formula, but the entire spreadsheet needs to be in one cell, in one formula. Find out if it works or not."
Scott Louvau (00:44:30): Right. Yeah. So I had this query language. And it had really, really good IntelliSense because I understood how to write that. So I would give you IntelliSense for the column names in your schema, and IntelliSense for values based on how common those values were in the table for the query that you had written thus far.
(00:44:46): And if you had computed columns, they would show up in IntelliSense later on in the query because at that stage of the query pipeline, it knew that that computed column was there and it knew what type it was and all that. And it worked on data stored in a separate file per column. So it was a column or database essentially on disk. And it would stream through the data. So it was not loading it all in memory. And I was working on being as efficient at loading batches of cells and running them through the query pipeline as I could possibly be.
(00:45:15): And I had learned how to use the SIMD instructions that CPUs offer. That's Single Instruction, Multiple Data. For example, for bugs, if bugs are active, resolved or closed, only three different states. That's a string column, but it's really an ENUM, with only a couple of different values.
(00:45:34): And so I would quietly store that as one byte per row. Which of these three values does it map to? And then if you had a WHERE clause on that column, where status is not closed, I would convert that to a SIMD instruction.
(00:45:47): So would say, "In this array of bytes, go tell me which bytes are not three." And the CPU can do that 32 bytes at a time, about three billion 32 byte batches per second. So it was just insanely fast. And it would basically...
Scott Louvau (00:46:03): So it was just insanely fast. Basically, it would go as fast as it could read data off disc, which for the early SSDs or the NVMe drives that were just coming out at that time, was two or three gigabytes per second, so two or three billion rows per second. Or if you had that column cached in memory, then it was more like 50 billion rows per second for that query operator.
Rob Collie (00:46:19): So the CPU, it wasn't being starved. They weren't super super bottlenecked on IO even, even with the CPU running basically flat out as efficiently as it possibly can, like damn near optimal utilization, which is incredibly rare. It's one of the things I tell people all the time is, "Look at that commodity laptop you have on your desk. It's probably got four cores, maybe eight, and each one of them is capable of billions of calculations, billions of operations per second. Why doesn't it feel like a super computer? What is the problem?" It's because so rarely do we have problems that could take advantage of it fully. We have those more often than we think. It's just that very, very rarely is the software then written down to the metal efficiently enough to take advantage of it.
Scott Louvau (00:47:11): Something that drives me crazy as a computer user is that I know how fast these computers are, and these CPUs are so lazy. They just sit on their butts for 200 clock cycles waiting for something to come from memory and do nothing. And yeah, if you can just keep them consistently busy, you can do just a staggering amount of work.
Rob Collie (00:47:29): Do you share my frustration that it takes a full 10 seconds for your laptop to wake up from sleep?
Scott Louvau (00:47:34): Oh, yeah. Definitely.
Rob Collie (00:47:35): What is going on there?
Scott Louvau (00:47:39): What 30 billion things did you need to do to turn the screen on? Yeah.
Rob Collie (00:47:43): Yeah, I know right.
Scott Louvau (00:47:44): Or 300 billion things. But I think I understand it. People are okay at testing software functionally. I think that's something as an industry we're still kind of so so at. You'd see the bugs that make it out to production that get found by customers instead. Even compared to that kind of moderate level of testing, almost nobody thinks about performance testing and almost no software is performance tested. And if you think, "Hey, if I wrote a thousand lines of code and I never tested it, would it work?" Like no way, it's going to have bugs. It's probably going to have a couple of incredible functional bugs that break every case.
(00:48:17): Now imagine I write 1,000 lines of code and I never performance test it, which is what usually happens. Is it going to have performance issues? Of course it is. Is it going to have a couple of shocking egregious performance issues that are trivial to fix? Yeah, more than half the time. And if you just run it through the profiler, oftentimes you can make something twice as fast or five times as fast in 10 minutes, and I wish that more developers would do that.
Rob Collie (00:48:44): Someday, someone will figure this out, and I will get a damn near instant on wake up from sleep laptop. Think about it, 10 seconds a day times hundreds of millions of people. The world would carry you around on its shoulders chanting your name. In the next moment, someone would tap you on the shoulder and say, "Hey Scott, could you rev vector your attention in a more productive direction?"
Scott Louvau (00:49:06): Right. Nobody cares that these computers wake up faster. Could you add a new feature?
Rob Collie (00:49:10): That used to be a much stronger emphasis in software engineering back when RAM and CPU and everything was a lot more constrained than it is now.
Scott Louvau (00:49:19): Right.
Rob Collie (00:49:20): Famous stories of Bill Gates and Paul Allen going to different corners of the room seeing who could write that corner of the operating system or the basic interpreter or whatever and have it crammed into the smallest number of bytes of RAM.
Scott Louvau (00:49:33): Do you have 2K? Figure it out.
Rob Collie (00:49:35): Yeah, and you're looking at it. By default, you've got like 25K of stuff and you've got to make it fit into two. If you were good, you figured it out. So the only time I felt that way at Microsoft, like we were still doing that kind of code, was when I worked next to the VertiPaq folks that were building the brain underneath Power BI. And then the second time I felt that way was when I was talking to you about the thing you had built and there was like no third time.
Scott Louvau (00:49:59): Yeah, I probably really should have found a database team at some point in my career and worked for them. I think I would've enjoyed that.
Rob Collie (00:50:06): I was supposed to introduce you to Amir. It's not like I just call him. I get one email a year to him and then it's a coin flip whether I hear back. We like each other. I did get him on the phone recently. We talked. We had a face-to-face web meeting for 90 minutes. It was awesome. That's it. That's my token. It's been spent for the next two years. We had Danny Hotter on the show recently and he works for the CUSTO team now. I bet, even just on a personal note, you would enjoy meeting him.
Scott Louvau (00:50:32): Yeah, it'd be fun to talk to somebody like that.
Rob Collie (00:50:34): I'll introduce you. And he does answer my emails, and he's just such a warm and interesting person. I think you'll love him, so I'll definitely make that introduction. The other thing I have, this isn't the career advice forum, because hey, you're twice retired, and I'm zero times retired. You should be giving me advice. But if a Microsoft competitor wanted to build an engine to try to compete with what Microsoft has got, I mean they should hire you as CTO. I'm straight up serious. You're exactly the kind of person that they need. Microsoft should rehire you and pay you to do nothing just to keep you off the market. That's my take. Just lock him up.
Scott Louvau (00:51:08): That'd be fun. I'd love working on my toys all day.
Rob Collie (00:51:11): Every day they ask you if you're doing your job, which is not working for someone other than Microsoft, and you say, "Yep, I'm doing great. I'm doing great at that job. I'm killing it."
Scott Louvau (00:51:20): You said sit up on the roof and have my double gulp and I'm working on it.
Rob Collie (00:51:24): Speaking of double gulps, are you still making vacuseal cold brew?
Scott Louvau (00:51:28): No, it was a brief experiment. So I love coffee, I love cold brew and I worked on getting consistent cold brew. And I had it really dialed in for a while. But then my coffee shop of choice closed. That was Seattle's Best Coffee and there was one just down the street and it closed when my first daughter was born. Then I started to have trouble making it consistently and I'm not sure what the issue is, if it's the grind consistency or the beans and if the beans that I buy are inconsistent or the brew time. So I've tried making them in a Toddy brewer. I've tried some of the smaller brewers.
(00:52:04): I've tried ones that have a rotating magnet, like the chemistry stirring devices that stir it the whole time. Sometimes it comes out okay. Sometimes it's sour, sometimes it's bitter. So these days I go to Starbucks pretty often and when I go I get a free refill because they'll give you a free refill. And I get a cold brew refill. I bring it home, put it in a couple of perfectly sized bottles that have no air in them after I close them and then make my own for the next couple of days.
Rob Collie (00:52:32): There you have it. Wish they could run some plumbing from your house to Starbucks. All that driving back and forth. And plus, all their labor costs refilling your free refills. I didn't know this. I can get a free refill of cold brew at Starbucks?
Scott Louvau (00:52:49): That's right. Yeah. Brewed coffee, tea or cold brew. And you can get as a refill for any drink.
Rob Collie (00:52:56): What's required? Do I have to have the Starbucks branded thing?
Scott Louvau (00:52:59): You pay with the app or a Starbucks card that's linked to your payment instrument and then you go up again and it's free to get the refill.
Rob Collie (00:53:08): Hold on. You go in, you have to buy one cold brew, it's like buy one, get one free? Is that how it works? Or you're like going back every single day getting a refill and not paying anything?
Scott Louvau (00:53:16): So I go a couple times a week, I get my coffee, I go back to a table and daydream about programming stuff, algorithms, problems or what I want to work on at home. When I finish my drink, I bring the empty cup up to the counter again and ask for a refill and then I got my coffee for the next couple days.
Rob Collie (00:53:32): I still have to keep asking questions here. I still don't quite get it. Okay. So this is important to me because coffee is important. You get a regular coffee and drink it and then you take home a cold brew that's concentrated and that's what powers you for the next couple of days? So I don't understand how you can consume in one sitting the same amount as what you're going to require over the next couple of days.
Scott Louvau (00:53:52): Ah, good question. Yeah, so you can buy any drink, but I like cold brew. So I get a nitro cold brew the day I go and it's 16 ounces and then I bring home the 16 ounces of refill with no ice and that's good for two days. So what I found is that I have to calibrate my caffeine intake carefully. 12 ounces of cold brew is just about right. Eight is not quite great, but it's enough. 16 is a little high, but I'm not quite shaking. And I find that if you know about those personality colors.
Rob Collie (00:54:24): Oh yeah. Green, blue, red, yellow. Yeah.
Scott Louvau (00:54:26): Yeah. So I am very blue normally and I tend to overanalyze stuff. But the more caffeine I have, the less blue and more red I get. So if I balance it right, if I'm overanalyzing a little bit more coffee and you know what, I'm just going to type something and see what happens. If I keep coding myself into corners all day, I think I better let the caffeine come down a little bit and then I'll spend some more time thinking about the right thing to do before I charge.
Rob Collie (00:54:52): It always bothered me that the so-called bomber peak was based on alcohol. What the hell? That was meant to be a caffeine graph from the beginning. Alcohol doesn't make you a better coder. I agree that there's a very narrow zone of alcohol consumption that will make me a better pool player. One or two beers and I'm in the zone. One more beer and now I'm sloppy. It's really a razor's edge and it's hard to keep the half life and everything. Keep it straight, you know? This caffeine thing though, I mean someone probably had to corrupt this meme. It had to have been caffeine from the beginning.
Scott Louvau (00:55:27): You could imagine. Maybe alcohol is funnier, but caffeine is more practically true.
Rob Collie (00:55:33): I made up a word one time and I thought it was very clever, but I never could get it to stick. I called it comprendothermic. You convert calories directly to understanding but catalyzed by caffeine. Usually in the dark. We're going to make some mugs with this on it. Then everyone else voted for the T-shirt instead and so the mug never got made. I thought it was great.
Scott Louvau (00:55:56): The weird thing about me is I'm kind of a night person. I like to stay up late. I have trouble getting up early, but I code best in the morning. If I get to 3:00 PM, unless I'm in the middle of something I'm really excited about or doing something that's very simple, then I'm kind of done for the day. So I'll go for a walk at three o'clock every day and reflect on what I did and think, am I taking the right approach? Should I be investigating something else first? Is there a real blocking problem I should be concerned about? Is there some more information I should gather? And of try to do that bookkeeping and higher level thinking in the afternoon.
Rob Collie (00:56:28): Returning for a moment to this column or database, what was it called again?
Scott Louvau (00:56:31): X form, meant for transform. Initially it was for doing the transformation of data to get it into the reportable state.
Rob Collie (00:56:40): You are much more in the zone with the naming of [inaudible 00:56:43] than X form. Marketing counts, you know? I'm not going to try to come up with a better name at the moment. Of the technologies that you're aware of that are on the market today from Microsoft or anyone else, what would be the closest thing that's commercially available to what you were doing there? You're not the only person who's ever tackled this kind of problem. Are you aware of anything that's sort of reasonably close comparison to what you were doing?
Scott Louvau (00:57:06): It sounds to me like the closest analog is the database engines that the cloud providers have that will directly query data and cloud storage. It sounds like they're written the same way to be as efficient at loading and storing data from disk as they possibly can get so that you pay by the query for your compute time and hopefully your query runs where that little block of data is stored. I don't know that I've seen one of those that you can run on your own computer freely if you want to. Tableau might be a close comparison. But the other trick that was really important is that while you took in your data as a tabular format, CSV or TSV or something like that, translating it to that columnar format in storage was really important to make it repeat queries really fast and efficient. And I don't know if the cloud engines do that quietly in that storage you don't have to pay for or not.
(00:57:58): But that was really important. It was amazing because the whole engine and its web interface was 1.4 megabytes. And so, if you had 100 gigabyte CSV on a computer somewhere in the data center that you needed to understand, instead of downloading this 100 gig thing, you could put this one megabyte thing on there and do your analysis in the browser right on that machine, which turned out to be a neat capability. But yeah, unfortunately, X form didn't get far along and the team was intimidated about having some random new database engine and new language. Understandably. They did not decide to pick it up for everything that they do.
Rob Collie (00:58:41): The way you talk about this stuff is so similar to me, it's familiar to me from listening to the way that the people at Microsoft who are working the most closely with these engines, they sound the same way. Also known as, don't sound like me. I'm never going to be that kind of person, but I mean this seriously. I think Microsoft really kind of missed out even though you did very well there. I'm not saying that you had a bad run at Microsoft. Quite the opposite. Look, you retired twice. That's hashtag winning. But Microsoft lost because they didn't find a way to harness your particular talents and interests.
Scott Louvau (00:59:19): What I would be interested in job wise going forward, which is perf consulting gigs, I think that'd be my dream thing.
Rob Collie (00:59:25): Who would the clients be? If you were going to do performance consulting, who would it be?
Scott Louvau (00:59:28): I need to ramp up on other languages. I understand performance in C sharp very well, but low level performance really is the same. It's the CPU underneath. It doesn't matter much. But if there's a team who has a code base who has a performance bottleneck and needs help with it and wishes somebody would parachute in and make it 10 times faster as similar as possible to what it is now and then head out, I think gigs like that would be really fun for me to work on. Yeah, I was going to say that performance mattered a lot when computers were slow and you had to figure out how to make something super fast to do something at all. Now, it's still sort of alive in games because game developers are always trying to squeeze more capability out of the hardware than it was intended to provide.
(01:00:12): And I think it's coming back in cloud services too, because when you pay per execution second for your Lambda or your Azure function or your spinning up instances, depending on how efficient your service is, 10x performance means one 10th of the cost or one 10th of the servers. And so I think that there are probably a lot of services there where they get shocked by their cloud bill and they find out there's one dominant component. And man, if they could make that thing five times faster, it'd be great. Perhaps stuff like that.
Rob Collie (01:00:44): The cloud providers themselves can build more efficient frameworks, right? And then the people who are using these cloud platforms and building solutions on top of them can also use these sorts of services. It makes total sense to me. The surprising cloud bill is one of the memes for our era. I kind of jumped on the performance consulting thing. I'm not trying to drag you back into the workforce. One thing that we do have in common, other than laughing over and over again about almost none of the things that you've done are things that I would've ever done or tried to do or could do. We had that same sense of like, oh, there's just so much improvement that's possible. I get really visceral. You saw the way I was about the laptop. Forget it. None of these other things matter. We're going to send you to Lenovo. Lenovo and Windows. We need the Wake Up from Sleep Task Force. We'll call it Rip Van Winkle Project or something.
Scott Louvau (01:01:39): Sometimes I think maybe the best place for me would be the Windows Defender team. Just like, what is it doing?
Rob Collie (01:01:45): Yeah.
Scott Louvau (01:01:46): Every time I wake up my computer, it wants 20 minutes.
Rob Collie (01:01:50): Have you seen the short little video that makes fun of Google Chrome?
Scott Louvau (01:01:54): No.
Rob Collie (01:01:55): There's like a plate of cookies sitting on the table. The icing on the cookies spells RAM. And so all the cookies are RAM. Someone walks up wearing a Photoshop t-shirt, looks at the cookies, he goes, I'll have some. And starts to take a little nibble and all that. And then this guy walks up wearing a Chrome T-shirt, he looks down and sees the RAM, takes a bite mine and goes, oh, he just starts cramming them in and just pushes Photoshop out of the way and just starts. We need to redo that but with Windows Defender and CPU.
Scott Louvau (01:02:26): Yeah.
Rob Collie (01:02:28): CPU and disk. And we laugh every time I come down to this podcast computer. I only use it for recording podcasts. Press the space bar, wake it up from quote unquote sleep, immediately log into the podcast site. And apparently my voice is garbled for the first 15, 20 seconds after I join because my computer's still doing all those things that it likes to do when it wakes up.
Scott Louvau (01:02:48): Yeah. Finishing waking up. I had an experience like that yesterday, a performance nightmare. I got my mom to get a new phone. So she's upgrading from a Pixel 3A to a Pixel 6A. And I had just set up two of them and did the cable to cable data transfer. And on her phone it just wouldn't work. It was taking forever to find the data to copy and wouldn't find everything and wouldn't install any apps. I rebooted her phone and it turned out that she had a security update or a major OS update that had been installed that had never been rebooted for. So it took a while to start up. And then I tried the setup again and it didn't work. And I tried it again and it didn't work.
(01:03:29): So I keep resetting the new phone. And then I tried migrating my phone data over and within 10 or 15 seconds it found everything and told me, yeah, I can move these 100 apps and all these photos and everything. So then I tried hers one more time. After the reboot, after several failures after the reboot, after the phone had been sitting there for half an hour, and you know what? Everything worked fine. Whatever it was, that phone was doing stuff for 15 or 20 minutes after that patch installed. And it was doing enough stuff that the migration helper just didn't really work while that stuff was going on, which is crazy.
Rob Collie (01:04:07): And remember folks, for perspective, you hear over and over again how that phone has 1,000 times the computing power of the entire Apollo program. Whatever it was doing, it didn't need to take that long.
Scott Louvau (01:04:21): It's Defender.
Rob Collie (01:04:23): It's such as the power of Windows Defender. It reaches out its long tendrils.
Scott Louvau (01:04:28): Let me go jit some code.
Rob Collie (01:04:30): Is Pixel still technically Android? I know it's sort of like Google's proprietary thing, right? Is it?
Scott Louvau (01:04:35): Yeah.
Rob Collie (01:04:36): It's still straight up Android?
Scott Louvau (01:04:37): In theory. It's the pure form of Android without Samsung's UI customizations. You get it on the phone quickly after it releases.
Rob Collie (01:04:45): Have I ever told you? I probably haven't. My personal sinister theory as to why it's called the Pixel?
Scott Louvau (01:04:49): Uh-uh.
Rob Collie (01:04:50): Google. Everything about them runs on the idea of tracking pixels. And they're sitting around one day saying, "How do we get people to carry a more reliable pixel with them from place to place?"
Scott Louvau (01:05:02): I see.
Rob Collie (01:05:02): And they're like, "Oh, I know what we'll do. We'll invent a phone, embeds a tracking pixel to the phone. We'll even call it the Pixel because the world's too dumb to know that we're pulling one over on them."
Scott Louvau (01:05:14): Right. Nobody's going to catch us anyway.
Rob Collie (01:05:16): Yeah, no one. Yeah. Bahaha. Fools. We'll destroy them all kind of thing. The gall to name your phone the Pixel. Say it out loud.
Scott Louvau (01:05:26): Yeah. I'm definitely kind of concerned about privacy and tracking in the modern world. And I think about 1984, and not even Orwell could imagine that people would pay a lot of money to buy their own surveillance and carry it around with them. The giant TVs with cameras? Yeah, sure, we have that. But people will pay for their own tracking to go around with them. And I want to keep doing more to kind of make myself a little bit hard to track online. But man, they always have a bead on me. I was searching for something recently. I think it was phone cases for the new phone. I made sure I am signed out of Facebook on the browser and it's a different computer, a different browser. And I saw in Darreny's Facebook feed downstairs 10 minutes later ads for phone cases. They still have a bead on me. I don't want her seeing ads for all the products I'm looking for because sometimes I get stuff for her.
Rob Collie (01:06:28): Yeah, it's unbelievable. They track now based on, they start getting all kinds of things. We get your location, we get the Mac address of your card, and we start to develop this thumbprint of you whether you're participating or whether you're opting in or not. Very famously, if you're searching for something on your phone, the powers that be have figured out that your phone likes to hang out and close proximity to Darreny's phone a lot. So why not bleed the advertising over?
Scott Louvau (01:06:59): Right. You could buy this for that other phone that hangs out in the next room.
Rob Collie (01:07:02): Yeah. The phone is the customer. I actually saw Carl Sagan in person one time before I really even cared. His talk was entitled Is Their Intelligent Life on Earth? And he was saying like, "Let's apply the SETI project, our technologies for looking for alien civilizations, let's apply it to us from the outside in. The first thing that the aliens are going to notice is that our atmosphere is comprised differently in a way that is indicating organic life." And he said, "But as their technology improves and they're able to zoom into a finer and finer resolution on our species, they'll eventually get close enough that they'll come to the conclusion that the dominant species, the salient species on the planet, is the automobile."
Scott Louvau (01:07:44): It's certainly using a lot of resources.
Rob Collie (01:07:47): And then eventually the aliens are going to start becoming very confused and concerned. What is this dominant species doing? It is working for its own demise. It's not doing the right things to preserve itself. He intentionally never went below the level of automobile. He just kept pretending the whole time that the automobile was the dominant species on the planet. It's pretty clever. So the phone, what does that phone need? That phone needs a new case. The poor phone. After this conversation, I'd be like three times as grumpy about every single thing that takes a long time that shouldn't. So thank you for that.
Scott Louvau (01:08:22): No, I think that's a disease that should spread. You should never wait for your computer to do anything. Every once in a while, when you ask it to compile millions and millions of lines of code, yeah, sure. That should take a couple minutes. But starting up, launching apps, opening a webpage should be instant.
Rob Collie (01:08:41): With solid state drives, that should have been it.
Scott Louvau (01:08:43): Yeah. And they keep getting faster and faster too. I'm looking at new drives that can read at seven gigabytes a second. So if it takes two seconds for Chrome to start, what 14 gigabytes of data did you require?
Rob Collie (01:08:54): Right.
Scott Louvau (01:08:56): Chrome is big, but it's not that big. Yeah.
Rob Collie (01:08:59): All of it.
Scott Louvau (01:09:00): I just decided to load every cached web artifact.
Scott Louvau (01:09:03): I just decided to load every cached web artifact that I have ever downloaded for you just in case.
Rob Collie (01:09:06): That's right.
Scott Louvau (01:09:06): I just wanted them in memory.
Rob Collie (01:09:08): You wanted Wikipedia, right? How much storage does Wikipedia take?
Scott Louvau (01:09:12): Sixty gigabytes.
Rob Collie (01:09:13): You can have all of Wikipedia on your computer with room to spare.
Scott Louvau (01:09:19): And you could text search it brute force in 10 seconds. So any search that takes longer than that is doing worse than just looking through the bytes.
Rob Collie (01:09:32): And you get the inverted index and no challenge at all. But yeah, everything's slow. Might be the title of this episode. Why Is Everything So Slow?
Scott Louvau (01:09:42): Yeah, and I'd be happy to talk about performance more. Since I quit I worked on a blog, that's one of the things I've done. It started out being about finance and I had a whole early retirement series that I wrote. But I'm doing some stuff about games that I like playing and gaming, and a little bit about code performance. I'm hoping to expand on that, just how to do performance analysis and improvement with Visual Studio with the profiler and a case study. So I had just did an example of, "Hey, let's parse date times from a file." We go up from 1.5 million per second with a naive implementation to a 55 million per second for exactly the same problem.
(01:10:24): In .NET the code gets a little weird at the end, but kind of shows you how the trade-offs kind of accumulated as you go. And then I tried out loading date times the exact same way that X form does it. And that's about 300 million date times per second. And on my MacBook, it actually runs at just under a billion date times a second because the drive is faster. It's pretty crazy.
Rob Collie (01:10:47): The hard drive speed. That's crazy. What's the name of your blog?
Scott Louvau (01:10:50): Relentlessoptimizer.com.
Rob Collie (01:10:53): Relentless optimizer.
Scott Louvau (01:10:54): There's a Bill Burr bit where he's talking about his girlfriend, nagging him about stuff. Some little robot just going to [inaudible 01:11:02]. I think I work on performance like that. I'm just never quite satisfied. I'm always wondering what's around the next corner. How much faster could it be? And I'm willing to tolerate the code getting pretty weird too. Get it as fast as it could possibly be. That's a lot of fun to me. And really, I do that with lots of things. Coffee, finance and investing. I did that with some gaming. I played a game called Kingdom Rush. You may or may not be familiar with it.
Rob Collie (01:11:28): Oh yes, I have played the hell out of Kingdom Rush.
Scott Louvau (01:11:32): Kingdom Rush for people who don't know is a tower defense game. There's a map. Bad guys come in one side and they cannot get out the other side. So you got to build towers to stop them and different enemies need different towers. So I would play this game and I didn't want to just beat the levels. I wanted to annihilate them like flawless perfect victory. And the problem is the levels are kind of long. Some of them are 25, 30 minutes long, and if you don't get the outcome that you want, you can't remember everything that you did during that whole play through. So first I came up with a sort of chess algebra for writing down my entire game so that I could say everything that I did and track it and then kind of tweak the algebra for how I was planning to try next time and replay.
Rob Collie (01:13:08): I played this within the last three days and it's gotten so hard that you've got to be thinking about it the way that you're thinking about it or just paying to win.
Scott Louvau (01:13:18): So I built something where you record a video of yourself playing with just desktop recording tools on Windows or Mac, and then you drag and drop the video onto my website and it will figure out what level it is and it will figure out every tower you built in what order, and it will build a 32nd animated walkthrough of what you did. And then you can edit the text to decide what you want to do next time and follow the animation as you play. And it just uses TensorFlow.js. It runs on the GPU in your browser, on your phone if the video is on your phone. It was fun.
Rob Collie (01:13:52): Okay, so how do I use this? because I'm stuck.
Scott Louvau (01:13:54): Relentlessoptimizer.com/KR capital KR, and you'll see the description of how it works and how to record the video and you just drag and drop it. And then I recorded every level in the original game. Generated walkthroughs of every level that are up on my website as well for how I got through all of those levels.
Rob Collie (01:14:14): Once you get a three stars on a level and then you got these two special missions. Will it work for those?
Scott Louvau (01:14:18): You're talking about all the levels that after you beat the initial campaign ones, the other ones that come up.
Rob Collie (01:14:23): Iron and hardcore, the ones that you only have one life.
Scott Louvau (01:14:26): Yeah. Yeah. I've walkthroughs for every level, for every difficulty. And the AI won't figure out which difficulty you played. You just have to know that that transcription fits with that. Because up in the corner it says wave one of six. Right. And if the denominator six, then it was challenge mode and if it was one, it's iron mode.
Rob Collie (01:14:44): Yeah. Yeah. I mean we just noticed right there a place where you're going to go and improve this thing now. you're thinking about it. Yeah, I could do that. Yeah, why didn't I do that? Are you watching What We Do in The Shadows? The TV show and the opening episode, one of the vampires said they called Nandor the Relentless because I was so relentless.
Scott Louvau (01:15:09): Nice.
Rob Collie (01:15:09): You are Scottor the Relentless
Scott Louvau (01:15:12): At some level, it just comes down to confidence. If you think there's got to be some way that I could do this, that might be the most ruthless automation of something I've ever done, is just record a video and AI will figure out what you did.
Rob Collie (01:15:25): That's amazing. The professional sports now basically are the same thing. Just from the cameras in the arenas or hanging over the field or whatever. There's like instantaneous analysis of every single play. They've got enough angles, they can always see a number on the player's jersey. Even if you can't see the number on the jersey, there's this player that's now one foot away from this where this other known player was the foot before. Pretty sure that's the same player. And so they're able to sort of abstract it out immediately and you can see a wire frame playback of the play that just happened almost in real time.
Scott Louvau (01:16:02): Does it control the camera motion too?
Rob Collie (01:16:04): I don't know. But you'll be interested in these cameras, at least the first company to really do this is called Sport Vu, where the view is spelled vu. This has been going for a while now. It's old enough now to be sort of old hat, but at one point in time, only a handful of, like the National Basketball Association NBA teams had these things installed in their arena. And now you can't be a professional sports team and not have two, three different flavors of this going on. But they started out with things like, "Well, let's put GPS trackers in the players and sensors." And eventually someone realized we don't need any of that. We've got video from 14 different angles.
Scott Louvau (01:16:41): How does the human figure out who's who and where they are? They just look at the screen. Well, we ought to be able to do that.
Rob Collie (01:16:46): Exactly. And so they do. They'll tell you miles per hour, like peak speed and all kinds of stuff. Yeah. So you did that, you did Sport Vu for Kingdom Rush, which is awesome. Have you grabbed every single iteration of this game? There's like four, right?
Scott Louvau (01:17:02): Yeah. I've not played all of them. I've played the original one and I've played Frontiers.
Rob Collie (01:17:08): And Vengeance I think is the new one. It's hard. Can you please get on it? I need help. I'd like burn through my stockpile of the gems you acquire in the game to buying cheats to try to get me [inaudible 01:17:20]. It still doesn't work.
Scott Louvau (01:17:22): Right. Well, I can tell you that later on, I've discovered that choosing the tower that the most common enemy that's coming out in that level is weakest against. Definitely helps. And then that tower synergies were incredibly powerful where you'd use the Archer towers in Frontiers can debuff the enemies, can weaken them, and then other towers can hit them so much harder. So stacking up those synergies really made a huge difference.
Rob Collie (01:17:50): Yeah. Well, it's sort of an adversarial thing, the game design. A lot of the strategies that worked, they become harder and harder to implement as they've iterated through versions of this game. I think it's awesome that we have Kingdom Rush in common. I love games like that. You can't really find them anymore. They used to be the most common type of phone game made was the Tower Defense game. And I don't like Hybrid Tower Defense and action. I like Tower Defense. I like the the Kingdom Rush moving the one hero around in Kingdom Rush is about as much non constructing of towers that I can handle in my tower defense games, but those games won't make enough money.
Scott Louvau (01:18:27): Tower Defense and tactics are probably my favorite two genres. The [inaudible 01:18:32].
Rob Collie (01:18:32): I started playing another one, another Tower Defense game that looked really good, but it turned out it was unlike the Kingdom Rush franchise. I mean, it's just straight up a play to extract in-app purchases from you. It's like the game's not really playable.
Scott Louvau (01:18:49): Yeah. I'm really sad about the sort of pay to play and pay to win system that has evolved. I totally understand why. If you can't get people to pay for mobile games up front and you're going to get 30 times as many customers trying it out when it's free, then of course you charge them later. But I don't like the idea that these games are funded by some kid who buys $10,000 worth of stuff that his parents have to pay for that has no idea that it costs that. Or addicts who have plenty of money who are paying way too much for this game, like $60, a hundred dollars, That should be it. It should be done at that point.
Rob Collie (01:19:25): I met a guy playing Boom Beach, by the way, is the height of my addiction to this stuff. I think I spent $20 a day on Boom Beach for a while. Stupid. So not only do you get more people trying it out, but you get these super buyers.
Scott Louvau (01:19:42): Whales.
Rob Collie (01:19:43): Yeah. Yeah. Me circa 2017, I remember when World of Warcraft came out, how jaw-dropping the economics were compared to normal games. Normally you buy a game, you pay $50 for your PC game, and that's kind of the last time you ever pay the publisher. But the store gets a chunk and the distributor gets a chunk and the shipping gets a chunk and then the packaging and all that. So how much does the game publisher realize on that $50 game purchase? It was like 10 bucks maybe. Right?
Scott Louvau (01:20:09): Right.
Rob Collie (01:20:10): And then you get World of Warcraft where in the beginning they could charge you for the game. You could go buy the game for $50. So you still do the same thing you normally did and then the $10 a month subscription, but that $10 a month subscription was pure margin.
Scott Louvau (01:20:23): I mean, they do have to keep the servers running, but yes, it's not costing that.
Rob Collie (01:20:26): Yes, it's pure revenue, not margin. Whereas they didn't even get all the revenue for the $50 game. And I was just like, "Oh my God. It's no surprise that Activision came along and bought them at that point." When you can change your model from the idea of you get money when the person buys it, or you can switch it from that to you get money when they use it, lights out.
Scott Louvau (01:20:49): Right? Well, I mean the subscription model and subscriptions are everywhere now. No buying shows and movies. You pay for streaming services by the month to get them. The one subscription that I really do like is Game Pass. Having Game Pass, having access to a ton of different games. I hope that underneath that, the economics are, the more hours I spend on a given game, the more of my kind of monthly subscription goes to them. That works for me. It's a constrained cost for all of the gaming I do for a month. But ideally it would go to the companies who make the games that I'm spending my time on.
Rob Collie (01:21:22): I mean, there's something similar on Spotify or Apple Music or whatever. The artists who are listened to the most do get the most money, but even then, that's not very much apparently. The distribution point has become the place where, I mean, there's just a new master in town and it's the streaming services for music and not the record companies, but record companies are still getting paid. It feels like now the artists in the music space are being harvested twice, whereas they were only harvested once before. So they're probably getting at most half of what they used to get. There's two big corporate masters to pay now.
Scott Louvau (01:21:56): I would love to see something that was co-op for a media platform. For video games, you think, well, hopefully Steam takes a smaller cut. No, it doesn't seem like they do. Oh, hopefully GOG takes a smaller cut. No Epic Store. No. They all kind of like, "Geez, this revenue is great." So how do you structure a company so that the company doesn't care about making a profit, but it serves the goal of helping distribute these games and helping players to find them while taking the smallest cut possible. I'd love to see something like that emerge, the vanguard of game distribution platforms.
Rob Collie (01:22:33): Well, you're not going to get venture capitalist money for this exercise, Scott.
Scott Louvau (01:22:38): No. And it feels like the game companies themselves know they want it. The reason that there is a Steam is that they were trying to sell their own games, to be their own sort of publisher. And the same with the Epic Store, and same with GOG. So if they had gotten together and built this cooperative solution, then they'd have it. So will we see that with buying things from Amazon, where all these sellers decide to band together to build their own Amazon competitor or for video platforms? I mean, unfortunately for video, it seems like everybody wants to be their own little walled garden where you have to pay to get to their content because the content is not as fungible as other types of things are. You want to watch this particular show, so you got to come to my garden and pay my entry fee. But it definitely feels like these segments of our economy could potentially be disrupted and that would be a good thing.
Rob Collie (01:23:33): It would need to come from us. This isn't going to be some VC funded exercise for the very reason that like, well, how are we going to extract?
Scott Louvau (01:23:43): Right. Either the buyers or the sellers coming together and building it.
Rob Collie (01:23:46): Yeah. It's like the Linux of... It has to be a little bit commercial, but a little bit not.
Scott Louvau (01:23:52): Right. Have you heard the story of Vanguard for being an investment company?
Rob Collie (01:23:56): No. I mean, I'm familiar with the name Vanguard. I know that it is, but I had no idea that it's anything special.
Scott Louvau (01:24:02): And so basically the person who founded it went to college and studied finance and he did, I think his PhD thesis on do mutual funds do better than just buying everything. And he concluded, no, they don't. And so he set up one of the first index funds with this strategy of just buy everything. Don't try to pick winners or anything like that. But he also saw that not only the people who managed the mutual funds, but also the companies that you invested your money under that ran the funds, always had this profit motive to take as much as they could out of the transaction. And that when it's investing, it's really a zero sum game where everything that the investment company makes and the manager makes you don't.
(01:24:47): And so you're fighting with these two. So when he formed his company, he essentially made it a non-profit and he made the company owned by its own funds so that the company had no financial motive to maximize profit. And everything went back into lowering the cost of the funds. That's why those Vanguard funds had such low expenses compared to their competitors. And eventually when indexing started to become popular enough, the Fidelities and BlackRocks and Merrill Lynches of the world realized that they had to compete on price across the whole industry, you know, get to see costs coming down, which is fantastic.
Rob Collie (01:25:23): That's awesome. I did not know that story. That sounds like my kind of thing. The world becomes a bit more of just place, a little more distributed, a little flatter for the percentage of our economy that is financial services is obnoxious, it's obscene, A little bit of your economy being the financial services sector. Okay, fine. It's that efficiency thing again. All right, I can handle that. But aren't we like 20% or something? It's ungodly the percentage of our GDP that is financial services and that's out of whack.
Scott Louvau (01:25:58): I don't know what the number is. Obviously you want it to be some of it. You need to let people borrow money to buy cars and buy houses and someone has to decide if you'll be able to pay that back or not and make good judgements about that. So that's valuable. Somebody has to help financial transactions and run the credit card systems that used to buy things. That's worth something. Just like any other business, they are profit motivated and they want to take as much as they can. And so once they get enough market share, then-
Rob Collie (01:26:29): It's like a transaction cost. Right? 20% of our GDP... I have to look up the exact number, but it's on that order. That's not off by much. You can think of it as almost like a 20% tax on every transaction. It'd be like if we found out that 20% of our GDP was attorneys. It'd be the same sort of thing. Yes, you need attorneys, but something's wrong when 20% of your GDP is legal cost.
Scott Louvau (01:26:54): Yeah. Do we have to fight with each other that much? Yeah, maybe 2%. That'd be better.
Rob Collie (01:26:59): No, there's no fighting because the financial services sector is taken over a very dominant position. There's no opposition. All right, well Scott, I really appreciate you spending the time with us. We completed the set. The Louvau set. Someday we'll have your daughters on the show to talk about all the amazing things they've done, that blow my mind for now. We'll just content ourselves with the couple that is twice retired.
Scott Louvau (01:27:22): Sometimes talking to my daughters would probably be fun. They have a crazy worldview from seeing their mom and their grandma do stuff. We went to Hawaii one time to visit the grandparents and they have an electric pencil sharpener that broke. They were doing art and they got mad that this thing broke. And Dareny and her mom just opened it up and found there was this plastic gear inside that had broken and they're like, "Ah, we can fix that." And so they designed a CAD gear that was the same size and cut it in a laser engraver and put it in the pencil sharpener and fixed it. And after that, my kids just expect that there's nothing that can't be fixed. And I remember my younger daughter when she was like six, she said, "I want to make a cell phone." Like, "Oh, that's kind of hard." It's like, "How hard could it be? Come on dad."
Rob Collie (01:28:10): Yeah, it's no big deal. Just buy a kit. We need cell phone kits in the same way. You can buy a car in kit form or an airplane in kit form. Here's your kit form pixel. Not only will you buy your own surveillance, we'll make you put it together.
Scott Louvau (01:28:25): Where do you want the camera that's spying on you to be? The center of the screen or off to the left?
Rob Collie (01:28:31): Yeah, yeah. You want a bevel on your surveillance? What color? Oh, you want rose gold? Okay, fine. You can have that. One more time, relentlessoptimizer.com.
Scott Louvau (01:28:42): Yep. Yep.
Rob Collie (01:28:44): Relentlessoptimizer.com, everybody. We'll now deliver a deluge of traffic to your web server. I hope you have it well optimized. It's going to be tested.
Scott Louvau (01:28:54): Naturally. If it's not the fastest website you've ever been to, then I'll be upset.
Rob Collie (01:28:58): That's right. Yeah. How, What's the page load time on relentlessoptimizer.com.
Scott Louvau (01:29:02): I try to keep the text part of everything you get under 14k. So if you have a 2G phone, it'll load pretty fast.
Rob Collie (01:29:11): I really appreciate your time, sir. It was fun to catch up with you.
Scott Louvau (01:29:13): Thank you for having me.
Speaker 1 (01:29:15): Thanks for listening to The Raw Data by P3 Adaptive Podcast. Let the experts at P3 Adaptive help your business. Just go to p3adaptive.com. Have a day today.
Sign up to receive email updates
Enter your name and email address below and I'll send you periodic updates about the podcast.