Craig Campbell (Pastmaps) on the Google Maps of History - Episode 4

The Task at Hand · S1 E4 · 1:03:46

Craig Campbell (Pastmaps) on Building the Google Maps of History | The Task at Hand Ep. 4

What if you could slide back in time and see exactly what used to be where you're standing? That's the magic behind Pastmaps — and in this episode, Jakob Heuser sits down with Craig Campbell, the solo founder behind it. Craig started the project as a hobby tool for his metal detecting obsession, posted about it on Reddit, and watched the response make it clear this was something much bigger. From navigating 459,000+ historical maps and public domain licensing to building a client-side tiling engine that GIS experts told him was crazy, Craig shares an unfiltered look at what it really takes to build something people love — metrics reviews, AI agents, barbecues with retired USGS directors, and all.

________________________________________

0:00 – Intro & Welcome
1:00 – What is Pastmaps?
4:53 – From Embarrassment to Passion
7:13 – The Reddit Aha Moment
14:09 – Building the MVP
16:06 – Sourcing Maps at Scale
17:59 – The USGS Barbecue Story
22:07 – Tech Deep Dive: No Tiling
26:45 – LiDAR on the Client Side
36:29 – AI as Your Engineering Team
38:25 – The Dev Tooling Gap
44:22 – Learning & Building in Public
50:02 – The Facebook Metric Culture
51:11 – Public Metrics Reviews
1:02:42 – Where to Find Craig

Links & Resources:

Pastmaps: https://pastmaps.com
Craig on Threads: https://threads.net/@that.map.guy.craig

________________________________________

Taskless - Tell your AI Once. https://www.taskless.io

Transcript

[00:00:00] Intro & Welcome

[00:00:00] Jakob Heuser: Welcome everybody to The Task at Hand.

I'm Jakob Heuser, CTO, founder at Taskless. Today, I'm talking to Craig Campbell, the founder, solo builder behind Pastmaps. It's the next generation platform for historical land research. It's got like 185,000-plus high-res maps overlaid onto the modern world, and with a slider, you can just go back in time.

The journey of Pastmaps is one that is a really, really cool story, and I'm gonna let Craig talk about it a lot. It's full of data, it's full of building in public, and it's full of a lot of lessons about how things can go well, how things can go wrong, and sometimes you just need to be looking in the right place.

So Craig, welcome to The Task at Hand

[00:00:39] Craig: Hello, hello. Glad to be here

[00:00:42] Jakob Heuser: Yeah. Good to see you. I guess let's just start with the basics. If you don't mind, for people that have never heard of Pastmaps, this is the first time they're hearing the phrase Past and Maps together, they're going to know it's about maps in the past. But beyond that, if you could describe what Pastmaps is to them, I'd love to have you share it with everybody

[00:00:59] What is Pastmaps?

[00:01:00] Craig: So Pastmaps, pastmaps.com, by the way, gotta, throw it out there, first sentence. Um, the easiest way to think about it is we are like Google Maps, but with old maps. we let people see what used to be there, not what's there today. and it got started mainly because I am a metal detector nerd.

Not only do I code, not only do I build, you know, like indie startups, I also metal detect like an old man on the beach. that's just what I do in my spare time. And I started building a research platform to help me find old coins and, you know, like rings i- ideally. treasure hunt. I am an adult treasure hunter because I'm a crazy person.

And I found out that, like, look, these maps do exist out there in the world, but they are hyper fragmented. They live in these old archival rooms underneath courthouses, in counties and city libraries. there are university levels and the Library of Congress. there's a lot of maps and layers that are produced by federal governments worldwide. but you point at someone like me, I like to think I'm pretty smart, and you ask me, "Okay, well, how can you figure out, you know, what maps we have from 1901 to 1905 that might show where these fairgrounds were in Alpharetta, Georgia?" Like random town. maybe, you know, a historian knows there was a fair there. This is a wildly difficult problem, and when I first started looking at this for my own hobbies, that's like actually a real question I would ask myself on a weekend. Like, I'd love to go metal detect where these old fairgrounds were. and it's just a real problem I would do on nights and weekends. You have to do legwork.

You gotta put boots on the ground in these libraries. You gotta talk to these folks that are actually, like, trying to help you find these paper copies. You have to do online research. Some of it has been digitized, but not all of it, and even when they are digitized, a lot of the formats are different. A lot of it is locked away in, FTP folders that, you know, your common person is not gonna know how to access or search or actually even identify. it's just a very hard problem. so I started dabbling, and I started building, and what came out of it is Google Maps, but for old maps. that's pretty much it. and one quick correction. we actually don't have 185,000 maps. We have 459,000 maps, and that's actually new. Since me and you first connected two weeks ago, I have been hard at work expanding the massive corpus.

and my hope is that we'll be hitting a million here in hopefully the next two to three months. So

[00:03:33] Jakob Heuser: I, love it when the research is out of date between the initial contact and the interview. That actually makes me really happy. So by the time this goes live, you might be a lot closer to a million. Like, that's, genuinely cool

[00:03:44] Craig: that's the hope. I think it's like, you know, 95% chance I'll be over 500,000, maybe 10% chance I'll be at a million. We'll see. Depends how fast you are at publishing.

[00:03:53] Jakob Heuser: I mean, we, we, have a schedule, so I mean, it's... Let's see here. We're, currently this recording end of July. I think it's a September 1st date, so one month. I, believe in you

[00:04:02] Craig: think 500,000. We'll see.

[00:04:04] Jakob Heuser: Okay.

[00:04:04] Craig: us.

[00:04:05] Jakob Heuser: Okay

[00:04:05] Craig: have to hit my website. check it and then email me angry messages.

[00:04:09] Jakob Heuser: We're, we'll do that. We will put it in the show notes that they need to actually send you an angry email if it's not 500,000.

[00:04:15] Craig: Perfect. I love it.

[00:04:16] Jakob Heuser: It's accountability right here on the Task at Hand. So Pastmaps, like you started doing it for yourself, and there was kind of this aha moment, and I, really like this story. I had to go digging, to find sort of your conversations and where it all started, and it goes all the way back to a, to a Reddit thread if I remember correctly.

[00:04:35] Craig: Yes,

[00:04:37] Jakob Heuser: there was this sort of like oh crap moment where you were like, "This is bigger than my treasure hunting hobby."

[00:04:44] Craig: Mm-hmm. So, um, it, really got started, so I knew that what I had was pretty exciting. but to be very frank,

[00:04:53] From Embarrassment to Passion

[00:04:55] Craig: I was embarrassed by what I was working on at that time. actually very embarrassed. I'd I had friends ask me what I'm doing, and I would just be like, "Yeah, I'm just kinda taking a breather from work."

Pastmaps is technically my, third startup. My last two were venture backed, and I had, sold the one prior to Pastmaps, and I was a bit lost, frankly. it was a okay outcome, not a great outcome. Just be very hyper-transparent 'cause that, what I like to do. I don't want people to be like, "Oh, this guy's wildly successful."

No, I was not. middling success is what I like to say. but I was a bit lost and unsure what to work on, so I was kind of, like, looking for my next big market, you know? And I had my contacts in the VC world. My prior investors were kind of poking me, being like, "You know, do a thing." Like, "Jump, monkey."

not really. They're actually great people. They're good friends. But essentially that's what I felt like, and it's like, here I was just dabbling with old maps, which is not a venture backable market. It's not venture scale, right? so it was kinda feeling like a waste. It was kinda feeling like I was just kinda, burning clock cycles here, just doing something that didn't matter.

But I was passionate about it. I, loved it. I thought, you know, this was something that's connecting people today with history and is making history more accessible to me right now, and I kept on, like, having this small voice in the back of my head of, like, maybe this can help everyone get more connected to history, which is near and dear to my heart. So I ended up, just making a post. I don't even know if it's still live. If someone wants to go digging for it, it's probably four years ago or probably three years ago, actually, right now. but I made a post on, I believe it was the metal detecting subreddit And I shared, you know, some screenshots of not only what I had found in a given day, and I think it was like three gold rings, and I had found a couple of silver coins, like early 1920s, 1930s American coins.

Good day for me. Very exciting, you know. I was super pumped, and I just posted my finds, and then I also posted some screenshots of, you know, a Google Earth local setup I had where I had used a bunch of scripts to auto georeference, which means, you take old maps and you layer it on top of the modern world. So I had auto georeferenced hundreds of these maps for a given region, like my area, and I showed them how I had identified this amazing spot which used to be, like, this old swimming hole.

[00:07:13] The Reddit Aha Moment

[00:07:13] Craig: And the subreddit went crazy, and I started getting all these DMs, like people being like, "How can I get this?" Like, "How do I, how do I use this stuff?"

Like, "What website are you using?" And it's like, well, it's not. It's, literally just my stuff, and I had done the work to build my own micro library and to basically stitch together my own... I don't even wanna call it a platform, right? Because I was just sitting on top of Google Earth at the time. but the workload was the pipelines and the ingestion work and the sourcing work. so that was kind of the aha moment where suddenly, like, you know, look, in the startup world, I had always been told you wanna wait until you find that market or that idea where you show a snippet of it to your, target market, your target audience, or you talk about it to a potential customer, and you literally see them leap across the table and try to pull it out of your hands, right?

I, you know, these people are literally clamoring for it. And in the three companies I had built, or the two prior to that, this was the first time I'd actually truly felt it, but it was for a B2C company in a non-venture scale market, uh which, you know, not a slam dunk, but still something that hit a lot of high notes for me where it made me go, "Aha." Like, there is something here, and do I wanna be a crazy person and ignore everyone around me and go, "You know what? I'm gonna ignore everything that's a real market," quote-unquote, "and I'm gonna go after this market that's a passion market for me that I think could be big as long as I keep it at a very high profit margin setup and as long as I keep it small," which means probably going at it with a solo founder mentality, and that's exactly what I did, so.

[00:08:50] Jakob Heuser: And you, managed to build some defensible tech too. I mean, just I think that the storage piece, we, can throw S3 or select,

But the secret sauce that makes Path- Pastmaps magical is that you can actually pin those historical street layouts and locations to a real world map, and you can say, "This is this location in 1906. This is also the same location in 1933, and we happen to have maps from both of those." And that pinning process, I feel like is that, aha moment.

Someone literally drags that slider and goes back in time, and like I've seen the lights turn on when people see that moment and just go, "Oh my gosh, it's like a time machine

[00:09:35] Craig: Yeah, it really is. And I've actually done user research sessions, I've done video calls with customers, and time and time again, it's exactly what you're describing. That's the magic moment. And, you know, look, I'm gonna be very blunt, that is not something I've invented or created. This is actually a very standard GIS process.

Um, so, uh, it's called geo-referencing, and it's where you take, an old data asset, could be a photo, it could be a map, it could be, you know, anything that has an origin i- with a latitude and a longitude, right? And it's all about actually placing it back in its origin, in its original place. And this geo-referencing process is, you know, it's some- it's a tool we've been using since, I believe, the '60s or '70s.

nothing new. there's a lot of companies and a lot of websites and a lot of apps that also lean into geo-referencing. A lot of them are professional-grade software. So you'll get stuff like ArcGIS, which is built by a company called Esri. Esri is, a 40 billion-plus dollar, uh, market size gorilla in the room in the GIS market that no one really knows about.

It, it's actually run and founded by a husband and wife. it is bootstrapped, which is a thing that I, I discovered as I leaned into this space. but they own pretty much everything on the professional side. And then you have some open source software like QGIS. they allow you to do geo-referencing and to build your own layers, but you open it up and it looks like a souped-up Photoshop, and it's it's scary even to me as someone who comes at this with, 20-plus years of technical background. I think the, the moat, if you will, or the aha moment is that it's that capability. It's that kind of It's something that's so visceral for, a human to see. It doesn't matter if you work in the space and you've been doing this stuff for years, or if you're just, you know, like Betty in Kansas trying to do genealogy research on her grandpappy who came over on the Oregon Trail.

if she can look at that trail map and suddenly just, make it opaque and start to slide it in and see that trail turn into the highway, which is probably what happened, 'cause that's what usually happens most of the time, that's a magic moment. I mean, that's something where she doesn't need to know the words geo-reference.

She doesn't have to download an application. She doesn't need to know how it happened or how I use control points to actually map it, and I'm using fabric, simulation tech under the hood to actually stretch and form the old maps to the actual proper grid scale. That doesn't matter, and that's scary.

[00:12:05] Jakob Heuser: All that matters is that she can see the thing that matters to her and her family and where it happened in the world today. And, that, that's a magical thing. It's, it's a cool sell as well, and it's just cool tech to work on every single day. That is cool. And like there's a whole separate ... I, I have to ask, do you have a PO box where people just send you old maps? Like how do you ... You, you mentioned you wanna get to 500,000 by the time this interview is live.

[00:12:30] Craig: Yeah

[00:12:31] Jakob Heuser: that's a lot of paper

[00:12:32] Craig: Yes,

[00:12:33] Jakob Heuser: digitize. And two, I know we said we would talk about it later.

It's now later. What is that process like? 'Cause like obviously Fabric, you have to take a map, you have to stretch it, form it, make sure that it matches the real world coordinates.

[00:12:45] Craig: Mm-hmm.

[00:12:46] Jakob Heuser: But before you even start with that, you're sitting there with ... You're, you're probably not sitting there literally with a camera, but also sitting there literally with a camera digitizing these maps

[00:12:57] Craig: So let's talk about this. I actually don't talk about this very publicly at all. So I think yours is now gonna be the only place where I talk about this. no one has ever asked me about this. it's not a secret. Everything I do I try to keep public and transparent 'cause I got nothing to hide on it.

But what I realized early on is I started digitizing my own library, and I actually started with, It was the, one of the local library systems in the Bay Area. I, I lived in Oakland at the time. I believe this is the Redwood City Library, and I had actually taken some photos. I had booked some time in their archival room, and I had taken some photos of some of the local maps, and I was not aware of them being online at all.

So some of this early iteration of Pastmaps was legitimately, you know, my Google Earth service with my script and my auto georeferencing software. And then it formed into me starting to upload some of these maps that had never been digitized in the past, and that was fine, and it was interesting. But the chances that the, you know, 10 to 25 maps that I could georeference and digitize in one day with my own camera, the chances that someone's gonna need those specific maps is really few and far between.

I learned very early on as I started sharing these maps and started uploading, had

[00:14:09] Building the MVP

[00:14:11] Craig: a rickety, basically just like image hosting service is what Pastmaps originally was. Legitimately, it was like .PNGs uploaded onto a, a raw, bare R2 bucket. And I was just like, "Here, here's a directory," and like, "Here's some stuff that doesn't exist on the internet." And like that was not successful. It, it was interesting. I thought it was interesting, but like it was tedious. It wasn't really using what I thought was my skill sets and my secret sauce of what I could bring to the mix. and it wasn't solving the problem of massively blowing up and making this data available to everyone.

So instead what I said, what I did is I started actually leaning into where were these natural aggregation points for preexisting collections of these maps. People have already been digitizing these maps for literally 30 to 40 years. This is, again, nothing new, but the difference is they are hyper fragmented.

They are still buried. Sometimes they're buried in internal networks, and you have to literally email and have them send you an actual hard drive over the mail of 100,000 maps. And then you gotta do the work to digitize them from these crazy ass formats like massive 40 meg TIF formats over to something that's web-friendly and then still run the, the actual georeferencing process. But my whole point is, is I leaned away from doing the actual digitization step itself, and I leaned into sourcing those aggregation points that still had permissive licensing and copyrights that worked for my purpose. There's a whole legal arm to this that is a mess, and it's actually one of the things that figuring out that over the course of the first year, year and a half was a scary process.

'Cause even though I am building on predominantly public domain, data, there's still just a quagmire here whenever you're working with libraries, university systems, county government levels, city government level, state governments, et cetera, and I work with them all. so that's kind of my

[00:16:05] Sourcing Maps at Scale

[00:16:05] Craig: process.

It shifted into Let's identify a university that has an amazing collection. Let's get in contact with them. Let's figure out what the licensing procedure is and how much data they have, and whether they would be interested in actually having me take this data and making it more accessible. and then also doing my georeferencing process on top. And it kinda took off from there. So the first couple of waves were actually entirely built on what I deemed as, the tier one easiest maps to get available, uh, for, for like the first wave, which was actually from the United States Geological Survey. that's the USGS. This is a arm of the federal government.

it is completely taxpayer funded. Every single map that they produce is completely public domain because it is a mandate from Congress that they do this. And the story there of how I even figured this out and made that pivot of, starting with the, with the camera and figuring out how to lean into this other thing is also a weird happenstance, and it's just kind of like, again, you gotta throw yourself out there and see what comes back.

But it was me starting to talk about maps at a barbecue in Oakland, where I used to live, and there was a neighbor of mine, older woman, I had never met her before. She was probably, 78 to 82. Was kinda on the side, not really talking to anyone, and I sat down, introduced myself, and, turns out she used to be the director of the USGS in the 1980s. And she legitimately got so excited that I was, like, interested in these old maps, and she told me about the USGS archives in Palo Alto. and she was like, "We have an archival building out there with literally hundreds of thousands of maps." And she was like, "We want to actually enable taxpayers, private citizens to build solutions like this to better data availability and information on the web, but people don't care about it."

So, like,

[00:17:59] The USGS Barbecue Story

[00:17:59] Craig: that random barbecue sit-down led me to kind of, like, start to dig into maybe I need to look at these aggregation points instead. And then, you know, you fast-forward two, three years and I've now got a massive slew of partners we work with and tons that are still in progress where I'm trying to bring the maps online.

And that's where a lot of the additional collection has come from in the last couple of weeks to months, and that's why we've been growing so fast. A lot of these take time. It's from, the initial reach out I say negotiation, but it's not really negotiation. It's more like, you know, introductions and what am I, what am I trying to do?

Is it above board? Does it align with what they're trying to do? and then it's figuring out that process of how to get those maps, and sometimes there's a purely digital over the internet process. Sometimes it's more physical, literal mail- like mailing a terabyte hard drive. and that takes weeks to months.

So I'm just lucky that now a lot of this prior work is coming to fruition in the last couple of weeks, which is why we're getting waves of new maps coming online, and I'm hoping to keep that cadence up.

[00:19:02] Jakob Heuser: No, that's awesome. And then anytime you add a layer, you add a technology across all your maps, you have this really, I don't wanna, I don't wanna call it technical debt. That's the wrong word. you have this, backlog. I- recently you added a bunch of LiDAR functionality, and it got a big glow-up.

[00:19:17] Craig: Yes

[00:19:19] Jakob Heuser: to go back, that means now it's no longer going back at 180,000 maps, it's going back over 400,000 maps. And, there's so much success, and now there's also so much data that you've discovered an entirely new class of problems because of the scale

[00:19:33] Craig: Yes. So, you know, a lot of this comes back, look, tech debt, we've all been dealing with tech debt, no matter if you're in FAANG, if you're, if you're at a small startup, large startup, solo company, right? a lot of what I have figured out is I have to take a bit more time and, uh, methodical kind of like architectural steps with what I'm doing because I am only one man, and because we are built on top of just like layers and layers and layers of data from a huge wide corpus, rerunning an ingestion pipeline and trying to reprocess that base data into a different format or a different sort of, I don't know, like if I mess up the geo-referencing, I wanna completely re-project it into a different, you know, like, uh, uh- uh, setup. It's just gonna take weeks, literal weeks. I paused the job for this podcast. I was running on this machine, and Jakob knows this 'cause I had to tell him, "Wait a second, that job's been running for 11 days." It's actually bringing Northern Ireland online for the first time, and it's just doing a huge amount of, image processing and geo-referencing on the fly.

I'm using a bunch of, old school 1970s AI algorithms to do this stuff. You don't need LLMs to do this. It's actually old tech. the magic's just tying it together. So what I'm getting at is, I to take my time with these things, but try to be methodical and just stack them every single day.

So every single day I'm adding, hopefully 1% more maps or 1% more data availability, 1% more layers or, faster speed because, my, my fa- like my fatal case here is that I try to do something that causes me to go back and have to rerun all the ingestion. I would have to... Now look, even if that were to happen, I could spin up a small EC2 cluster, and if I need that compute, I could spend that money. but I try to avoid that as much as I can. there are some tricks that I use, which, which I will reveal one here, and that is, in traditional GIS, traditional Google Maps, Bing Maps, Apple Maps, what have you, name of the game is all about processing tiles. you process tiles because it is fast and efficient to serve that data down to the clients. These tiles are kind of like pyramids of image data, where as you zoom and you pan out or in, it figures out smartly what, requests to make to your static file server, and it can actually render them wildly quickly. But if you have pyramids of image data, that means you're doing a huge amount of data processing up front. of my trickery and how I'm able to move as fast as I can

[00:22:07] Tech Deep Dive: No Tiling

[00:22:08] Craig: is I avoid all of the tiling process altogether. I don't do any tiling. I don't do any sort of processing in advance for interactive, uh, map engines. we do, and this is, I think, unique, versus most other map products, we do almost all of our tiling on the client, which means if your mobile device hits pastmaps.com and you start panning and zooming, or you start using our LiDAR layers, of which we have a ton of them, we are actually tiling on the fly on your client and using WebGL and a whole bunch of web workers, which means your phone is probably gonna start to heat up just a little bit, just a tad.

[00:22:42] Jakob Heuser: A- and

[00:22:43] Craig: but

[00:22:44] Jakob Heuser: those people at home, like tiling is if you've ever zoomed in on like Google Maps or something like that, you'll see it come in as a series of squares as it like lays out, lays a, the set of tiles out, and then you zoom in on one of those tiles, and that tile is made up of the same number of tiles.

And you're saying instead of going to the server and getting all that, you're doing all of that on the person's device, on their phone as they're browsing. They zoom in, and you redraw that next zoomed-in layer on their phone. You don't go fetch it from a server

[00:23:16] Craig: Half right.

[00:23:17] Jakob Heuser: Okay

[00:23:18] Craig: still do have to fetch because the failure case there is you don't wanna have to fetch a 10, 12 meg base file, right, of the entire map. If I'm looking at one section of this map, you only really wanna fetch the data for that one section. you could do that today with HTTP range queries against S3, R2, et cetera.

so there's a lot of, even wanna call them hacks. I think it's quite elegant usage of old school traditional web protocols. and it means you can sidestep using things like MBTiles, which is what Mapbox uses and what most folks use, or even things like PMTiles, which I'm actually a massive fan of, and if Brandon does happen to watch this, he's the creator of that.

I'm a huge fanboy of what he does. and there's reasons to use his stuff. For me, I have my own reasons. but that's some of the secret sauce. We do our own, networking protocol on the client. We actually have our own plugins for MapLibre, which is the local client-side engine, and we've built a lot of our own...

I say we, it's, me. I have built a lot of these custom hooks to do this stuff on the fly where the base engine doesn't do it because for most companies it doesn't make sense. Like the, the cost of doing this and slowing down the map by an extra 30% to 50% makes no sense. Just, just tile it, just store it, and just serve it.

That, makes no sense. But it makes sense for someone trying to store millions of unique maps and who is trying to avoid reprocessing them for any unique style or drawing mechanism or warping that I'm trying to do. So even reprojections, which means if I'm off slightly and I need to change my, geo-referencing, right, I need to redraw it in a certain section, happens client side.

I deliver these payloads down to the client with adjustments, and we adjust the layout and the tiling and the network HTTP range calls on the fly, and that means I don't have to reprocess. It's a crazy person's approach to doing this, and I had actually talked about it before I built it with several GIS experts, who basically laughed at me over Zoom, when I described what I was doing and they were like, "Why?

Why would you do it this way? These are tried and true tech stacks. It's gonna be faster, it's gonna be more resilient." But I knew that if I was gonna plan for the future and I wanted to get to the point where we're at 500,000 maps, a million maps, et cetera, I could not build using the normal tech. so I built a crazy person stack.

I do not recommend anyone follow in my pathway.

[00:25:48] Jakob Heuser: But there, but there is something really cool in that because what you're handing down now isn't image data, they're drawing instructions. you're handing down JSON whereas everybody's handing down piles of PNGs, and that means if the rules change for how to adjust a map, you're now just handing updated JSON.

You're not handing, you're not ha- you're not having to, rebuild 400,000 map files

[00:26:12] Craig: With the h- the, LiDAR layer specifically, which we haven't talked about much, but, Pastmaps is starting to get to the point where we're using not just raw map image data. So the map image data, when we do these range queries, we are reading raw image data and then drawing to off-screen canvas elements in web workers, which for people who don't k- know what that means, it just means that I'm trying to squeeze as much juice from all the cores in your CPU as I can, and I'm trying to make it so it's still fast and performant on your phone or on your desktop, and I'm doing a bunch of trickery.

But it is still, at the end of the day, raw images.

[00:26:45] LiDAR on the Client Side

[00:26:47] Craig: LiDAR is a different beast. and LiDAR is a piece of tech which I don't wanna jump too far forward, but if you want me to talk about this, I can right now, 'cause this is some cool stuff I'm doing, and it is related to this. but LiDAR is an alternate type of data layer that we provide in Pastmaps, where LiDAR is basically a bunch of layers of beams that are shot down from aircraft onto the ground.

It's collected by federal governments, universities, very similar to old maps actually. And, you know, the LiDAR, the lasers bounce back, and you can do data processing on those laser beams, it's billions of them, to actually see the surface of the earth. And there's different formats of this. Some of them can actually do true surface, which means it can bounce off of trees, it could bounce off of buildings, and what you get is almost like a 3D model of what the world is, which is incredibly powerful for, archeologists or people like metal detectorists trying to find old cellar holes and old paths in the woods that are really, really overgrown. the other cool thing with LiDAR is you can strip away vegetation. You can actually strip away buildings, you can strip away trees, grass, which means if I'm looking at, you know, the rainforest looking for Mayan temples, we can use LiDAR to actually strip all that away, and archeologists have been doing this for the last decade to actually see the temples.

my thought was to bring this into Pastmaps as a core layer to add onto the old maps, and that way people can actually use both to empower discovery. so this has been, like, a recent change, and this is also powered by the same technology foundations that I brought for the old map stack. I am delivering a lot of the raw LiDAR data down to the client. Partial LiDAR data. Now, this is not raw images at this point. And then I'm doing what is traditionally done at the tiling stage or the visualization stage, where you try to... You take this raw data and you process it to make it so a human eye can look at it and go, "Ah, that's a building," or, "Ah, that's a road." And that's a really heavy data process. I mean, it could take someone a large cluster 10 to 20 days of processing time, depending on their GPUs and their CPUs and what's available. and I don't have that. I am trying to do this as fast as possible. I'm trying to keep it up to date in real time. I'm trying to suck in data sources as quickly as I can.

So again, the same choices I made for the stor- Oracle Maps are relevant for LiDAR, and that is not raw image data. This is now talking a lot of raw point data that then allows me to simulate a lot of these visualizations, again, client side. And then it pushes the challenge to me as the developer to make it so it's fast and it's seamless because, again, Betty in Kansas does not care about the tech.

She does not care about web workers or GPUs or partial range queries. That all just doesn't matter. What matters at the end of the day is that when she clicks that layer to reveal old forgotten human features on the ground, then that Oregon Trail path that when she found it on the map, she doesn't see anything using satellite aerials, looking at Google-like satellite, using anything.

Just looks, you know, grassy, looks fine. But she clicks on this magical reveal old features layer, and suddenly it lights up like a Christmas tree. That's magic. And, that's what she cares about, and that's gotta be fast. It's gotta be simple to actually enable. It's gotta be self, understandable and self kinda educatable about how to use it, which means basically just has to look like terrain. and that's tricky.

[00:30:15] Jakob Heuser: I imagine. okay, so the whole LiDAR process, because I know that it went through that overall, might as well ask this question now. A gnarly technical problem or the gnarliest technical problem so far?

[00:30:27] Craig: Gnarly, not gnarly-est. and it's because of AI being where it is today, luckily. I started Pastmaps when using AI for coding was a joke, right? And I was actually one of the largest naysayers of using AI for coding. I've been public online now for a few years. You can go way back in time on my Threads account and take a look, and you can see me being an idiot and not seeing the future.

and I've come around to it because I'm not blind. but back then, just getting a lot of these core foundations, I remember the original, overhaul of the map engine where I was trying to get some of that sort of rendering working and pushing it into WebGL on these offline or background Threads.

That was done without any AI. That was all hand-built, and I mean, these steps took me legitimately two months. verifying, getting it working, figuring out how to tune it, building the scaffolding to benchmark these things, simulating it across different mobile devices. was hard, and it was because I didn't have any AI assistance.

I think the world's changed now, which is an exciting thing. it's a great thing for any builder, for like you, for me. I... It's laughable how easy these things are. You have an idea, and you can put it into, I don't wanna say paper, but you can put it into code is the right word.

You can put it into code, and you can test it and you can verify it in literally 10 minutes, at a fraction of the cost of what I would expect it to actually cost, and that is, earth-shattering. So this LiDAR work, I would say the big unlock came from three years of me working in this space and starting to understand where the data lives, what the process is like for archeologists to actually gather it and then process it and then actually analyze it and then iterate and what types of like tuning parameters they want for it.

and I'm really just kind of like continuing to chisel away at that mountain of knowledge on, okay, well, I... If we could do this, and we could do it in this way, then this would be magical, right? But AI has accelerated it where it's not hard in terms of the execution piece. Code is cheap now. code is the easiest part of the entire thing.

It's all about figuring out what is the right solution for these problems that your core audience are actually trying to solve in the world. what intents do they have? What are they trying to do? And like if you could figure that out, then the execution piece is fast. You can validate. You can try it.

you can figure it out. So, you know, really iterating on the taken a matter of weeks, in the last couple of weeks of really just overhauling it and like bringing it to the state of the art globally, where if I had tried to do this three years ago, it would've taken six to eight months.

and it would've been the hardest problem. and frankly, I don't know if I could've been, I, if I could've done it, way back when. So

[00:33:20] Jakob Heuser: say s- your senior system engineer, staff engineer is showing through here because what I see in this conversation is-- And several conversations with AI experts over the last couple months, and one thing that always seems to stand out is two, is... Well, two things.

One, code is cheap. that's pretty universal now. AI has made the process of writing code much cheaper, and much faster. The implication of that, though, is what we build has become exponentially harder. And we're, we're gonna, we're gonna get to the metrics here in a moment 'cause I think you and I, we were nerding out on metrics just beforehand.

We were talking about PostHog and other tools. But before we get to the metrics and the product side of it, there's the engineering side of it. This question of how do all these systems work in concert? AI can solve things in a very directed way, but no frontier model is going to understand Craig's legacy map pipeline built from hand photographs into aggregate data into multi-hour jobs unless you had suddenly a magical model tuned on GIS workflows.

th- and that just doesn't exist. It might someday, but right now it doesn't.

[00:34:36] Craig: Yeah

[00:34:37] Jakob Heuser: And the Craig part. you have to bring your part to this, to the AI tools to get more than code, to actually get systems out of it

[00:34:44] Craig: Yep. actually interesting. I, like I mentioned, is my third startup I've done. The last two were more traditional venture-backed companies. and roles we raised multiple millions of dollars. We did the Silicon Valley thing, right? Which was its own challenge, its own adventure.

Super fun. I've- I have no regrets doing that. But the role that I had in those prior two companies was I was the CTO whatever that means when you have a crew of like 10 to 20 engineers, right? It's it's more like being a, an engineering manager really. but your role when you're in these early stage companies, uh, kind of as like the, the leader on the technological side, and as the founder is, you know, your job is roadmap, but it's not roadmap like a FAANG thinks about it.

It's literally trying to walk the idea maze, right? And going, a- and really you're doing like depth first search most of the time. If you're doing BFS, you're probably doing something wrong. But doing DFS through this idea maze of this market, this problem you're trying to solve, and you're trying to lead your crew of folks that trust you, which is a horrifying feeling.

and you're trying to lead them to the promised land where you are thinking, "This is the solution to try, and this is how we can do it." And then you kinda send off some of your smartest people to work on that. And then while they're working on it, you're working with these other two people and you're figuring out, well, do we need to maybe start other parallel tasks?

And do I need to hire more people, and how can I do that? What I'm starting to feel, and this is kind of weird to me, like the last time I was a CTO and I did people management was, 2022. So it has been four years now for me. I'm rusty. I don't know how to do those things anymore. but I'm starting to feel in the last six months especially, like starting in January, and it's been getting way, stronger of a feeling the last two months, is that

[00:36:29] AI as Your Engineering Team

[00:36:29] Craig: I'm starting to get that feeling of like being a CTO again, but the agents are your engineers.

And like without any direction, they will just sit there. They don't know what to work on. They don't have guidance. You can't go, you know, "Make Pastmaps successful. Make no mistakes." That doesn't work. What you're bringing you are working with an AI set, and I think when you're working at it, working with it on like a top 1% sort of like capability, is you are bringing founder energy, and they are your merry crew of engineers and designers and data analysts, 'cause they can do all this stuff. it's not just code. I think people who are only using it for code are sorely, sorely missing the mark here. you are basically gathering your team, and you are figuring out how to orchestrate and in what dependency order, your workload, which means front-loading your highest risk tasks. It means running user interviews because you're the founder, and you're the one that has to do that, and then starting to consolidate those learnings and then figuring out what that means for the feature build-outs, for your launch mechanisms, for, you know, roadmap and timeline.

if you need to be doing more, it's figuring out how to parallelize more, which is very easy to do now on a mechanical sort of sense, but very hard mentally. not many people, I think, can still be running like 10 to 20 of these agents or 10 to 20 parallel work streams at once. So figuring out the right tools to bring online for your workflow to enable that type of throughput is now the challenge of a founder. it's a cool world we're living in, and like it is wild how quick the, the space has changed. and like again, it's making me feel like a CTO again and not a solo founder. It feels weird to say I'm a solo founder now, 'cause I'm not. I do have a team. It's just, it's a team of mechanical fake people.

[00:38:20] Jakob Heuser: Yeah, a lot of interesting work being done right now, because I'm over on the dev tool space,

[00:38:25] The Dev Tooling Gap

[00:38:25] Jakob Heuser: so build tools for determinism these agents. and we're running into stuff when we talk with engineers around my problem-- My two problems are context, I simply can't hold this many concurrent problems in my head,

[00:38:37] Craig: Yep

[00:38:38] Jakob Heuser: and runtimes.

Our orchestration layer is rainbows and puppies and unicorns. it is trash fires and, and horrors. And as a result, we cannot stand up three concurrent builds at the same time on a single laptop because it wasn't

[00:38:54] Craig: Mm-hmm.

[00:38:55] Jakob Heuser: dockerized, or four years ago somebody said nobody would ever run four servers at the same time, so we hard-coded the ports everywhere and now we're living with them.

And there's this sort of... There's this problem of okay, how do you actually implement this then? And I know Dev Containers and other tools have been poking at it, but it feels very unsolved still. And the limitation for a solo founder with the army of agents is can't hold a lot in my head, and I also, because of some odd decisions, can't hold a lot on my machine because w-we don't-- these tools just didn't exist.

They still don't exist for a lot of, for a lot of use cases

[00:39:31] Craig: Yeah, I, I do think it actually gives a bit of an advantage. It swings the advantage to folks who have the experience of big tech. Again, I think this might be actually a, a minority opinion. People might disagree with me on this, but least for me, I found that I started setting up, like my dev ecosystem for my agents similar to how I saw Facebook set up its ecosystem for engineers back in like twenty eleven, twenty twelve, which is when I first started working with them.

My, my background is ex-Facebook way back in the day. Um, and you know, they also had that challenge of like, how do you actually make it so every single engineer can work in isolation, can spin up these local servers as fast as possible, which fast back then meant a fifty-second boot time. Don't even get me started.

terrible, terrible, horrible moment. Um, but you know, a lot of this is starting to lean into the same thing. It's like if you can figure out either, you know, like containerization solutions, everyone has their own local dev, DB, it's spinning up remote dev boxes is another amazing solution, but now you have cost issues.

And it's like for someone who's a solo founder, indie founder, maybe they're coming out of school, and they're wanting to do this for the first time, it's yeah, you try to do three or four of these things at once, not that big of a deal. you can do it. It's not that hard. You try to have eighty of them do something. Right now, it's not really possible for them to do unless they have that roadmap in their head, and even then, I don't think the dev tooling or scaffolding or harnesses really exist, to do that at scale. Because even if they did, I think it would break where the, uh, I guess where things come back to the user, right?

The user can't be coordinating eighty agents directly, which I think is why Anthropic is starting to go into more of a workflow-oriented approach, but I don't work there. I don't know. I see what they're trying to do to solve this. I think there's gaps on the dev tooling side as well that can solve it.

In the meantime, people like me are just kind of stitching solutions together, with like prior knowledge, which works.

[00:41:32] Jakob Heuser: again, the cognitive load I think is the one you don't really get away from. I think that's the hard part, is that even, even if you have a really big orchestration layer and you are now officially wearing a CTO hat, thinking back to my own time when I was a director at Pinterest, there was maybe four or five initiatives that got my attention,

[00:41:52] Craig: Yep

[00:41:52] Jakob Heuser: the rest you just, you let the fires burn, and you hope that it doesn't come apart on you

[00:41:58] Craig: Yeah. I'm actually pretty-- agree with all of that. Strong agree with all of that. really-- I think human minds operating at something like this, which is, highly creative activity, building a company or a product, right? It doesn't matter if you're already revenue producing, you already have product market fit, or you're pre-market mar-mar, product market fit. It's wildly hard. You're probably looking at, three or four major bets at once, so how could you possibly be, you know, s- doing another eight to ten minor bets at the same time? I think that over at Anthropic, I'm a big fan of, him sharing they do internally, and I love how he's been starting to very openly share how internally they're leaning into these loops as a concept.

where it's like we are figuring out, you know, where do these bugs tend to appear? It's coming from Slack, it's coming from Threads, it's coming from X.com, whatever. and he's like, "The agents are now responsible for that entire feedback loop." It's actually discovering the bug, creating the ticket, creating a fix, putting up the PR after doing the code review itself, and then actually trying to do the fix and closing the task.

And it's like then it doesn't even enter your head space as a human, which is scary. Wildly scary. but I think that's where going as a company, and, I'm taking a bit of my own kind of like, uh, inspiration from that. Um, even, even now with my small company, right? And it's like I'm trying to find ways to minimize the amount that I have to have in my brain, where I have my own map review agents with my own loops going, where when new maps come online, I've got geo-referencing spot check agents actually doing their own work and actually committing their own fixes on the fly. I've got customer service agents already running. they have direct access to my email. They're actually fetching information from Stripe. They're figuring out the right next steps. They're asking me for permission, which is a human in the loop sort of moment. But then they're generating draft sort of responses where I just have to press a button.

And it's like by removing these more minor day-to-day sort of activities, it gives me the head space to actually say, "These are my three to four major initiatives." But in reality, the company, the company of one, is actually doing, 30 to 40 things at once, and I think that potentially a route forward that I've ruthlessly stolen from Boris.

[00:44:20] Jakob Heuser: and you've talked about this too.

[00:44:22] Learning & Building in Public

[00:44:22] Jakob Heuser: I hang out on your Threads account, and actually specifically remember you talking about, the refund workflow. Look through Gmail, pull Stripe, put it all together,

[00:44:30] Craig: Mm-hmm.

[00:44:31] Jakob Heuser: don't send the email. Um, and I feel like that raw, unfiltered look, that and just how you came around on AI as a whole has been just absolutely fascinating to watch because you haven't been shy about sharing it, because you don't want people to be scared about making mistakes or learning in public.

Not just building in public, but learning in public. And

[00:44:57] Craig: people do this. I think people And people like to be, What's the right word? like to put themselves on, a pedestal, and write online posts, which I will not name names, and talk like they're an authority figure, and they know everything.

And usually it's the type of people that also start talking about, advice, and it's "You are a coder. What are you doing?" health advice and life advice and marriage advice and kid advice. It's are you? We're all just humans fumbling around in the dark. I don't know what the hell I'm doing day to day, just as much as you don't know what the hell you're doing.

We're all trying to make something valuable for the people around us, you know? That's all we're trying to do. And I think, I don't know. I, I am new to social networking, like, social in general. My Threads account, which I started, I guess, three years ago, so maybe not that new. But, I started it three years ago, so first time I've ever been public, and I remember, my wife literally was like, "Don't you become, one of those tools."

I'm sorry if you don't like that word, that's what she said. She was just like, "Don't become, one of those tools that tries to be a leader." That's the word. That's the word I've been missing. She's like, "If you do that, we're gonna have big problems." She's like, you know, "I don't wanna see you be this guy."

It's I'm not gonna be that guy. I try to be real, and I think, it's the same thing when I worked at larger companies or led my prior startups. look, tell the folks that I work with or I manage I'm managed by, I always have strong opinions that are loosely held. That, I think that is the critical thing.

it's like, have strong opinion, use as much brain power as you have, and don't be shy about sharing those opinions. don't say something out of the blue when you don't know nothing about it. I don't know anything about health. I can't give you any health advice. I don't know if eating fruit is the right thing to do, but I look out in our, in our industry, and now we got a bunch of, people diet advice that are also coders, and it's like, what is going on here?

this is crazy. But, know, I think that's why we should just share what we think our opinions are, and then also when we're wrong, I think it's critical that we share, look, I am actually realizing that this tech, this approach, this, point of view that someone shared with me in a DM, 'cause this has happened to me in the past where people have DM'd me and been like, "I think you're crazy wrong on this.

You should really take a second look." super helpful, and I will share it out loud with everyone when it's like, you know that thing I said, three weeks ago? I was a dumbass, and, I am super wrong. it's important to see that, 'cause that's how you get smarter. It's how you get faster. It's how you learn.

That's how you pivot quickly. it's what I would expect from the people that I would wanna work with, and it's there's no reason to hide it, and, also helps that, I'm not looking for a job elsewhere right now, right? So it's I don't care if I look like an idiot. But I wish more people did this, um, like, out loud, in the open, because again, I really do fundamentally believe we- We all don't know what the hell we're doing.

I'm sorry, Jakob. I'm sure there's a lot of stuff you do know, but, you also probably are fumbling around in the dark

[00:47:50] Jakob Heuser: Always

[00:47:50] Craig: this podcast grow, trying to make Taskless grow. I'm trying to get Pastmaps to grow. Um, like, and I don't know if I'm right. It might fall apart in, three weeks, knock on wood. but it's a ride in the meantime, and I'm gonna share the ups and downs

[00:48:05] Jakob Heuser: it's that second part I think that's actually really important, like being able to come back and say, "I was wrong. Here's what else I've learned." And I sense a lot of frustration when it comes to talking about, like the coders that have the life advice and everything else attached.

[00:48:19] Craig: No problem.

[00:48:20] Jakob Heuser: And it's ... think underneath it all is that lack of coming back to it.

It's the, "Hey, remember when I posted this? Here's what I've learned since then." And it's not ... You don't wanna be out there on the internet proselytizing. You wanna be out there teaching and sharing what you learn and sharing the journey, and I think that's a very different stance.

[00:48:44] Craig: I love

[00:48:45] Jakob Heuser: And come back to that because of the metrics piece,

[00:48:48] Craig: Yes.

[00:48:48] Jakob Heuser: I think that's one of the most amazing pieces of what you do sharing in public. You share your expectations, you share your metrics, and then you also share how your opinions and how your perspective changed because of what you learned. closing the loop in a way that I don't see others do when they build in public, and it's something that I think is really kind of the magic secret sauce that gets everybody checking outThat Map Guy Craig on, on Threads, because you're talking about, "Yeah, I did this."

And now we're all rooting for you 'cause we see the metrics and we're like, "Oh my God, look what he l- well, look what he's learned."

[00:49:32] Craig: Yep. I mean, here, this is background. This is why I do it. it is actually unfortunately, uh, uh What's the right word for this? It, doing it for me. I'm not doing it for others. my background again is big tech. I come from, you know, like, learning approach to building product and how to actually build great solutions or hopefully something close to great at Facebook, which I know is a lot of baggage nowadays, I loved my time there. and

[00:50:02] The Facebook Metric Culture

[00:50:06] Craig: while I was at Facebook, I kind of became known as the metric guy. I worked on our search engine way back in the day, and this is when we were trying to compete with, Google, when we had some thoughts and ideas internally around, maybe it is a direction for us. so I was the guy that became one of our biggest kind of proponents of experimentation metrics.

I worked on a lot of the core experimentation systems and libraries, which have now been ruthlessly copied and spun out by, you know, like PostHog, StatSig, Amplitude, et cetera. but a lot of that dates back to those early years, and I was lucky that I got to work with those guys that built a lot of the original systems, and then got to help iterate on it internally.

So I saw the sausage get made. The thing that I miss though is it's not the tooling. The tooling actually exists externally now, which is amazing, and some of those same names I, I just referenced. the thing that missed in the loop, after doing my own company, as a solo company, is the metric review process, and this is a step that we would run internally, and I was taught by other people far smarter than me.

like really senior ICs and directors who sat me down when I was a junior and was like, "Look,

[00:51:11] Public Metrics Reviews

[00:51:12] Craig: you gotta be scientific about this. You look at the numbers and go, 'Oh, green, it goes up and to the right, launch it.' You have to make a system and a process by which you can crystallize the knowledge, and you can actually make it so you can build this foundation, so you get smarter and smarter and smarter as you go."

At the time, I thought it was stupid. I'm like 22, 23. I'm just like, "This is dumb." Like I just wanna, I just wanna ship this code. Like I just wanna ship it so I can get my bonus. like that's all I care about. But as I've gotten older, I realize and I look back at that time, I think that was a lot of the secret sauce.

It was that soft process step, and it was very simple. We'd run an experiment or we'd look at... would, it didn't even have to be an experiment. It could be you had a data analyst sit down with an engineer or a PM, and you found some interesting data or a funnel process, right? found something that looks interesting.

It tells a story, and it's kind of like reading the matrix, right? It, looks like just visualizations and code on the screen, but you are internalizing what that means and applying it to your product and trying to understand, okay, well, this is Betty from Kansas landing on the site for the first time.

she's probably a little confused 'cause she's doing genealogy research. She's not quite understanding. I'm seeing her click on a lot of these nav- Links. Okay, finally she clicks on the search box. She goes in, she lands on a location page looking for Oregon Trail, but she didn't land on Oregon Trail. She landed on the Oregon State page.

Well, that's a, that's a point of confusion. I wonder how many other people are searching for points of interest versus administrative boundary places. And, like, that might be an interesting kind of hypothesis you have where it's like there's a gap in the product, and once we have something like that, you run Basically a review process, either a data review or a metrics review.

You sit down, another set of engineers, PMs, designers, anyone who's interested, you basically present and you go, "Hey, I have a hypothesis. I think that our search box is super messed up, and people are searching for things that they actually are not able to find, and it's not showing up in our metrics because they are clicking on things that are close because they're confused." once you do your hypothesis part, you show a, a data story. You pull data and you go look, you know, it turns out that we didn't have this data, so I instrumented the events and we now have a funnel. And here's that funnel, and it looks like this might be true. So next steps, I wanna propose that we actually run an experiment, and this experiment will do X, Y, and Z.

Maybe it's actually generating a new search corpus over points of interest just for the state of Oregon, right? Isolated test. And I know getting a little in the weeds, right, but it's just I think focusing on a specific example is really important because it was only in that process of talking to other human beings and, like really centering it on a core hypothesis and then breaking it out into the data story that actually supports it, and then actually saying, "Well, what are the next steps now," right? Then you run your test or maybe you just ship it or whatever, and then you do an actual final review as well, and you go, "Okay, here was the hypothesis. We thought we could fix it by doing ABC. Let's now take a look together. does this show?" The hypothesis was that we should have seen that people are now clicking at a far higher percentage on these new points of interest that we just actually pushed through, and the result is we're actually getting far more retention, like day one retention on the app, because now people are actually finding what they're looking for, right?

Or maybe subscription numbers go up what have you. You identify the numbers that prove your core hypothesis. and I, after doing things, so like that kind of... For people to have never done that, that's what it is. Very scientific process, but we fudge it. We're not creating papers, we're just talking to other human beings, and we're basically sticking our neck out on the guillotine and saying, "I think I'm being smart.

I think this will happen." building things for yourself when you don't have those people around you, I lost that. No metrics review, no data review process, no nothing. So I actually did this for myself, where I started posting on Threads and I started doing metrics reviews in the public, where I would say, "Here's my hypothesis. Here's my data. Here's the funnel." I took what I did from FAANG from my venture-backed startups, and this is stuff that I would run. I... Early on, be a participant, and then I would run these things and, these were experiments and tests that drove, hundreds of millions of dollars of revenue for these companies

And it's like, look, it's fine. I only wanna drive an extra couple hundred for me, but the same base process there. And it's now it's out in the open, and I think- hope people learn from it. That is my sincerest hope because I don't think it should be locked up in these companies. I don't think it should be that you have to go and grind for five to eight years, whatever, at a Facebook or an Apple or what have you to learn these things.

Just go online and copy me.

[00:56:00] Jakob Heuser: Yeah, and there, I mean, you, you gave a pretty good template, honestly. For someone that's looking to get started, go grab yourself a Statsig, a PostHog, Google Analytics. Grab something that tracks, anything really. And you kinda gave this template. You have a question. I think something's wrong. The solo founder, the next question that you have, just to kind of summarize there, was, do I have the data to support or discredit that hypothesis?

If not, your first step is to add that data, track the events, get all the new data into the system so that you have a complete que- picture. Then you can talk publicly about the hypothesis and what you believe the data would show that indicates it. Then you look at the data, and only then do you figure out whether or not you build something to try and fix this problem.

you might get all the way to there and be like, "Wow, actually no." It turns out that every time Betty typed in Oregon and looked for Oregon Trail, there's no indication was actually happening. All they would do is just click home, and they would just abandon search

[00:57:10] Craig: Yep. And it seems like such a minor thing, but it's not. a user who thought that I did not have what she wanted, and she landed on a page that was not what she wanted, and she abandoned. And that could be difference between, a 5 to 15% revenue lift company-wide for me, which is wild. and I just don't see people talking about data and metrics at, early, early stage, unless you're venture backed. And I think it's because those venture backed folks tend to be in Silicon Valley, and they tend to come from a couple of years working in big tech. So it's kinda just like solidified common knowledge.

Like you coming from Pinterest, right? Like same thing. You probably learned from osmosis from the people around you. It became common knowledge. But it's only when you're doing startups now that you kinda look out there at all these people vibe coding, which I've got no problems with vibe coding. You could build big companies. But people right now are just kinda throwing stuff out there, spaghetti at the wall. And if it works, it really works because they caught lightning in a bottle. Awesome. Amazing. I'm so excited for them. But if it doesn't work, people are kinda going, "Well, there's not a product there. There's nothing there," and they throw it to the side and it's like, "Yeah, it's not that big."

[00:58:24] Jakob Heuser: And it's there... It could be huge. I didn't make my first dollar with Pastmaps until we were months in, and I think we didn't cross $1,000 in monthly revenue until I was about a year and a half in. it takes time to crack that nut and to figure it out. And you need metrics

[00:58:44] Craig: different way, and you need metrics to figure it out.

If you can't measure, or really if you don't measure, you can't win. that's it. I have been saying that phrase to my team, to, my, my engineers I used to manage for literally... God, I'm old, like 12 years, 13 years. I have been saying it repeatedly and, people kinda chuckle, and then they start to figure it out.

They're like, "Actually, this is how you win," and I think it's how you win big. but

[00:59:15] Jakob Heuser: just,

[00:59:15] Craig: takes

[00:59:16] Jakob Heuser: you can't ask questions if you don't have answers. actually work with, with all the LiDAR and all the testing around revenue stuff. I think you had tested subscriptions at one point. And I, I took your whole hypothesis method over on Taskless and was like, I started with just the basics of how many people are actually using the CLI?

Okay, well, I have the CLI. I don't think people are getting through the onboarding. Wait, we haven't actually instrumented what CLI commands people are running.

[00:59:44] Craig: Mm-hmm.

[00:59:45] Jakob Heuser: my God, there's a giant hole in the data. And you, you...

[00:59:49] Craig: Yep

[00:59:49] Jakob Heuser: But you have to acknowledge that, and then you're like, "Well, I guess that's the next day, is we need to do a big instrumentation pass and make sure our privacy policy's up to date."

[00:59:59] Craig: Yeah, and there's nothing wrong with that either. I think people think it's like a dirty thing, like, oh, you realize there's a gap and, like, you've been blind to it. You should be celebrating that. It's like we've discovered something. You know? It's a potential lever. Like, let's, let's now shine a light on that dark corner of our company, and it's such a critical corner.

I mean, the onboarding with your CLI, like, oh my God.

[01:00:20] Jakob Heuser: Yeah,

like, yay, learning. Like, oh my God, we actually... How many people get through it? I don't know. We never asked

[01:00:27] Craig: And look, if anything, if you realize that something's really busted or really broken, you're still shining a light on it, and you're learning. this entire game is just a game of learning. That al- that's all it is.

Um, like, you know this, I know this. we know it from big companies, we know it from small companies. Every single day you should just be learning what your customers are trying to do, what problems they're having, why they're not able to do it, why they've, they've fired you as a actual kind of like a, a company they wanna work with.

It's like there's so many ways you can learn, and then there's so many ways you can fix it, and it's just that constant iterative loop of like, how do I learn more? How do I shine a, a more of a light here? And then how do I keep on moving fast and iterating? It's like luckily now we have this army of AI agents.

We got all these data tools in this day and age. It used to be impossible to do this stuff 15 years ago. So I think we're kind of like, we're kinda in the golden age as long as you as the founder have the baseline, uh, foundational organizational process and steps. And again, I don't think enough people talk about that.

there are ways that I think are tried and true methodologies to do this. I don't think they're the only methodology, methodologies to be very, very clear. I think you can just, throw spaghetti at a wall and look, you might land at something that makes $10 million, or you might do something that's completely independent of metrics and data, right?

Like, you know, Apple historically has actually, pushed back on doing a lot of heavy data work, and Apple is a wildly successful company. come on. they're one of the largest companies in the world, but they are designer driven and, that is a different angle as well. But I think that's a much deeper conversation and a very different orientation of like how you wanna be a founder, which also blends well with AI agents,

[01:02:13] Jakob Heuser: It's true.

[01:02:14] Craig: and using them.

So

[01:02:16] Jakob Heuser: So like your journey is very, very public. If people wanna follow along, where can they go to follow along with the Pastmaps journey? I mean, obviously go to pastmaps.com and go back in time and check out some of these amazing fricking maps. But if you wanna hear about Craig and you wanna talk nerdy about like stats and metrics and data hypotheses and all the methodologies that go into making something like this work, where do they find you?

[01:02:42] Where to Find Craig

[01:02:42] Craig: I am online in one place and one place only, and that is on my Threads account, which I know is backwards. but I'm sorry, I am lazy, and that, that is what it is. so I am @thatmapguycraig. it's technically that.map.guy.craig, 'cause the other one was not available.

[01:03:01] Jakob Heuser: we'll put it in the show notes. We'll actually put a hard link. So if you're viewing this on YouTube, you're looking at this on Spotify, just literally click the URL. It'll get you there.

[01:03:09] Craig: I am a friendly guy. I do not schedule my posts. I shoot from the hip. DM me, I'll actually answer. I just try to be a real guy. and I am absolutely interested in connecting with other founders as well, and other indie builders. so please don't hesitate. If you're doing something cool, say hi

[01:03:25] Jakob Heuser: All right, you heard it here first. Craig, definitely a real guy behind Pastmaps, building some cool stuff. this is Jakob. I'm the CTO of Taskless. This is The Task at Hand. We're gonna be back next month. We're gonna be interviewing more builders, makers, founders, creators, talking about the cool stuff that they make.

I'll see y'all next time.