<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Matt Spitz</title>
		<description>software engineering musings</description>
		<link>https://mttsptz.ai</link>
		<atom:link href="https://mttsptz.ai/feed.xml" rel="self" type="application/rss+xml" />
		
			<item>
				<title>Target Field to Wrigley Field</title>
				<description>&lt;p&gt;In July, I joined two of my cousins and two of their friends on a 500-mile ride from Target Field in Minneapolis to Wrigley Field in Chicago over the course of a week. Cousin B had just left a job after 16+ years and was doing a 2026 bike tour frenzy, so why not ride to Chicago to see the Twins play the Cubs? On a personal note, my cousins’ mother (my aunt) died of colon cancer 20 years ago, and all five of us had been impacted by cancer in a meaningful way, so we decided to make the trip a &lt;a href=&quot;https://fundraise.standuptocancer.org/fundraiser/7347097&quot; target=&quot;_blank&quot;&gt;fundraiser for cancer research&lt;/a&gt;.&lt;/p&gt;

&lt;!--more--&gt;

&lt;p&gt;This was my third bike tour in three years, and the ride to Chicago was so different from anything I’d done before. The challenge was purely miles (not elevation), we had an ongoing heat advisory and feels-like-100°+ for most of the trip, and the last day featured horrible air quality due to Canadian wildfires. And day-to-day planning and decision making is very different with a group of five versus going on my own! It was a lot of fun.&lt;/p&gt;

&lt;div class=&quot;imagebox&quot;&gt;
    &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2026-08-04-target-field-to-wrigley-field-35.png&quot; width=&quot;720&quot; height=&quot;566&quot; /&gt;
    
&lt;/div&gt;

&lt;style&gt;
    table {
        margin: 16px auto;

        font-size: 15px;
        font-family: monospace;
        outline: 2px solid #ccc;
        border: 8px solid #fff;
    }
&lt;/style&gt;

&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th style=&quot;text-align: left&quot;&gt; &lt;/th&gt;
      &lt;th style=&quot;text-align: right&quot;&gt;Distance (miles)&lt;/th&gt;
      &lt;th style=&quot;text-align: right&quot;&gt;Elevation gain (feet)&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;#day-1&quot;&gt;Day 1: Target Field → Lake City, MN&lt;/a&gt;&lt;/td&gt;
      &lt;td style=&quot;text-align: right&quot;&gt;88.1&lt;/td&gt;
      &lt;td style=&quot;text-align: right&quot;&gt;2670&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;#day-2&quot;&gt;Day 2: Lake City → La Crescent, MN&lt;/a&gt;&lt;/td&gt;
      &lt;td style=&quot;text-align: right&quot;&gt;78.6&lt;/td&gt;
      &lt;td style=&quot;text-align: right&quot;&gt;2058&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;#day-3&quot;&gt;Day 3: La Crescent → Wilton, WI&lt;/a&gt;&lt;/td&gt;
      &lt;td style=&quot;text-align: right&quot;&gt;56.4&lt;/td&gt;
      &lt;td style=&quot;text-align: right&quot;&gt;1211&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;#day-4&quot;&gt;Day 4: Wilton → Lodi, WI&lt;/a&gt;&lt;/td&gt;
      &lt;td style=&quot;text-align: right&quot;&gt;70.2&lt;/td&gt;
      &lt;td style=&quot;text-align: right&quot;&gt;2198&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;#day-5&quot;&gt;Day 5: Lodi → Jefferson, WI&lt;/a&gt;&lt;/td&gt;
      &lt;td style=&quot;text-align: right&quot;&gt;64.8&lt;/td&gt;
      &lt;td style=&quot;text-align: right&quot;&gt;1980&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;#day-6&quot;&gt;Day 6: Jefferson → Racine, WI&lt;/a&gt;&lt;/td&gt;
      &lt;td style=&quot;text-align: right&quot;&gt;76.0&lt;/td&gt;
      &lt;td style=&quot;text-align: right&quot;&gt;817&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;#day-7&quot;&gt;Day 7: Racine → Wrigley Field&lt;/a&gt;         &lt;/td&gt;
      &lt;td style=&quot;text-align: right&quot;&gt;69.7&lt;/td&gt;
      &lt;td style=&quot;text-align: right&quot;&gt;528&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;Total&lt;/td&gt;
      &lt;td style=&quot;text-align: right&quot;&gt;     503.8&lt;/td&gt;
      &lt;td style=&quot;text-align: right&quot;&gt;                        11462&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;h2 id=&quot;route&quot;&gt;Route&lt;/h2&gt;

&lt;p&gt;We stitched together the route using a combination of RideWithGPS and &lt;a href=&quot;https://www.adventurecycling.org/routes-and-maps/us-bicycle-route-system/maps-and-route-resources/&quot; target=&quot;_blank&quot;&gt;USBRS&lt;/a&gt; routes. There was a lot of overlap since most of our time in Wisconsin was spent on some classic biking trails like the Sparta-Elroy Trail (the first railroad to trail conversion in the United States!) and the Glacial Drumlin Trail.&lt;/p&gt;

&lt;p&gt;We had the first two days planned out, staying with Cousin S’s in-laws in La Crescent, MN, but the rest of it we’d decided to plan day-to-day. After that point, we had flexibility since we were riding during the week (and thus expected more lodging availability), and the Midwest’s tendency toward summer rain and thunderstorms left us with little confidence that we’d be able to make a schedule more than a day or so in advance. This turned out to be a great decision. Given the sweltering heat and some mechanical issues, we ended up cutting about ~50 miles from our original route so we could get to Wrigley on time.&lt;/p&gt;

&lt;p&gt;Another key component of our route planning was scouting out the Kwik Trips along the way. Headquartered in La Crosse, WI, Kwik Trip is like a gourmet gas station stop, and we hit at least one each day they were available. I’m a recent convert.&lt;/p&gt;

&lt;div class=&quot;imagebox&quot;&gt;
    &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2026-08-04-target-field-to-wrigley-field-34.png&quot; width=&quot;720&quot; height=&quot;566&quot; /&gt;
    
&lt;/div&gt;

&lt;p&gt;&lt;a name=&quot;day-1&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&quot;day-1-target-field--lake-city-mn&quot;&gt;Day 1: Target Field → Lake City, MN&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;88.1 miles, 2670’ elevation gain&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;After much debate and several side bets regarding when we’d &lt;em&gt;actually&lt;/em&gt; leave, we ended up departing within 30 minutes of our 8am scheduled meeting time at Target Field. I don’t think anyone expected this, but we did it!&lt;/p&gt;

&lt;div class=&quot;imagebox&quot;&gt;
    &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2026-08-04-target-field-to-wrigley-field-1.jpg&quot; width=&quot;720&quot; height=&quot;542&quot; /&gt;
    
&lt;/div&gt;

&lt;p&gt;Cousin S unveiled custom headbands that he’d made for each of us from the very-AI-generated joke logo we’d created for the trip. These turned out to be supremely useful given the miserable heat that we were soon to experience.&lt;/p&gt;

&lt;div class=&quot;imagebox&quot;&gt;
    &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2026-08-04-target-field-to-wrigley-field-2.jpg&quot; width=&quot;720&quot; height=&quot;540&quot; /&gt;
    
&lt;/div&gt;

&lt;p&gt;Our route led us through St. Paul and onto a series of trails southeast along the Mississippi. We had to route around a trail closure over what ended up being a relatively large (300’) hill, discovered that a bridge no longer existed, and then went through a different trail closure that had started earlier than advertised.&lt;/p&gt;

&lt;p&gt;By the time we rolled into Lake City, the only 12-pack of beer available at the gas station by our hotel (3.2% per Minnesota law) went down pretty quickly. Super-light beer is perhaps good for hydration, but the “uno más” we had after dinner was not.&lt;/p&gt;

&lt;div class=&quot;row d-flex flex-wrap align-items-center&quot;&gt;
    &lt;div class=&quot;col-sm-6&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2026-08-04-target-field-to-wrigley-field-4.jpg&quot; width=&quot;720&quot; height=&quot;542&quot; /&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class=&quot;col-sm-6&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2026-08-04-target-field-to-wrigley-field-3.jpg&quot; width=&quot;720&quot; height=&quot;542&quot; /&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;&lt;a name=&quot;day-2&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&quot;day-2-lake-city--la-crescent-mn&quot;&gt;Day 2: Lake City → La Crescent, MN&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;78.6 miles, 2058’ elevation gain&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The day started easily enough with a ride through town along the river, and then the flats came. Cousin S ran over a safety pin, and it did not provide very much safety to him!&lt;/p&gt;

&lt;div class=&quot;imagebox&quot;&gt;
    &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2026-08-04-target-field-to-wrigley-field-5.jpg&quot; width=&quot;720&quot; height=&quot;540&quot; /&gt;
    
&lt;/div&gt;

&lt;p&gt;The day was mostly on Highway 61 (yes, Bob Dylan’s Highway 61), though we got to sneak off on some county roads where offered the opportunity.&lt;/p&gt;

&lt;div class=&quot;row d-flex flex-wrap align-items-center&quot;&gt;
    &lt;div class=&quot;col-sm-6&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2026-08-04-target-field-to-wrigley-field-6.jpg&quot; width=&quot;720&quot; height=&quot;540&quot; /&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class=&quot;col-sm-6&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2026-08-04-target-field-to-wrigley-field-7.jpg&quot; width=&quot;720&quot; height=&quot;540&quot; /&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;I must have run over a rock or something because I had a slow air leak getting back on the highway. I topped it up every few miles, hobbling my way to lunch, where we ate on a deck overlooking the Mississippi while I wrestled with my tire. For whatever reason, my rims make changing the tire super difficult, but Cousin S showed me the way with his Tyre Glider, a superior way to remove and later reseat tires. This is the way.&lt;/p&gt;

&lt;div class=&quot;imagebox&quot;&gt;
    &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2026-08-04-target-field-to-wrigley-field-8.jpg&quot; width=&quot;540&quot; height=&quot;720&quot; /&gt;
    
&lt;/div&gt;

&lt;p&gt;Back on the road with the confidence that only a fresh tube can bring, we continued our slog down the highway until we got into the Driftless Area, a series of beautiful bluffs and cliffs.&lt;/p&gt;

&lt;p&gt;We ended the day at Cousin S’s in-laws place, and they immediately handed us a cold beer (sense a theme?). They hosted us to a fabulous dinner and a hot tub, and we had a wonderful evening.&lt;/p&gt;

&lt;div class=&quot;row d-flex flex-wrap align-items-center&quot;&gt;
    &lt;div class=&quot;col-sm-6&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2026-08-04-target-field-to-wrigley-field-9.jpg&quot; width=&quot;720&quot; height=&quot;542&quot; /&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class=&quot;col-sm-6&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2026-08-04-target-field-to-wrigley-field-10.jpg&quot; width=&quot;720&quot; height=&quot;540&quot; /&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;&lt;a name=&quot;day-3&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&quot;day-3-la-crescent--wilton-wi&quot;&gt;Day 3: La Crescent → Wilton, WI&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;56.4 miles, 1211’ elevation gain&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The next day, we took it slow in the morning, sleeping in and enjoying an amazing spread for breakfast. Thank you, K and R! This was our first heat advisory day, and fortunately, it was a relatively short ride.&lt;/p&gt;

&lt;p&gt;First, we crossed the Mississippi and officially entered Wisconsin!&lt;/p&gt;

&lt;div class=&quot;imagebox&quot;&gt;
    &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2026-08-04-target-field-to-wrigley-field-11.jpg&quot; width=&quot;720&quot; height=&quot;540&quot; /&gt;
    
&lt;/div&gt;

&lt;p&gt;Shortly after, we rode some well-packed dirt and gravel trails up to Sparta, where I helpfully yelled, “THIS. IS. SPARTA”, and hopped on the Sparta-Elroy Trail, the first rails to trails conversion in the United States. Before cars, we had a lot of local railroads, and many of those routes have since been converted to multi-use trails. This was the first!&lt;/p&gt;

&lt;div class=&quot;row d-flex flex-wrap align-items-center&quot;&gt;
    &lt;div class=&quot;col-sm-6&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2026-08-04-target-field-to-wrigley-field-12.jpg&quot; width=&quot;720&quot; height=&quot;542&quot; /&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class=&quot;col-sm-6&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2026-08-04-target-field-to-wrigley-field-15.jpg&quot; width=&quot;720&quot; height=&quot;542&quot; /&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;The Sparta-Elroy Trail featured three very cool (literally) and dark tunnels. I know better than to ride over wet, mysterious terrain in the dark, so we walked our bikes.&lt;/p&gt;

&lt;div class=&quot;row d-flex flex-wrap align-items-center&quot;&gt;
    &lt;div class=&quot;col-sm-6&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2026-08-04-target-field-to-wrigley-field-13.jpg&quot; width=&quot;720&quot; height=&quot;540&quot; /&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class=&quot;col-sm-6&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2026-08-04-target-field-to-wrigley-field-14.jpg&quot; width=&quot;720&quot; height=&quot;542&quot; /&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;At one point, we had to do some trail maintenance, clearing a tree that had fallen in the road. I still have not received my compensation for these services from the state of Wisconsin.&lt;/p&gt;

&lt;div class=&quot;imagebox&quot;&gt;
    &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2026-08-04-target-field-to-wrigley-field-16.jpg&quot; width=&quot;540&quot; height=&quot;720&quot; /&gt;
    
&lt;/div&gt;

&lt;p&gt;Lodging is sparse in this part of Wisconsin, and we ended up staying at an old schoolhouse that was converted to a multi-room Airbnb. What it lacked in shampoo it made up for in charm, as the road in front was a veritable highway for Amish buggies, and the backyard had a handful of farm animals.&lt;/p&gt;

&lt;p&gt;Friend C’s Aunt J and her kids came by and brought cold beer and dinner for us to cook together, too! They have a cabin not too far away and were excited to join us on our adventure. Thank you, Aunt J!&lt;/p&gt;

&lt;div class=&quot;imagebox&quot;&gt;
    &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2026-08-04-target-field-to-wrigley-field-17.jpg&quot; width=&quot;720&quot; height=&quot;540&quot; /&gt;
    
&lt;/div&gt;

&lt;p&gt;&lt;a name=&quot;day-4&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&quot;day-4-wilton--lodi-wi&quot;&gt;Day 4: Wilton → Lodi, WI&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;70.2 miles, 2198’ elevation gain&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Because we’d gone 10 miles further than we’d originally planned on Day 3, we discussed punching it all the way to Madison on Day 4. Our luck with mechanical issues and another heat advisory had other plans.&lt;/p&gt;

&lt;div class=&quot;imagebox&quot;&gt;
    &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2026-08-04-target-field-to-wrigley-field-18.jpg&quot; width=&quot;720&quot; height=&quot;540&quot; /&gt;
    
&lt;/div&gt;

&lt;p&gt;We wrapped up the Sparta-Elroy Trail and lunched in Reedsburg, the halfway point of our trip! Since we were in Wisconsin, I ate cheese curds at least once a day, and these were some of the best.&lt;/p&gt;

&lt;div class=&quot;row d-flex flex-wrap align-items-center&quot;&gt;
    &lt;div class=&quot;col-sm-6&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2026-08-04-target-field-to-wrigley-field-19.jpg&quot; width=&quot;720&quot; height=&quot;720&quot; /&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class=&quot;col-sm-6&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2026-08-04-target-field-to-wrigley-field-20.jpg&quot; width=&quot;720&quot; height=&quot;542&quot; /&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;Unfortunately, it was Friend C’s turn to get a flat, and the sealant in his tubeless tires wasn’t doing the trick. He and Friend G spent some time with it on the side of the road while Cousins B and S and I went to some nearby air conditioning for drinks and snacks. It ended up being quite a long day, and we decided to end our day in Lodi instead.&lt;/p&gt;

&lt;p&gt;We got to take a short ferry that had a fabulous ice cream place on one side, and given the feels-like-100º heat, we had to eat with purpose to finish our ice cream before it melted.&lt;/p&gt;

&lt;div class=&quot;imagebox&quot;&gt;
    &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2026-08-04-target-field-to-wrigley-field-21.jpg&quot; width=&quot;540&quot; height=&quot;720&quot; /&gt;
    
&lt;/div&gt;

&lt;p&gt;Lodi is a quiet lake town, and we were lucky that one of the restaurants was open when we arrived.&lt;/p&gt;

&lt;div class=&quot;imagebox&quot;&gt;
    &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2026-08-04-target-field-to-wrigley-field-22.jpg&quot; width=&quot;720&quot; height=&quot;542&quot; /&gt;
    
&lt;/div&gt;

&lt;p&gt;&lt;a name=&quot;day-5&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&quot;day-5-lodi--jefferson-wi&quot;&gt;Day 5: Lodi → Jefferson, WI&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;64.8 miles, 1980’ elevation gain&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Another day, another heat advisory. We rolled through Madison and hopped on the Glacial Drumlin Trail. At this point, the heat was getting to us, and I almost didn’t believe Friend C when he told me about “corn sweat”, the process by which corn releases water as vapor to help it stay cool. The implication of this is a sudden wave of humidity while biking next to a cornfield. Yuck.&lt;/p&gt;

&lt;div class=&quot;row d-flex flex-wrap align-items-center&quot;&gt;
    &lt;div class=&quot;col-sm-6&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2026-08-04-target-field-to-wrigley-field-23.jpg&quot; width=&quot;720&quot; height=&quot;542&quot; /&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class=&quot;col-sm-6&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2026-08-04-target-field-to-wrigley-field-24.jpg&quot; width=&quot;720&quot; height=&quot;542&quot; /&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;Fortunately, we also came across a nice lake. Cousin B enjoys talking about going swimming, and I’m glad we were able to make it happen!&lt;/p&gt;

&lt;div class=&quot;row d-flex flex-wrap align-items-center&quot;&gt;
    &lt;div class=&quot;col-sm-6&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2026-08-04-target-field-to-wrigley-field-25.jpg&quot; width=&quot;720&quot; height=&quot;720&quot; /&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class=&quot;col-sm-6&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2026-08-04-target-field-to-wrigley-field-26.jpg&quot; width=&quot;720&quot; height=&quot;540&quot; /&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;We had another decision point, whether to stop in Jefferson or continue on to the next available lodging ~20 miles down the trail and another 5 miles off it. Friend C’s bike made the decision for us, offering yet another flat for our group right before we rolled into Jefferson.&lt;/p&gt;

&lt;div class=&quot;imagebox&quot;&gt;
    &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2026-08-04-target-field-to-wrigley-field-27.jpg&quot; width=&quot;720&quot; height=&quot;540&quot; /&gt;
    
&lt;/div&gt;

&lt;p&gt;We opted for a relaxed maintenance session in air conditioning, some pool time, laundry, and exploring the offerings at the A&amp;amp;W and the gas station that shared the parking lot. Yum!&lt;/p&gt;

&lt;p&gt;&lt;a name=&quot;day-6&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&quot;day-6-jefferson--racine-wi&quot;&gt;Day 6: Jefferson → Racine, WI&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;76.0 miles, 817’ elevation gain&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Fortunately, after three consecutive days of heat advisories, we finally had some relief. Just kidding, we had another heat advisory and yet another feels-like-100º day! Blegh.&lt;/p&gt;

&lt;p&gt;Given the misery of the heat, we rerouted a bit and cut Milwaukee out of our route. The new route featured fewer trails and a long stretch of criss-crossing an exposed, busy road every other stoplight, which was decidedly unpleasant. I also had another slow-leaking flat. Blegh blegh blegh.&lt;/p&gt;

&lt;div class=&quot;row d-flex flex-wrap align-items-center&quot;&gt;
    &lt;div class=&quot;col-sm-6&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2026-08-04-target-field-to-wrigley-field-39.jpg&quot; width=&quot;542&quot; height=&quot;720&quot; /&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class=&quot;col-sm-6&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2026-08-04-target-field-to-wrigley-field-40.jpg&quot; width=&quot;542&quot; height=&quot;720&quot; /&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;We went through Friend C’s hometown, which was also where Les Paul apparently grew up. At our lunch stop, I learned about pull tabs and then won $50! It was a tiny silver lining.&lt;/p&gt;

&lt;p&gt;We decided to call it a wrap in Racine for some rest and (for me) unhurried repair time. It was cooler by Lake Michigan, but after dinner, the smoke from the Canadian wildfires started to settle in…&lt;/p&gt;

&lt;p&gt;&lt;a name=&quot;day-7&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&quot;day-7-racine--wrigley-field&quot;&gt;Day 7: Racine → Wrigley Field&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;69.7 miles, 528’ elevation gain&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;No heat advisory today, baby! Instead, we were treated with AQI higher than I’d ever seen before due to the wildfires. Apparently, biking in this for six hours was equivalent to smoking two packs of cigarettes. Yikes. Had this not been the last day of the tour, we probably wouldn’t have ridden.&lt;/p&gt;

&lt;div class=&quot;imagebox&quot;&gt;
    &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2026-08-04-target-field-to-wrigley-field-41.jpg&quot; width=&quot;502&quot; height=&quot;720&quot; /&gt;
    
&lt;/div&gt;

&lt;p&gt;In spite of the smoke, we FLEW with the cooler weather and paved trails. We made a stop where my Cousin T had gone to school, and I did a quick tour of Northwestern for L.&lt;/p&gt;

&lt;div class=&quot;row d-flex flex-wrap align-items-center&quot;&gt;
    &lt;div class=&quot;col-sm-6&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2026-08-04-target-field-to-wrigley-field-28.jpg&quot; width=&quot;720&quot; height=&quot;542&quot; /&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class=&quot;col-sm-6&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2026-08-04-target-field-to-wrigley-field-29.jpg&quot; width=&quot;720&quot; height=&quot;542&quot; /&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;We’d cut the trail version of our ending to save some miles, so we plodded our way through Chicago-area traffic the last ten or so miles. But WE MADE IT!&lt;/p&gt;

&lt;div class=&quot;imagebox&quot;&gt;
    &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2026-08-04-target-field-to-wrigley-field-30.jpg&quot; width=&quot;542&quot; height=&quot;720&quot; /&gt;
    
&lt;/div&gt;

&lt;p&gt;The smoke was thick on the lakeside path to the Loop, where we stayed. Cousin S and I did the same trail a few days later, and the comparison was wild.&lt;/p&gt;

&lt;div class=&quot;row d-flex flex-wrap align-items-center&quot;&gt;
    &lt;div class=&quot;col-sm-6&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2026-08-04-target-field-to-wrigley-field-31.jpg&quot; width=&quot;720&quot; height=&quot;542&quot; /&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class=&quot;col-sm-6&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2026-08-04-target-field-to-wrigley-field-33.jpg&quot; width=&quot;720&quot; height=&quot;542&quot; /&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;We had a lovely weekend in Chicago and of course went to the Twins-Cubs game on Friday night. Cousin B had been in contact with Audra Martin, the Twins sideline reporter, and our journey was featured for about a minute during the Twins broadcast.&lt;/p&gt;

&lt;div class=&quot;video-container&quot;&gt;
    &lt;iframe width=&quot;&quot; height=&quot;&quot; src=&quot;https://mttsptz.ai//www.youtube-nocookie.com/embed/fsiCh2jFcIQ?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;

&lt;p&gt;Target to Wrigley, complete!&lt;/p&gt;

&lt;div class=&quot;imagebox&quot;&gt;
    &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2026-08-04-target-field-to-wrigley-field-32.jpg&quot; width=&quot;720&quot; height=&quot;540&quot; /&gt;
    
&lt;/div&gt;

&lt;h2 id=&quot;reflections&quot;&gt;Reflections&lt;/h2&gt;

&lt;p&gt;This was a totally different bike tour from &lt;a href=&quot;https://mttsptz.ai/2024/10/20/crescent-city-to-san-francisco.html&quot;&gt;Crescent City to San Francisco&lt;/a&gt; and my &lt;a href=&quot;https://mttsptz.ai/2025/07/08/crosscountry-bicycle-trip.html&quot;&gt;crosscountry ride&lt;/a&gt; last year. I had never experienced terrible air quality, and while I’d ridden on some scorching days, I didn’t have day after day of miserable heat like we did on this trip. Still, heat is more predictable than rain, and one can still plan around it to make progress.&lt;/p&gt;

&lt;p&gt;Riding with a group of five was a significant difference for me. As is expected, anyone’s slowdown (e.g. needing to pee, flat tire) is everyone’s slowdown, and we preferred to stick together where possible. I felt that our biggest challenge was in making decisions as a group. Our natural inclinations for when to start, how often to stop, how long to stop, etc, were different, and it took a few days at least for me to figure this out.&lt;/p&gt;

&lt;p&gt;One helpful side effect is that this experience helped me crystallize my own default &lt;em&gt;modus operandi&lt;/em&gt;. Specifically:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;There is one goal, and that is to get to where you’re going in one piece. Nothing else matters, including hitting particular waypoint, completing a particular trail, doing the route exactly as planned, or getting as far as you thought you might that day.&lt;/li&gt;
  &lt;li&gt;Leave early to avoid the heat of the day and to maximize optionality (go further if you’re feeling it) and flexibility (deal with mishaps while the sun is still up).&lt;/li&gt;
  &lt;li&gt;Stop infrequently and for a relatively short time – more sandwiches than sit-down meals.&lt;/li&gt;
  &lt;li&gt;Get to where you’re going and THEN hang out, have a beer, etc.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Everyone’s different, and there’s not a right way to do things. I’m generally flexible, though navigating expectations (spoken or otherwise) in making day-to-day decisions was a fun new challenge for me!&lt;/p&gt;

&lt;h2 id=&quot;notes&quot;&gt;Notes&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;These are mostly for myself, but read on if you’re interested! Honestly, I can’t believe you’ve made it this far…&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Now that I’ve shipped my bike four times, I’ve gotten a lot more confident in disassembling/reassembling. The bike box I had for this trip was large enough that I only had to remove the handlebars and the front wheel, which made things a lot easier, too! Each of my disassembly/assembly steps took about 30 minutes, which is a lot faster than the first time I did it.&lt;/p&gt;

&lt;div class=&quot;row d-flex flex-wrap align-items-center&quot;&gt;
    &lt;div class=&quot;col-sm-6&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2026-08-04-target-field-to-wrigley-field-36.jpg&quot; width=&quot;720&quot; height=&quot;542&quot; /&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class=&quot;col-sm-6&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2026-08-04-target-field-to-wrigley-field-37.jpg&quot; width=&quot;720&quot; height=&quot;542&quot; /&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;Taking a bike on an airplane is always a roll of the dice, but in spite of TSA’s interest during my return flight and the brake levers popping out the side afterward, the bike seemed to come through OK.&lt;/p&gt;

&lt;div class=&quot;imagebox&quot;&gt;
    &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2026-08-04-target-field-to-wrigley-field-38.jpg&quot; width=&quot;720&quot; height=&quot;542&quot; /&gt;
    
&lt;/div&gt;

&lt;p&gt;I’ve now put 8200 miles on this fine steed, and I look forward to the next 8200!&lt;/p&gt;

&lt;h3 id=&quot;packing-list&quot;&gt;Packing list&lt;/h3&gt;

&lt;h4 id=&quot;on-the-bike&quot;&gt;On the bike&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;Safety vest (safety first!)&lt;/li&gt;
  &lt;li&gt;Helmet&lt;/li&gt;
  &lt;li&gt;Biking gloves&lt;/li&gt;
  &lt;li&gt;Shoes with cleats (SPDs)&lt;/li&gt;
  &lt;li&gt;Transition sunglasses&lt;/li&gt;
  &lt;li&gt;2 water bottles&lt;/li&gt;
  &lt;li&gt;Bike computer&lt;/li&gt;
  &lt;li&gt;Front light&lt;/li&gt;
  &lt;li&gt;Garmin Varia RTL515 radar tail light&lt;/li&gt;
  &lt;li&gt;Microfiber towel&lt;/li&gt;
  &lt;li&gt;Bandana&lt;/li&gt;
  &lt;li&gt;Lock &amp;amp; cable&lt;/li&gt;
  &lt;li&gt;2 sets of socks&lt;/li&gt;
  &lt;li&gt;2 bike bibs (Ornot)&lt;/li&gt;
  &lt;li&gt;2 short-sleeve jerseys&lt;/li&gt;
  &lt;li&gt;2 sweat bands&lt;/li&gt;
  &lt;li&gt;Lightweight rain jacket&lt;/li&gt;
  &lt;li&gt;Lightweight sweater&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Notes: With the heat advisories, I definitely didn’t need the sweater, but I certainly used the sweat bands! I didn’t need the rain jacket, either, but I’m glad I had it. I also didn’t end up using the safety vest since we were a larger group and mostly rode on trails or quiet roads. The front light ended up being surprisingly helpful in the dark tunnels on the Sparta-Elroy Trail. Since my last trip, I swapped my SPD/SL cleats for SPDs and had zero issues this time.&lt;/em&gt;&lt;/p&gt;

&lt;h4 id=&quot;off-the-bike&quot;&gt;Off the bike&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;Sunglasses&lt;/li&gt;
  &lt;li&gt;Chacos sandals&lt;/li&gt;
  &lt;li&gt;2 camping underwear&lt;/li&gt;
  &lt;li&gt;1 shorts&lt;/li&gt;
  &lt;li&gt;1 button-down shirt&lt;/li&gt;
  &lt;li&gt;1 short-sleeved shirt&lt;/li&gt;
  &lt;li&gt;Swimsuit&lt;/li&gt;
  &lt;li&gt;Goggles&lt;/li&gt;
  &lt;li&gt;Baseball hat&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;repair&quot;&gt;Repair&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;Reusable grocery bag&lt;/li&gt;
  &lt;li&gt;Garbage bags&lt;/li&gt;
  &lt;li&gt;Ziplock bags&lt;/li&gt;
  &lt;li&gt;Zipties&lt;/li&gt;
  &lt;li&gt;Small &lt;a href=&quot;https://www.youtube.com/watch?v=bsv7sv4wD3s&quot; target=&quot;_blank&quot;&gt;duct tape roll&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;3 tire levers&lt;/li&gt;
  &lt;li&gt;3 spare tubes&lt;/li&gt;
  &lt;li&gt;Patch kit&lt;/li&gt;
  &lt;li&gt;1 spare tire&lt;/li&gt;
  &lt;li&gt;Topeak rechargeable air pump&lt;/li&gt;
  &lt;li&gt;Presta/schrader valve conversion (for gas station air pumps)&lt;/li&gt;
  &lt;li&gt;Multi-tool&lt;/li&gt;
  &lt;li&gt;Small screwdriver&lt;/li&gt;
  &lt;li&gt;Chain lube&lt;/li&gt;
  &lt;li&gt;1 bike lock key&lt;/li&gt;
  &lt;li&gt;Ratchet straps in case we need to hitch a ride&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Notes: I ended up replacing two tubes, which is more than I’d expected. Changing tubes is a real pain and the &lt;a href=&quot;https://tyreglider.co.uk/&quot; target=&quot;_blank&quot;&gt;Tyre Glider&lt;/a&gt; is insanely easy to use on my otherwise stubborn rims. Huge upgrade for next time!&lt;/em&gt;&lt;/p&gt;

&lt;h4 id=&quot;tech&quot;&gt;Tech&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;Headphones&lt;/li&gt;
  &lt;li&gt;Kindle&lt;/li&gt;
  &lt;li&gt;Bluetooth keyboard&lt;/li&gt;
  &lt;li&gt;10000mAh battery pack&lt;/li&gt;
  &lt;li&gt;USB wall charger (2 USB-C, 2 USB-A)&lt;/li&gt;
  &lt;li&gt;1 microUSB cable (Kindle, tail light)&lt;/li&gt;
  &lt;li&gt;USB-C (phone, battery, bike computer)
    &lt;ul&gt;
      &lt;li&gt;1 USB-C-to-C cable&lt;/li&gt;
      &lt;li&gt;1 USB-A-to-C cable&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;1 watch charging cable&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;toiletries&quot;&gt;Toiletries&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;Medical kit&lt;/li&gt;
  &lt;li&gt;Toothbrush&lt;/li&gt;
  &lt;li&gt;Toothpaste&lt;/li&gt;
  &lt;li&gt;Floss&lt;/li&gt;
  &lt;li&gt;Deodorant&lt;/li&gt;
  &lt;li&gt;Retainer&lt;/li&gt;
  &lt;li&gt;Chapstick&lt;/li&gt;
  &lt;li&gt;Comb&lt;/li&gt;
  &lt;li&gt;Nail clippers&lt;/li&gt;
  &lt;li&gt;Nail file&lt;/li&gt;
  &lt;li&gt;Ibuprofen&lt;/li&gt;
  &lt;li&gt;Antihistamine spray (just in case)&lt;/li&gt;
  &lt;li&gt;Sunscreen&lt;/li&gt;
  &lt;li&gt;Bug spray&lt;/li&gt;
  &lt;li&gt;Chamois butt’r&lt;/li&gt;
&lt;/ul&gt;
</description>
				<pubDate>Tue, 04 Aug 2026 00:00:00 -0700</pubDate>
				<link>https://mttsptz.ai/2026/08/04/target-field-to-wrigley-field.html</link>
				<guid isPermaLink="true">https://mttsptz.ai/2026/08/04/target-field-to-wrigley-field.html</guid>
			</item>
		
			<item>
				<title>Changing a team&apos;s culture</title>
				<description>&lt;p&gt;In my advisory work, a common question I get from leaders goes something like, “how do I get my engineering team to care about [customers, shipping faster, quality]?” Their team is chasing the latest AI tool from Hacker News, polishing a low-value refactor, or holding an unstated quality bar that slips a deadline, and everyone is frustrated.&lt;/p&gt;

&lt;!--more--&gt;

&lt;p&gt;For better and for worse, a team’s culture stems from its leadership. If a team cares deeply about the wrong thing, it usually traces back to its leader. Either that leader set a priority that is no longer relevant to the business, or their personal inclinations toward cool technology, avoiding conflict, etc, have become the team’s inclinations.&lt;/p&gt;

&lt;p&gt;The good news is that a leader can shift a team’s culture by modeling the values they want the team to adopt.&lt;/p&gt;

&lt;p&gt;A leader has a finite amount of the team’s attention in all-hands, team meetings, Slack, and 1:1s. How they spend their time with the microphone signals what matters. For example, when customers are upset after a string of outages, adding a standing “quality corner” to a team meeting directs attention until reliability improves.&lt;/p&gt;

&lt;p&gt;Actions speak louder than words, and it’s not enough to try to speak things into existence, no matter how many times it’s repeated. During the “quality corner” segment, that leader should pull up the dashboard they created with reliability metrics, action item completion percentage, and other relevant quality stats, tied to business metrics like support ticket load and customer churn. The leader needs to show up to incident review meetings, dig into postmortems, and make sure follow-ups are appropriate and actioned. The act of pulling the data and doing the work shows the team that it’s important.&lt;/p&gt;

&lt;p&gt;A leader can’t get a team to care deeply about everything. But with honest reflection of their default inclinations and brutal prioritization of what matters most to the business, they can effect real cultural change.&lt;/p&gt;
</description>
				<pubDate>Sun, 19 Jul 2026 00:00:00 -0700</pubDate>
				<link>https://mttsptz.ai/2026/07/19/changing-a-teams-culture.html</link>
				<guid isPermaLink="true">https://mttsptz.ai/2026/07/19/changing-a-teams-culture.html</guid>
			</item>
		
			<item>
				<title>Reflections on building with AI</title>
				<description>&lt;p&gt;As much as I enjoy writing software, I generally won’t unless I have a particular problem to solve, even if it’s a manufactured and &lt;a href=&quot;https://mttsptz.ai/2016/06/19/turn-down-for-whatever.html&quot;&gt;silly problem to solve&lt;/a&gt;. I’ve been itching to try out this newfangled way of working with AI development tooling, and I finally found a complex problem to try it out!&lt;/p&gt;

&lt;!--more--&gt;

&lt;p&gt;I write this post to capture my experience and reflections after building and shipping some real code. This post isn’t going to include any crazy revelations about AI development workflows – the internet is a firehose of AI-pilled one-upmanship already. But if nothing else, it’ll capture a moment in time that may be laughably different in 6-12 months.&lt;/p&gt;

&lt;p&gt;My friend runs a small online school that trains laypeople on relevant religious topics to make them more effective in their jobs – think volunteers who teach Sunday School or teachers teaching at a Lutheran school for the first time. Like many schools of all sizes, he was using Canvas as a &lt;a href=&quot;https://en.wikipedia.org/wiki/Learning_management_system&quot; target=&quot;_blank&quot;&gt;Learning Management System&lt;/a&gt;, and the massive outage ransomware attack gave him an opportunity, let’s say, to reevaluate his tech stack.&lt;/p&gt;

&lt;h3 id=&quot;project-the-first-lms&quot;&gt;Project the first: LMS&lt;/h3&gt;
&lt;p&gt;My first project was to host the open-source version of Canvas in our own AWS instance. There’s a &lt;a href=&quot;https://github.com/instructure/canvas-self-hosted&quot; target=&quot;_blank&quot;&gt;repository&lt;/a&gt;, now a few years out of date, containing some simple docker-compose files to build and host the LMS. As much as I love being my own SRE, I have no interest in plodding through error logs in buildfiles, but with some copy-pasta in and out of the Claude web UI, I eventually got it working and upgraded to the latest version. Claude was scarily good at knowing what to try next. Where it really shone was in proposing some high-value monitoring for my new application and using the right incantations to set up the Cloudwatch metrics, alerts, and email subscriptions for those alerts. AWS is a very flexible service that allows one to do almost anything, but none of it comes easily. It’s been a while since I’d wrapped my head around the data model for AWS monitoring, and I certainly wasn’t comfortable with the syntax in the CLI for setting everything up. Claude crushed it, and when I had issues, we were able to debug them quickly.&lt;/p&gt;

&lt;h3 id=&quot;project-the-second-sis&quot;&gt;Project the second: SIS&lt;/h3&gt;
&lt;p&gt;My friend runs the administration of his school in spreadsheets. This includes setting up courses, and tracking contact information for instructors and students, whether the instructors had been paid, student registration and payment status, student cohorts, and grouping courses into programs. At the scale he was working with before, this was easy enough, but he got some more interest in his school, and you can see how this would get out of hand quickly. Larger schools use a &lt;a href=&quot;https://en.wikipedia.org/wiki/Student_information_system&quot; target=&quot;_blank&quot;&gt;Student Information System&lt;/a&gt; to track all this and sync it into their LMS.&lt;/p&gt;

&lt;p&gt;After some iteration with Claude, my friend had generated an 8000-line single-page HTML file that largely expressed the feature set he was looking for using localStorage as a database. In itself, it’s wildly impressive that with Claude’s help an amateur who hasn’t developed software in decades could produce a functional proof of concept. My second project was to productionize this SIS, which gave me a chance to play around with Claude Code.&lt;/p&gt;

&lt;div class=&quot;imagebox&quot;&gt;
    &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2026-07-02-reflections-on-building-with-ai-1.png&quot; width=&quot;1042&quot; height=&quot;731&quot; /&gt;
    
&lt;/div&gt;

&lt;p&gt;Breaking out the storage layer to use a server turned out to be relatively easy – the hard part was untangling the tech stack into something reasonably maintainable. Claude and I rearchitected the data layer away from an enormous blob that gets read/saved all at once, broke out the client-side JavaScript business logic into a decomposed TypeScript codebase, converted all the vanilla HTML components into React, restyled the whole thing for consistency, and then added ~500 unit and end-to-end tests to capture all the new behavior.&lt;/p&gt;

&lt;div class=&quot;imagebox&quot;&gt;
    &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2026-07-02-reflections-on-building-with-ai-2.png&quot; width=&quot;1064&quot; height=&quot;470&quot; /&gt;
    
&lt;/div&gt;

&lt;p&gt;Holy goodness gracious, Claude did a fabulous job. Similar to learning the ins and outs of the AWS CLI, I have little interest in doing migrations to known-better frameworks or hunting down visual bugs on the web. It took some coaching to get Claude to create side-by-side setups of the original HTML app and the new frontend, programmatically take screenshots of each, compare them, and make changes based on the visual diffs on its own. But once I got it going, it got about 85% of the functionality and look/feel on its own. And now that everything is typed and well-tested, I feel confident in making iterative improvements and adding new features going forward. Bravo.&lt;/p&gt;

&lt;h3 id=&quot;workflow&quot;&gt;Workflow&lt;/h3&gt;

&lt;p&gt;Claude Code is very powerful, but it still needs a lot of guidance in how to approach projects. After failed prior attempts at one-shot coding complex projects, I’ve learned to create a new git branch for a series of changes, ask Claude to generate plans for complex projects, and to use a shared task list with Claude, systematically guiding it through development, one task at a time. It was ~85% correct in building stuff, so I couldn’t just let it run on the task list, and when I tried to do a few tasks at once, Claude would sometimes go off on a crazy tangent trying to do something completely off the rails. I would have expected Claude to provide me more guidance on how best to make the most of its immense power.&lt;/p&gt;

&lt;p&gt;I found that outlining my expectations for workflow and architectural guidance in a CLAUDE.md helped, but I don’t think that Claude would have done this on its own. For example, I had to instruct it to add tests after each change or tell me why it wouldn’t add tests for that change, and I needed to tell it to run tests and commit after each incremental feature. I’m surprised that it wouldn’t have done this on its own, and it has me worried about folks building without basic software engineering discipline (more on that below).&lt;/p&gt;

&lt;p&gt;Especially for the major migrations to TypeScript and to React, Claude churned for a very long time refactoring and testing, refactoring and testing, etc. As a lowly Pro user with occasional usage credits, I found that it spent my tokens and exhausted my session limit quickly. When at my desk, this translated to a lot of sitting and waiting, nudging it along from time to time. But hooking my Claude Code session up to the mobile app was a gamechanger. I couldn’t do real development or poke-test the app, but I could easily guide it through a refactor. When my session ran out, I’d set an alarm and poke it from the mobile app once I had more tokens. Side note: I’m now very reacquainted with UTC time.&lt;/p&gt;

&lt;p&gt;It wasn’t great to feel chained to my desk when I had tokens to burn, and I wasn’t thrilled to have yet another chat app on my phone, but it’s truly incredible to be able to guide Claude on the go.&lt;/p&gt;

&lt;h3 id=&quot;execution-vs-expertise&quot;&gt;Execution vs. expertise&lt;/h3&gt;

&lt;p&gt;Through my advising work, I’ve seen many companies that leverage AI for execution to great success, but those that are using it as a substitute for expertise end up creating tons of technical (and sometimes organizational) debt and are left struggling to dig themselves out of it. Execution without expertise is just debt on autopilot, and this was my experience on these projects, too.&lt;/p&gt;

&lt;p&gt;Claude is fabulous at taking a scoped problem and executing on it quickly and with relatively high quality, and at times, it can go the extra step of proactively hardening, refactoring, or testing code. Truly unbelievable. However, I don’t think I would have gotten to a positive outcome without personally using my experience and expertise in software development to guide Claude.&lt;/p&gt;

&lt;p&gt;The way my expertise manifested was in the approach to (re)building the app and in the vocabulary to discuss issues as they arose. I tried to get Claude to propose a way to restructure and productionize the code, but it ultimately took my strong direction to refactor the data model, to pull out a server layer, to extract client-side logic into TypeScript, and then to convert the frontend to React. When getting to visual parity, it couldn’t figure it out until I instructed it to use parallel servers and screenshots. And when things went wonky, my approach to debugging and fluency in engineering ultimately enabled us to get to root causes in a way that didn’t just stack up extra technical debt.&lt;/p&gt;

&lt;h3 id=&quot;takeaways&quot;&gt;Takeaways&lt;/h3&gt;

&lt;p&gt;My primary takeaway from all of this is that we’re going to have &lt;strong&gt;SO MUCH MORE BAD SOFTWARE&lt;/strong&gt; out there. Anyone can very quickly build an app that looks and feels correct, and for the right product and quality risk, this is incredible. But productionizing these apps and maintaining them, especially with more than one person, is a much harder problem that requires product development expertise, and I don’t see apps like this replacing all SaaS apps everywhere any time soon.&lt;/p&gt;

&lt;p&gt;All that said, it’s really, really fun to build with these tools – they unlock an incredible level of execution and possibility for creativity. The future is now.&lt;/p&gt;
</description>
				<pubDate>Thu, 02 Jul 2026 00:00:00 -0700</pubDate>
				<link>https://mttsptz.ai/2026/07/02/reflections-on-building-with-ai.html</link>
				<guid isPermaLink="true">https://mttsptz.ai/2026/07/02/reflections-on-building-with-ai.html</guid>
			</item>
		
			<item>
				<title>Now with more AI</title>
				<description>&lt;p&gt;Of course, you can’t spell Matt Spitz without AI.&lt;/p&gt;

&lt;!--more--&gt;

&lt;p&gt;I did some Cloudfront, Route 53, and ACM gymnastics, and now the default domain name for this website is &lt;a href=&quot;#&quot;&gt;mttsptz.ai&lt;/a&gt;. All of the links from &lt;a href=&quot;#&quot;&gt;mattspitz.me&lt;/a&gt; that my millions of followers have bookmarked still work – they’ll just redirect here.&lt;/p&gt;

&lt;div class=&quot;imagebox&quot;&gt;
    &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2026-03-20-now-with-more-ai.jpg&quot; width=&quot;1024&quot; height=&quot;1024&quot; /&gt;
    
&lt;/div&gt;

&lt;p&gt;Welcome to the new revolution, where domain names cost $80/year for a dad joke. It’s worth every penny.&lt;/p&gt;
</description>
				<pubDate>Fri, 20 Mar 2026 00:00:00 -0700</pubDate>
				<link>https://mttsptz.ai/2026/03/20/now-with-more-ai.html</link>
				<guid isPermaLink="true">https://mttsptz.ai/2026/03/20/now-with-more-ai.html</guid>
			</item>
		
			<item>
				<title>Crosscountry bicycle trip</title>
				<description>&lt;p&gt;From April to June this year, I rode my bicycle across the United States, from Washington DC to the Oregon coast. The ride was solo and unsupported, meaning that I rode by myself and carried everything I needed on my bicycle. It was an incredible adventure and one I’ll never forget.&lt;/p&gt;

&lt;!--more--&gt;

&lt;div class=&quot;imagebox&quot;&gt;
    &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2025-07-08-crosscountry-bicycle-trip-66.jpg&quot; width=&quot;1600&quot; height=&quot;1205&quot; /&gt;
    
&lt;/div&gt;

&lt;p&gt;By the numbers:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;4026 miles&lt;/li&gt;
  &lt;li&gt;127318’ elevation gain&lt;/li&gt;
  &lt;li&gt;11539’ above sea level at Hoosier Pass in Colorado&lt;/li&gt;
  &lt;li&gt;58 days&lt;/li&gt;
  &lt;li&gt;14 states&lt;/li&gt;
  &lt;li&gt;10 times crossing a Continental Divide&lt;/li&gt;
  &lt;li&gt;8 cousins&lt;/li&gt;
  &lt;li&gt;6 flat tires&lt;/li&gt;
  &lt;li&gt;5 bags on my bike + a tent + a sleeping bag&lt;/li&gt;
  &lt;li&gt;4 tires replaced&lt;/li&gt;
  &lt;li&gt;4 cleats replaced&lt;/li&gt;
  &lt;li&gt;3 snowstorms&lt;/li&gt;
  &lt;li&gt;2 chains replaced&lt;/li&gt;
  &lt;li&gt;2 towns I stayed in named Cambridge (Ohio, Idaho)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Along the journey, I took a photo with a playing card to mark each day, and I kept a travelogue via Google Doc to share updates with family and friends every so often.&lt;/p&gt;

&lt;div class=&quot;video-container&quot;&gt;
    &lt;iframe width=&quot;&quot; height=&quot;&quot; src=&quot;https://mttsptz.ai//www.youtube-nocookie.com/embed/ACHBoHuhsY4?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;

&lt;p&gt;Why spend two months riding a bicycle across the country? I’ve loved bicycle touring since my first bike tour in 2009 from the Bay Area to Los Angeles, and I’ve always wanted to go crosscountry. I’m between jobs, the kids are resilient, and I’m in the best shape of my life. My spouse was also very supportive, for which I am grateful!&lt;/p&gt;

&lt;p&gt;Most of my preparation for the trip was the route and the packing list. I lost weight before going, but I otherwise didn’t do any particular physical training for the trip. I ride bikes regularly, but I’ve heard that most of the training one needs for a long bike tour comes in the first week on the road, and it turned out to be true!&lt;/p&gt;

&lt;p&gt;The &lt;a href=&quot;https://www.adventurecycling.org/&quot;&gt;Adventure Cycling Association&lt;/a&gt; publishes bike-friendly routes around the United States, and I’ve had success with those in the past. The routes prefer bike paths, quiet county roads, state highways, and, where possible, gradual climbs and ample services. A popular route is the TransAmerica bike trail, but since I’d heard that the dogs are particularly fierce in Kentucky and Virginia, I avoided that stretch of the country entirely. Even so, I ran into dogs – more on that later.&lt;/p&gt;

&lt;div class=&quot;imagebox&quot;&gt;
    &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2025-07-08-crosscountry-bicycle-trip-74.png&quot; width=&quot;1600&quot; height=&quot;685&quot; /&gt;
    
&lt;/div&gt;

&lt;p&gt;My &lt;a href=&quot;#route&quot;&gt;route&lt;/a&gt; started in Washington DC and followed the Chesapeake &amp;amp; Ohio Canal Trail and the Great Allegheny Passage Trail to Pittsburgh. From there, I followed the ACA’s &lt;a href=&quot;https://www.adventurecycling.org/routes-and-maps/adventure-cycling-route-network/chicago-to-new-york-city-route/&quot;&gt;Chicago to New York&lt;/a&gt; route to Indianapolis, then the ACA &lt;a href=&quot;https://www.adventurecycling.org/routes-and-maps/adventure-cycling-route-network/eastern-express-connector/&quot;&gt;Eastern Express Connector&lt;/a&gt; to the &lt;a href=&quot;https://www.adventurecycling.org/routes-and-maps/adventure-cycling-route-network/transamerica-trail/&quot;&gt;TransAmerica Trail&lt;/a&gt; in Toronto, KS. Most people who travel across the country do so in the summertime and go from west to east. I was optimizing for missing the least amount of parenting, so I went while the kids were still in school and opted to go east to west to avoid snowstorms in the Rockies as much as possible. I still hit snowstorms – more on that later, too.&lt;/p&gt;

&lt;p&gt;As for the &lt;a href=&quot;#packing-list&quot;&gt;packing list&lt;/a&gt;, I mapped out all the gear and bags I thought I might need a couple of months in advance and did some test rides to check the weight and see what might be missing or superfluous. I packed a variety of clothing for different types of weather, and a few times, I ended up wearing almost all of it at the same time. With the exception of a few items that I mailed home after the first two weeks, I thought my packing was a good balance of having the right amount of stuff for the truly wild variety of situations I’d encounter.&lt;/p&gt;

&lt;p&gt;And that was pretty much it for planning. I had rough plans to meet folks on the way but otherwise didn’t plan any stops or lodging in advance. I couldn’t predict my pace, the weather, or how my body would hold up, and having concrete plans that I’d have to hit would have introduced unnecessary stress. For estimating when I might be able to meet folks along the way, I kept a &lt;a href=&quot;https://docs.google.com/spreadsheets/d/1E5gQzqlP36ehkSMB1yJiHUqZYDAyE2mfToqd5nx9dRg/edit?gid=0#gid=0&quot;&gt;tracker&lt;/a&gt; to track my per-day distance and predictions for when I might arrive at future waypoints. Cool guys make cool spreadsheets.&lt;/p&gt;

&lt;p&gt;Neighbor L helped me disassemble my bike and put it in a box for the plane ride to DC, and off I went! P picked me up from the airport, and I stayed with A, K, and their kids. After a buffer day assembling the bike and a dinner with a lovely assortment of DC friends, I set off on the first week of the trip along the C&amp;amp;O Canal Trail and the Great Allegheny Passage.&lt;/p&gt;

&lt;div class=&quot;imagebox&quot;&gt;
    &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2025-07-08-crosscountry-bicycle-trip-1.jpg&quot; width=&quot;901&quot; height=&quot;1600&quot; /&gt;
    
&lt;/div&gt;

&lt;div class=&quot;imagebox&quot;&gt;
    &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2025-07-08-crosscountry-bicycle-trip-2.jpg&quot; width=&quot;1600&quot; height=&quot;1200&quot; /&gt;
    
&lt;/div&gt;

&lt;p&gt;This first leg was the only time I had folks riding with me until the very end – J rode the first day with me to Harper’s Ferry, and Cousins B and S joined me the three days to Pittsburgh. On the first day of the GAP, B, S, and I crossed the eastern Continental Divide!&lt;/p&gt;

&lt;div class=&quot;imagebox&quot;&gt;
    &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2025-07-08-crosscountry-bicycle-trip-6.jpg&quot; width=&quot;1600&quot; height=&quot;1200&quot; /&gt;
    
&lt;/div&gt;

&lt;div class=&quot;imagebox&quot;&gt;
    &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2025-07-08-crosscountry-bicycle-trip-5.jpg&quot; width=&quot;1200&quot; height=&quot;1600&quot; /&gt;
    
&lt;/div&gt;

&lt;p&gt;Riding the C&amp;amp;O and the GAP was my first real experience on gravel, and it’s tough. Especially with the extra weight on the bike, my speed was discounted about 20% by the gravel and by another 20% when it rained an inch my second day and the gravel turned to mud. My cleats also clogged with gravel, which mangled the cleats and made it difficult to clip in. It was frustrating, to say the least! Fortunately, my bags are waterproof and I was able to put everything inside them.&lt;/p&gt;

&lt;div class=&quot;imagebox&quot;&gt;
    &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2025-07-08-crosscountry-bicycle-trip-4.jpg&quot; width=&quot;1205&quot; height=&quot;1600&quot; /&gt;
    
&lt;/div&gt;

&lt;p&gt;The first couple of weeks of the trip served as both a physical and mental warmup for the rest of the journey. As predicted, my body got used to the rhythm of riding 5-8 hours a day with 40 lbs of stuff on the bike. I also got into the daily routine of checking the weather forecast, packing the bags, navigating, figuring out where to eat and sleep, arriving, unpacking, going to sleep, and doing it all over again! Mentally, I had to get used to the fact that I was leaving my family for a long time and give myself permission to do the trip – it was easy to feel guilty for taking a necessary rest because I felt like I wasn’t making progress to get home as soon as possible.&lt;/p&gt;

&lt;p&gt;I made a couple of conscious mindset shifts, too. On previous tours, I’ve learned that when riding for multiple days, there’s literally nothing to do all day but get to where you’re going by sundown – it’s a marathon, not a sprint. So, I made sure I left early enough and took as many breaks as I needed. A new mindset shift for this trip was being explicit about my priorities. My goal was to make it to the beach on my own power in one piece, not to follow the route I’d planned or complete every trail. I gave myself permission to get off the C&amp;amp;O Canal Trail (and later, the Katy Trail in Missouri) to avoid muddy gravel. Orienting myself around the purpose provided some clarity when I had to make some tougher planning decisions.&lt;/p&gt;

&lt;p&gt;My planning was done 12 to 48 hours in advance. Every evening, I’d look at the weather forecast and the upcoming towns on the route and plan 2-3 options for food and lodging. By each day’s lunch, I usually knew where I’d stay that night. There was a fair amount of rain, especially in April, but the wind was the real killer. A substantial headwind makes for a rough day, and a tailwind can add 20-30% extra distance for minimal extra effort. Two-star motel options are plentiful in the eastern United States, and same-day booking made the rates relatively affordable, too.&lt;/p&gt;

&lt;p&gt;Out of Pittsburgh, I rode up into the Western Appalachians into West Virginia and Ohio. This was my first taste of climbing, cows, and yards with many, many cars.&lt;/p&gt;

&lt;div class=&quot;imagebox&quot;&gt;
    &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2025-07-08-crosscountry-bicycle-trip-7.jpg&quot; width=&quot;1600&quot; height=&quot;1205&quot; /&gt;
    
&lt;/div&gt;

&lt;div class=&quot;row d-flex flex-wrap align-items-center&quot;&gt;
    &lt;div class=&quot;col-sm-6&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2025-07-08-crosscountry-bicycle-trip-8.jpg&quot; width=&quot;1600&quot; height=&quot;1205&quot; /&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class=&quot;col-sm-6&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2025-07-08-crosscountry-bicycle-trip-9.jpg&quot; width=&quot;1600&quot; height=&quot;1205&quot; /&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;I stayed with C’s family in Columbus, and she and her fiancé flew out for the weekend! The first day where I really felt warmed up was from Columbus to Dayton – I left after Easter lunch and still made it over 80 miles before sundown. On a rainy morning the next day, I took my first side quest to the incredible National Museum of the US Air Force.&lt;/p&gt;

&lt;div class=&quot;imagebox&quot;&gt;
    &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2025-07-08-crosscountry-bicycle-trip-11.jpg&quot; width=&quot;1600&quot; height=&quot;1205&quot; /&gt;
    
&lt;/div&gt;

&lt;p&gt;Leaving Ohio, the roads got flatter, and I picked up the pace – through Indiana and Illinois, I did 300 miles over three days. In the Bay Area, I’m used to riding shorter distances with a lot of elevation gain, not 100+ miles on flat roads, and certainly not with full bags on my bike. LET’S GO, BABY!&lt;/p&gt;

&lt;div class=&quot;imagebox&quot;&gt;
    &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2025-07-08-crosscountry-bicycle-trip-12.jpg&quot; width=&quot;1205&quot; height=&quot;1600&quot; /&gt;
    
&lt;/div&gt;

&lt;p&gt;Cousin R came to meet me in Indianapolis, and downtown Indy was a trip. In one 15-minute walk, I saw folks dressed up to go to a Pacers playoff game, a hollowed-out mall with only a couple of remaining storefronts, Christian conference attendees with lanyards, and a plaza with folks laying on the ground and/or yelling at one another. My route out of town followed a bike path with tents and downed trees. For all the flak San Francisco gets, it turns out that fentanyl and recovering post-COVID is a real problem for other American cities, too.&lt;/p&gt;

&lt;div class=&quot;imagebox&quot;&gt;
    &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2025-07-08-crosscountry-bicycle-trip-13.jpg&quot; width=&quot;1600&quot; height=&quot;1205&quot; /&gt;
    
&lt;/div&gt;

&lt;p&gt;Missouri presented some real challenges. My route mostly followed the Katy Trail, and the rain and muddy gravel made for some difficult riding. At one point, I departed early and left the trail to try to avoid a rainstorm. My new route took me on back roads with a few scary encounters with aggressive dogs, and I had to shelter in a Subway for a couple of hours until the thunder and lightning subsided.&lt;/p&gt;

&lt;div class=&quot;imagebox&quot;&gt;
    &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2025-07-08-crosscountry-bicycle-trip-14.jpg&quot; width=&quot;1600&quot; height=&quot;1205&quot; /&gt;
    
&lt;/div&gt;

&lt;p&gt;Despite the tough conditions, I was buoyed by visits with my parents’ cousins L, B, H, M, D, and V! In Hermann, MO, a bar was my only chance for food on a Sunday night, and although the kitchen was closed, I made new friends through karaoke.&lt;/p&gt;

&lt;div class=&quot;imagebox&quot;&gt;
    &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2025-07-08-crosscountry-bicycle-trip-15.jpg&quot; width=&quot;1600&quot; height=&quot;1205&quot; /&gt;
    
&lt;/div&gt;

&lt;p&gt;When I shared my route, several people warned me about Kansas – it’s boring, you’ll get in your own head, there’s always a headwind, etc. They were right! Kansas has about one day’s worth of scenery for a week’s worth of riding. I got cropdusted once, and the turtles kept the road interesting. Fortunately, my stay in Kansas didn’t last long – getting out of the gravel and mud meant that I could pick up my pace again, and I FLEW on the flat roads. I averaged about 100 miles a day that week.&lt;/p&gt;

&lt;div class=&quot;imagebox&quot;&gt;
    &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2025-07-08-crosscountry-bicycle-trip-17.jpg&quot; width=&quot;1600&quot; height=&quot;1205&quot; /&gt;
    
&lt;/div&gt;

&lt;div class=&quot;row d-flex flex-wrap align-items-center&quot;&gt;
    &lt;div class=&quot;col-sm-6&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2025-07-08-crosscountry-bicycle-trip-16.jpg&quot; width=&quot;1205&quot; height=&quot;1600&quot; /&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class=&quot;col-sm-6&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2025-07-08-crosscountry-bicycle-trip-20.jpg&quot; width=&quot;1205&quot; height=&quot;1600&quot; /&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;I took a particularly memorable side quest in Kansas to visit the area where my grandfather grew up on a farm. I rented a car and poked around where he would have lived and gone to church and school, none of which exists in the same way as it did when he was there. I met the man who was the pastor of the church after my grandfather’s family had left when I found an unlocked door at the church and introduced myself to his wife. She invited me over to their house for a visit that afternoon, and I realized that the pastor and I had three connections: he was the pastor at the church where my maternal grandfather had gone, he took classes from my paternal great-grandfather in seminary, and he was the brother of one of the deacons of our church when we lived in Brooklyn. Wild!&lt;/p&gt;

&lt;div class=&quot;imagebox&quot;&gt;
    &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2025-07-08-crosscountry-bicycle-trip-22.jpg&quot; width=&quot;1600&quot; height=&quot;1200&quot; /&gt;
    
&lt;/div&gt;

&lt;p&gt;Leaving Kansas marked the halfway point and a significant change in the trip. In the east, my route was mostly flat and followed the interstates, which meant that there were plenty of services and 2-star motels along the way. The west was much less predictable and required some planning creativity. I camped, carried more food for meals, and frequently did long stretches with no services in between. I got to use all the physical and logistical muscles I’d developed during the first half of the journey.&lt;/p&gt;

&lt;div class=&quot;row d-flex flex-wrap align-items-center&quot;&gt;
    &lt;div class=&quot;col-sm-6&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2025-07-08-crosscountry-bicycle-trip-24.jpg&quot; width=&quot;1600&quot; height=&quot;1205&quot; /&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class=&quot;col-sm-6&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2025-07-08-crosscountry-bicycle-trip-25.jpg&quot; width=&quot;1600&quot; height=&quot;1205&quot; /&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;In Colorado, I had dinner with my mother’s cousin R and her daughter K before setting off for the highest peak on the route – Hoosier Pass, my first crossing of the western Continental Divide. Over the course of a day and a half, I climbed from 4700’ above sea level to 11539’ at the pass. On the way, I had lunch with S and L in Alma, the highest incorporated town in North America.&lt;/p&gt;

&lt;div class=&quot;imagebox&quot;&gt;
    &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2025-07-08-crosscountry-bicycle-trip-26.jpg&quot; width=&quot;1600&quot; height=&quot;1205&quot; /&gt;
    
&lt;/div&gt;

&lt;p&gt;The beautiful views in Colorado more than made up for the challenge, though! Afterward, I did a shorter ride to Hot Sulphur Springs, which featured, you guessed it, hot sulphur springs.&lt;/p&gt;

&lt;div class=&quot;imagebox&quot;&gt;
    &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2025-07-08-crosscountry-bicycle-trip-27.jpg&quot; width=&quot;1600&quot; height=&quot;1205&quot; /&gt;
    
&lt;/div&gt;

&lt;div class=&quot;imagebox&quot;&gt;
    &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2025-07-08-crosscountry-bicycle-trip-77.jpg&quot; width=&quot;1600&quot; height=&quot;1200&quot; /&gt;
    
&lt;/div&gt;

&lt;p&gt;Wyoming presented some of the most beautiful terrain and challenging riding. I camped for the first time along the Wyoming/Colorado border and woke up covered in frost! Between Rawlins and Jeffrey City, I had the pleasure of riding against 25mph headwinds. The state highway I rode on had a wide shoulder, and every time a truck passed, I’d get caught in the slipstream, pulled forward a bit while it was next to me, and then blown backward once it passed. When a truck passed on the other side of the road, I’d get blown backward for a second and then pulled forward. It was harrowing, I yelled a lot into the wind, and no one heard me.&lt;/p&gt;

&lt;p&gt;When I arrived in Jeffrey City, I stayed in a church that opens its basement to cyclists and enjoyed eating an enormous “steak sandwich” at the only restaurant in town.&lt;/p&gt;

&lt;div class=&quot;row d-flex flex-wrap align-items-center&quot;&gt;
    &lt;div class=&quot;col-sm-6&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2025-07-08-crosscountry-bicycle-trip-29.jpg&quot; width=&quot;1600&quot; height=&quot;1205&quot; /&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class=&quot;col-sm-6&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2025-07-08-crosscountry-bicycle-trip-31.jpg&quot; width=&quot;1600&quot; height=&quot;1205&quot; /&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;imagebox&quot;&gt;
    &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2025-07-08-crosscountry-bicycle-trip-30.jpg&quot; width=&quot;1600&quot; height=&quot;1205&quot; /&gt;
    
&lt;/div&gt;

&lt;p&gt;Lander, WY was surprisingly hip. It’s home to the National Outdoor Leadership School and some killer rock climbing nearby, attracting young outdoorsy folks and some cool restaurants and breweries.&lt;/p&gt;

&lt;div class=&quot;imagebox&quot;&gt;
    &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2025-07-08-crosscountry-bicycle-trip-32.jpg&quot; width=&quot;1600&quot; height=&quot;1205&quot; /&gt;
    
&lt;/div&gt;

&lt;p&gt;I crossed the western Continental Divide for the fifth time at Togwotee Pass and encountered my first snowstorm. It had been near-freezing at various points on the trip, and I’d encountered rain, but never both at the same time. I guess that’s what I should have expected at 9000+’. The snow turned into cold rain on the way down to Grand Tetons National Park, and the park ranger at the gate convinced me to buy some bear spray. I didn’t end up using it with bears, but I wish I’d had it for the dogs in Missouri!&lt;/p&gt;

&lt;div class=&quot;imagebox&quot;&gt;
    &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2025-07-08-crosscountry-bicycle-trip-34.jpg&quot; width=&quot;1600&quot; height=&quot;1205&quot; /&gt;
    
&lt;/div&gt;

&lt;p&gt;The next day, I left the bags in my room and cruised unencumbered down to Jenny Lake. I got back in time for checkout, picked up my bags, and rode into Yellowstone.&lt;/p&gt;

&lt;div class=&quot;imagebox&quot;&gt;
    &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2025-07-08-crosscountry-bicycle-trip-35.jpg&quot; width=&quot;1205&quot; height=&quot;1600&quot; /&gt;
    
&lt;/div&gt;

&lt;div class=&quot;imagebox&quot;&gt;
    &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2025-07-08-crosscountry-bicycle-trip-36.jpg&quot; width=&quot;1600&quot; height=&quot;1205&quot; /&gt;
    
&lt;/div&gt;

&lt;p&gt;There was snow on the ground but fortunately not in the sky, and I crossed the Continental Divide three more times as I enjoyed the scenery and rolled into the Old Faithful Inn.&lt;/p&gt;

&lt;div class=&quot;row d-flex flex-wrap align-items-center&quot;&gt;
    &lt;div class=&quot;col-sm-6&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2025-07-08-crosscountry-bicycle-trip-37.jpg&quot; width=&quot;1600&quot; height=&quot;1200&quot; /&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class=&quot;col-sm-6&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2025-07-08-crosscountry-bicycle-trip-38.jpg&quot; width=&quot;1600&quot; height=&quot;1205&quot; /&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;I wandered the geyser basin early the next morning and made a new friend, P. There were many fewer people than I’d expected in the park, which was somewhat understandable given the snow and a blessing to me as a cyclist on the road in a popular national park.&lt;/p&gt;

&lt;div class=&quot;row d-flex flex-wrap align-items-center&quot;&gt;
    &lt;div class=&quot;col-sm-6&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2025-07-08-crosscountry-bicycle-trip-39.jpg&quot; width=&quot;1600&quot; height=&quot;1205&quot; /&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class=&quot;col-sm-6&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2025-07-08-crosscountry-bicycle-trip-40.jpg&quot; width=&quot;1600&quot; height=&quot;1205&quot; /&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;On the way out of Yellowstone, I got caught in my second snowstorm with a healthy helping of hail, and while I’d planned to go further that day, I called it quits in West Yellowstone. SNOW THANK YOU.&lt;/p&gt;

&lt;div class=&quot;imagebox&quot;&gt;
    &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2025-07-08-crosscountry-bicycle-trip-41.jpg&quot; width=&quot;1205&quot; height=&quot;1600&quot; /&gt;
    
&lt;/div&gt;

&lt;p&gt;Montana offered more beautiful countryside and rolling hills, though I noticed a distinct shift in Montanans’ view toward outsiders than I’d experienced previously. When introducing myself as being from California, I heard several times, “ugh, I’m sorry.” When I pressed, I realized that the sentiment was a mix of the unfair perception that San Francisco is a rotting urban center in the media and the fact that many Californians have moved to Montana and jacked up the cost of living. One couple articulated to me that they’re fine with Californians moving to Montana and integrating with the community without trying to change it with fancy coffeeshops and enormous mansions. I get it!&lt;/p&gt;

&lt;div class=&quot;imagebox&quot;&gt;
    &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2025-07-08-crosscountry-bicycle-trip-42.jpg&quot; width=&quot;1600&quot; height=&quot;1200&quot; /&gt;
    
&lt;/div&gt;

&lt;p&gt;I got caught in my third and by far the worst snowstorm in Montana, too. The route that day featured a couple of large climbs with no towns along the way, and as I crested the first hill, the sky turned black. With nowhere to go but forward, I started the second climb with snow dumping in my face.&lt;/p&gt;

&lt;div class=&quot;video-container&quot;&gt;
    &lt;iframe width=&quot;&quot; height=&quot;&quot; src=&quot;https://mttsptz.ai//www.youtube-nocookie.com/embed/ruzcj7ZKcw4?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;

&lt;p&gt;I flipped on some &lt;a href=&quot;https://www.youtube.com/watch?v=zTuD8k3JvxQ&quot;&gt;pump-up music&lt;/a&gt;, and after an hour at 5mph, I made it to the top, shivering and teeth chattering. Ten miles down the hill, I stayed at Jackson Hot Springs and took a welcome dip in a warm pool.&lt;/p&gt;

&lt;div class=&quot;imagebox&quot;&gt;
    &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2025-07-08-crosscountry-bicycle-trip-43.jpg&quot; width=&quot;1600&quot; height=&quot;1200&quot; /&gt;
    
&lt;/div&gt;

&lt;p&gt;After my ninth and final crossing of the western Continental Divide and a stop in Missoula, a cool college town, I met Cousin C at a hot springs near the Idaho border for a lovely evening with him and his pup.&lt;/p&gt;

&lt;div class=&quot;imagebox&quot;&gt;
    &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2025-07-08-crosscountry-bicycle-trip-44.jpg&quot; width=&quot;1600&quot; height=&quot;1205&quot; /&gt;
    
&lt;/div&gt;

&lt;p&gt;The climbing and scenery continued in Idaho as I rolled along. The trees and rivers were starting to remind me of the Sierra Nevadas – I was getting closer to home!&lt;/p&gt;

&lt;div class=&quot;imagebox&quot;&gt;
    &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2025-07-08-crosscountry-bicycle-trip-45.jpg&quot; width=&quot;1600&quot; height=&quot;1200&quot; /&gt;
    
&lt;/div&gt;

&lt;div class=&quot;row d-flex flex-wrap align-items-center&quot;&gt;
    &lt;div class=&quot;col-sm-6&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2025-07-08-crosscountry-bicycle-trip-47.jpg&quot; width=&quot;1600&quot; height=&quot;1205&quot; /&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class=&quot;col-sm-6&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2025-07-08-crosscountry-bicycle-trip-48.jpg&quot; width=&quot;1600&quot; height=&quot;1205&quot; /&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;As I descended back to ~4000’ above sea level, the days started getting hotter again. I crossed into Oregon along the Snake River on a 100-degree day. Yikes! The few unpleasant hot days I experienced and the heat waves that the country has experienced since made me glad to have done this trip in the spring rather than the summer. While riding in the snow is decidedly unpleasant, I’d rather be cold than warm and dehydrated, and for the most part, I didn’t have to deal with any bugs!&lt;/p&gt;

&lt;div class=&quot;row d-flex flex-wrap align-items-center&quot;&gt;
    &lt;div class=&quot;col-sm-6&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2025-07-08-crosscountry-bicycle-trip-50.jpg&quot; width=&quot;1600&quot; height=&quot;1200&quot; /&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class=&quot;col-sm-6&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2025-07-08-crosscountry-bicycle-trip-51.jpg&quot; width=&quot;1600&quot; height=&quot;1200&quot; /&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;imagebox&quot;&gt;
    &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2025-07-08-crosscountry-bicycle-trip-46.jpg&quot; width=&quot;1600&quot; height=&quot;1200&quot; /&gt;
    
&lt;/div&gt;

&lt;p&gt;During the last week in Oregon, I could sense the finish line getting closer, but I still had a lot of work to do. Oregon, as it turned out, offered the most elevation gain per mile of any state on my trip!&lt;/p&gt;

&lt;div class=&quot;imagebox&quot;&gt;
    &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2025-07-08-crosscountry-bicycle-trip-52.jpg&quot; width=&quot;1600&quot; height=&quot;1205&quot; /&gt;
    
&lt;/div&gt;

&lt;div class=&quot;row d-flex flex-wrap align-items-center&quot;&gt;
    &lt;div class=&quot;col-sm-6&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2025-07-08-crosscountry-bicycle-trip-53.jpg&quot; width=&quot;1600&quot; height=&quot;1205&quot; /&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class=&quot;col-sm-6&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2025-07-08-crosscountry-bicycle-trip-54.jpg&quot; width=&quot;1600&quot; height=&quot;1205&quot; /&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;I’d planned to meet up with D in Sisters, OR for the last few days of the ride, so I had a little extra time to explore before our planned meeting time. I poked around the John Day Fossil Beds and left my bags at another church-cycling-hostel in Mitchell to visit the Painted Hills. Great side quests!&lt;/p&gt;

&lt;div class=&quot;row d-flex flex-wrap align-items-center&quot;&gt;
    &lt;div class=&quot;col-sm-6&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2025-07-08-crosscountry-bicycle-trip-56.jpg&quot; width=&quot;1600&quot; height=&quot;1205&quot; /&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class=&quot;col-sm-6&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2025-07-08-crosscountry-bicycle-trip-57.jpg&quot; width=&quot;1600&quot; height=&quot;1205&quot; /&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;imagebox&quot;&gt;
    &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2025-07-08-crosscountry-bicycle-trip-58.jpg&quot; width=&quot;1600&quot; height=&quot;1200&quot; /&gt;
    
&lt;/div&gt;

&lt;p&gt;Sisters, just north of Bend, is so named for three beautiful volcanoes in the Cascade Range that loomed in the background as I approached.&lt;/p&gt;

&lt;div class=&quot;imagebox&quot;&gt;
    &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2025-07-08-crosscountry-bicycle-trip-61.jpg&quot; width=&quot;1600&quot; height=&quot;1200&quot; /&gt;
    
&lt;/div&gt;

&lt;div class=&quot;imagebox&quot;&gt;
    &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2025-07-08-crosscountry-bicycle-trip-60.jpg&quot; width=&quot;1600&quot; height=&quot;1205&quot; /&gt;
    &lt;div class=&quot;caption&quot;&gt;AMERICA!&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;There, I joined up with D and his family to ride the last few days down to the Oregon coast. As we approached sea level, the riding got easier until we arrived in Florence.&lt;/p&gt;

&lt;div class=&quot;row d-flex flex-wrap align-items-center&quot;&gt;
    &lt;div class=&quot;col-sm-6&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2025-07-08-crosscountry-bicycle-trip-62.jpg&quot; width=&quot;1600&quot; height=&quot;1205&quot; /&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class=&quot;col-sm-6&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2025-07-08-crosscountry-bicycle-trip-63.jpg&quot; width=&quot;1600&quot; height=&quot;1200&quot; /&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;imagebox&quot;&gt;
    &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2025-07-08-crosscountry-bicycle-trip-64.jpg&quot; width=&quot;1600&quot; height=&quot;1200&quot; /&gt;
    
&lt;/div&gt;

&lt;p&gt;The last five miles to the beach were along Highway 1 with brutal headwinds and sand, and as I dragged my bike out to the beach, the bags acted like a sail and blew the bike around. Nothing is easy, kids. But hey, I made it!&lt;/p&gt;

&lt;div class=&quot;imagebox&quot;&gt;
    &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2025-07-08-crosscountry-bicycle-trip-65.jpg&quot; width=&quot;1600&quot; height=&quot;1200&quot; /&gt;
    
&lt;/div&gt;

&lt;p&gt;I rode with D’s family in their car up to Portland, where we all stayed with Z and L. I took a buffer day to sort out my stuff and pack my bike. The next morning, I flew back home and found two welcome-home banners!&lt;/p&gt;

&lt;div class=&quot;imagebox&quot;&gt;
    &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2025-07-08-crosscountry-bicycle-trip-68.jpg&quot; width=&quot;1600&quot; height=&quot;1205&quot; /&gt;
    
&lt;/div&gt;

&lt;h3 id=&quot;gear&quot;&gt;Gear&lt;/h3&gt;

&lt;p&gt;I used the tech I brought on this trip every day, and it proved invaluable to a safe and well-routed journey.&lt;/p&gt;

&lt;p&gt;My bike computer is a Wahoo Bolt v2, and I used it for routing and tracking my ride day-to-day. Each morning, I’d load up the day’s route and follow the directions on the map – some folks do this with their phone but I prefer fewer distractions on the road. Each evening, I would sync my ride to Strava and get statistics like distance, elevation gain, etc. On the second day of the trip, probably in the rain on the C&amp;amp;O Trail, the thermistor and barometer stopped working, so my temperature and elevation estimates were off while I was riding, but the latter was easy enough to fix in Strava after uploading them.&lt;/p&gt;

&lt;div class=&quot;imagebox&quot;&gt;
    &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2025-07-08-crosscountry-bicycle-trip-70.jpg&quot; width=&quot;1600&quot; height=&quot;1205&quot; /&gt;
    
&lt;/div&gt;

&lt;p&gt;I used a Garmin RTL515 tail light, and it was a game changer. It’s a tail light with a radar built into it, and every time a car would approach from behind, I got an alert and a chirp on my bike computer. When a car was approaching above a certain speed, the chirp was much louder. The scariest thing about riding on highways is when a car passes quickly without giving extra space to a cyclist in the shoulder (getting “buzzed”). With the radar, I had a warning that a car was coming so I could check my rear view mirror, assess whether they would give me extra space, and move further into the shoulder if necessary. Worst case, I wouldn’t be surprised if a car did buzz me. The radar also gave me the relative position of cars coming up behind me, so I knew without looking back whether it might be safe to change lanes – of course, if the radar were clear, I’d still check over my shoulder!&lt;/p&gt;

&lt;div class=&quot;row d-flex flex-wrap align-items-center&quot;&gt;
    &lt;div class=&quot;col-sm-6&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2025-07-08-crosscountry-bicycle-trip-71.jpg&quot; width=&quot;1600&quot; height=&quot;1205&quot; /&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class=&quot;col-sm-6&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2025-07-08-crosscountry-bicycle-trip-72.jpg&quot; width=&quot;1600&quot; height=&quot;1205&quot; /&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;My kids packed me companions for the road. I had a tiny model Ewok named Cherry Nose ziptied to my handlebar like a prow maiden and a bracelet that I wore throughout the trip. These are well-traveled keepsakes, and I’m glad they survived the journey!&lt;/p&gt;

&lt;div class=&quot;row d-flex flex-wrap align-items-center&quot;&gt;
    &lt;div class=&quot;col-sm-6&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2025-07-08-crosscountry-bicycle-trip-75.jpg&quot; width=&quot;1600&quot; height=&quot;1205&quot; /&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class=&quot;col-sm-6&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2025-07-08-crosscountry-bicycle-trip-76.jpg&quot; width=&quot;1205&quot; height=&quot;1205&quot; /&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;I did some souvenir shopping to mail home to my family, and for myself, I collected at least one sticker from each state. When I finished, both of my bags were covered, one with stickers from the east and one with stickers from the west.&lt;/p&gt;

&lt;div class=&quot;imagebox&quot;&gt;
    &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2025-07-08-crosscountry-bicycle-trip-73.jpg&quot; width=&quot;1600&quot; height=&quot;1205&quot; /&gt;
    
&lt;/div&gt;

&lt;h3 id=&quot;mechanical-adventures&quot;&gt;Mechanical adventures&lt;/h3&gt;

&lt;p&gt;For the most part, my bike held up well, though I wish that I’d switched to tubeless tires or at least put on more durable tires before I started. I underestimated how quickly tires wear under load, varied road conditions, and lots of climbing. I didn’t have confidence in my tires for much of the trip, and it didn’t feel great. About a third of the way through, I switched from 37mm tires to 40mm tires, and that felt better. Fortunately, I got a lot of practice fixing flats in a variety of weather and road conditions, and I was never close to running out of tubes.&lt;/p&gt;

&lt;div class=&quot;row d-flex flex-wrap align-items-center&quot;&gt;
    &lt;div class=&quot;col-sm-6&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2025-07-08-crosscountry-bicycle-trip-33.jpg&quot; width=&quot;1600&quot; height=&quot;1205&quot; /&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class=&quot;col-sm-6&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2025-07-08-crosscountry-bicycle-trip-10.jpg&quot; width=&quot;1600&quot; height=&quot;1205&quot; /&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;I had zero issues with the drivetrain on the road. At each bike shop I passed, I asked them to check the chain and ended up getting it replaced twice.&lt;/p&gt;

&lt;p&gt;I also should have switched my cleat system before I left. SPD-SL cleats have their advantages, but they’re not meant for as much walking around, especially in dirt and gravel. They got mangled quickly and when they got muddy, it became difficult to clip in.&lt;/p&gt;

&lt;h3 id=&quot;listening&quot;&gt;Listening&lt;/h3&gt;

&lt;p&gt;Along the way, I listened to a lot of audiobooks, podcasts, and music along the way with an earbud in my right ear so I could hear the road. Where possible, I tried to listen to books about the part of the country I was riding through, including &lt;em&gt;Demon Copperhead&lt;/em&gt; (opiod crisis in the Appalachians), &lt;em&gt;The Worst Hard Time&lt;/em&gt; (dust bowl in Kansas), and several books about Lewis and Clark as I followed their trail through Montana, Idaho, and parts of Oregon.&lt;/p&gt;

&lt;p&gt;Music-wise, I ended up sticking to my favorites rather than branching out, and STP’s &lt;em&gt;Core&lt;/em&gt; and Alice in Chains’ &lt;em&gt;Dirt&lt;/em&gt; got me through some miserable climbs. I also listened to the Pearl Jam studio catalog in reverse chronological order and discovered some gems that I hadn’t heard in a long time.&lt;/p&gt;

&lt;h3 id=&quot;lodging&quot;&gt;Lodging&lt;/h3&gt;

&lt;p&gt;I sampled a great variety of lodging options on the trip. For the most part, I stayed in 2-star motels. They had the right balance of warm showers and fresh linens, availability of guest laundry services when I needed them, and affordability, even if I got sick of eating powdered eggs every morning I stayed there. Friends and family in Ohio and Missouri hosted me, and I’m grateful to B and J and L and B for opening their homes!&lt;/p&gt;

&lt;p&gt;I stayed in a few Airbnbs, which had the added benefit of being able to cook a fresh meal for myself. One of those Airbnbs was a tiny cabin outside of Mitchell, OR that had an outdoor shower, an outhouse, and a grill.&lt;/p&gt;

&lt;div class=&quot;imagebox&quot;&gt;
    &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2025-07-08-crosscountry-bicycle-trip-59.jpg&quot; width=&quot;1600&quot; height=&quot;1205&quot; /&gt;
    
&lt;/div&gt;

&lt;p&gt;On the first night of the tour in Harper’s Ferry, J and I stayed in a Potomac Appalachian Trail Club “cabin”, one of the ~50 cabins the group maintains for folks hiking the AT. J had to get a $40 membership, and we stayed in a four-bedroom house with a fabulous view for $100/night. Wow!&lt;/p&gt;

&lt;div class=&quot;imagebox&quot;&gt;
    &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2025-07-08-crosscountry-bicycle-trip-3.jpg&quot; width=&quot;1205&quot; height=&quot;1600&quot; /&gt;
    
&lt;/div&gt;

&lt;p&gt;I camped only a few times – it was too cold and rainy for most of my trip, and I was fortunate to have the option to stay in a motel instead. When I did camp, the stars were beautiful and the mornings were chilly.&lt;/p&gt;

&lt;div class=&quot;imagebox&quot;&gt;
    &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2025-07-08-crosscountry-bicycle-trip-28.jpg&quot; width=&quot;1600&quot; height=&quot;1205&quot; /&gt;
    
&lt;/div&gt;

&lt;p&gt;The most memorable places to stay were the church hostels. In Jeffrey City, WY and Dayville, OR, the churches open their parish halls to cyclists. They have kitchens and cooking utensils, and in Dayville, a pantry full of dry goods available. They ask that you sign the guest book and clean up after yourself. In both places, I stayed alone, but I imagine that it would have been a good opportunity to meet fellow cyclists. Actions speak much louder than words, and these churches’ kindness to travelers is a strong demonstration of God’s love!&lt;/p&gt;

&lt;div class=&quot;row d-flex flex-wrap align-items-center&quot;&gt;
    &lt;div class=&quot;col-sm-6&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2025-07-08-crosscountry-bicycle-trip-55.jpg&quot; width=&quot;1205&quot; height=&quot;1600&quot; /&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class=&quot;col-sm-6&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2025-07-08-crosscountry-bicycle-trip-78.jpg&quot; width=&quot;1031&quot; height=&quot;1600&quot; /&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;h3 id=&quot;food&quot;&gt;Food&lt;/h3&gt;

&lt;p&gt;Food is my favorite subject, and burning as many calories as I did, I ate a lot of it. As much as I could, I tried to eat healthy (high protein, fruits and vegetables), but it wasn’t easy. I became well acquainted with gas station cuisine, usually for protein shakes and snacks but sometimes full meals when there weren’t other options or I arrived too late – seriously, what dinner restaurant closes at 7pm?&lt;/p&gt;

&lt;div class=&quot;row d-flex flex-wrap align-items-center&quot;&gt;
    &lt;div class=&quot;col-sm-6&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2025-07-08-crosscountry-bicycle-trip-18.jpg&quot; width=&quot;1205&quot; height=&quot;1600&quot; /&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class=&quot;col-sm-6&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2025-07-08-crosscountry-bicycle-trip-23.jpg&quot; width=&quot;1600&quot; height=&quot;1205&quot; /&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;America is a place with varied cultures and interests, but one thing we are united on is how much we love pizza and cheeseburgers – like The Beatles or Christmas music, I avoided them as much as I could and still got about as much as I wanted. The Mexican food was surprisingly excellent and not horribly unhealthy, and going to those restaurants was a chance to practice my Spanish!&lt;/p&gt;

&lt;div class=&quot;imagebox&quot;&gt;
    &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2025-07-08-crosscountry-bicycle-trip-21.jpg&quot; width=&quot;1600&quot; height=&quot;1205&quot; /&gt;
    
&lt;/div&gt;

&lt;p&gt;When camping or riding through places where I wasn’t guaranteed to be able to get food, I packed individual peanut butter servings, tuna, and bread. It wasn’t my favorite meal, but it certainly did the trick! Once, when camping, I found a Chinese restaurant and chowed down on chow mein with a side of bagged salad for the semblance of anything healthy.&lt;/p&gt;

&lt;div class=&quot;row d-flex flex-wrap align-items-center&quot;&gt;
    &lt;div class=&quot;col-sm-6&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2025-07-08-crosscountry-bicycle-trip-79.jpg&quot; width=&quot;1600&quot; height=&quot;1205&quot; /&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class=&quot;col-sm-6&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2025-07-08-crosscountry-bicycle-trip-49.jpg&quot; width=&quot;1600&quot; height=&quot;1205&quot; /&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;Some of the best meals I had were grocery-store purchases cooked in an Airbnb. I often bought enough food to make dinner, breakfast, and sandwiches the next day. I could feel the difference when my body burned cleaner fuel vs. gas station garbage.&lt;/p&gt;

&lt;div class=&quot;row d-flex flex-wrap align-items-center&quot;&gt;
    &lt;div class=&quot;col-sm-6&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2025-07-08-crosscountry-bicycle-trip-19.jpg&quot; width=&quot;1600&quot; height=&quot;1205&quot; /&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class=&quot;col-sm-6&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2025-07-08-crosscountry-bicycle-trip-80.jpg&quot; width=&quot;1600&quot; height=&quot;1205&quot; /&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;One of those Airbnbs included a basket of snacks, and I don’t think the host expected me to eat all of them.&lt;/p&gt;

&lt;div class=&quot;imagebox&quot;&gt;
    &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2025-07-08-crosscountry-bicycle-trip-81.jpg&quot; width=&quot;1600&quot; height=&quot;1205&quot; /&gt;
    
&lt;/div&gt;

&lt;h3 id=&quot;riding-solo&quot;&gt;Riding solo&lt;/h3&gt;

&lt;p&gt;My journey may have been on my own, but I felt very supported along the way. I saw a lot of friends and family on the way, and I was fortunate to have folks willing to cycle with me for 7 of the 54 riding days!&lt;/p&gt;

&lt;p&gt;I called my family almost every day and sent them postcards whenever I had the opportunity.&lt;/p&gt;

&lt;div class=&quot;imagebox&quot;&gt;
    &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2025-07-08-crosscountry-bicycle-trip-83.jpg&quot; width=&quot;1600&quot; height=&quot;1205&quot; /&gt;
    
&lt;/div&gt;

&lt;p&gt;The kids tracked my progress with a magnet along a large map of the United States, learning about the country’s geography at the same time that I did!&lt;/p&gt;

&lt;div class=&quot;imagebox&quot;&gt;
    &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2025-07-08-crosscountry-bicycle-trip-82.jpg&quot; width=&quot;1600&quot; height=&quot;1205&quot; /&gt;
    
&lt;/div&gt;

&lt;p&gt;Finally, I kept a travelogue, a running Google Doc with updates, reflections, and photos every few days. I had more than 120 people following and cheering me on! I’m glad I spent so much time documenting my thoughts along the way. As soon as I wrote each update, I went right back to planning for shelter and sustenance, and I wouldn’t have remembered much without the notes to jog my memory.&lt;/p&gt;

&lt;div class=&quot;imagebox&quot;&gt;
    &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2025-07-08-crosscountry-bicycle-trip-84.png&quot; width=&quot;1434&quot; height=&quot;1600&quot; /&gt;
    
&lt;/div&gt;

&lt;p&gt;As supported as I felt, I was still very glad to see my family, and they were happy to have me back!&lt;/p&gt;

&lt;h3 id=&quot;wrap&quot;&gt;Wrap&lt;/h3&gt;

&lt;p&gt;Some folks asked whether I had any major breakthroughs of thought or personal revelations on this trip, and I think the biggest epiphany was giving myself permission not to have one. The added pressure of discovering myself in addition to figuring out how to feed and shelter myself each day, often on the fly, is not what I needed. I’m still digesting this journey, and there is plenty of time for self-discovery now that I’m home.&lt;/p&gt;

&lt;p&gt;One of my favorite parts of experiencing America at 12mph was the people I met along the way. As an extrovert on a solo trip, I had no problems striking up conversations with random strangers, and they all turned out to be positive experiences. I learned about life in places I didn’t know existed, and I made some new friends along the way. I’d also like to think that I served as a good ambassador for California, hopefully changing some minds about the people who live in San Francisco. I felt the kindness of strangers, too. More than once, I left a restaurant to find that my bill had been paid by the folks I was talking to, and a nice man stopped while I was pulled over in Idaho, offering me a cold energy drink and a nice conversation.&lt;/p&gt;

&lt;p&gt;As I reflect on the trip, I’ve been thinking about the mental muscles I had the chance to flex on the journey. Resilience – being able to endure circumstances that are difficult to change – was previously a strong muscle, and I had plenty of opportunities to develop it further. I rerouted on the fly to avoid mud, figured out how to feed and shelter myself when options were scarce, and I powered through crazy headwinds and miserable weather from time to time. One thing I was particularly looking forward to on the trip was to have more opportunities for whimsy – getting pulled in a direction that wasn’t what I’d originally planned – since I know that I can be better at inviting or incorporating alternatives. In my vision for the trip, I’d meet cyclists along the way that would encourage me to do fun side quests, go on adventures I otherwise wouldn’t have, or otherwise change my journey for the better. But, while I met folks and asked for suggestions along the way, I didn’t run into anyone (literally, anyone) cycling the same direction, so I didn’t have that many new ideas to incorporate. Alas!&lt;/p&gt;

&lt;p&gt;My greatest gratitude goes to my spouse and kids for their resilience and my parents for their support while I was gone for two months. I do a lot around the house, and I left a lot of slack to pick up. I’m glad that I had the chance to make this journey, and I’ll remember these stories forever. Truly, it’s a once in a lifetime opportunity, and hey! I did it!&lt;/p&gt;

&lt;p&gt;Upon returning to San Francisco, I reassembled my bike and started riding again, this time crushing personal records on my favorite local rides. It’s amazing how fast one can go with fresh legs and without 40 lbs of stuff on the bike! I also bought a cargo e-bike. I’ve been e-bike curious for a while and I realized that I clearly like cycling, we often have a need for a second car, the kids are only getting heavier, and e-bikes retain their value quite well on the secondary market.&lt;/p&gt;

&lt;p&gt;We enjoy riding bikes as a family from time to time, and maybe my family would join me on a future bike tour! Maybe.&lt;/p&gt;

&lt;div class=&quot;imagebox&quot;&gt;
    &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2025-07-08-crosscountry-bicycle-trip-85.jpg&quot; width=&quot;1600&quot; height=&quot;1200&quot; /&gt;
    
&lt;/div&gt;

&lt;h1 id=&quot;appendix&quot;&gt;Appendix&lt;/h1&gt;

&lt;p&gt;&lt;a name=&quot;route&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&quot;route&quot;&gt;Route&lt;/h2&gt;
&lt;iframe src=&quot;https://caltopo.com/m/0CQV16T&quot; width=&quot;100%&quot; height=&quot;480px&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;&lt;a name=&quot;packing-list&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&quot;packing-list&quot;&gt;Packing list&lt;/h2&gt;

&lt;div class=&quot;row d-flex flex-wrap align-items-center&quot;&gt;
    &lt;div class=&quot;col-sm-6&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2025-07-08-crosscountry-bicycle-trip-69.jpg&quot; width=&quot;1600&quot; height=&quot;1205&quot; /&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class=&quot;col-sm-6&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2025-07-08-crosscountry-bicycle-trip-67.jpg&quot; width=&quot;1600&quot; height=&quot;1205&quot; /&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;h3 id=&quot;on-the-bike&quot;&gt;On the bike&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;Safety vest (safety first!)&lt;/li&gt;
  &lt;li&gt;Helmet&lt;/li&gt;
  &lt;li&gt;Biking gloves&lt;/li&gt;
  &lt;li&gt;Shoes with cleats&lt;/li&gt;
  &lt;li&gt;Transition sunglasses&lt;/li&gt;
  &lt;li&gt;2 water bottles&lt;/li&gt;
  &lt;li&gt;Wahoo Bolt v2 bike computer&lt;/li&gt;
  &lt;li&gt;Front light&lt;/li&gt;
  &lt;li&gt;Garmin Varia RTL515 radar tail light&lt;/li&gt;
  &lt;li&gt;Microfiber towel&lt;/li&gt;
  &lt;li&gt;Bandana&lt;/li&gt;
  &lt;li&gt;Lock &amp;amp; cable&lt;/li&gt;
  &lt;li&gt;2 sets of socks&lt;/li&gt;
  &lt;li&gt;2 bike bibs (Ornot)&lt;/li&gt;
  &lt;li&gt;1 long-sleeve jersey&lt;/li&gt;
  &lt;li&gt;2 short-sleeve jerseys&lt;/li&gt;
  &lt;li&gt;2 sweat bands&lt;/li&gt;
  &lt;li&gt;Lightweight rain jacket&lt;/li&gt;
  &lt;li&gt;Lightweight fleece&lt;/li&gt;
  &lt;li&gt;Lightweight fleece gloves&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Notes: 2 water bottles was perfect, and both fit on the bike. I bought a new disposable water bottle every few days depending on how much water I needed for a given segment.&lt;/em&gt;&lt;/p&gt;

&lt;h3 id=&quot;off-the-bike&quot;&gt;Off the bike&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;Sunglasses&lt;/li&gt;
  &lt;li&gt;Chacos&lt;/li&gt;
  &lt;li&gt;Compression socks&lt;/li&gt;
  &lt;li&gt;2 camping underwear&lt;/li&gt;
  &lt;li&gt;1 camping/zipoff pants&lt;/li&gt;
  &lt;li&gt;1 camping button-down shirt&lt;/li&gt;
  &lt;li&gt;1 long-sleeved running shirt&lt;/li&gt;
  &lt;li&gt;1 lightweight running shorts&lt;/li&gt;
  &lt;li&gt;Compressible down jacket&lt;/li&gt;
  &lt;li&gt;Swimsuit&lt;/li&gt;
  &lt;li&gt;Baseball hat&lt;/li&gt;
  &lt;li&gt;Beanie&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Notes: Didn’t end up using the compression socks as much as I thought I would. Beanie felt superfluous at times, but when I needed it, boy I needed it. Sent the running shorts home when I realized I could do laundry in my swimsuit.&lt;/em&gt;&lt;/p&gt;

&lt;h3 id=&quot;camping&quot;&gt;Camping&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;Ultralight 1-person tent&lt;/li&gt;
  &lt;li&gt;Tent footprint&lt;/li&gt;
  &lt;li&gt;Inflatable sleeping pad&lt;/li&gt;
  &lt;li&gt;Down sleeping bag&lt;/li&gt;
  &lt;li&gt;Ratchet strap for sleeping bag / rack&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Notes: Ratchet straps turned out to be unnecessary when I realized I could attach the pannier straps to the sleeping bag, but they might have been helpful in if I’d needed to hitchhike out of a sticky situation.&lt;/em&gt;&lt;/p&gt;

&lt;h3 id=&quot;repair&quot;&gt;Repair&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;Grocery bags&lt;/li&gt;
  &lt;li&gt;Garbage bags&lt;/li&gt;
  &lt;li&gt;Ziplock bags&lt;/li&gt;
  &lt;li&gt;Zipties&lt;/li&gt;
  &lt;li&gt;Small &lt;a href=&quot;https://www.youtube.com/watch?v=bsv7sv4wD3s&quot;&gt;duct tape roll&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Extra ratchet strap&lt;/li&gt;
  &lt;li&gt;3 tire levers&lt;/li&gt;
  &lt;li&gt;2 spare tubes&lt;/li&gt;
  &lt;li&gt;2 patch kits&lt;/li&gt;
  &lt;li&gt;Topeak rechargeable air pump&lt;/li&gt;
  &lt;li&gt;Presta/schrader valve conversion (for gas station air pumps)&lt;/li&gt;
  &lt;li&gt;Extra cleat bolts&lt;/li&gt;
  &lt;li&gt;Multi-tool&lt;/li&gt;
  &lt;li&gt;Screwdriver&lt;/li&gt;
  &lt;li&gt;Chain lube&lt;/li&gt;
  &lt;li&gt;2 bike lock keys&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Notes: Should have packed extra cleats since SPD-SLs were so poorly suited for the type of travel I was doing. Duct tape roll was very helpful!&lt;/em&gt;&lt;/p&gt;

&lt;h3 id=&quot;food-1&quot;&gt;Food&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;Protein powder packets&lt;/li&gt;
  &lt;li&gt;Emergen-C packets&lt;/li&gt;
  &lt;li&gt;Honey Stingers&lt;/li&gt;
  &lt;li&gt;Energy bars&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Notes: All of this was unnecessary. Food was readily available everywhere and I only ended up carrying enough for the next couple of days.&lt;/em&gt;&lt;/p&gt;

&lt;h3 id=&quot;tech&quot;&gt;Tech&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;Headphones&lt;/li&gt;
  &lt;li&gt;Kindle&lt;/li&gt;
  &lt;li&gt;Bluetooth keyboard&lt;/li&gt;
  &lt;li&gt;10000mAh battery pack&lt;/li&gt;
  &lt;li&gt;USB wall charger (2 USB-C, 2 USB-A)&lt;/li&gt;
  &lt;li&gt;2 microUSB cables (camera, Kindle, tail light)&lt;/li&gt;
  &lt;li&gt;USB-C (phone, battery, bike computer)
    &lt;ul&gt;
      &lt;li&gt;1 USB-C-to-C cable&lt;/li&gt;
      &lt;li&gt;1 USB-A-to-C cable&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;1 watch charging cable&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Notes: Propping up my phone against a wall or a glass while typing on the Bluetooth keyboard was a great and lightweight solution. My thumbs and eyes were grateful. Also, having a charger with multiple USB ports was key to charge everything at once.&lt;/em&gt;&lt;/p&gt;

&lt;h3 id=&quot;toiletries&quot;&gt;Toiletries&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;Medical kit&lt;/li&gt;
  &lt;li&gt;Toothbrush&lt;/li&gt;
  &lt;li&gt;Toothpaste&lt;/li&gt;
  &lt;li&gt;Floss&lt;/li&gt;
  &lt;li&gt;Deodorant&lt;/li&gt;
  &lt;li&gt;Retainer&lt;/li&gt;
  &lt;li&gt;Chapstick&lt;/li&gt;
  &lt;li&gt;Comb&lt;/li&gt;
  &lt;li&gt;Razor&lt;/li&gt;
  &lt;li&gt;Shaving cream&lt;/li&gt;
  &lt;li&gt;Nail clippers&lt;/li&gt;
  &lt;li&gt;Nail file&lt;/li&gt;
  &lt;li&gt;Ibuprofen&lt;/li&gt;
  &lt;li&gt;Antihistamine spray (just in case)&lt;/li&gt;
  &lt;li&gt;Sunscreen&lt;/li&gt;
  &lt;li&gt;Bug spray&lt;/li&gt;
  &lt;li&gt;Hand sanitizer&lt;/li&gt;
  &lt;li&gt;Dish soap (for washing clothes)&lt;/li&gt;
  &lt;li&gt;Gold Bond powder&lt;/li&gt;
  &lt;li&gt;Chamois butt’r&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Notes: Sent the hand sanitizer and dish soap home. Didn’t end up using the bug spray or the antihistamine spray, but I’m glad I had them. Yes, I still wear the same retainer from when I was sixteen.&lt;/em&gt;&lt;/p&gt;

&lt;h3 id=&quot;misc&quot;&gt;Misc&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;Playing cards to mark days&lt;/li&gt;
  &lt;li&gt;Packing cubes (to compress all this crap down)&lt;/li&gt;
  &lt;li&gt;Pen&lt;/li&gt;
  &lt;li&gt;Postcard stamps&lt;/li&gt;
  &lt;li&gt;Traveling companions (1 from each kid)&lt;/li&gt;
&lt;/ul&gt;
</description>
				<pubDate>Tue, 08 Jul 2025 00:00:00 -0700</pubDate>
				<link>https://mttsptz.ai/2025/07/08/crosscountry-bicycle-trip.html</link>
				<guid isPermaLink="true">https://mttsptz.ai/2025/07/08/crosscountry-bicycle-trip.html</guid>
			</item>
		
			<item>
				<title>Crescent City to San Francisco</title>
				<description>&lt;p&gt;Earlier this month, I rode from Crescent City to San Francisco. Together with my &lt;a href=&quot;https://mttsptz.ai/2009/05/06/riding-to-los-angeles.html&quot;&gt;2009 ride from San Francisco to Los Angeles&lt;/a&gt;, I’ve now cycled almost the entire California coast.&lt;/p&gt;

&lt;!--more--&gt;

&lt;p&gt;S is also a recently-unemployed engineering executive and was surprisingly game for this whimsical journey considering that he didn’t own a road bike until July. S is familiar with endurance training (marathons, backcountry skiing, etc), and the only thing you have to do when bike touring is get to the next place by sundown… We did a few training rides over the summer to warm up and it all went well!&lt;/p&gt;

&lt;p&gt;My other companions on the trip were Boba Fett and the Yellow Submarine, handpicked by L and F and ziptied to my bike rack.&lt;/p&gt;

&lt;div class=&quot;imagebox&quot;&gt;
    &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2024-10-20-crescent-city-to-san-francisco-9.jpg&quot; width=&quot;1600&quot; height=&quot;1067&quot; /&gt;
    
&lt;/div&gt;

&lt;p&gt;The four of us followed the Adventure Cycling Association’s &lt;a href=&quot;https://www.adventurecycling.org/routes-and-maps/adventure-cycling-route-network/pacific-coast/&quot;&gt;Pacific Coast&lt;/a&gt; route and broke it up, attempting to balance bigger days with recovery.&lt;/p&gt;

&lt;style&gt;
    table {
        margin: 16px auto;

        font-size: 16px;
        font-family: monospace;
        outline: 2px solid #ccc;
        border: 8px solid #fff;
    }
&lt;/style&gt;

&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th style=&quot;text-align: left&quot;&gt; &lt;/th&gt;
      &lt;th style=&quot;text-align: right&quot;&gt;Distance (miles)&lt;/th&gt;
      &lt;th style=&quot;text-align: right&quot;&gt;Elevation gain (feet)&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;#day-1&quot;&gt;Day 1: Crescent City → Orick&lt;/a&gt;&lt;/td&gt;
      &lt;td style=&quot;text-align: right&quot;&gt;38.5&lt;/td&gt;
      &lt;td style=&quot;text-align: right&quot;&gt;2697&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;#day-2&quot;&gt;Day 2: Orick → Scotia&lt;/a&gt;&lt;/td&gt;
      &lt;td style=&quot;text-align: right&quot;&gt;83.2&lt;/td&gt;
      &lt;td style=&quot;text-align: right&quot;&gt;3356&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;#day-3&quot;&gt;Day 3: Scotia → Garberville&lt;/a&gt;&lt;/td&gt;
      &lt;td style=&quot;text-align: right&quot;&gt;48.0&lt;/td&gt;
      &lt;td style=&quot;text-align: right&quot;&gt;1877&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;#day-4&quot;&gt;Day 4: Garberville → Fort Bragg&lt;/a&gt;&lt;/td&gt;
      &lt;td style=&quot;text-align: right&quot;&gt;67.6&lt;/td&gt;
      &lt;td style=&quot;text-align: right&quot;&gt;5230&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;#day-5&quot;&gt;Day 5: Fort Bragg → Gualala&lt;/a&gt;&lt;/td&gt;
      &lt;td style=&quot;text-align: right&quot;&gt;63.6&lt;/td&gt;
      &lt;td style=&quot;text-align: right&quot;&gt;4462&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;#day-6&quot;&gt;Day 6: Gualala → Inverness&lt;/a&gt;&lt;/td&gt;
      &lt;td style=&quot;text-align: right&quot;&gt;86.0&lt;/td&gt;
      &lt;td style=&quot;text-align: right&quot;&gt;6273&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;#day-7&quot;&gt;Day 7: Inverness → San Francisco&lt;/a&gt;         &lt;/td&gt;
      &lt;td style=&quot;text-align: right&quot;&gt;51.5&lt;/td&gt;
      &lt;td style=&quot;text-align: right&quot;&gt;2385&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;Total&lt;/td&gt;
      &lt;td style=&quot;text-align: right&quot;&gt;     438.4&lt;/td&gt;
      &lt;td style=&quot;text-align: right&quot;&gt;                        26280&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;h2 id=&quot;day-0-oak--crescent-city&quot;&gt;Day 0: OAK → Crescent City&lt;/h2&gt;

&lt;p&gt;To get to Crescent City, we did a one-way pickup rental from OAK (“San Francisco Bay Oakland Airport” smh) to Crescent City. Driving into SF during rush hour was a nice reminder why I refuse to commute by car, and it wasn’t clear that my plan to bungee-cord the bikes to the bed draped over cardboard that I’d saved over the last few weeks would work, but hey, it did!&lt;/p&gt;

&lt;div class=&quot;imagebox&quot;&gt;
    &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2024-10-20-crescent-city-to-san-francisco-1.jpg&quot; width=&quot;1600&quot; height=&quot;1202&quot; /&gt;
    
&lt;/div&gt;

&lt;p&gt;The drive was uneventful, and we got to scope out US-101 on the way up. Our cab driver from the airport told us about her ten children and how she was pregnant with her youngest at the same time that two of her daughters were pregnant(!), and this was but a foretaste of the delightful people we’d meet on this trip.&lt;/p&gt;

&lt;p&gt;&lt;a name=&quot;day-1&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&quot;day-1-crescent-city--orick&quot;&gt;Day 1: Crescent City → Orick&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;38.5 miles, 2697’ elevation gain&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;We’re off! Aside from the two relatively large climbs out of Crescent City, this was a warmup day. We caught some beautiful views along the coast, and the Newton B. Drury scenic byway off US-101 offered less traffic and a chance to see some big trees. Of course, we also had to stop in Klamath for the Trees of Mystery and the enormous statues of Paul Bunyan and the Blue Ox, which I’d seen previously on my road trip with cousin in 2009.&lt;/p&gt;

&lt;div class=&quot;imagebox&quot;&gt;
    &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2024-10-20-crescent-city-to-san-francisco-3.jpg&quot; width=&quot;1600&quot; height=&quot;1202&quot; /&gt;
    
&lt;/div&gt;

&lt;div class=&quot;row d-flex flex-wrap align-items-center&quot;&gt;
    &lt;div class=&quot;col-sm-6&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2024-10-20-crescent-city-to-san-francisco-4.jpg&quot; width=&quot;1600&quot; height=&quot;1067&quot; /&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class=&quot;col-sm-6&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2024-10-20-crescent-city-to-san-francisco-7.jpg&quot; width=&quot;1600&quot; height=&quot;1067&quot; /&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;row d-flex flex-wrap align-items-center&quot;&gt;
    &lt;div class=&quot;col-sm-6&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2024-10-20-crescent-city-to-san-francisco-5.jpg&quot; width=&quot;1600&quot; height=&quot;1067&quot; /&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class=&quot;col-sm-6&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2024-10-20-crescent-city-to-san-francisco-6.jpg&quot; width=&quot;1600&quot; height=&quot;1200&quot; /&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;imagebox&quot;&gt;
    &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2024-10-20-crescent-city-to-san-francisco-8.jpg&quot; width=&quot;1205&quot; height=&quot;1600&quot; /&gt;
    
&lt;/div&gt;

&lt;p&gt;We arrived in Orick around 2pm, our most downtime of the trip. The only places with food were a snack stand and the grocery store – it’s nice when the choices are easy. At the snack stand, while we waited for our burgers, Jim told us, “sit right here and tell me a story.” We ended up chatting with Jim (Orick resident since the 1940s) and a couple other locals for almost an hour. They were surprised that we hadn’t seen any elk yet, and then we talked about how much the elk are annoying pests. It was delightful.&lt;/p&gt;

&lt;p&gt;We roasted hot dogs at the fire pit at our hotel for dinner, and I wish we’d gone for “all beef” rather than “first ingredient: mechanically separated chicken”. Oops. At the fire pit, we met a cute couple of older guys from DC that were traveling down the coast to San Francisco.&lt;/p&gt;

&lt;div class=&quot;imagebox&quot;&gt;
    &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2024-10-20-crescent-city-to-san-francisco-10.jpg&quot; width=&quot;1600&quot; height=&quot;1205&quot; /&gt;
    
&lt;/div&gt;

&lt;p&gt;After eating a burger on the drive up and again for lunch, I learned that burgers on this trip would be like Christmas music – if I avoid them as much as I can, I get about as many as I want.&lt;/p&gt;

&lt;p&gt;&lt;a name=&quot;day-2&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&quot;day-2-orick--scotia&quot;&gt;Day 2: Orick → Scotia&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;83.2 miles, 3356’ elevation gain&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;This was our first big day. We headed out to the coast and caught some elk on the way out of town (whew!) and dropped onto scenic Patrick’s Point Drive for some stellar views and a bit of gravel. We stopped in tiny Trinidad for breakfast and had one of the best meals of the trip (and the best coffee, according to S). We also saw our firepit friends from the night before! They have good taste.&lt;/p&gt;

&lt;div class=&quot;imagebox&quot;&gt;
    &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2024-10-20-crescent-city-to-san-francisco-11.jpg&quot; width=&quot;1600&quot; height=&quot;1205&quot; /&gt;
    
&lt;/div&gt;

&lt;div class=&quot;row d-flex flex-wrap align-items-center&quot;&gt;
    &lt;div class=&quot;col-sm-6&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2024-10-20-crescent-city-to-san-francisco-12.jpg&quot; width=&quot;1600&quot; height=&quot;1200&quot; /&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class=&quot;col-sm-6&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2024-10-20-crescent-city-to-san-francisco-13.jpg&quot; width=&quot;1600&quot; height=&quot;1067&quot; /&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;Rolling into Arcata, we saw a festival in the park with a lot of noodle dancing and met a fellow bike tourist who was riding from Vancouver to SF and seemed a little… off. More on that later.&lt;/p&gt;

&lt;p&gt;We rode through Eureka along the waterfront, which was both beautiful – the weather was spectacular – and sad with the number of tents we saw. From afar, we saw the &lt;a href=&quot;https://en.wikipedia.org/wiki/Carson_Mansion&quot;&gt;Carson Mansion&lt;/a&gt;, an enormous Queen Anne Victorian featured on the bike map. Alas, they don’t do tours.&lt;/p&gt;

&lt;div class=&quot;imagebox&quot;&gt;
    &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2024-10-20-crescent-city-to-san-francisco-14.jpg&quot; width=&quot;1600&quot; height=&quot;1067&quot; /&gt;
    &lt;div class=&quot;caption&quot;&gt;Lookit that huge Victorian!&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;Out of Eureka, we followed some frontage roads as we got into farmland, and out of nowhere, our Vancouver friend reappeared behind us and asked if he could stay with us that night. I politely told him no. It was eerie how quickly he’d appeared – either he was 5 minutes behind us for dozens of miles, or he was waiting for us at the bridge he knew we’d have to cross.&lt;/p&gt;

&lt;div class=&quot;imagebox&quot;&gt;
    &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2024-10-20-crescent-city-to-san-francisco-15.jpg&quot; width=&quot;1200&quot; height=&quot;1600&quot; /&gt;
    
&lt;/div&gt;

&lt;p&gt;Anyway, we stopped in Ferndale for a pizza dinner before doing the last 10 miles to our hotel. The pizza was fine on a regular day and the best thing we’d ever eaten that day. Ferndale was also notable for being the most purple town – we’d been counting the number of Trump and Harris signs we’d seen along the way, and Ferndale had both the most signs by volume as well as a pretty even distribution. Also, apparently, Guy Fieri grew up there.&lt;/p&gt;

&lt;div class=&quot;imagebox&quot;&gt;
    &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2024-10-20-crescent-city-to-san-francisco-16.jpg&quot; width=&quot;1600&quot; height=&quot;1205&quot; /&gt;
    
&lt;/div&gt;

&lt;p&gt;We rolled into the Scotia Lodge just as the sun was starting to set.&lt;/p&gt;

&lt;p&gt;&lt;a name=&quot;day-3&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&quot;day-3-scotia--garberville&quot;&gt;Day 3: Scotia → Garberville&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;48 miles, 1877’ elevation gain&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;This day doubled as recovery and sightseeing. We went through the Avenue of the Giants, a 31-mile scenic byway off US-101. Normally, this would be pretty crowded with tourists, but by design, we were in the offseason, and saw few. We packed sandwiches from the Scotia market for lunch and the lady upsold me “the best beef jerky she’d ever had”. While I agree that it might have been the best jerky she’d ever had, it was not the best beef jerky I’d ever had.&lt;/p&gt;

&lt;p&gt;Anyway, the Avenue of the Giants was absolutely incredible. Riding through the trees while the sun peeked out and popping into redwood groves was an absolute delight.&lt;/p&gt;

&lt;div class=&quot;imagebox&quot;&gt;
    &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2024-10-20-crescent-city-to-san-francisco-20.jpg&quot; width=&quot;1600&quot; height=&quot;1205&quot; /&gt;
    
&lt;/div&gt;

&lt;div class=&quot;row d-flex flex-wrap align-items-center&quot;&gt;
    &lt;div class=&quot;col-sm-4&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2024-10-20-crescent-city-to-san-francisco-18.jpg&quot; width=&quot;1205&quot; height=&quot;1600&quot; /&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class=&quot;col-sm-4&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2024-10-20-crescent-city-to-san-francisco-21.jpg&quot; width=&quot;1205&quot; height=&quot;1600&quot; /&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class=&quot;col-sm-4&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2024-10-20-crescent-city-to-san-francisco-19.jpg&quot; width=&quot;1200&quot; height=&quot;1600&quot; /&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;video-container&quot;&gt;
    &lt;iframe width=&quot;&quot; height=&quot;&quot; src=&quot;https://mttsptz.ai//www.youtube-nocookie.com/embed/A6NWeZSUoRw?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;

&lt;p&gt;We even biked through a tree, which was every bit the tourist trap and delight that you might expect it to be.&lt;/p&gt;

&lt;div class=&quot;row d-flex flex-wrap align-items-center&quot;&gt;
    &lt;div class=&quot;col-sm-6&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2024-10-20-crescent-city-to-san-francisco-22.jpg&quot; width=&quot;1600&quot; height=&quot;1202&quot; /&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class=&quot;col-sm-6&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2024-10-20-crescent-city-to-san-francisco-23.jpg&quot; width=&quot;1600&quot; height=&quot;1067&quot; /&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;California was experiencing a heat wave during the first part of our trip, and for us, this mostly meant no fog along the coast, but we were inland on Day 3, so the 100° heat caught up to us after lunch. A smoothie in Miranda helped, but the real solve was a cold beer in Garberville after we arrived. Our hotel was the worst of the trip, but it was right across from a bar with a great patio and shared a parking lot with a delicious Mexican restaurant. We adapted a saying from one of S’s skiing friends: bike all day, party all night, in bed by 9pm.&lt;/p&gt;

&lt;p&gt;AND, about 10 minutes after we arrived in Garberville, I saw our Vancouver shadow pass by on the road. Creepy.&lt;/p&gt;

&lt;p&gt;&lt;a name=&quot;day-4&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&quot;day-4-garberville--fort-bragg&quot;&gt;Day 4: Garberville → Fort Bragg&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;67.6 miles, 5230’ elevation gain&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;This was the day that we were most worried about. We’d heard about scary truck traffic on US-101 before breaking off to follow US-1 to the coast, and this day had the biggest climb of the trip. We psyched ourselves up and got an early start, but it turned out just fine and much easier than anticipated! The traffic was minimal, and we’re in pretty good shape, so the climb was a nothingburger.&lt;/p&gt;

&lt;div class=&quot;row d-flex flex-wrap align-items-center&quot;&gt;
    &lt;div class=&quot;col-sm-6&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2024-10-20-crescent-city-to-san-francisco-24.jpg&quot; width=&quot;1600&quot; height=&quot;1202&quot; /&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class=&quot;col-sm-6&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2024-10-20-crescent-city-to-san-francisco-25.jpg&quot; width=&quot;1600&quot; height=&quot;1205&quot; /&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;row d-flex flex-wrap align-items-center&quot;&gt;
    &lt;div class=&quot;col-sm-6&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2024-10-20-crescent-city-to-san-francisco-26.jpg&quot; width=&quot;1600&quot; height=&quot;1067&quot; /&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class=&quot;col-sm-6&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2024-10-20-crescent-city-to-san-francisco-27.jpg&quot; width=&quot;1600&quot; height=&quot;1067&quot; /&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;We rolled through the redwoods on a few nice descents before popping out at the coastline for our first taste of riding along the water under beautiful blue skies. The sea breeze was a welcome change from the previous day’s heat, too.&lt;/p&gt;

&lt;div class=&quot;row d-flex flex-wrap align-items-center&quot;&gt;
    &lt;div class=&quot;col-sm-6&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2024-10-20-crescent-city-to-san-francisco-28.jpg&quot; width=&quot;1600&quot; height=&quot;1067&quot; /&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class=&quot;col-sm-6&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2024-10-20-crescent-city-to-san-francisco-30.jpg&quot; width=&quot;1600&quot; height=&quot;1067&quot; /&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;We ran into some construction and smaller shoulders than anticipated, but the last leg into Fort Bragg was along Ten Mile Beach along a dedicated bike path that led right to our hotel on the beach. We walked into town and ate everything on the (food) menu at the North Coast Brewery.&lt;/p&gt;

&lt;p&gt;&lt;a name=&quot;day-5&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&quot;day-5-fort-bragg--gualala&quot;&gt;Day 5: Fort Bragg → Gualala&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;63.6 miles, 4462’ elevation gain&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;We woke at sunrise to the sound of the ocean, grabbed coffee in the lobby, and warmed up at the firepits outside our hotel. It was really nice.&lt;/p&gt;

&lt;div class=&quot;imagebox&quot;&gt;
    &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2024-10-20-crescent-city-to-san-francisco-31.jpg&quot; width=&quot;1600&quot; height=&quot;1200&quot; /&gt;
    
&lt;/div&gt;

&lt;p&gt;Little did we know that we’d find the most climbing on our trip not in the redwoods up north but along the coast, constantly bopping between 0’-300’ above sea level. Google Maps’ elevation estimates for US-1 along the coast were off by almost a factor of two – we were fine, but it ended up being much more tiring than expected!&lt;/p&gt;

&lt;p&gt;On a whim, we took a detour to the Point Cabrillo Lighthouse and had an extended breakfast in Mendocino, unaware of the endless climbing in our future.&lt;/p&gt;

&lt;div class=&quot;row d-flex flex-wrap align-items-center&quot;&gt;
    &lt;div class=&quot;col-sm-6&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2024-10-20-crescent-city-to-san-francisco-32.jpg&quot; width=&quot;1600&quot; height=&quot;1067&quot; /&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class=&quot;col-sm-6&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2024-10-20-crescent-city-to-san-francisco-33.jpg&quot; width=&quot;1600&quot; height=&quot;1067&quot; /&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;Still, it’s hard to complain. The shimmering ocean, the crashing waves against the rocks, and the cloudless sky were incredible company as we dipped down to beaches and bridges over rivers and then up again into the bluffs.&lt;/p&gt;

&lt;div class=&quot;row d-flex flex-wrap align-items-center&quot;&gt;
    &lt;div class=&quot;col-sm-4&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2024-10-20-crescent-city-to-san-francisco-34.jpg&quot; width=&quot;1600&quot; height=&quot;1067&quot; /&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class=&quot;col-sm-4&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2024-10-20-crescent-city-to-san-francisco-35.jpg&quot; width=&quot;1200&quot; height=&quot;1200&quot; /&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class=&quot;col-sm-4&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2024-10-20-crescent-city-to-san-francisco-36.jpg&quot; width=&quot;1600&quot; height=&quot;1200&quot; /&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;row d-flex flex-wrap align-items-center&quot;&gt;
    &lt;div class=&quot;col-sm-6&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2024-10-20-crescent-city-to-san-francisco-37.jpg&quot; width=&quot;1600&quot; height=&quot;1205&quot; /&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class=&quot;col-sm-6&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2024-10-20-crescent-city-to-san-francisco-38.jpg&quot; width=&quot;1600&quot; height=&quot;1067&quot; /&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;At last, we arrived in Gualala, a town with zero cell phone reception and a Mexican restaurant that turned out not to be a Mexican restaurant. The salmon and chips were fabulous, and we strolled into the bar, which was tiny and the only one in town, as far as I could tell. We made friends with two guys playing pool – Brian and a man who called himself Gato. They had an interesting relationship based on threatening each other with violence after every shot, but they seemed to be friends. They were nice enough to us, anyway. Scotty the bartender said that the only times in his life that he cried was when his dog died and when the A’s announced that they were leaving Oakland, but he hopes to get a bartending gig in Vegas if they ever end up there. I love it.&lt;/p&gt;

&lt;div class=&quot;imagebox&quot;&gt;
    &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2024-10-20-crescent-city-to-san-francisco-39.jpg&quot; width=&quot;1200&quot; height=&quot;1200&quot; /&gt;
    
&lt;/div&gt;

&lt;p&gt;&lt;a name=&quot;day-6&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&quot;day-6-gualala--inverness&quot;&gt;Day 6: Gualala → Inverness&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;86.0 miles, 6273’ elevation gain&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;We had a mission, and that mission was to get to Tomales Bay before the oyster bars closed at 4pm. We had 70+ miles in front of us and likely more than the 3800’ of elevation gain that Google Maps told us (spoiler: way more). We’d gotten the worst sleep of our trip – the hotel room smelled a little dank and moldy, and I’m sure that playing pool at the bar didn’t help.&lt;/p&gt;

&lt;p&gt;We woke in the dark and went to the only place that was open, a delightful spot with great SEO called “Bakery Pizza Mexican Food”. Their breakfast tacos are outstanding.&lt;/p&gt;

&lt;p&gt;This was also our first day with some fog along the coast, and it was a nice contrast to the clear skies we’d seen thus far on the trip. Like the day before but longer, we went up and down and up and down and up and down along the coast. We visited three counties (Mendocino, Sonoma, Marin) and had a killer crab melt in Bodega Bay.&lt;/p&gt;

&lt;div class=&quot;row d-flex flex-wrap align-items-center&quot;&gt;
    &lt;div class=&quot;col-sm-6&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2024-10-20-crescent-city-to-san-francisco-40.jpg&quot; width=&quot;1600&quot; height=&quot;1205&quot; /&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class=&quot;col-sm-6&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2024-10-20-crescent-city-to-san-francisco-42.jpg&quot; width=&quot;1600&quot; height=&quot;1205&quot; /&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;We made it to Tomales Bay at 3:15pm, very much in time for oysters, only to find out the Marshall Store had SOLD OUT OF OYSTERS FOR THE DAY and that Tomales Bay Oyster Company DIDN’T SHUCK AND SERVE OYSTERS FOR CONSUMPTION (admittedly, this would have been easy to research in advance). Our oyster plans were foiled!&lt;/p&gt;

&lt;div class=&quot;row d-flex flex-wrap align-items-center&quot;&gt;
    &lt;div class=&quot;col-sm-6&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2024-10-20-crescent-city-to-san-francisco-43.jpg&quot; width=&quot;1600&quot; height=&quot;1200&quot; /&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class=&quot;col-sm-6&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2024-10-20-crescent-city-to-san-francisco-44.jpg&quot; width=&quot;1600&quot; height=&quot;1200&quot; /&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;Instead, we enjoyed grocery store soft serve in Point Reyes Station (they use buffalo milk!), and burritos in Inverness Park. The other thing we were looking forward to, the only hot tub of our journey, did not disappoint.&lt;/p&gt;

&lt;div class=&quot;imagebox&quot;&gt;
    &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2024-10-20-crescent-city-to-san-francisco-45.jpg&quot; width=&quot;1600&quot; height=&quot;1200&quot; /&gt;
    
&lt;/div&gt;

&lt;p&gt;By this point, we ended our count of Harris-Walz and Trump-Vance signs, assuming that the Bay Area would be lopsided (spoiler: it was), and the final count was Harris-Walz 17, Trump-Vance 14. I’d have expected both more signs overall and more Trump-Vance signs, but I guess that most of the rural towns we passed through either had not enough traffic to merit trying to convince anyone or had similar-enough beliefs that putting up a sign was redundant.&lt;/p&gt;

&lt;p&gt;&lt;a name=&quot;day-7&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&quot;day-7-inverness--san-francisco&quot;&gt;Day 7: Inverness → San Francisco&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;51.5 miles, 2385’ elevation gain&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;This day was designed as a victory lap with minimal climbing as we covered familiar ground in Marin County. We didn’t feel particularly fresh, and S had some tightness in his IT band on the ride that he had to work through. It was nothing that ibuprofen, caffeine, and sugar couldn’t fix. Were we riding longer, this might have been a good day for a break (and laundry, yeesh).&lt;/p&gt;

&lt;div class=&quot;imagebox&quot;&gt;
    &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2024-10-20-crescent-city-to-san-francisco-46.jpg&quot; width=&quot;1600&quot; height=&quot;1205&quot; /&gt;
    
&lt;/div&gt;

&lt;p&gt;We slogged our way through Marin and arrived at the Golden Gate Bridge just in time for the Blue Angels flyover that had been scheduled to herald our return to San Francisco. So nice of them!&lt;/p&gt;

&lt;div class=&quot;row d-flex flex-wrap align-items-center&quot;&gt;
    &lt;div class=&quot;col-sm-4&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2024-10-20-crescent-city-to-san-francisco-48.jpg&quot; width=&quot;1205&quot; height=&quot;1600&quot; /&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class=&quot;col-sm-4&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2024-10-20-crescent-city-to-san-francisco-47.jpg&quot; width=&quot;1600&quot; height=&quot;1205&quot; /&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class=&quot;col-sm-4&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2024-10-20-crescent-city-to-san-francisco-49.gif&quot; width=&quot;480&quot; height=&quot;640&quot; /&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;After one last big, familiar climb up to the base of Twin Peaks and down O’Shaughnessy, we arrived!&lt;/p&gt;

&lt;p&gt;For the most part, everything went as planned, and we didn’t run into any scenarios that were particularly scary or stressful. This was my second bike touring adventure, and I hope there are more in my future! S was an excellent companion and a good sport to ride almost 440 miles for the sake of some wordplay.&lt;/p&gt;

&lt;h2 id=&quot;notes&quot;&gt;Notes&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;These are mostly for myself, but read on if you’re interested! Honestly, I can’t believe you’ve made it this far…&lt;/em&gt;&lt;/p&gt;

&lt;h3 id=&quot;preparation&quot;&gt;Preparation&lt;/h3&gt;

&lt;p&gt;For route planning, I bought the ACA paper maps and made table of the major places we might stay with approximate distance and elevation gain between them. We then crafted a series of days of the appropriate length, balancing big days with recovery days. I purchased the ACA GPX file for the route the week of, and in retrospect, that would have been much more accurate to plan the distance and elevation gain along the route we’d planned to take (using Caltopo or something like that). Google Maps wouldn’t always route me between places via biking directions, it often wouldn’t use the ACA route, and even when it did route well, the elevation estimates along the coast were wayyyyyy off. 😂&lt;/p&gt;

&lt;p&gt;Packing list:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;The map!&lt;/li&gt;
  &lt;li&gt;Everyday biking stuff: gloves, shoes + cleats, helmet, transition sunglasses, 2 water bottles, bike computer, lights&lt;/li&gt;
  &lt;li&gt;2 biking kits (bib + jersey)&lt;/li&gt;
  &lt;li&gt;3 sets of biking socks&lt;/li&gt;
  &lt;li&gt;Reflective safety vest&lt;/li&gt;
  &lt;li&gt;Microfiber towel for sweat during the day&lt;/li&gt;
  &lt;li&gt;Repair: tire levers, multitool, 3 spare tubes, hand pump, compressed air pump + 3 canisters, dry chain lube, 2 spare cleats&lt;/li&gt;
  &lt;li&gt;Off-the-bike: shirt, zip-off pants, underwear, warm windbreaker, baseball cap&lt;/li&gt;
  &lt;li&gt;Rain jacket&lt;/li&gt;
  &lt;li&gt;Swimsuit&lt;/li&gt;
  &lt;li&gt;Flip flops&lt;/li&gt;
  &lt;li&gt;Camera&lt;/li&gt;
  &lt;li&gt;Toiletries, sunscreen, chamois butter&lt;/li&gt;
  &lt;li&gt;USB cables, battery pack&lt;/li&gt;
  &lt;li&gt;Kindle&lt;/li&gt;
  &lt;li&gt;12 energy bars, 2 packs of Honey Stingers, 10oz bag of beef jerky&lt;/li&gt;
  &lt;li&gt;Lock with cable&lt;/li&gt;
  &lt;li&gt;Bungee cords for the pickup bed&lt;/li&gt;
  &lt;li&gt;3 grocery bags, 5 sandwich bags, 6 zipties&lt;/li&gt;
  &lt;li&gt;Boba Fett + Yellow Submarine&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Notes:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;I used everything I brought, and I’m glad I had the stuff I didn’t use: lock + cable, all the repair stuff.&lt;/li&gt;
  &lt;li&gt;I brought too many energy bars. There were plenty of places to stop for snacks and meals.&lt;/li&gt;
  &lt;li&gt;It wasn’t necessary, but it’d have been nice to have a rear mirror on my helmet.&lt;/li&gt;
  &lt;li&gt;I saw someone using bungee cords to fasten their sandals and sleeping bag to their rear rack and thought that was neat.&lt;/li&gt;
  &lt;li&gt;Excellent purchases this summer: bike computer (no need to look at my phone!), transition sunglasses (wind protection in lower light and fog!), top tube bag (no sweaty phone or melted energy bar in my jersey!)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;day-to-day&quot;&gt;Day-to-day&lt;/h3&gt;

&lt;p&gt;The GPX file mapped the entire route, and it was too large to give me turn-by-turn directions in the bike computer. I should have figured this out earlier and split up the files into more digestable chunks. But, in retrospect, not having the computer chirp at me for every turn ended up being pretty nice. Instead, when the computer thought we were off course, it chirped loudly and gave me turn-by-turn directions back to the route. Sweet!&lt;/p&gt;

&lt;p&gt;The waterproof ACA map was amazing and helpful, as always, and I had it in my jersey pocket as a backstop for the technology we were using.&lt;/p&gt;

&lt;p&gt;The guidance in the map suggested that the diciest part of the ride would be the bits on US-101 in the redwoods. This turned out not to be the case, perhaps because we were riding outside the tourist season (by design). When we were on US-101, the shoulder was generally large and there weren’t many blind turns. In contrast, once we reached the coast on CA-1, especially up north near Fort Bragg, the shoulder was more narrow, and cars were flying by. Most were generous about giving us plenty of space, but a few times, when there was traffic coming the other way, it ended up being tight.&lt;/p&gt;
</description>
				<pubDate>Sun, 20 Oct 2024 00:00:00 -0700</pubDate>
				<link>https://mttsptz.ai/2024/10/20/crescent-city-to-san-francisco.html</link>
				<guid isPermaLink="true">https://mttsptz.ai/2024/10/20/crescent-city-to-san-francisco.html</guid>
			</item>
		
			<item>
				<title>Retention and resilience</title>
				<description>&lt;p&gt;I like to frame employee retention as tent stakes. When pitching a tent, one hammers tent stakes into the ground to keep the tent from blowing away in a brisk gust of wind. Similarly, in one’s employment, there are specific reasons, articulated or not, why someone sticks with a company.&lt;/p&gt;

&lt;p&gt;When reorgs, strategy shifts, and market downturns start ripping up some of the tent stakes, as long as someone has enough remaining in the ground, the tent doesn’t blow away.&lt;/p&gt;

&lt;!--more--&gt;

&lt;div class=&quot;imagebox&quot;&gt;
    &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2024-09-29-retention-and-resilience.jpg&quot; width=&quot;1536&quot; height=&quot;1536&quot; /&gt;
    
&lt;/div&gt;

&lt;p&gt;Common tent stakes include I like my manager! I like my role! I like my project! I like my teammates! I like the technologies/tools I’m using! I like how much I’m learning! I like the company’s future financial prospects! I like my salary!&lt;/p&gt;

&lt;p&gt;The most durable tent stakes are those that are least likely to change – I like the company’s mission! I like the company’s values! I like the CEO! These may not be sufficient on their own to keep someone around, but the employees that have them as tent stakes often have a positive viral effect on the rest of the team.&lt;/p&gt;

&lt;p&gt;Understanding your employees’ motivations enables effective change management, and it starts at the recruiting process. Hiring people motivated by the most durable tent stakes and &lt;em&gt;not&lt;/em&gt; hiring those who seem overindexed on variables that are the most likely to change allows you to shape your team to one that will stick around through thick and thin.&lt;/p&gt;

&lt;p&gt;I’ve also found that the tent stake analogy also applies to personal resilience and mental health. Life’s tent stakes – where one finds satisfaction and self worth – include work, family, hobbies, friends, health, religion, community, possessions, personal achievements, etc. Nothing goes well all the time, and the more places one finds satisfaction, the more places one might seek comfort while hammering a tent stake back down.&lt;/p&gt;

&lt;p&gt;But if your life is defined by work and you don’t get that job offer or promotion, or your personal happiness depends on playing sports and you break your arm, your tent may be at risk of blowing off the ridge. Having the time and means to explore in a variety of passions and tent stakes is a luxury, but if you’re fortunate to have that opportunity, taking it can increase your likelihood for sustained satisfaction and happiness.&lt;/p&gt;

&lt;p&gt;And according to a song I learned growing up of which I can’t find a trace on the internet, “what’s life? life is a big stack of pancakes.” Probably because “what’s life? life is sustained satisfaction and happiness” doesn’t have the same ring to it.&lt;/p&gt;
</description>
				<pubDate>Sun, 29 Sep 2024 00:00:00 -0700</pubDate>
				<link>https://mttsptz.ai/2024/09/29/retention-and-resilience.html</link>
				<guid isPermaLink="true">https://mttsptz.ai/2024/09/29/retention-and-resilience.html</guid>
			</item>
		
			<item>
				<title>So fresh and so clean (clean)</title>
				<description>&lt;p&gt;It’s been about a decade since I’d &lt;a href=&quot;https://mttsptz.ai/2014/01/07/goodbye-tumblr-hello-jekyll.html&quot;&gt;relaunched this site on Jekyll&lt;/a&gt;, and the poor thing needed a visual refresh. The site was too text heavy, and the CSS was hacky and forced.&lt;/p&gt;

&lt;div class=&quot;row d-flex flex-wrap align-items-center&quot;&gt;
    &lt;div class=&quot;col-sm-6&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2024-07-11-so-fresh-and-so-clean-clean-1.png&quot; width=&quot;800&quot; height=&quot;636&quot; /&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class=&quot;col-sm-6&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2024-07-11-so-fresh-and-so-clean-clean-2.png&quot; width=&quot;800&quot; height=&quot;636&quot; /&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;I just rewrote &lt;a href=&quot;https://tgifunk.com/&quot; target=&quot;_blank&quot;&gt;tgifunk.com&lt;/a&gt; and kept up the momentum to redesign &lt;a href=&quot;#&quot;&gt;mattspitz.me&lt;/a&gt;. I’m still not a web developer, but I like to think that the code and the design are much cleaner than they were.&lt;!--more--&gt;&lt;/p&gt;

&lt;p&gt;Bootstrap v5 has a lot more utilities that make it easier to do the right thing once you know the right incantations. Unfortunately, one still needs to sift through the misery of web-developer StackOverflow for these incantations – I didn’t have a better experience asking ChatGPT for help.&lt;/p&gt;

&lt;p&gt;Rest assured, &lt;a href=&quot;https://github.com/pi0/clippyjs&quot; target=&quot;_blank&quot;&gt;ClippyJS&lt;/a&gt; is here to stay and is a bit more active with its boredom in the corner of the &lt;a href=&quot;https://mttsptz.ai/&quot;&gt;index page&lt;/a&gt;.&lt;/p&gt;

&lt;div class=&quot;imagebox&quot;&gt;
    &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2024-07-11-so-fresh-and-so-clean-clean-3.png&quot; width=&quot;800&quot; height=&quot;534&quot; /&gt;
    
&lt;/div&gt;

&lt;p&gt;Enjoy the new layout, and as always, please share your feedback!&lt;/p&gt;
</description>
				<pubDate>Thu, 11 Jul 2024 00:00:00 -0700</pubDate>
				<link>https://mttsptz.ai/2024/07/11/so-fresh-and-so-clean-clean.html</link>
				<guid isPermaLink="true">https://mttsptz.ai/2024/07/11/so-fresh-and-so-clean-clean.html</guid>
			</item>
		
			<item>
				<title>SFPL Explorer Map</title>
				<description>&lt;p&gt;I spent a lot of time at the West Portal library branch growing up, and when I went inside a few months ago for old time’s sake, the man behind the desk offered me a San Francisco Public Library Explorer Map. The map of San Francisco has a little gray circle for each of the city’s 27 libraries, at which one can pick up a unique sticker for that library.&lt;/p&gt;

&lt;p&gt;I’m currently unemployed and love silly challenges, so I decided to collect each sticker by bicycle. &lt;!--more--&gt; Last week, I finished!&lt;/p&gt;

&lt;div class=&quot;row d-flex flex-wrap align-items-center&quot;&gt;
    &lt;div class=&quot;col-sm-6&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2024-07-02-sfpl-explorer-map-12.jpg&quot; width=&quot;520&quot; height=&quot;392&quot; /&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class=&quot;col-sm-6&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2024-07-02-sfpl-explorer-map-40.jpg&quot; width=&quot;520&quot; height=&quot;392&quot; /&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;I began visiting libraries opportunistically – Visitation Valley, Portola, and Bayview after a morning of pickleball, Main Library after coffee in Hayes Valley, Eureka Valley after lunch in the Mission, etc.&lt;/p&gt;

&lt;div class=&quot;row d-flex flex-wrap align-items-center&quot;&gt;
    &lt;div class=&quot;col-sm-4&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2024-07-02-sfpl-explorer-map-1.jpg&quot; width=&quot;520&quot; height=&quot;391&quot; /&gt;
            &lt;div class=&quot;caption&quot;&gt;Visitacion Valley&lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class=&quot;col-sm-4&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2024-07-02-sfpl-explorer-map-2.jpg&quot; width=&quot;520&quot; height=&quot;391&quot; /&gt;
            &lt;div class=&quot;caption&quot;&gt;Portola&lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class=&quot;col-sm-4&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2024-07-02-sfpl-explorer-map-3.jpg&quot; width=&quot;520&quot; height=&quot;391&quot; /&gt;
            &lt;div class=&quot;caption&quot;&gt;Bayview&lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;row d-flex flex-wrap align-items-center&quot;&gt;
    &lt;div class=&quot;col-sm-4&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2024-07-02-sfpl-explorer-map-4.jpg&quot; width=&quot;520&quot; height=&quot;391&quot; /&gt;
            &lt;div class=&quot;caption&quot;&gt;Bernal Heights&lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class=&quot;col-sm-4&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2024-07-02-sfpl-explorer-map-5.jpg&quot; width=&quot;520&quot; height=&quot;391&quot; /&gt;
            &lt;div class=&quot;caption&quot;&gt;Glen Park&lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class=&quot;col-sm-4&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2024-07-02-sfpl-explorer-map-6.jpg&quot; width=&quot;520&quot; height=&quot;391&quot; /&gt;
            &lt;div class=&quot;caption&quot;&gt;Noe Valley&lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;row d-flex flex-wrap align-items-center&quot;&gt;
    &lt;div class=&quot;col-sm-6&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2024-07-02-sfpl-explorer-map-7.jpg&quot; width=&quot;520&quot; height=&quot;391&quot; /&gt;
            &lt;div class=&quot;caption&quot;&gt;Main Library&lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class=&quot;col-sm-6&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2024-07-02-sfpl-explorer-map-8.jpg&quot; width=&quot;520&quot; height=&quot;391&quot; /&gt;
            &lt;div class=&quot;caption&quot;&gt;Eureka Valley&lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;row d-flex flex-wrap align-items-center&quot;&gt;
    &lt;div class=&quot;col-sm-6&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2024-07-02-sfpl-explorer-map-9.jpg&quot; width=&quot;520&quot; height=&quot;391&quot; /&gt;
            &lt;div class=&quot;caption&quot;&gt;Mission&lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class=&quot;col-sm-6&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2024-07-02-sfpl-explorer-map-10.jpg&quot; width=&quot;520&quot; height=&quot;391&quot; /&gt;
            &lt;div class=&quot;caption&quot;&gt;Excelsior&lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;Eventually, I realized that I’d need to make a concerted effort if I ever wanted to finish. I pulled up Google Maps and the list of hours for each library and mapped out a route to do 18 over two days. It reminded me a bit of the &lt;a href=&quot;https://en.wikipedia.org/wiki/Travelling_salesman_problem&quot;&gt;traveling salesman problem&lt;/a&gt;, a textbook example when learning about computational complexity.&lt;/p&gt;

&lt;div class=&quot;row d-flex flex-wrap align-items-center&quot;&gt;
    &lt;div class=&quot;col-sm-4&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2024-07-02-sfpl-explorer-map-11.jpg&quot; width=&quot;520&quot; height=&quot;391&quot; /&gt;
            &lt;div class=&quot;caption&quot;&gt;Chinatown&lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class=&quot;col-sm-4&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2024-07-02-sfpl-explorer-map-13.jpg&quot; width=&quot;520&quot; height=&quot;391&quot; /&gt;
            &lt;div class=&quot;caption&quot;&gt;North Beach&lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class=&quot;col-sm-4&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2024-07-02-sfpl-explorer-map-16.jpg&quot; width=&quot;520&quot; height=&quot;391&quot; /&gt;
            &lt;div class=&quot;caption&quot;&gt;Marina&lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;row d-flex flex-wrap align-items-center&quot;&gt;
    &lt;div class=&quot;col-sm-4&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2024-07-02-sfpl-explorer-map-17.jpg&quot; width=&quot;520&quot; height=&quot;391&quot; /&gt;
            &lt;div class=&quot;caption&quot;&gt;Golden Gate Valley&lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class=&quot;col-sm-4&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2024-07-02-sfpl-explorer-map-18.jpg&quot; width=&quot;520&quot; height=&quot;391&quot; /&gt;
            &lt;div class=&quot;caption&quot;&gt;Presidio&lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class=&quot;col-sm-4&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2024-07-02-sfpl-explorer-map-19.jpg&quot; width=&quot;520&quot; height=&quot;391&quot; /&gt;
            &lt;div class=&quot;caption&quot;&gt;Western Addition&lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;row d-flex flex-wrap align-items-center&quot;&gt;
    &lt;div class=&quot;col-sm-6&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2024-07-02-sfpl-explorer-map-20.jpg&quot; width=&quot;520&quot; height=&quot;391&quot; /&gt;
            &lt;div class=&quot;caption&quot;&gt;Mission Bay&lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class=&quot;col-sm-6&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2024-07-02-sfpl-explorer-map-22.jpg&quot; width=&quot;520&quot; height=&quot;391&quot; /&gt;
            &lt;div class=&quot;caption&quot;&gt;Potrero&lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;row d-flex flex-wrap align-items-center&quot;&gt;
    &lt;div class=&quot;col-sm-4&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2024-07-02-sfpl-explorer-map-25.jpg&quot; width=&quot;520&quot; height=&quot;391&quot; /&gt;
            &lt;div class=&quot;caption&quot;&gt;Ocean View&lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class=&quot;col-sm-4&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2024-07-02-sfpl-explorer-map-26.jpg&quot; width=&quot;520&quot; height=&quot;391&quot; /&gt;
            &lt;div class=&quot;caption&quot;&gt;Ingleside&lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class=&quot;col-sm-4&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2024-07-02-sfpl-explorer-map-27.jpg&quot; width=&quot;520&quot; height=&quot;391&quot; /&gt;
            &lt;div class=&quot;caption&quot;&gt;Merced&lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;row d-flex flex-wrap align-items-center&quot;&gt;
    &lt;div class=&quot;col-sm-4&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2024-07-02-sfpl-explorer-map-28.jpg&quot; width=&quot;520&quot; height=&quot;391&quot; /&gt;
            &lt;div class=&quot;caption&quot;&gt;West Portal&lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class=&quot;col-sm-4&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2024-07-02-sfpl-explorer-map-29.jpg&quot; width=&quot;520&quot; height=&quot;391&quot; /&gt;
            &lt;div class=&quot;caption&quot;&gt;Parkside&lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class=&quot;col-sm-4&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2024-07-02-sfpl-explorer-map-30.jpg&quot; width=&quot;520&quot; height=&quot;391&quot; /&gt;
            &lt;div class=&quot;caption&quot;&gt;Ortega&lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;row d-flex flex-wrap align-items-center&quot;&gt;
    &lt;div class=&quot;col-sm-6&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2024-07-02-sfpl-explorer-map-31.jpg&quot; width=&quot;520&quot; height=&quot;391&quot; /&gt;
            &lt;div class=&quot;caption&quot;&gt;Sunset&lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class=&quot;col-sm-6&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2024-07-02-sfpl-explorer-map-32.jpg&quot; width=&quot;520&quot; height=&quot;391&quot; /&gt;
            &lt;div class=&quot;caption&quot;&gt;Anza&lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;row d-flex flex-wrap align-items-center&quot;&gt;
    &lt;div class=&quot;col-sm-6&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2024-07-02-sfpl-explorer-map-33.jpg&quot; width=&quot;520&quot; height=&quot;391&quot; /&gt;
            &lt;div class=&quot;caption&quot;&gt;Richmond&lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class=&quot;col-sm-6&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2024-07-02-sfpl-explorer-map-34.jpg&quot; width=&quot;520&quot; height=&quot;391&quot; /&gt;
            &lt;div class=&quot;caption&quot;&gt;Park&lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;The final boss was the Treasure Island bookmobile, open 2pm-6pm on Wednesdays. Since I’d biked to every branch and the main library, I wasn’t going to make an exception. Treasure Island is only accessible by bike from the east, so I biked over the Golden Gate Bridge and the Richmond - San Rafael Bridge to get to the eastern half of the Bay Bridge.&lt;/p&gt;

&lt;div class=&quot;row d-flex flex-wrap align-items-center&quot;&gt;
    &lt;div class=&quot;col-sm-4&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2024-07-02-sfpl-explorer-map-36.jpg&quot; width=&quot;520&quot; height=&quot;392&quot; /&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class=&quot;col-sm-4&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2024-07-02-sfpl-explorer-map-37.jpg&quot; width=&quot;520&quot; height=&quot;392&quot; /&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class=&quot;col-sm-4&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2024-07-02-sfpl-explorer-map-38.jpg&quot; width=&quot;520&quot; height=&quot;392&quot; /&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;imagebox&quot;&gt;
    &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2024-07-02-sfpl-explorer-map-39.jpg&quot; width=&quot;520&quot; height=&quot;391&quot; /&gt;
    &lt;div class=&quot;caption&quot;&gt;Treasure Island&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;The library buildings have their own stories, too, and some of the librarians were eager to share the specifics and history of their branch. When I told one about my mission to bike to every branch, she exclaimed, “over my dead body!” OK, then!&lt;/p&gt;

&lt;div class=&quot;row d-flex flex-wrap align-items-center&quot;&gt;
    &lt;div class=&quot;col-sm-6&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2024-07-02-sfpl-explorer-map-23.jpg&quot; width=&quot;520&quot; height=&quot;392&quot; /&gt;
            &lt;div class=&quot;caption&quot;&gt;Potrero view&lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class=&quot;col-sm-6&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2024-07-02-sfpl-explorer-map-35.jpg&quot; width=&quot;520&quot; height=&quot;392&quot; /&gt;
            &lt;div class=&quot;caption&quot;&gt;Park ceiling, reminiscent of Stonestown&apos;s&lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;In addition to having a great story at the end of this quest, I also enjoyed exploring the city from a different perspective, even if that perspective sometimes involved a brutal hill.&lt;/p&gt;

&lt;p&gt;This silly challenge was a lot of fun, and I need to come up with another one soon!&lt;/p&gt;
</description>
				<pubDate>Tue, 02 Jul 2024 00:00:00 -0700</pubDate>
				<link>https://mttsptz.ai/2024/07/02/sfpl-explorer-map.html</link>
				<guid isPermaLink="true">https://mttsptz.ai/2024/07/02/sfpl-explorer-map.html</guid>
			</item>
		
			<item>
				<title>Working with me</title>
				<description>&lt;p&gt;Every few years, I update a document that lists my values, my &lt;em&gt;modus operandi&lt;/em&gt;, and a few fun facts.&lt;/p&gt;

&lt;!--more--&gt;

&lt;p&gt;Here’s my latest, written at Vanta in March of 2023.&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;what-i-value&quot;&gt;What I value&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Delivering customer value&lt;/strong&gt;: Vanta exists because of its customers: they pay us to solve real problems for them, and they can just as easily take their business elsewhere if we’re not meeting their needs. In order to realize Vanta’s potential, we must deeply understand our customers’ needs and brutally prioritize what will deliver the most impact for them. In product development, this is everyone’s responsibility, not just the PM’s.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Turning ideas into impact&lt;/strong&gt;: In software, anything is possible – that’s why it’s such an exciting field! We must turn those ideas into tangible impact for our customers. We need clear next steps with dates/deadlines in our work as a forcing function to prioritize the right things and move them forward. While software development is a creative endeavor, teams benefit from clear direction and clear expectations as long as they understand the intent behind them and the impact they can deliver.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Providing context&lt;/strong&gt;: I default to sharing as much of what I’m seeing as I can with my team, and I expect that context to cascade down through the organization. Context is empowering and leads to better customer outcomes when given to smart people with experience in their specific focus areas. The same applies for questions via Q&amp;amp;A or office hours – I’m an open book, and if I can’t talk about something, I’ll say so.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Realizing individual potential&lt;/strong&gt;: I believe in hiring talented people that have a growth mindset and stretching them to help them realize their potential. In practice, I encourage my teammates to take on new responsibilities, give them feedback, and support them however I can. I’ve found that people often surprise themselves with how quickly they’re able to take on new responsibilities and deliver more impact. I also expect individuals to own their career growth – I will not be more invested in someone’s career than they are.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Giving and getting feedback&lt;/strong&gt;: I give direct feedback, I expect to receive direct feedback, and I encourage my teammates to do the same. It’s the fastest way to build trust and to get to better outcomes for our customers and for our business. Please don’t be shy.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Surfacing the best ideas&lt;/strong&gt;: I believe that incorporating a diverse set of perspectives into decision making leads to better products and better outcomes. It’s everyone’s responsibility, especially leaders’, to create an inclusive culture where people feel comfortable surfacing their ideas and know that their ideas will be heard.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Bringing our best selves to work&lt;/strong&gt;: We can’t control everything about our jobs, much less our lives, but we can control who shows up at our desk in the morning. Let’s bring a positive attitude, celebrate our teammates’ wins, help our teammates grow, work hard, push ourselves, and always be learning. In private, I’m always available to support my teammates in any way, professionally or personally.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;how-i-work&quot;&gt;How I work&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;I believe that &lt;strong&gt;everything is a choice&lt;/strong&gt; and that there are few truly immutable constraints. I operate best when discussing tradeoffs rather than the merits of a single idea. When reviewing proposals for larger decisions, I expect to see a framework to evaluate success and alternatives considered.&lt;/li&gt;
  &lt;li&gt;I &lt;strong&gt;prefer to try new things and retrospect&lt;/strong&gt; instead of finding ideal solutions, particularly for team processes. Our work environment changes frequently, and existing processes grow stale quickly. Let’s try new things and schedule time to reflect rather than seek perfection.&lt;/li&gt;
  &lt;li&gt;I &lt;strong&gt;prefer to be overinformed&lt;/strong&gt;, as long as it doesn’t create extra work. I like to lurk on noisy mailing lists and Slack channels, and I like to follow along with project plans. It’s an opportunity for me to build context.&lt;/li&gt;
  &lt;li&gt;I have a family with small children, and I’ve found that I’m at my best both at work and at home when I &lt;strong&gt;compartmentalize my time&lt;/strong&gt; to be present and focus 100% on whatever I’m doing. In practice, this means that I’m offline for dinner and kids’ bedtime and back online later in the evening, and I work in a couple of focused chunks on the weekend. This also means that I consume way more caffeine than I did a few years ago. Not a coincidence.&lt;/li&gt;
  &lt;li&gt;I manage my own interrupts, and I want to know if something needs my attention. Please &lt;strong&gt;don’t be shy if you need my attention&lt;/strong&gt;. I usually respond quickest to Slack, and I welcome a text or phone call if there’s a true emergency.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;fun-facts&quot;&gt;Fun facts&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;🌉 I grew up in San Francisco, lived in New York for ten years, and moved back in 2019.&lt;/li&gt;
  &lt;li&gt;👨‍👩‍👧‍👦 L and I have two little kids: L and F.&lt;/li&gt;
  &lt;li&gt;🗽 With a few others, I opened Dropbox NYC in 2014 and was its first site lead for five years.&lt;/li&gt;
  &lt;li&gt;🚴 I prefer to bicycle to work whenever I can.&lt;/li&gt;
  &lt;li&gt;🖖 Until I watched all of DS9, TNG was clearly the best Star Trek. Now I’m not so sure. I’m still working my way through Voyager, and some of the new Trek is quite good, too.&lt;/li&gt;
  &lt;li&gt;🎸 Performing live music is one of my favorite things to do, and I wish I could do it more often!&lt;/li&gt;
&lt;/ul&gt;

&lt;div class=&quot;row d-flex flex-wrap align-items-center&quot;&gt;
    &lt;div class=&quot;col-sm-4&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2019-12-20-working-with-me-2.jpg&quot; width=&quot;520&quot; height=&quot;390&quot; /&gt;
            &lt;div class=&quot;caption&quot;&gt;F = asleep&lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class=&quot;col-sm-4&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2019-12-20-working-with-me-1.jpg&quot; width=&quot;390&quot; height=&quot;520&quot; /&gt;
            &lt;div class=&quot;caption&quot;&gt;F = asleep&lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class=&quot;col-sm-4&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2019-12-20-working-with-me-3.jpg&quot; width=&quot;520&quot; height=&quot;307&quot; /&gt;
            &lt;div class=&quot;caption&quot;&gt;F = asleep&lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;row d-flex flex-wrap align-items-center&quot;&gt;
    &lt;div class=&quot;col-sm-4&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2019-12-20-working-with-me-4.jpg&quot; width=&quot;390&quot; height=&quot;520&quot; /&gt;
            &lt;div class=&quot;caption&quot;&gt;Cookies from my Dropbox NYC going-away party&lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class=&quot;col-sm-4&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2019-12-20-working-with-me-5.jpg&quot; width=&quot;347&quot; height=&quot;520&quot; /&gt;
            &lt;div class=&quot;caption&quot;&gt;I played in a Pearl Jam cover band in New York for many years&lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class=&quot;col-sm-4&quot;&gt;
        &lt;div class=&quot;imagebox&quot;&gt;
            &lt;img class=&quot;img-responsive&quot; src=&quot;https://mttsptz.ai/images/2019-12-20-working-with-me-6.jpg&quot; width=&quot;390&quot; height=&quot;520&quot; /&gt;
            &lt;div class=&quot;caption&quot;&gt;SF bike commutes are warmer than some NYC bike commutes&lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;Note: I’m wearing a hat in these photos more than I normally do. Also, I swear that I have other hats.&lt;/p&gt;
</description>
				<pubDate>Sat, 04 Mar 2023 00:00:00 -0800</pubDate>
				<link>https://mttsptz.ai/2023/03/04/working-with-me.html</link>
				<guid isPermaLink="true">https://mttsptz.ai/2023/03/04/working-with-me.html</guid>
			</item>
		
	</channel>
</rss>
