<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
  <title>James Li&#39;s Website</title>
  <subtitle>Latest posts from James</subtitle>
  <link href="https://james.li/feed.xml" rel="self" />
  <link href="https://james.li/" />
  <updated>2026-05-18T00:00:00Z</updated>
  <id>https://james.li/</id>
  <author>
    <name>James Li</name>
    <email>me@james.li</email>
  </author>
  <entry>
    <title>Learning to slide my Miata</title>
    <link href="https://james.li/2026/oversteer/" />
    <updated>2026-05-18T00:00:00Z</updated>
    <id>https://james.li/2026/oversteer/</id>
    <content type="html">&lt;p&gt;In my opinion, the coolest thing one can do with a car is to operate it safely, responsibly, and efficiently to transport people and goods where they need to go.&lt;/p&gt;
&lt;p&gt;The second-coolest thing is smooth and controlled oversteer (a.k.a. sliding of the rear wheels).&lt;/p&gt;
&lt;p&gt;I think I&#39;ve gotten pretty decent at the first coolest thing, so lately I&#39;ve been working on learning how to do the second.&lt;/p&gt;
&lt;h2 id=&quot;last-year&#39;s-gglc-autocross-at-salinas-airport&quot; tabindex=&quot;-1&quot;&gt;Last year&#39;s GGLC autocross at Salinas Airport&lt;/h2&gt;
&lt;p&gt;Autocross is a motorsports format where the hosts set up a course using traffic cones in a large, empty parking lot or airfield. Then, drivers drive their cars one at a time as quickly as possible through the course. Typically, each run is timed, and a penalty is assessed for any cones hit. It&#39;s a great entry to performance driving because the barrier to entry is really low.&lt;/p&gt;
&lt;p&gt;Last year, I attended a couple of autocross events hosted by the Golden Gate Lotus Club (GGLC) at Salinas Airport. (Thanks to Alvaro for going with me, and Will for inviting us!)&lt;/p&gt;
&lt;p&gt;The &lt;a href=&quot;https://james.li/protege5/#adventuring&quot;&gt;only other time I&#39;d autocrossed before was in 2018&lt;/a&gt;, so I had a lot to learn. GGLC runs a great event and I really enjoyed practicing driving the Miata at the limit.&lt;/p&gt;
&lt;p&gt;Although I got pretty comfortable braking, cornering, and accelerating hard, I had a tough time catching and correcting slides. In autocross, intentional drifting is generally frowned upon, and there are course workers standing around to reset cones. So when things got too out of hand, I defaulted to braking hard (&amp;quot;in a spin, both feet in&amp;quot;), since this is safer for the course workers than trying to countersteer and save the slide if you don&#39;t know what you&#39;re doing.&lt;/p&gt;
&lt;figure class=&quot;img-1 videoloop&quot;&gt;&lt;video src=&quot;https://james.li/media/2026/oversteer/2025-08-31.mp4&quot; autoplay=&quot;&quot; muted=&quot;&quot; loop=&quot;&quot; playsinline=&quot;&quot; controls=&quot;&quot; preload=&quot;auto&quot; aria-labelledby=&quot;vl-1-cap&quot;&gt;&lt;/video&gt;&lt;figcaption id=&quot;vl-1-cap&quot;&gt;&lt;p&gt;Failing to catch a slide. I correct too late and too much, and then when I lift off the throttle and brake, this causes the car to snap side to side.&lt;/p&gt;
&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;The best I could do was catch small moments of oversteer like this one:&lt;/p&gt;
&lt;figure class=&quot;img-1 videoloop&quot;&gt;&lt;video src=&quot;https://james.li/media/2026/oversteer/2025-08-31-2.mp4&quot; autoplay=&quot;&quot; muted=&quot;&quot; loop=&quot;&quot; playsinline=&quot;&quot; controls=&quot;&quot; preload=&quot;auto&quot; aria-labelledby=&quot;vl-2-cap&quot;&gt;&lt;/video&gt;&lt;figcaption id=&quot;vl-2-cap&quot;&gt;&lt;p&gt;Catching a small slide.&lt;/p&gt;
&lt;/figcaption&gt;&lt;/figure&gt;
&lt;h2 id=&quot;this-month&#39;s-speedsf-autocross-at-the-sonoma-raceway-paddock&quot; tabindex=&quot;-1&quot;&gt;This month&#39;s SpeedSF autocross at the Sonoma Raceway paddock&lt;/h2&gt;
&lt;p&gt;A couple of weeks ago, I attended the SpeedSF autocross event at the Sonoma Raceway paddock. Thanks to Patrick for inviting me to this event as well as the drift event earlier in the year!&lt;/p&gt;
&lt;p&gt;SpeedSF&#39;s autocross is a lot less formal than most other autocross events. There&#39;s no timing, no penalties for hitting cones, no course workers to reset the cones, and no fixed number of runs. You get to drive the course as many times as you want, and intentional oversteer is allowed. This makes it the ideal venue for learning to get a little sideways.&lt;/p&gt;
&lt;figure src=&quot;/media/2026/oversteer/IMG_1055.jpeg&quot; alt=&quot;&quot; class=&quot;img-1-med&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/oversteer/IMG_1055.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/jNyzswhkV4-600.webp 600w, https://james.li/img/jNyzswhkV4-1200.webp 1200w, https://james.li/img/jNyzswhkV4-5712.webp 5712w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/jNyzswhkV4-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-1-med&quot; width=&quot;5712&quot; height=&quot;4284&quot; srcset=&quot;https://james.li/img/jNyzswhkV4-600.jpeg 600w, https://james.li/img/jNyzswhkV4-1200.jpeg 1200w, https://james.li/img/jNyzswhkV4-5712.jpeg 5712w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;My goal for the day was to get more comfortable catching oversteer and maintaining control.&lt;/p&gt;
&lt;p&gt;At the beginning of the day, I wasn&#39;t able to catch any big slides. By the end of the day, I was able to maintain power oversteer briefly and then exit mostly smoothly, as well as intentionally use oversteer under braking to help rotate the car into corners. I still have a lot to learn, but I&#39;m pretty proud of this progress!&lt;/p&gt;
&lt;p&gt;The clips below focus on the two big turns which provided the best opportunities for practicing power oversteer: 1) the left hander near the beginning of the course, and 2) the right hander near the end of the course.&lt;/p&gt;
&lt;figure src=&quot;/media/2026/oversteer/auto-x-fri-map.png&quot; alt=&quot;&quot; class=&quot;img-1&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/oversteer/auto-x-fri-map.png&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/z_LVY8oK64-600.webp 600w, https://james.li/img/z_LVY8oK64-1200.webp 1200w, https://james.li/img/z_LVY8oK64-1386.webp 1386w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/z_LVY8oK64-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-1&quot; width=&quot;1386&quot; height=&quot;826&quot; srcset=&quot;https://james.li/img/z_LVY8oK64-600.jpeg 600w, https://james.li/img/z_LVY8oK64-1200.jpeg 1200w, https://james.li/img/z_LVY8oK64-1386.jpeg 1386w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;figcaption&gt;Course map, with the two big turns marked in red.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;The clips are ordered from early in the day to later in the day, showing how I got better with more practice.&lt;/p&gt;
&lt;h3 id=&quot;1---left-hander&quot; tabindex=&quot;-1&quot;&gt;1 - Left hander&lt;/h3&gt;
&lt;figure class=&quot;img-1 videoloop&quot;&gt;&lt;video src=&quot;https://james.li/media/2026/oversteer/GH017127.MP4&quot; autoplay=&quot;&quot; muted=&quot;&quot; loop=&quot;&quot; playsinline=&quot;&quot; controls=&quot;&quot; preload=&quot;auto&quot; aria-labelledby=&quot;vl-3-cap&quot;&gt;&lt;/video&gt;&lt;figcaption id=&quot;vl-3-cap&quot;&gt;&lt;p&gt;An early, failed attempt at smooth power oversteer on this turn. When the slide begins, I get scared and get off the throttle, resulting in the side-to-side snapping behavior.&lt;/p&gt;
&lt;/figcaption&gt;&lt;/figure&gt;
&lt;figure class=&quot;img-1 videoloop&quot;&gt;&lt;video src=&quot;https://james.li/media/2026/oversteer/GH017138.MP4&quot; autoplay=&quot;&quot; muted=&quot;&quot; loop=&quot;&quot; playsinline=&quot;&quot; controls=&quot;&quot; preload=&quot;auto&quot; aria-labelledby=&quot;vl-4-cap&quot;&gt;&lt;/video&gt;&lt;figcaption id=&quot;vl-4-cap&quot;&gt;&lt;p&gt;The opposite problem happens here: I stay on the gas way too much and spin as a result.&lt;/p&gt;
&lt;/figcaption&gt;&lt;/figure&gt;
&lt;figure class=&quot;img-1 videoloop&quot;&gt;&lt;video src=&quot;https://james.li/media/2026/oversteer/GH017145.MP4&quot; autoplay=&quot;&quot; muted=&quot;&quot; loop=&quot;&quot; playsinline=&quot;&quot; controls=&quot;&quot; preload=&quot;auto&quot; aria-labelledby=&quot;vl-5-cap&quot;&gt;&lt;/video&gt;&lt;figcaption id=&quot;vl-5-cap&quot;&gt;&lt;p&gt;Getting smoother, learning to let the wheel self-steer and be a bit looser with my hands.&lt;/p&gt;
&lt;/figcaption&gt;&lt;/figure&gt;
&lt;figure class=&quot;img-1 videoloop&quot;&gt;&lt;video src=&quot;https://james.li/media/2026/oversteer/GH017166.MP4&quot; autoplay=&quot;&quot; muted=&quot;&quot; loop=&quot;&quot; playsinline=&quot;&quot; controls=&quot;&quot; preload=&quot;auto&quot; aria-labelledby=&quot;vl-6-cap&quot;&gt;&lt;/video&gt;&lt;figcaption id=&quot;vl-6-cap&quot;&gt;&lt;p&gt;This one is a pretty long and controlled slide!&lt;/p&gt;
&lt;/figcaption&gt;&lt;/figure&gt;
&lt;figure class=&quot;img-1 videoloop&quot;&gt;&lt;video src=&quot;https://james.li/media/2026/oversteer/GH017176.MP4&quot; autoplay=&quot;&quot; muted=&quot;&quot; loop=&quot;&quot; playsinline=&quot;&quot; controls=&quot;&quot; preload=&quot;auto&quot; aria-labelledby=&quot;vl-7-cap&quot;&gt;&lt;/video&gt;&lt;figcaption id=&quot;vl-7-cap&quot;&gt;&lt;p&gt;By the end of the day, I&#39;m a lot smoother than I was at the start!&lt;/p&gt;
&lt;/figcaption&gt;&lt;/figure&gt;
&lt;h3 id=&quot;2---right-hander&quot; tabindex=&quot;-1&quot;&gt;2 - Right hander&lt;/h3&gt;
&lt;p&gt;Jumping back to the morning:&lt;/p&gt;
&lt;figure class=&quot;img-1 videoloop&quot;&gt;&lt;video src=&quot;https://james.li/media/2026/oversteer/GH017128-2.MP4&quot; autoplay=&quot;&quot; muted=&quot;&quot; loop=&quot;&quot; playsinline=&quot;&quot; controls=&quot;&quot; preload=&quot;auto&quot; aria-labelledby=&quot;vl-8-cap&quot;&gt;&lt;/video&gt;&lt;figcaption id=&quot;vl-8-cap&quot;&gt;&lt;p&gt;Early attempt. I get scared when my car starts pointing towards the cones (and the blue Ford Maverick coming the other way), so I let off the gas, which causes the snap back around to the left.&lt;/p&gt;
&lt;/figcaption&gt;&lt;/figure&gt;
&lt;figure class=&quot;img-1 videoloop&quot;&gt;&lt;video src=&quot;https://james.li/media/2026/oversteer/GH017136.MP4&quot; autoplay=&quot;&quot; muted=&quot;&quot; loop=&quot;&quot; playsinline=&quot;&quot; controls=&quot;&quot; preload=&quot;auto&quot; aria-labelledby=&quot;vl-9-cap&quot;&gt;&lt;/video&gt;&lt;figcaption id=&quot;vl-9-cap&quot;&gt;&lt;p&gt;Another failed attempt. I stay on the gas a little bit longer than before, which is good, but then I get scared again, let off the gas, and hit the brakes, causing the leftwards snap again.&lt;/p&gt;
&lt;/figcaption&gt;&lt;/figure&gt;
&lt;figure class=&quot;img-1 videoloop&quot;&gt;&lt;video src=&quot;https://james.li/media/2026/oversteer/GH017150.MP4&quot; autoplay=&quot;&quot; muted=&quot;&quot; loop=&quot;&quot; playsinline=&quot;&quot; controls=&quot;&quot; preload=&quot;auto&quot; aria-labelledby=&quot;vl-10-cap&quot;&gt;&lt;/video&gt;&lt;figcaption id=&quot;vl-10-cap&quot;&gt;&lt;p&gt;Here, I do a pretty good job maintaining the slide initially, but let off the gas too much on the way out, so the exit is pretty jerky.&lt;/p&gt;
&lt;/figcaption&gt;&lt;/figure&gt;
&lt;figure class=&quot;img-1 videoloop&quot;&gt;&lt;video src=&quot;https://james.li/media/2026/oversteer/GH017174-2.MP4&quot; autoplay=&quot;&quot; muted=&quot;&quot; loop=&quot;&quot; playsinline=&quot;&quot; controls=&quot;&quot; preload=&quot;auto&quot; aria-labelledby=&quot;vl-11-cap&quot;&gt;&lt;/video&gt;&lt;figcaption id=&quot;vl-11-cap&quot;&gt;&lt;p&gt;Lots of improvement by late afternoon. I&#39;m able to catch, maintain, and exit pretty smoothly!&lt;/p&gt;
&lt;/figcaption&gt;&lt;/figure&gt;
&lt;h3 id=&quot;best-runs-of-the-day&quot; tabindex=&quot;-1&quot;&gt;Best runs of the day&lt;/h3&gt;
&lt;p&gt;I had some pretty memorable moments and clean runs in the afternoon:&lt;/p&gt;
&lt;figure class=&quot;img-1 videoloop&quot;&gt;&lt;video src=&quot;https://james.li/media/2026/oversteer/GH017144.MP4&quot; autoplay=&quot;&quot; muted=&quot;&quot; loop=&quot;&quot; playsinline=&quot;&quot; controls=&quot;&quot; preload=&quot;auto&quot; aria-labelledby=&quot;vl-12-cap&quot;&gt;&lt;/video&gt;&lt;figcaption id=&quot;vl-12-cap&quot;&gt;&lt;p&gt;Good slide through the left hander, and I manage to swing the weight through the next set of turns into the following hairpin. This wasn&#39;t all totally intentional, but it worked out! I maintain good control in the right hander too with just a little bit of power oversteer. Patrick&#39;s friend Lauren is in the passenger seat providing positive feedback.&lt;/p&gt;
&lt;/figcaption&gt;&lt;/figure&gt;
&lt;figure class=&quot;img-1 videoloop&quot;&gt;&lt;video src=&quot;https://james.li/media/2026/oversteer/GH017174.MP4&quot; autoplay=&quot;&quot; muted=&quot;&quot; loop=&quot;&quot; playsinline=&quot;&quot; controls=&quot;&quot; preload=&quot;auto&quot; aria-labelledby=&quot;vl-13-cap&quot;&gt;&lt;/video&gt;&lt;figcaption id=&quot;vl-13-cap&quot;&gt;&lt;p&gt;After my first (accidental) time using weight transfer to swing into this hairpin (see clip above), I practiced more and soon got pretty comfortable using braking to intentionally achieve this rotation.&lt;/p&gt;
&lt;/figcaption&gt;&lt;/figure&gt;
&lt;figure class=&quot;img-1 videoloop&quot;&gt;&lt;video src=&quot;https://james.li/media/2026/oversteer/GH017161-full.MP4&quot; autoplay=&quot;&quot; muted=&quot;&quot; loop=&quot;&quot; playsinline=&quot;&quot; controls=&quot;&quot; preload=&quot;auto&quot; aria-labelledby=&quot;vl-14-cap&quot;&gt;&lt;/video&gt;&lt;figcaption id=&quot;vl-14-cap&quot;&gt;&lt;p&gt;Here&#39;s a full run through the whole course. I think this is one of my overall best runs of the day in terms of oversteer control (though there&#39;s still room for improvement). &lt;a href=&quot;https://www.youtube.com/watch?v=uTmCuedyjyI&quot;&gt;Full resolution on YouTube here.&lt;/a&gt;&lt;/p&gt;
&lt;/figcaption&gt;&lt;/figure&gt;
&lt;h2 id=&quot;conclusions&quot; tabindex=&quot;-1&quot;&gt;Conclusions&lt;/h2&gt;
&lt;p&gt;I&#39;m really proud of my progress in learning to control oversteer!&lt;/p&gt;
&lt;p&gt;I still have a lot to learn as well. I don&#39;t necessarily intend to do full-on drifting, but I do really want to continue getting better with oversteer so I can safely and comfortably drive at (and over) the limit in my future performance driving.&lt;/p&gt;
&lt;p&gt;I really appreciate that SpeedSF is able to run events like these, and I&#39;m looking forward to going to more of these in the future.&lt;/p&gt;
&lt;p&gt;I&#39;ll have to decide how I want to deal with replacing tires, since I&#39;m definitely going to need new tires during the next event and I don&#39;t have a great way to store or transport tires/wheels.&lt;/p&gt;
&lt;figure src=&quot;/media/2026/oversteer/IMG_1083.jpeg&quot; alt=&quot;&quot; class=&quot;img-1&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/oversteer/IMG_1083.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/D0QR4PoE6b-600.webp 600w, https://james.li/img/D0QR4PoE6b-1200.webp 1200w, https://james.li/img/D0QR4PoE6b-5712.webp 5712w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/D0QR4PoE6b-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-1&quot; width=&quot;5712&quot; height=&quot;4284&quot; srcset=&quot;https://james.li/img/D0QR4PoE6b-600.jpeg 600w, https://james.li/img/D0QR4PoE6b-1200.jpeg 1200w, https://james.li/img/D0QR4PoE6b-5712.jpeg 5712w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;Thanks again to Patrick for inviting me out, Bobbie for introducing us, and to Patrick&#39;s friends (plus Gordon from Merced) for helping make it such a fun day.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Modeling and 3D printing a replacement porch light body for our van</title>
    <link href="https://james.li/2026/van-porch-light/" />
    <updated>2026-05-13T00:00:00Z</updated>
    <id>https://james.li/2026/van-porch-light/</id>
    <content type="html">&lt;p&gt;A few months ago, I noticed that the passenger side exterior porch light on our Winnebago Solis 59P camper van was starting to peel and lift away from the van body at the leading edge.&lt;/p&gt;
&lt;figure src=&quot;/media/2026/van-porch-light/IMG_9315.jpeg&quot; alt=&quot;&quot; class=&quot;img-1&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/van-porch-light/IMG_9315.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/xFtDxAbUz9-600.webp 600w, https://james.li/img/xFtDxAbUz9-1200.webp 1200w, https://james.li/img/xFtDxAbUz9-5712.webp 5712w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/xFtDxAbUz9-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-1&quot; width=&quot;5712&quot; height=&quot;4284&quot; srcset=&quot;https://james.li/img/xFtDxAbUz9-600.jpeg 600w, https://james.li/img/xFtDxAbUz9-1200.jpeg 1200w, https://james.li/img/xFtDxAbUz9-5712.jpeg 5712w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;figcaption&gt;Unfortunately I didn&#39;t take a great picture, but the separation is circled here.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;If you have this problem, you could probably just use some non-silicone sealant like Lexel to seal the gap, rather than taking the whole thing apart like I did.&lt;/p&gt;
&lt;p&gt;When I tried to pry off the outer cover of the porch light, the whole thing came off because the brittle plastic body of the light broke at the screw mounts. I think the van body is slightly curved, so the porch light is in bending when mounted, and the stress and environmental exposure over time caused the plastic at the front screw mount to break.&lt;/p&gt;
&lt;figure src=&quot;/media/2026/van-porch-light/IMG_9430.jpeg&quot; alt=&quot;&quot; class=&quot;img-1&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/van-porch-light/IMG_9430.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/unlqoBqkGa-600.webp 600w, https://james.li/img/unlqoBqkGa-1200.webp 1200w, https://james.li/img/unlqoBqkGa-5712.webp 5712w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/unlqoBqkGa-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-1&quot; width=&quot;5712&quot; height=&quot;4284&quot; srcset=&quot;https://james.li/img/unlqoBqkGa-600.jpeg 600w, https://james.li/img/unlqoBqkGa-1200.jpeg 1200w, https://james.li/img/unlqoBqkGa-5712.jpeg 5712w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;figcaption&gt;Broken plastic screw mounts circled here&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;The porch light part number is &lt;strong&gt;Optronics ILL70CBAWNP&lt;/strong&gt;. It&#39;s &lt;a href=&quot;https://www.amazon.com/Optronics-ILL70CBAWNP-Opti-Brite-Interior-Awning/dp/B01JAYY6VA&quot;&gt;readily available on Amazon&lt;/a&gt; for $26 at time of writing. But my actual light worked fine, and only the plastic part was broken, so it seemed a little wasteful to replace the whole thing. I had some free time, and a 3D printer at home, and I felt I could use some CAD practice, so I decided to try to model and print the part I needed.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://james.li/media/2026/van-porch-light/Optronics-ILL70CBAWNP-porch-light-body.stl&quot;&gt;For anybody who just wants to print their own, my final STL file can be downloaded here.&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I printed in PETG for temperature resistance and toughness. PLA is not a good choice for this due to its lower melting point.&lt;/p&gt;
&lt;figure src=&quot;/media/2026/van-porch-light/IMG_9640.jpeg&quot; alt=&quot;&quot; class=&quot;img-1&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/van-porch-light/IMG_9640.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/7Vr5LWEoEX-600.webp 600w, https://james.li/img/7Vr5LWEoEX-1200.webp 1200w, https://james.li/img/7Vr5LWEoEX-4032.webp 4032w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/7Vr5LWEoEX-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-1&quot; width=&quot;4032&quot; height=&quot;3024&quot; srcset=&quot;https://james.li/img/7Vr5LWEoEX-600.jpeg 600w, https://james.li/img/7Vr5LWEoEX-1200.jpeg 1200w, https://james.li/img/7Vr5LWEoEX-4032.jpeg 4032w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;figcaption&gt;The final print (bottom), next to the original part (top).&lt;/figcaption&gt;&lt;/figure&gt;
&lt;figure src=&quot;/media/2026/van-porch-light/IMG_9623.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/van-porch-light/IMG_9623.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/qBYanEDnRj-600.webp 600w, https://james.li/img/qBYanEDnRj-1200.webp 1200w, https://james.li/img/qBYanEDnRj-4032.webp 4032w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/qBYanEDnRj-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot; width=&quot;4032&quot; height=&quot;3024&quot; srcset=&quot;https://james.li/img/qBYanEDnRj-600.jpeg 600w, https://james.li/img/qBYanEDnRj-1200.jpeg 1200w, https://james.li/img/qBYanEDnRj-4032.jpeg 4032w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;figcaption&gt;The LED unit mounts to the plastic body using two small screws.&lt;/figcaption&gt;&lt;/figure&gt;&lt;figure src=&quot;/media/2026/van-porch-light/IMG_9624.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/van-porch-light/IMG_9624.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/kQfwIB-CZz-600.webp 600w, https://james.li/img/kQfwIB-CZz-1200.webp 1200w, https://james.li/img/kQfwIB-CZz-4032.webp 4032w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/kQfwIB-CZz-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot; width=&quot;4032&quot; height=&quot;3024&quot; srcset=&quot;https://james.li/img/kQfwIB-CZz-600.jpeg 600w, https://james.li/img/kQfwIB-CZz-1200.jpeg 1200w, https://james.li/img/kQfwIB-CZz-4032.jpeg 4032w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;figcaption&gt;Then, after the plastic body is mounted to the van, the chrome-finish plastic cover snaps over the plastic body.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;h2 id=&quot;modeling-and-printing&quot; tabindex=&quot;-1&quot;&gt;Modeling and printing&lt;/h2&gt;
&lt;p&gt;This was actually my first time modeling a part to match an existing real-world part using photos to match curves and rounded shapes.&lt;/p&gt;
&lt;p&gt;First, I took photos of each side of the part (front, side, top), using the 5x telephoto lens on my iPhone to try to minimize distortion. Here are the photos after cropping:&lt;/p&gt;
&lt;figure src=&quot;/media/2026/van-porch-light/IMG_9614.jpeg&quot; alt=&quot;&quot; class=&quot;img-1&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/van-porch-light/IMG_9614.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/i5BTsS-eAa-600.webp 600w, https://james.li/img/i5BTsS-eAa-1200.webp 1200w, https://james.li/img/i5BTsS-eAa-3423.webp 3423w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/i5BTsS-eAa-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-1&quot; width=&quot;3423&quot; height=&quot;620&quot; srcset=&quot;https://james.li/img/i5BTsS-eAa-600.jpeg 600w, https://james.li/img/i5BTsS-eAa-1200.jpeg 1200w, https://james.li/img/i5BTsS-eAa-3423.jpeg 3423w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;figcaption&gt;Top&lt;/figcaption&gt;&lt;/figure&gt;
&lt;figure src=&quot;/media/2026/van-porch-light/IMG_9619.jpeg&quot; alt=&quot;&quot; class=&quot;img-1&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/van-porch-light/IMG_9619.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/flk_FSnMYZ-600.webp 600w, https://james.li/img/flk_FSnMYZ-1200.webp 1200w, https://james.li/img/flk_FSnMYZ-3597.webp 3597w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/flk_FSnMYZ-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-1&quot; width=&quot;3597&quot; height=&quot;468&quot; srcset=&quot;https://james.li/img/flk_FSnMYZ-600.jpeg 600w, https://james.li/img/flk_FSnMYZ-1200.jpeg 1200w, https://james.li/img/flk_FSnMYZ-3597.jpeg 3597w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;figcaption&gt;Front&lt;/figcaption&gt;&lt;/figure&gt;
&lt;figure src=&quot;/media/2026/van-porch-light/IMG_9617.jpeg&quot; alt=&quot;&quot; class=&quot;img-1-med&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/van-porch-light/IMG_9617.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/UHNlCoOLoJ-600.webp 600w, https://james.li/img/UHNlCoOLoJ-982.webp 982w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/UHNlCoOLoJ-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-1-med&quot; width=&quot;982&quot; height=&quot;550&quot; srcset=&quot;https://james.li/img/UHNlCoOLoJ-600.jpeg 600w, https://james.li/img/UHNlCoOLoJ-982.jpeg 982w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;figcaption&gt;Side&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;I then imported them into my sketches in OnShape and started modeling the geometry, using both the photos and real-world measurements for reference. The photos were useful for capturing angles and shapes, but I found I couldn&#39;t rely on the photos for accurate dimensions.&lt;/p&gt;
&lt;figure src=&quot;/media/2026/van-porch-light/onshape.jpeg&quot; alt=&quot;&quot; class=&quot;img-1&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/van-porch-light/onshape.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/Os5Y0GFsJ5-600.webp 600w, https://james.li/img/Os5Y0GFsJ5-1200.webp 1200w, https://james.li/img/Os5Y0GFsJ5-4064.webp 4064w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/Os5Y0GFsJ5-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-1&quot; width=&quot;4064&quot; height=&quot;2240&quot; srcset=&quot;https://james.li/img/Os5Y0GFsJ5-600.jpeg 600w, https://james.li/img/Os5Y0GFsJ5-1200.jpeg 1200w, https://james.li/img/Os5Y0GFsJ5-4064.jpeg 4064w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;figure src=&quot;/media/2026/van-porch-light/onshape-2.jpeg&quot; alt=&quot;&quot; class=&quot;img-1&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/van-porch-light/onshape-2.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/TdAvtgWr-9-600.webp 600w, https://james.li/img/TdAvtgWr-9-1200.webp 1200w, https://james.li/img/TdAvtgWr-9-4064.webp 4064w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/TdAvtgWr-9-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-1&quot; width=&quot;4064&quot; height=&quot;2240&quot; srcset=&quot;https://james.li/img/TdAvtgWr-9-600.jpeg 600w, https://james.li/img/TdAvtgWr-9-1200.jpeg 1200w, https://james.li/img/TdAvtgWr-9-4064.jpeg 4064w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;Printing was straightforward. No supports were needed and the part fit nicely on the bed of my Bambu Lab P1S, though it probably wouldn&#39;t fit on smaller printers. It used about 44 grams of filament and took 1 hour 16 minutes to print.&lt;/p&gt;
&lt;figure src=&quot;/media/2026/van-porch-light/bambu-studio.jpeg&quot; alt=&quot;&quot; class=&quot;img-1&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/van-porch-light/bambu-studio.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/ZWFIwBneGn-600.webp 600w, https://james.li/img/ZWFIwBneGn-1200.webp 1200w, https://james.li/img/ZWFIwBneGn-2624.webp 2624w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/ZWFIwBneGn-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-1&quot; width=&quot;2624&quot; height=&quot;1824&quot; srcset=&quot;https://james.li/img/ZWFIwBneGn-600.jpeg 600w, https://james.li/img/ZWFIwBneGn-1200.jpeg 1200w, https://james.li/img/ZWFIwBneGn-2624.jpeg 2624w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;figure src=&quot;/media/2026/van-porch-light/IMG_9639.jpeg&quot; alt=&quot;&quot; class=&quot;img-1&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/van-porch-light/IMG_9639.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/DqP4xXJ-3i-600.webp 600w, https://james.li/img/DqP4xXJ-3i-1200.webp 1200w, https://james.li/img/DqP4xXJ-3i-5712.webp 5712w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/DqP4xXJ-3i-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-1&quot; width=&quot;5712&quot; height=&quot;4284&quot; srcset=&quot;https://james.li/img/DqP4xXJ-3i-600.jpeg 600w, https://james.li/img/DqP4xXJ-3i-1200.jpeg 1200w, https://james.li/img/DqP4xXJ-3i-5712.jpeg 5712w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;h2 id=&quot;iterations&quot; tabindex=&quot;-1&quot;&gt;Iterations&lt;/h2&gt;
&lt;p&gt;To my surprise, my first print actually worked pretty well. The light screwed in without issue, and the plastic cover snapped on positively at the sides. There was a bit of looseness in the plastic cover because the overall length of the part was a bit short, and I had allowed some play in the plastic tabs at the sides. I also noticed that the main mounting holes looked a little small.&lt;/p&gt;
&lt;figure src=&quot;/media/2026/van-porch-light/IMG_9626.jpeg&quot; alt=&quot;&quot; class=&quot;img-1-med&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/van-porch-light/IMG_9626.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/ZoMdO0ole3-600.webp 600w, https://james.li/img/ZoMdO0ole3-1200.webp 1200w, https://james.li/img/ZoMdO0ole3-4032.webp 4032w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/ZoMdO0ole3-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-1-med&quot; width=&quot;4032&quot; height=&quot;3024&quot; srcset=&quot;https://james.li/img/ZoMdO0ole3-600.jpeg 600w, https://james.li/img/ZoMdO0ole3-1200.jpeg 1200w, https://james.li/img/ZoMdO0ole3-4032.jpeg 4032w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;figcaption&gt;Gaps between the part and the plastic cover, and at the plastic tabs at the sides.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;My second iteration increased the overall length slightly and enlarged the mounting screw holes. This proved to be a bit too tight of a fit for the plastic cover.&lt;/p&gt;
&lt;figure src=&quot;/media/2026/van-porch-light/IMG_9641.jpeg&quot; alt=&quot;&quot; class=&quot;img-1-med&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/van-porch-light/IMG_9641.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/-gWqDPuUMq-600.webp 600w, https://james.li/img/-gWqDPuUMq-1200.webp 1200w, https://james.li/img/-gWqDPuUMq-4032.webp 4032w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/-gWqDPuUMq-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-1-med&quot; width=&quot;4032&quot; height=&quot;3024&quot; srcset=&quot;https://james.li/img/-gWqDPuUMq-600.jpeg 600w, https://james.li/img/-gWqDPuUMq-1200.jpeg 1200w, https://james.li/img/-gWqDPuUMq-4032.jpeg 4032w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;I adjusted dimensions slightly again in the third iteration and was happy with how everything fit.&lt;/p&gt;
&lt;figure src=&quot;/media/2026/van-porch-light/IMG_9642.jpeg&quot; alt=&quot;&quot; class=&quot;img-1-med&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/van-porch-light/IMG_9642.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/7vMc7Y-2B6-600.webp 600w, https://james.li/img/7vMc7Y-2B6-1200.webp 1200w, https://james.li/img/7vMc7Y-2B6-4032.webp 4032w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/7vMc7Y-2B6-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-1-med&quot; width=&quot;4032&quot; height=&quot;3024&quot; srcset=&quot;https://james.li/img/7vMc7Y-2B6-600.jpeg 600w, https://james.li/img/7vMc7Y-2B6-1200.jpeg 1200w, https://james.li/img/7vMc7Y-2B6-4032.jpeg 4032w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;figcaption&gt;The final fit. There are still small gaps at the ends, but the side tabs fit more precisely and constrain the movement of the cover.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;h2 id=&quot;installation&quot; tabindex=&quot;-1&quot;&gt;Installation&lt;/h2&gt;
&lt;p&gt;My installation was not the cleanest, but I think it should hopefully hold up well.&lt;/p&gt;
&lt;p&gt;First, I cleaned the exterior of the van where the light would go. I then put butyl tape on the back of the unit, reconnected the wires using some crimp fittings, and screwed the light back onto the van.&lt;/p&gt;
&lt;figure src=&quot;/media/2026/van-porch-light/IMG_9665.jpeg&quot; alt=&quot;&quot; class=&quot;img-1&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/van-porch-light/IMG_9665.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/frpAWaZ1xX-600.webp 600w, https://james.li/img/frpAWaZ1xX-1200.webp 1200w, https://james.li/img/frpAWaZ1xX-5712.webp 5712w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/frpAWaZ1xX-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-1&quot; width=&quot;5712&quot; height=&quot;4284&quot; srcset=&quot;https://james.li/img/frpAWaZ1xX-600.jpeg 600w, https://james.li/img/frpAWaZ1xX-1200.jpeg 1200w, https://james.li/img/frpAWaZ1xX-5712.jpeg 5712w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;Note: There&#39;s a slight curve in the light after it&#39;s screwed down, due to the shape of the van. This stress isn&#39;t ideal but I think the PETG will hold up for some time, and if it fails again in the future I can just print another replacement. I considered modeling my part to match the curve of the van but decided this wasn&#39;t really worth the extra effort.&lt;/p&gt;
&lt;figure src=&quot;/media/2026/van-porch-light/IMG_9663.jpeg&quot; alt=&quot;&quot; class=&quot;img-1-med&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/van-porch-light/IMG_9663.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/Iv3Bf-3QdA-600.webp 600w, https://james.li/img/Iv3Bf-3QdA-1200.webp 1200w, https://james.li/img/Iv3Bf-3QdA-4032.webp 4032w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/Iv3Bf-3QdA-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-1-med&quot; width=&quot;4032&quot; height=&quot;3024&quot; srcset=&quot;https://james.li/img/Iv3Bf-3QdA-600.jpeg 600w, https://james.li/img/Iv3Bf-3QdA-1200.jpeg 1200w, https://james.li/img/Iv3Bf-3QdA-4032.jpeg 4032w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;figcaption&gt;The curve in the light is most visible when looking down its length like this&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;After I mounted the light body on the van, and I had confirmed the light was working, I snapped the chromed plastic cover over the body and then sealed the top and sides with some Lexel brand sealant.&lt;/p&gt;
&lt;p&gt;It&#39;s important not to seal the bottom side so that any moisture that gets in will be able to exit. Also, the general recommendation on the internet was to avoid any silicone-based sealants, since these are difficult to remove and can prevent future sealants from bonding.&lt;/p&gt;
&lt;figure src=&quot;/media/2026/van-porch-light/IMG_9666.jpeg&quot; alt=&quot;&quot; class=&quot;img-1&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/van-porch-light/IMG_9666.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/VSwMhGxnXx-600.webp 600w, https://james.li/img/VSwMhGxnXx-1200.webp 1200w, https://james.li/img/VSwMhGxnXx-5712.webp 5712w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/VSwMhGxnXx-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-1&quot; width=&quot;5712&quot; height=&quot;4284&quot; srcset=&quot;https://james.li/img/VSwMhGxnXx-600.jpeg 600w, https://james.li/img/VSwMhGxnXx-1200.jpeg 1200w, https://james.li/img/VSwMhGxnXx-5712.jpeg 5712w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;figure src=&quot;/media/2026/van-porch-light/IMG_9667.jpeg&quot; alt=&quot;&quot; class=&quot;img-1&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/van-porch-light/IMG_9667.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/ffIXqzgOfM-600.webp 600w, https://james.li/img/ffIXqzgOfM-1200.webp 1200w, https://james.li/img/ffIXqzgOfM-4032.webp 4032w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/ffIXqzgOfM-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-1&quot; width=&quot;4032&quot; height=&quot;3024&quot; srcset=&quot;https://james.li/img/ffIXqzgOfM-600.jpeg 600w, https://james.li/img/ffIXqzgOfM-1200.jpeg 1200w, https://james.li/img/ffIXqzgOfM-4032.jpeg 4032w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;figcaption&gt;This was my first time using a sealant like this. My sealant job was not the prettiest, but hopefully it&#39;ll get the job done...&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;All done!&lt;/p&gt;
&lt;p&gt;I did this repair in late February, and the light seems to have held up fine to rain, sun, and driving over the past couple of months.&lt;/p&gt;
&lt;p&gt;Here&#39;s a nice picture of the light in use on a recent camping trip at Samuel P. Taylor State Park. I&#39;m happy with how the &lt;a href=&quot;https://www.amazon.com/dp/B01MY6HXRR&quot;&gt;yellow tint film I added&lt;/a&gt; warms the color of the light from the original cold white.&lt;/p&gt;
&lt;figure src=&quot;/media/2026/van-porch-light/IMG_0945.jpeg&quot; alt=&quot;&quot; class=&quot;img-1&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/van-porch-light/IMG_0945.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/g15D0KFh5q-600.webp 600w, https://james.li/img/g15D0KFh5q-1200.webp 1200w, https://james.li/img/g15D0KFh5q-3024.webp 3024w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/g15D0KFh5q-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-1&quot; width=&quot;3024&quot; height=&quot;4032&quot; srcset=&quot;https://james.li/img/g15D0KFh5q-600.jpeg 600w, https://james.li/img/g15D0KFh5q-1200.jpeg 1200w, https://james.li/img/g15D0KFh5q-3024.jpeg 3024w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;h2 id=&quot;appendix%3A-other-strategies&quot; tabindex=&quot;-1&quot;&gt;Appendix: Other strategies&lt;/h2&gt;
&lt;p&gt;Initially, I tried using my iPhone to 3D scan the part, using a free app called KIRI Engine which seemed pretty well-reviewed. The scan came out well considering that the iPhone isn&#39;t really meant for part scanning, but unfortunately it wasn&#39;t accurate or detailed enough to use even as a reference. I think this part is just too small and the necessary accuracy too much for iPhone scanning, at least in my brief attempt.&lt;/p&gt;
&lt;figure src=&quot;/media/2026/van-porch-light/IMG_9441.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/van-porch-light/IMG_9441.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/Qq0J8JjpLf-600.webp 600w, https://james.li/img/Qq0J8JjpLf-1200.webp 1200w, https://james.li/img/Qq0J8JjpLf-1206.webp 1206w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/Qq0J8JjpLf-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot; width=&quot;1206&quot; height=&quot;2622&quot; srcset=&quot;https://james.li/img/Qq0J8JjpLf-600.jpeg 600w, https://james.li/img/Qq0J8JjpLf-1200.jpeg 1200w, https://james.li/img/Qq0J8JjpLf-1206.jpeg 1206w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;figcaption&gt;Scanning using KIRI Engine&lt;/figcaption&gt;&lt;/figure&gt;&lt;figure src=&quot;/media/2026/van-porch-light/IMG_9442.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/van-porch-light/IMG_9442.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/Gxr4DB-WFf-600.webp 600w, https://james.li/img/Gxr4DB-WFf-1200.webp 1200w, https://james.li/img/Gxr4DB-WFf-1206.webp 1206w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/Gxr4DB-WFf-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot; width=&quot;1206&quot; height=&quot;2622&quot; srcset=&quot;https://james.li/img/Gxr4DB-WFf-600.jpeg 600w, https://james.li/img/Gxr4DB-WFf-1200.jpeg 1200w, https://james.li/img/Gxr4DB-WFf-1206.jpeg 1206w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;figcaption&gt;This scan looked really promising visually, but the actual geometry underneath was disappointing.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;I also made an attempt to repair the broken plastic using some leftover epoxy I had sitting around. This probably would have worked well, but my epoxy mixing ratio was off due to some leakage in storage, so the epoxy failed to cure completely.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Sabbatical retrospective part 2: Illness, staying afloat, and learnings</title>
    <link href="https://james.li/2026/sabbatical-retrospective-2/" />
    <updated>2026-05-06T00:00:00Z</updated>
    <id>https://james.li/2026/sabbatical-retrospective-2/</id>
    <content type="html">&lt;p&gt;This post is part 2 of 3. &lt;a href=&quot;https://james.li/2026/sabbatical-retrospective-1/&quot;&gt;Part 1 is here&lt;/a&gt;, and part 3 is coming later.&lt;/p&gt;
&lt;h2 id=&quot;pneumonia&quot; tabindex=&quot;-1&quot;&gt;Pneumonia&lt;/h2&gt;
&lt;p&gt;Upon our return from Tokyo the first week of May, I started to resume daily errands and chores, expecting that my lingering cough would go away by itself. However, about one week after our return, my cough got suddenly worse, and then that night I started coughing up small amounts of blood. I couldn&#39;t sleep for more than an hour and a half before my cough woke me up, I was definitely running a fever, and my heart rate was pinned at 100-110 BPM.&lt;/p&gt;
&lt;p&gt;On 5/14, I went to the UCSF urgent health clinic near us, where the provider was shocked that I had not been x-rayed by either of the urgent care clinics I&#39;d previously visited. The chest x-ray he ordered showed that I had a pleural effusion (buildup of fluid) in my right lung. As a result, he diagnosed me with pneumonia and prescribed me almost the same antibiotics as I had received in Tokyo.&lt;/p&gt;
&lt;figure src=&quot;/media/2026/sabbatical-retrospective-2/xray-1-circled.png&quot; alt=&quot;&quot; class=&quot;img-1-med&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/sabbatical-retrospective-2/xray-1-circled.png&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/SVFJZiHDuO-600.webp 600w, https://james.li/img/SVFJZiHDuO-1200.webp 1200w, https://james.li/img/SVFJZiHDuO-2152.webp 2152w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/SVFJZiHDuO-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-1-med&quot; width=&quot;2152&quot; height=&quot;2130&quot; srcset=&quot;https://james.li/img/SVFJZiHDuO-600.jpeg 600w, https://james.li/img/SVFJZiHDuO-1200.jpeg 1200w, https://james.li/img/SVFJZiHDuO-2152.jpeg 2152w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;figcaption&gt;My chest x-ray with the pleural effusion roughly circled. The dark areas are air, and the white is fluid or tissue. My right lung is on the left of the image.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;My condition mostly stayed the same over the next couple of days. Even with the antibiotics, I was still coughing a lot, running a fever, and struggling to sleep. Deeply concerned, Sharlene consulted her dad, who has expertise in traditional Chinese medicine. He gave her a long and complicated recipe for a herbal soup; Sharlene then dutifully acquired the ingredients from Chinatown and made the concoction for me.&lt;/p&gt;
&lt;figure src=&quot;/media/2026/sabbatical-retrospective-2/IMG_0008.jpeg&quot; alt=&quot;&quot; class=&quot;img-1-med&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/sabbatical-retrospective-2/IMG_0008.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/pVHDySoC5M-600.webp 600w, https://james.li/img/pVHDySoC5M-1200.webp 1200w, https://james.li/img/pVHDySoC5M-4032.webp 4032w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/pVHDySoC5M-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-1-med&quot; width=&quot;4032&quot; height=&quot;3024&quot; srcset=&quot;https://james.li/img/pVHDySoC5M-600.jpeg 600w, https://james.li/img/pVHDySoC5M-1200.jpeg 1200w, https://james.li/img/pVHDySoC5M-4032.jpeg 4032w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;figcaption&gt;The herbal soup. It tasted awful.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;I noticed a big improvement in the 24 hours after I drank the soup. My fever subsided, my cough became a lot more controllable, and I stopped coughing up blood. Just a couple of days later, I was even able to sleep through the whole night. I can&#39;t be sure if it was the antibiotics, the herbal medicine, or both, but I&#39;m happy to credit the herbal medicine.&lt;/p&gt;
&lt;p&gt;I spent the rest of the month of May just resting and recovering at home. My cough stuck around for a while, but by the end of the month, I was thankfully able to hike to the top of Angel Island with our friends Reini and Andrew without any issue.&lt;/p&gt;
&lt;p&gt;Today, there&#39;s still a little twinge of pain that I feel in my right lung when I take a very deep breath. After a variety of imaging, my doctor concluded that I have a small amount of permanent lung scarring. Fortunately, it doesn&#39;t seem to actually affect my cardio ability, and I can still hike, bike, and run like I did before.&lt;/p&gt;
&lt;h2 id=&quot;mental-health&quot; tabindex=&quot;-1&quot;&gt;Mental health&lt;/h2&gt;
&lt;p&gt;Looking back, I was struggling with my mental health, especially in May and June as I recovered from my pneumonia, though it had started earlier in the sabbatical too and continued later. Even after my physical health recovered, I often felt a lack of energy and interest that I now recognize was probably depression, though I didn&#39;t want to admit it at the time.&lt;/p&gt;
&lt;p&gt;I have many good friends in SF, but everybody is busy with their own lives, and my very emotionally closest friends are scattered across other cities. When I was stuck in bed with pneumonia, I didn&#39;t have the energy to reach out to anybody, and very few people reached out to me. I didn&#39;t blame them; they had no reason to think I wasn&#39;t well. But I felt isolated and alone. I was very lucky to have Sharlene, but I also knew it wasn&#39;t fair to ask her to meet all of my emotional needs.&lt;/p&gt;
&lt;p&gt;I felt stuck in our apartment. Everything I considered doing seemed like a big commitment of time and effort. On my short walks around the block, I&#39;d see the usual poop on the sidewalks and the people living on the street or digging through recyclables, and the feeling of dystopia would weigh heavy on my thoughts. I blamed myself for failing to get out and about, and I felt like something was wrong with me for not being happy in the city the way that everybody else seemed to be.&lt;/p&gt;
&lt;p&gt;(My hot take is that San Francisco is actually not very convenient as a city. Transit is slow and unreliable, but driving and parking are also hard. Many major stores only exist outside the city; everything is expensive; everything closes early.)&lt;/p&gt;
&lt;figure src=&quot;/media/2026/sabbatical-retrospective-2/R0000062.jpeg&quot; alt=&quot;&quot; class=&quot;img-1-med&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/sabbatical-retrospective-2/R0000062.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/cx6L_dftIc-600.webp 600w, https://james.li/img/cx6L_dftIc-1200.webp 1200w, https://james.li/img/cx6L_dftIc-6000.webp 6000w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/cx6L_dftIc-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-1-med&quot; width=&quot;6000&quot; height=&quot;4000&quot; srcset=&quot;https://james.li/img/cx6L_dftIc-600.jpeg 600w, https://james.li/img/cx6L_dftIc-1200.jpeg 1200w, https://james.li/img/cx6L_dftIc-6000.jpeg 6000w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;Finally, I struggled with guilt and anxiety that I might be wasting my time. My parents were deeply worried about my being unemployed, and whenever we talked, they would usually remind me that this time of my life was critical for my career development, so I had better find a job soon or else do something to advance, because in just a few years I&#39;d probably have a family to be responsible for, and so I couldn&#39;t neglect my career too long. I could tell they were trying to hold back from nagging me as much as they really wanted to, too. And I couldn&#39;t ignore what they were saying, because a big part of me shared in these anxieties.&lt;/p&gt;
&lt;p&gt;I don&#39;t think I ever felt like I deserved the sabbatical, and I often felt guilty for having taken it. During the sabbatical, I always tried to do &amp;quot;productive&amp;quot; things on weekdays because I was uncomfortable with the feeling of resting while everybody else was working. And during the stress and pain of my health insurance lapse and illness, I sometimes seriously wondered if I was being punished by some higher power for taking the sabbatical, because none of that would&#39;ve happened if I&#39;d just stayed at work like a good and responsible normal person.&lt;/p&gt;
&lt;p&gt;At the same time, I didn&#39;t feel ready to end the sabbatical yet, because I didn&#39;t feel that I had made the most of it. In my mind, I done nothing particularly special so far, and I feared that I would regret not doing something bigger and bolder—something I could only do with a sabbatical, something that would clearly justify having taken the sabbatical in the first place, to both my parents and myself.&lt;/p&gt;
&lt;p&gt;From both angles, I felt like I was failing: failing in continuing to take the time off, and failing to do something worthwhile with the time off. Mired in my guilt, most ideas, like watercolor painting or going camping or starting a small personal electronics project, appeared selfish and indulgent. Nothing felt like it would make me or or my parents truly proud or assuage our anxieties, and so I found it hard to rationalize starting anything.&lt;/p&gt;
&lt;p&gt;I think this sabbatical was the first time in my life I didn&#39;t have external structure or validation. I&#39;ve always had school or work to define a path for me and reward me. It makes sense, then, that I felt so adrift.&lt;/p&gt;
&lt;p&gt;I know that all of this took a toll on Sharlene. I was endlessly complaining about San Francisco, and always contemplating doing things but rarely actually doing much. It was frustrating for her to listen to this, day in and day out.&lt;/p&gt;
&lt;p&gt;Some days were better, but many days passed in this way.&lt;/p&gt;
&lt;h2 id=&quot;june-into-september&quot; tabindex=&quot;-1&quot;&gt;June into September&lt;/h2&gt;
&lt;p&gt;In June, as my physical health returned to normal, I started piecing together a sabbatical life in SF, trying to find a balance of productivity and leisure to get me through the days.&lt;/p&gt;
&lt;h3 id=&quot;productive-stuff&quot; tabindex=&quot;-1&quot;&gt;Productive stuff&lt;/h3&gt;
&lt;p&gt;Sharlene and I ramped up our wedding planning and toured a number of wedding venues throughout the summer. In September, we signed our contract with Palette Tea House.&lt;/p&gt;
&lt;p&gt;I worked on researching and contemplating different possible career paths, like getting a business degree, or going to grad school for operations or design. I ultimately decided not to pursue any of these, but was satisfied that I went through the exercise of considering and digging into each one.&lt;/p&gt;
&lt;p&gt;By July, I added some online classes to my daily schedule, trying to feel like I was using my time in a productive way. I planned and tracked my days in detail, so each week in my calendar started looking densely packed:&lt;/p&gt;
&lt;figure src=&quot;/media/2026/sabbatical-retrospective-2/calendar.png&quot; alt=&quot;&quot; class=&quot;img-1-med&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/sabbatical-retrospective-2/calendar.png&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/IGY-yw-cfS-600.webp 600w, https://james.li/img/IGY-yw-cfS-1200.webp 1200w, https://james.li/img/IGY-yw-cfS-2728.webp 2728w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/IGY-yw-cfS-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-1-med&quot; width=&quot;2728&quot; height=&quot;1756&quot; srcset=&quot;https://james.li/img/IGY-yw-cfS-600.jpeg 600w, https://james.li/img/IGY-yw-cfS-1200.jpeg 1200w, https://james.li/img/IGY-yw-cfS-2728.jpeg 2728w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;In July, Sharlene told me that she wanted to leave her job at Notion within a couple of months so that we could have some overlapping time off together. This made sense and sounded exciting to me, so I agreed to extend my sabbatical until the end of the year.&lt;/p&gt;
&lt;h3 id=&quot;staying-afloat-%2B-fun-stuff!&quot; tabindex=&quot;-1&quot;&gt;Staying afloat + fun stuff!&lt;/h3&gt;
&lt;p&gt;I started making an effort to practice gratitude daily in my journal.&lt;/p&gt;
&lt;p&gt;We visited a few open houses in the Inner Richmond, contemplating a move to a different neighborhood I might like better.&lt;/p&gt;
&lt;p&gt;We bought the Nintendo Switch 2 on launch day and had a blast playing the new Mario Kart with my sister and her partner Matthew.&lt;/p&gt;
&lt;figure src=&quot;/media/2026/sabbatical-retrospective-2/IMG_1853.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/sabbatical-retrospective-2/IMG_1853.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/NmaJyp7BdH-600.webp 600w, https://james.li/img/NmaJyp7BdH-1200.webp 1200w, https://james.li/img/NmaJyp7BdH-5712.webp 5712w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/NmaJyp7BdH-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot; width=&quot;5712&quot; height=&quot;4284&quot; srcset=&quot;https://james.li/img/NmaJyp7BdH-600.jpeg 600w, https://james.li/img/NmaJyp7BdH-1200.jpeg 1200w, https://james.li/img/NmaJyp7BdH-5712.jpeg 5712w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure src=&quot;/media/2026/sabbatical-retrospective-2/IMG_1855.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/sabbatical-retrospective-2/IMG_1855.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/mZBx7_CSUt-600.webp 600w, https://james.li/img/mZBx7_CSUt-1200.webp 1200w, https://james.li/img/mZBx7_CSUt-5712.webp 5712w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/mZBx7_CSUt-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot; width=&quot;5712&quot; height=&quot;4284&quot; srcset=&quot;https://james.li/img/mZBx7_CSUt-600.jpeg 600w, https://james.li/img/mZBx7_CSUt-1200.jpeg 1200w, https://james.li/img/mZBx7_CSUt-5712.jpeg 5712w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;In mid-June, Sharlene helped me break out of my listlessness by helping me clean and tune up our bikes. I had been struggling to muster the energy and motivation needed to get my bike back in order, but after our bike cleanup day, I started road biking again. My friend Alvaro invited me to climb Twin Peaks with him on Monday and Friday mornings, and this became a staple of my weeks. Later, in July, I finally splurged on a power meter for myself and then really got into training, motivated by the data and determined to rebuild my fitness after my pneumonia. I think cycling was good escape from depression and a good anchor in my routine.&lt;/p&gt;
&lt;p&gt;Sharlene and I also tried a tandem bike for the first time, and then found we liked it enough to buy our own (used) tandem bike!&lt;/p&gt;
&lt;figure src=&quot;/media/2026/sabbatical-retrospective-2/IMG_2033.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/sabbatical-retrospective-2/IMG_2033.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/f2OudhmukO-600.webp 600w, https://james.li/img/f2OudhmukO-1200.webp 1200w, https://james.li/img/f2OudhmukO-5712.webp 5712w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/f2OudhmukO-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot; width=&quot;5712&quot; height=&quot;4284&quot; srcset=&quot;https://james.li/img/f2OudhmukO-600.jpeg 600w, https://james.li/img/f2OudhmukO-1200.jpeg 1200w, https://james.li/img/f2OudhmukO-5712.jpeg 5712w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure src=&quot;/media/2026/sabbatical-retrospective-2/IMG_3605.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/sabbatical-retrospective-2/IMG_3605.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/ePohSJDDHj-600.webp 600w, https://james.li/img/ePohSJDDHj-1200.webp 1200w, https://james.li/img/ePohSJDDHj-5712.webp 5712w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/ePohSJDDHj-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot; width=&quot;5712&quot; height=&quot;4284&quot; srcset=&quot;https://james.li/img/ePohSJDDHj-600.jpeg 600w, https://james.li/img/ePohSJDDHj-1200.jpeg 1200w, https://james.li/img/ePohSJDDHj-5712.jpeg 5712w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;I taught Alvaro how to drive stick, and then we attended the Golden Gate Lotus Club&#39;s autocross in July—my first time autocrossing since 2018.&lt;/p&gt;
&lt;figure src=&quot;/media/2026/sabbatical-retrospective-2/GGLC8-30SAL-195-7297-High-3264.jpeg&quot; alt=&quot;&quot; class=&quot;img-1-med&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/sabbatical-retrospective-2/GGLC8-30SAL-195-7297-High-3264.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/nSCgPdrbi4-600.webp 600w, https://james.li/img/nSCgPdrbi4-1200.webp 1200w, https://james.li/img/nSCgPdrbi4-3264.webp 3264w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/nSCgPdrbi4-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-1-med&quot; width=&quot;3264&quot; height=&quot;2175&quot; srcset=&quot;https://james.li/img/nSCgPdrbi4-600.jpeg 600w, https://james.li/img/nSCgPdrbi4-1200.jpeg 1200w, https://james.li/img/nSCgPdrbi4-3264.jpeg 3264w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;We also did some fun traveling in the second half of the summer: A trip to NYC in July for my friend Louisa&#39;s wedding; a week back in Walnut; a trip to Seattle in August to visit our friends there; a trip to Denver/Boulder in early September with Reini and Andrew. &lt;a href=&quot;https://james.li/2025/ricoh-four-months/&quot;&gt;Some more photos here.&lt;/a&gt;&lt;/p&gt;
&lt;figure src=&quot;/media/2026/sabbatical-retrospective-2/IMG_3534.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/sabbatical-retrospective-2/IMG_3534.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/QlvIWTwPE--600.webp 600w, https://james.li/img/QlvIWTwPE--1200.webp 1200w, https://james.li/img/QlvIWTwPE--3024.webp 3024w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/QlvIWTwPE--600.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot; width=&quot;3024&quot; height=&quot;2267&quot; srcset=&quot;https://james.li/img/QlvIWTwPE--600.jpeg 600w, https://james.li/img/QlvIWTwPE--1200.jpeg 1200w, https://james.li/img/QlvIWTwPE--3024.jpeg 3024w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure src=&quot;/media/2026/sabbatical-retrospective-2/IMG_8949.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/sabbatical-retrospective-2/IMG_8949.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/nEYtY2hwqz-600.webp 600w, https://james.li/img/nEYtY2hwqz-1200.webp 1200w, https://james.li/img/nEYtY2hwqz-4032.webp 4032w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/nEYtY2hwqz-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot; width=&quot;4032&quot; height=&quot;3024&quot; srcset=&quot;https://james.li/img/nEYtY2hwqz-600.jpeg 600w, https://james.li/img/nEYtY2hwqz-1200.jpeg 1200w, https://james.li/img/nEYtY2hwqz-4032.jpeg 4032w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;figure src=&quot;/media/2026/sabbatical-retrospective-2/IMG_2773.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/sabbatical-retrospective-2/IMG_2773.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/CjbcrsXj84-600.webp 600w, https://james.li/img/CjbcrsXj84-1200.webp 1200w, https://james.li/img/CjbcrsXj84-4032.webp 4032w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/CjbcrsXj84-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot; width=&quot;4032&quot; height=&quot;3024&quot; srcset=&quot;https://james.li/img/CjbcrsXj84-600.jpeg 600w, https://james.li/img/CjbcrsXj84-1200.jpeg 1200w, https://james.li/img/CjbcrsXj84-4032.jpeg 4032w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure src=&quot;/media/2026/sabbatical-retrospective-2/IMG_4067.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/sabbatical-retrospective-2/IMG_4067.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/VYmLIZx06z-600.webp 600w, https://james.li/img/VYmLIZx06z-1200.webp 1200w, https://james.li/img/VYmLIZx06z-4032.webp 4032w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/VYmLIZx06z-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot; width=&quot;4032&quot; height=&quot;3024&quot; srcset=&quot;https://james.li/img/VYmLIZx06z-600.jpeg 600w, https://james.li/img/VYmLIZx06z-1200.jpeg 1200w, https://james.li/img/VYmLIZx06z-4032.jpeg 4032w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;Last but not least, I bought a 3D printer, started renting a small storage unit in my building, and spent a bunch of time &lt;a href=&quot;https://james.li/2025/bikeshed/&quot;&gt;setting it up as a space for tinkering&lt;/a&gt;. I then completed a couple of &lt;a href=&quot;https://james.li/2025/bidet-remote-mount/&quot;&gt;small&lt;/a&gt; personal &lt;a href=&quot;https://james.li/2025/bike-fit-measurement/&quot;&gt;projects&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;learnings-and-reflections&quot; tabindex=&quot;-1&quot;&gt;Learnings and reflections&lt;/h2&gt;
&lt;p&gt;When I look back on the summer of 2025, I find many fulfilling experiences and cherished memories. However, I wonder if I could have been more intentional and bold with my time. Most of the best moments were driven by my friends and family, when they invited me to do things, came up with ideas, or wanted to travel. In contrast, when I was on my own, I mostly operated within self-imposed limitations, trying to feel productive and assuage my guilt.&lt;/p&gt;
&lt;p&gt;I now believe that, like most other things in life, taking an effective sabbatical isn&#39;t necessarily something that just comes naturally. It requires some thought and involves a set of skills and considerations that may not be obvious.&lt;/p&gt;
&lt;p&gt;Here are the main things I would do differently next time:&lt;/p&gt;
&lt;h3 id=&quot;focus-on-just-trying-things%2C-rather-than-trying-to-accomplish-things.&quot; tabindex=&quot;-1&quot;&gt;Focus on just trying things, rather than trying to accomplish things.&lt;/h3&gt;
&lt;p&gt;During my sabbatical, I evaluated all my ideas along the lines of &lt;em&gt;&amp;quot;is this productive?&amp;quot;&lt;/em&gt; or &lt;em&gt;&amp;quot;is this better for my career than going back to work?&amp;quot;&lt;/em&gt; I always imagined how my parents would react to each idea, and in this light, most things didn&#39;t feel justifiable. Only the safe choices passed this test, like doing online classes or training my cycling fitness. In retrospect, I regret spending any of my time optimizing for safe choices.&lt;/p&gt;
&lt;p&gt;Now that Sharlene is on her own sabbatical, I get to see all the ideas she has, and how freely and easily she decides to just spend time trying new projects. She wants to host events, matchmake for friends, build stuff, and so much more. She&#39;s not worried about if anything will be &amp;quot;worth it&amp;quot; in the end; it&#39;s obvious that the value is simply in just trying the thing and seeing what happens. Her intrinsic motivation roams freely.&lt;/p&gt;
&lt;p&gt;My intrinsic motivation was always contending with—and losing to—my fear of not living up to expectations. I could have flipped the dynamic by recognizing the value of just trying things, rather than weighing the possibility of achievement.&lt;/p&gt;
&lt;h3 id=&quot;give-myself-more-time-upfront.&quot; tabindex=&quot;-1&quot;&gt;Give myself more time upfront.&lt;/h3&gt;
&lt;p&gt;I originally planned my sabbatical to be four months long, though I knew I had flexibility to keep going. But I already felt like four months was more time than I deserved, so each time I extended my sabbatical (first due to pneumonia, and later at Sharlene&#39;s request), I gave myself only the minimum necessary additional time.&lt;/p&gt;
&lt;p&gt;I also underestimated the amount of time needed for proposal and wedding planning. And when it became apparent how big these projects actually were, I didn&#39;t credit myself with any extra time to spend the way I&#39;d originally envisioned.&lt;/p&gt;
&lt;p&gt;I wish I had been generous with myself and just set aside at least the whole year right off the bat, rather than extending a month or two each time. This would have allowed me to defend my sabbatical to my parents (and myself) just once, rather than repeatedly every time I extended it.&lt;/p&gt;
&lt;p&gt;In April 2025, I felt like I was at the end of my sabbatical and had no time left. Now, writing this in May 2026, I realize that I was actually just starting my sabbatical.&lt;/p&gt;
&lt;p&gt;I wish I had been able to view that whole year ahead of me as a rich and huge opportunity, rather than seeing only a few weeks ahead at a time.&lt;/p&gt;
&lt;h3 id=&quot;give-myself-more-budget-upfront%2C-and-actually-spend-it.&quot; tabindex=&quot;-1&quot;&gt;Give myself more budget upfront, and actually spend it.&lt;/h3&gt;
&lt;p&gt;Sharlene and I are lucky to have a pretty comfortable amount of savings now, so I could have spent more money on my sabbatical and still had a very safe buffer. Instead, I operated with a scarcity mindset, asking myself if each idea I had was worth the cost. Unfortunately, I tend to be frugal when it comes to myself, so most of my ideas did not feel worth the cost.&lt;/p&gt;
&lt;p&gt;The only times I spent freely were when other people were involved, like on our engagement, or for our travels, or our camper van purchase later in the year. All of that spending was very worthwhile, and I got back a lot from each dollar.&lt;/p&gt;
&lt;p&gt;If I had set aside a decent chunk of money for my sabbatical, &lt;em&gt;and made myself actually spend it&lt;/em&gt;, I think I would made more brave and interesting decisions and learned more as a result. For example, maybe I would have left San Francisco rather than feeling trapped here. Maybe I could have pursued the type of car or house project that I never had space for in SF. Or maybe I would have tried the camper van thing earlier and had more time to drive and travel.&lt;/p&gt;
&lt;p&gt;While I don&#39;t think spending big is necessary to have a fulfilling sabbatical, in my case I think it would have allowed me to explore and grow more.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Hindsight is always 20/20, and these things seem so clear now looking back. But they weren&#39;t clear back then, and so I&#39;m glad I went through this learning process. I&#39;m thankful I was able to take this sabbatical so I could struggle, reflect, and grow in this way.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Part 3 of this sabbatical retrospective will cover the last few months of 2025. But to be honest, this Part 2 was the one I most wanted to write. So Part 3 may not come until some time later.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Sabbatical retrospective part 1: Travel, getting engaged, and more travel</title>
    <link href="https://james.li/2026/sabbatical-retrospective-1/" />
    <updated>2026-05-06T00:00:00Z</updated>
    <id>https://james.li/2026/sabbatical-retrospective-1/</id>
    <content type="html">&lt;h2 id=&quot;introduction&quot; tabindex=&quot;-1&quot;&gt;Introduction&lt;/h2&gt;
&lt;p&gt;At the end of 2024, I left my role as a systems engineer at Butlr to take some time off, rest, and contemplate my next steps. (I&#39;m really grateful to my colleagues and leadership at Butlr for their support and encouragement in my taking this sabbatical!)&lt;/p&gt;
&lt;p&gt;I originally planned the sabbatical as a four-month break, with flexibility to extend. For a variety of reasons (travel, illness, marriage, honeymoon), I&#39;m now approaching 1.5 years of time off. But now I&#39;m finally starting to seriously search for my next role, and so I thought this would be an appropriate time to do a sort of retrospective on my sabbatical.&lt;/p&gt;
&lt;p&gt;This post is part 1 of 3, and covers the first four months of my sabbatical. &lt;a href=&quot;https://james.li/2026/sabbatical-retrospective-2/&quot;&gt;Part 2 is here&lt;/a&gt;, and part 3 is coming later.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;december-2024&quot; tabindex=&quot;-1&quot;&gt;December 2024&lt;/h2&gt;
&lt;p&gt;Friday 12/20 was my last day at Butlr. I spent my last afternoon in the office scrambling to finish setting up some test fixtures so they could run over the holiday break in my absence and generate data for the team to pick up in the new year. In many ways, it didn&#39;t feel real that I was actually leaving.&lt;/p&gt;
&lt;figure src=&quot;/media/2026/sabbatical-retrospective-1/IMG_6808.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/sabbatical-retrospective-1/IMG_6808.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/02q0PveuUY-600.webp 600w, https://james.li/img/02q0PveuUY-1200.webp 1200w, https://james.li/img/02q0PveuUY-3000.webp 3000w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/02q0PveuUY-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot; width=&quot;3000&quot; height=&quot;2250&quot; srcset=&quot;https://james.li/img/02q0PveuUY-600.jpeg 600w, https://james.li/img/02q0PveuUY-1200.jpeg 1200w, https://james.li/img/02q0PveuUY-3000.jpeg 3000w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;figcaption&gt;Farewell lunch with my colleagues in the Burlingame office&lt;/figcaption&gt;&lt;/figure&gt;&lt;figure src=&quot;/media/2026/sabbatical-retrospective-1/IMG_6817.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/sabbatical-retrospective-1/IMG_6817.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/zhl951qdSk-600.webp 600w, https://james.li/img/zhl951qdSk-1200.webp 1200w, https://james.li/img/zhl951qdSk-4032.webp 4032w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/zhl951qdSk-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot; width=&quot;4032&quot; height=&quot;3024&quot; srcset=&quot;https://james.li/img/zhl951qdSk-600.jpeg 600w, https://james.li/img/zhl951qdSk-1200.jpeg 1200w, https://james.li/img/zhl951qdSk-4032.jpeg 4032w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;figcaption&gt;Wrapping up work at 5 PM on my last day&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;I drove back down to Walnut for the holidays. There, I rested with family, caught up with friends both current and past, and spent a while organizing my personal files in my computer.&lt;/p&gt;
&lt;h2 id=&quot;january-2025&quot; tabindex=&quot;-1&quot;&gt;January 2025&lt;/h2&gt;
&lt;p&gt;The beginning of the new year was marked by major wildfires in Los Angeles, which &lt;a href=&quot;https://james.li/2025/la-fires/&quot;&gt;I wrote about here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Back in San Francisco, Sharlene and I had our attention caught by &lt;a href=&quot;https://www.youtube.com/shorts/RO0FfDoQAqs&quot;&gt;an interesting pair of houses for sale with an underground tunnel connecting them&lt;/a&gt;. I toured the property and we seriously considered buying and starting a friend compound. But ultimately, getting financing for these unusual properties proved too complicated for what we were prepared to take on.&lt;/p&gt;
&lt;p&gt;Sharlene and I drove up to Seattle for a two-week stay, taking a scenic route via Crater Lake and Bend, Oregon. Our goal was to experience the worst of Seattle gloom and decide if we could live there long-term, but unusually, it hardly rained the whole time we were there. So we just enjoyed lots of quality time with our friends there: eating, painting, touring Seattle, riding the ferry, and playing pickleball.&lt;/p&gt;
&lt;figure src=&quot;/media/2026/sabbatical-retrospective-1/IMG_7175.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/sabbatical-retrospective-1/IMG_7175.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/HQpwRI0ABi-600.webp 600w, https://james.li/img/HQpwRI0ABi-1200.webp 1200w, https://james.li/img/HQpwRI0ABi-4032.webp 4032w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/HQpwRI0ABi-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot; width=&quot;4032&quot; height=&quot;3024&quot; srcset=&quot;https://james.li/img/HQpwRI0ABi-600.jpeg 600w, https://james.li/img/HQpwRI0ABi-1200.jpeg 1200w, https://james.li/img/HQpwRI0ABi-4032.jpeg 4032w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure src=&quot;/media/2026/sabbatical-retrospective-1/IMG_7291.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/sabbatical-retrospective-1/IMG_7291.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/XM4JUG6aSA-600.webp 600w, https://james.li/img/XM4JUG6aSA-1200.webp 1200w, https://james.li/img/XM4JUG6aSA-4032.webp 4032w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/XM4JUG6aSA-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot; width=&quot;4032&quot; height=&quot;3024&quot; srcset=&quot;https://james.li/img/XM4JUG6aSA-600.jpeg 600w, https://james.li/img/XM4JUG6aSA-1200.jpeg 1200w, https://james.li/img/XM4JUG6aSA-4032.jpeg 4032w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;figure src=&quot;/media/2026/sabbatical-retrospective-1/IMG_7346.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/sabbatical-retrospective-1/IMG_7346.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/w6oDaMrc5t-600.webp 600w, https://james.li/img/w6oDaMrc5t-1200.webp 1200w, https://james.li/img/w6oDaMrc5t-4032.webp 4032w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/w6oDaMrc5t-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot; width=&quot;4032&quot; height=&quot;3024&quot; srcset=&quot;https://james.li/img/w6oDaMrc5t-600.jpeg 600w, https://james.li/img/w6oDaMrc5t-1200.jpeg 1200w, https://james.li/img/w6oDaMrc5t-4032.jpeg 4032w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure src=&quot;/media/2026/sabbatical-retrospective-1/IMG_7452.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/sabbatical-retrospective-1/IMG_7452.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/RIWdjii4Y7-600.webp 600w, https://james.li/img/RIWdjii4Y7-1200.webp 1200w, https://james.li/img/RIWdjii4Y7-4032.webp 4032w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/RIWdjii4Y7-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot; width=&quot;4032&quot; height=&quot;3024&quot; srcset=&quot;https://james.li/img/RIWdjii4Y7-600.jpeg 600w, https://james.li/img/RIWdjii4Y7-1200.jpeg 1200w, https://james.li/img/RIWdjii4Y7-4032.jpeg 4032w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;figure src=&quot;/media/2026/sabbatical-retrospective-1/IMG_4690.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/sabbatical-retrospective-1/IMG_4690.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/aDPAz27xfV-600.webp 600w, https://james.li/img/aDPAz27xfV-1200.webp 1200w, https://james.li/img/aDPAz27xfV-3024.webp 3024w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/aDPAz27xfV-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot; width=&quot;3024&quot; height=&quot;4032&quot; srcset=&quot;https://james.li/img/aDPAz27xfV-600.jpeg 600w, https://james.li/img/aDPAz27xfV-1200.jpeg 1200w, https://james.li/img/aDPAz27xfV-3024.jpeg 3024w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure src=&quot;/media/2026/sabbatical-retrospective-1/IMG_7665.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/sabbatical-retrospective-1/IMG_7665.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/xt2NniacX1-600.webp 600w, https://james.li/img/xt2NniacX1-1200.webp 1200w, https://james.li/img/xt2NniacX1-4284.webp 4284w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/xt2NniacX1-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot; width=&quot;4284&quot; height=&quot;5712&quot; srcset=&quot;https://james.li/img/xt2NniacX1-600.jpeg 600w, https://james.li/img/xt2NniacX1-1200.jpeg 1200w, https://james.li/img/xt2NniacX1-4284.jpeg 4284w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;On my birthday, Sharlene set up a sweet and elaborate surprise for me, featuring &amp;quot;performance reviews&amp;quot; written by many of my friends.&lt;/p&gt;
&lt;p&gt;Finally, on our way back to SF, we took a scenic detour through the rainy coastal redwood forests of northern California.&lt;/p&gt;
&lt;figure src=&quot;/media/2026/sabbatical-retrospective-1/IMG_7838.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/sabbatical-retrospective-1/IMG_7838.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/NctEWFx50w-600.webp 600w, https://james.li/img/NctEWFx50w-1200.webp 1200w, https://james.li/img/NctEWFx50w-5712.webp 5712w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/NctEWFx50w-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot; width=&quot;5712&quot; height=&quot;4284&quot; srcset=&quot;https://james.li/img/NctEWFx50w-600.jpeg 600w, https://james.li/img/NctEWFx50w-1200.jpeg 1200w, https://james.li/img/NctEWFx50w-5712.jpeg 5712w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure src=&quot;/media/2026/sabbatical-retrospective-1/IMG_7896.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/sabbatical-retrospective-1/IMG_7896.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/8b0i-BKrpX-600.webp 600w, https://james.li/img/8b0i-BKrpX-1200.webp 1200w, https://james.li/img/8b0i-BKrpX-4032.webp 4032w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/8b0i-BKrpX-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot; width=&quot;4032&quot; height=&quot;3024&quot; srcset=&quot;https://james.li/img/8b0i-BKrpX-600.jpeg 600w, https://james.li/img/8b0i-BKrpX-1200.jpeg 1200w, https://james.li/img/8b0i-BKrpX-4032.jpeg 4032w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;h2 id=&quot;february-2025&quot; tabindex=&quot;-1&quot;&gt;February 2025&lt;/h2&gt;
&lt;p&gt;Sharlene had a weeklong work trip in NYC, so I tagged along. It was my first real visit to NYC post-college, and I enjoyed the chance to really appreciate the city as an adult and spend time with our friends there.&lt;/p&gt;
&lt;figure src=&quot;/media/2026/sabbatical-retrospective-1/IMG_8126.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/sabbatical-retrospective-1/IMG_8126.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/z2FKF7cHfJ-600.webp 600w, https://james.li/img/z2FKF7cHfJ-1200.webp 1200w, https://james.li/img/z2FKF7cHfJ-4284.webp 4284w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/z2FKF7cHfJ-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot; width=&quot;4284&quot; height=&quot;5712&quot; srcset=&quot;https://james.li/img/z2FKF7cHfJ-600.jpeg 600w, https://james.li/img/z2FKF7cHfJ-1200.jpeg 1200w, https://james.li/img/z2FKF7cHfJ-4284.jpeg 4284w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure src=&quot;/media/2026/sabbatical-retrospective-1/IMG_8313.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/sabbatical-retrospective-1/IMG_8313.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/nvzUqjf2s--600.webp 600w, https://james.li/img/nvzUqjf2s--1200.webp 1200w, https://james.li/img/nvzUqjf2s--3024.webp 3024w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/nvzUqjf2s--600.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot; width=&quot;3024&quot; height=&quot;4032&quot; srcset=&quot;https://james.li/img/nvzUqjf2s--600.jpeg 600w, https://james.li/img/nvzUqjf2s--1200.jpeg 1200w, https://james.li/img/nvzUqjf2s--3024.jpeg 3024w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;figure src=&quot;/media/2026/sabbatical-retrospective-1/IMG_8202.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/sabbatical-retrospective-1/IMG_8202.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/NT3u51IoOP-600.webp 600w, https://james.li/img/NT3u51IoOP-1200.webp 1200w, https://james.li/img/NT3u51IoOP-5712.webp 5712w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/NT3u51IoOP-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot; width=&quot;5712&quot; height=&quot;4284&quot; srcset=&quot;https://james.li/img/NT3u51IoOP-600.jpeg 600w, https://james.li/img/NT3u51IoOP-1200.jpeg 1200w, https://james.li/img/NT3u51IoOP-5712.jpeg 5712w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure src=&quot;/media/2026/sabbatical-retrospective-1/IMG_8284.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/sabbatical-retrospective-1/IMG_8284.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/0KTS7PSi1Y-600.webp 600w, https://james.li/img/0KTS7PSi1Y-1200.webp 1200w, https://james.li/img/0KTS7PSi1Y-5712.webp 5712w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/0KTS7PSi1Y-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot; width=&quot;5712&quot; height=&quot;4284&quot; srcset=&quot;https://james.li/img/0KTS7PSi1Y-600.jpeg 600w, https://james.li/img/0KTS7PSi1Y-1200.jpeg 1200w, https://james.li/img/0KTS7PSi1Y-5712.jpeg 5712w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;Then, our friend Henry visited us in SF for a week! Unfortunately, Sharlene was pretty ill with some digestive system problems for much of that time, but Henry and I got to enjoy roaming around the city a bit.&lt;/p&gt;
&lt;p&gt;After Sharlene recovered, we filled a couple of weekends doing fun stuff around SF, like rowing a boat on Blue Heron Lake, going out for dinner, and playing arcade games at Round 1.&lt;/p&gt;
&lt;figure src=&quot;/media/2026/sabbatical-retrospective-1/IMG_8601.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/sabbatical-retrospective-1/IMG_8601.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/DknQO6ETlm-600.webp 600w, https://james.li/img/DknQO6ETlm-1200.webp 1200w, https://james.li/img/DknQO6ETlm-5712.webp 5712w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/DknQO6ETlm-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot; width=&quot;5712&quot; height=&quot;4284&quot; srcset=&quot;https://james.li/img/DknQO6ETlm-600.jpeg 600w, https://james.li/img/DknQO6ETlm-1200.jpeg 1200w, https://james.li/img/DknQO6ETlm-5712.jpeg 5712w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure src=&quot;/media/2026/sabbatical-retrospective-1/IMG_8632.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/sabbatical-retrospective-1/IMG_8632.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/f9R9IwNG0T-600.webp 600w, https://james.li/img/f9R9IwNG0T-1200.webp 1200w, https://james.li/img/f9R9IwNG0T-5712.webp 5712w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/f9R9IwNG0T-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot; width=&quot;5712&quot; height=&quot;4284&quot; srcset=&quot;https://james.li/img/f9R9IwNG0T-600.jpeg 600w, https://james.li/img/f9R9IwNG0T-1200.jpeg 1200w, https://james.li/img/f9R9IwNG0T-5712.jpeg 5712w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;I also did some organizing of our apartment and dabbling in hobbies like guitar.&lt;/p&gt;
&lt;h2 id=&quot;march-2025&quot; tabindex=&quot;-1&quot;&gt;March 2025&lt;/h2&gt;
&lt;p&gt;Early in March, we attended the wedding of our friends Sing and Hayleigh! Auspiciously, Sharlene managed to catch the bouquet at the bouquet toss.&lt;/p&gt;
&lt;figure src=&quot;/media/2026/sabbatical-retrospective-1/Hayleigh%20and%20Kasing-%200677.jpeg&quot; alt=&quot;&quot; class=&quot;img-1-med&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/sabbatical-retrospective-1/Hayleigh%20and%20Kasing-%200677.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/qQPkhPTOjd-600.webp 600w, https://james.li/img/qQPkhPTOjd-1200.webp 1200w, https://james.li/img/qQPkhPTOjd-8053.webp 8053w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/qQPkhPTOjd-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-1-med&quot; width=&quot;8053&quot; height=&quot;5371&quot; srcset=&quot;https://james.li/img/qQPkhPTOjd-600.jpeg 600w, https://james.li/img/qQPkhPTOjd-1200.jpeg 1200w, https://james.li/img/qQPkhPTOjd-8053.jpeg 8053w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;I then spent most of the month working intensively on my proposal plans. (We had agreed on the date I would propose, but the means of proposal would be a surprise for her.) Sharlene graciously stayed late at work most days so I could have more time and space to complete my planning.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;On March 20th, on our nine-year anniversary as a couple, I proposed to Sharlene!&lt;/p&gt;
&lt;p&gt;I made her do an elaborate scavenger hunt around some of her favorite places in the city, culminating in the actual proposal:&lt;/p&gt;
&lt;figure src=&quot;/media/2026/sabbatical-retrospective-1/IMG_9001.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/sabbatical-retrospective-1/IMG_9001.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/Ikulu4Bzyx-600.webp 600w, https://james.li/img/Ikulu4Bzyx-1200.webp 1200w, https://james.li/img/Ikulu4Bzyx-5712.webp 5712w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/Ikulu4Bzyx-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot; width=&quot;5712&quot; height=&quot;4284&quot; srcset=&quot;https://james.li/img/Ikulu4Bzyx-600.jpeg 600w, https://james.li/img/Ikulu4Bzyx-1200.jpeg 1200w, https://james.li/img/Ikulu4Bzyx-5712.jpeg 5712w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;figcaption&gt;Completing a jigsaw puzzle&lt;/figcaption&gt;&lt;/figure&gt;&lt;figure src=&quot;/media/2026/sabbatical-retrospective-1/IMG_9011.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/sabbatical-retrospective-1/IMG_9011.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/s2ei283ste-600.webp 600w, https://james.li/img/s2ei283ste-1200.webp 1200w, https://james.li/img/s2ei283ste-5712.webp 5712w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/s2ei283ste-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot; width=&quot;5712&quot; height=&quot;4284&quot; srcset=&quot;https://james.li/img/s2ei283ste-600.jpeg 600w, https://james.li/img/s2ei283ste-1200.jpeg 1200w, https://james.li/img/s2ei283ste-5712.jpeg 5712w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;figcaption&gt;Getting a clue from our local librarian&lt;/figcaption&gt;&lt;/figure&gt;
&lt;figure src=&quot;/media/2026/sabbatical-retrospective-1/IMG_9016.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/sabbatical-retrospective-1/IMG_9016.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/LR_0VCtUO--600.webp 600w, https://james.li/img/LR_0VCtUO--1200.webp 1200w, https://james.li/img/LR_0VCtUO--5712.webp 5712w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/LR_0VCtUO--600.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot; width=&quot;5712&quot; height=&quot;4284&quot; srcset=&quot;https://james.li/img/LR_0VCtUO--600.jpeg 600w, https://james.li/img/LR_0VCtUO--1200.jpeg 1200w, https://james.li/img/LR_0VCtUO--5712.jpeg 5712w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;figcaption&gt;Chasing a missing cat plushie&lt;/figcaption&gt;&lt;/figure&gt;&lt;figure src=&quot;/media/2026/sabbatical-retrospective-1/IMG_9028.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/sabbatical-retrospective-1/IMG_9028.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/H7oTH27k0W-600.webp 600w, https://james.li/img/H7oTH27k0W-1200.webp 1200w, https://james.li/img/H7oTH27k0W-5712.webp 5712w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/H7oTH27k0W-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot; width=&quot;5712&quot; height=&quot;4284&quot; srcset=&quot;https://james.li/img/H7oTH27k0W-600.jpeg 600w, https://james.li/img/H7oTH27k0W-1200.jpeg 1200w, https://james.li/img/H7oTH27k0W-5712.jpeg 5712w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;figcaption&gt;Retrieving our cat (and the next clue) from Arizmendi Bakery&lt;/figcaption&gt;&lt;/figure&gt;
&lt;figure src=&quot;/media/2026/sabbatical-retrospective-1/DSCF4869.jpeg&quot; alt=&quot;&quot; class=&quot;img-1&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/sabbatical-retrospective-1/DSCF4869.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/ZadrELBQTq-600.webp 600w, https://james.li/img/ZadrELBQTq-1200.webp 1200w, https://james.li/img/ZadrELBQTq-4896.webp 4896w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/ZadrELBQTq-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-1&quot; width=&quot;4896&quot; height=&quot;3264&quot; srcset=&quot;https://james.li/img/ZadrELBQTq-600.jpeg 600w, https://james.li/img/ZadrELBQTq-1200.jpeg 1200w, https://james.li/img/ZadrELBQTq-4896.jpeg 4896w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;figcaption&gt;Finally proposing at Crissy Field&lt;/figcaption&gt;&lt;/figure&gt;
&lt;figure src=&quot;/media/2026/sabbatical-retrospective-1/IMG_9078.jpeg&quot; alt=&quot;&quot; class=&quot;img-1&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/sabbatical-retrospective-1/IMG_9078.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/wSPWU7FQjh-600.webp 600w, https://james.li/img/wSPWU7FQjh-1200.webp 1200w, https://james.li/img/wSPWU7FQjh-5712.webp 5712w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/wSPWU7FQjh-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-1&quot; width=&quot;5712&quot; height=&quot;4284&quot; srcset=&quot;https://james.li/img/wSPWU7FQjh-600.jpeg 600w, https://james.li/img/wSPWU7FQjh-1200.jpeg 1200w, https://james.li/img/wSPWU7FQjh-5712.jpeg 5712w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;figcaption&gt;She said yes!&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;Afterwards, I took us across the water to Sausalito, where we stayed at the Inn Above Tide. The next day, we had a nice lunch and then visited Muir Woods for the first time.&lt;/p&gt;
&lt;figure src=&quot;/media/2026/sabbatical-retrospective-1/IMG_9137.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/sabbatical-retrospective-1/IMG_9137.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/3R5jytUH1t-600.webp 600w, https://james.li/img/3R5jytUH1t-1200.webp 1200w, https://james.li/img/3R5jytUH1t-3867.webp 3867w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/3R5jytUH1t-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot; width=&quot;3867&quot; height=&quot;2900&quot; srcset=&quot;https://james.li/img/3R5jytUH1t-600.jpeg 600w, https://james.li/img/3R5jytUH1t-1200.jpeg 1200w, https://james.li/img/3R5jytUH1t-3867.jpeg 3867w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure src=&quot;/media/2026/sabbatical-retrospective-1/IMG_9178.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/sabbatical-retrospective-1/IMG_9178.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/fH8obCGYgy-600.webp 600w, https://james.li/img/fH8obCGYgy-1200.webp 1200w, https://james.li/img/fH8obCGYgy-5272.webp 5272w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/fH8obCGYgy-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot; width=&quot;5272&quot; height=&quot;3954&quot; srcset=&quot;https://james.li/img/fH8obCGYgy-600.jpeg 600w, https://james.li/img/fH8obCGYgy-1200.jpeg 1200w, https://james.li/img/fH8obCGYgy-5272.jpeg 5272w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;figure src=&quot;/media/2026/sabbatical-retrospective-1/IMG_9197.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/sabbatical-retrospective-1/IMG_9197.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/kIqVU2_V08-600.webp 600w, https://james.li/img/kIqVU2_V08-1200.webp 1200w, https://james.li/img/kIqVU2_V08-5648.webp 5648w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/kIqVU2_V08-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot; width=&quot;5648&quot; height=&quot;4236&quot; srcset=&quot;https://james.li/img/kIqVU2_V08-600.jpeg 600w, https://james.li/img/kIqVU2_V08-1200.jpeg 1200w, https://james.li/img/kIqVU2_V08-5648.jpeg 5648w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure src=&quot;/media/2026/sabbatical-retrospective-1/IMG_9222.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/sabbatical-retrospective-1/IMG_9222.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/_aZT_wT9dJ-600.webp 600w, https://james.li/img/_aZT_wT9dJ-1200.webp 1200w, https://james.li/img/_aZT_wT9dJ-5712.webp 5712w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/_aZT_wT9dJ-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot; width=&quot;5712&quot; height=&quot;4284&quot; srcset=&quot;https://james.li/img/_aZT_wT9dJ-600.jpeg 600w, https://james.li/img/_aZT_wT9dJ-1200.jpeg 1200w, https://james.li/img/_aZT_wT9dJ-5712.jpeg 5712w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;h2 id=&quot;april-2025&quot; tabindex=&quot;-1&quot;&gt;April 2025&lt;/h2&gt;
&lt;p&gt;After getting engaged, we visited my family in Walnut for a bit. I sold the Volt to my sister Joanna and took the Miata on some drives, including a weekend trip with Frank to Pismo Beach via SR 33 and a drive with Corey up Glendora Mountain Road.&lt;/p&gt;
&lt;figure src=&quot;/media/2026/sabbatical-retrospective-1/IMG_9539.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/sabbatical-retrospective-1/IMG_9539.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/mDF2HWR_-h-600.webp 600w, https://james.li/img/mDF2HWR_-h-1200.webp 1200w, https://james.li/img/mDF2HWR_-h-5712.webp 5712w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/mDF2HWR_-h-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot; width=&quot;5712&quot; height=&quot;4284&quot; srcset=&quot;https://james.li/img/mDF2HWR_-h-600.jpeg 600w, https://james.li/img/mDF2HWR_-h-1200.jpeg 1200w, https://james.li/img/mDF2HWR_-h-5712.jpeg 5712w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure src=&quot;/media/2026/sabbatical-retrospective-1/IMG_9715.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/sabbatical-retrospective-1/IMG_9715.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/eiGWLN69Vv-600.webp 600w, https://james.li/img/eiGWLN69Vv-1200.webp 1200w, https://james.li/img/eiGWLN69Vv-4032.webp 4032w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/eiGWLN69Vv-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot; width=&quot;4032&quot; height=&quot;3024&quot; srcset=&quot;https://james.li/img/eiGWLN69Vv-600.jpeg 600w, https://james.li/img/eiGWLN69Vv-1200.jpeg 1200w, https://james.li/img/eiGWLN69Vv-4032.jpeg 4032w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;Around this time, I realized that I didn&#39;t actually have health insurance because I had missed the COBRA enrollment period. This started a stressful scramble to figure out my coverage. Thankfully, it seemed like Medi-Cal would be able to cover me.&lt;/p&gt;
&lt;p&gt;After returning to SF, I spent some time on errands mixed with slow explorations around the city. We started wedding planning; we visited the Exploratorium; we attended the opening of Sunset Dunes Park. On one random Tuesday, I dropped off some e-waste, washed the Miata, then sat on a bluff in Fort Funston. I felt a little bit rudderless, but I didn&#39;t mind, yet.&lt;/p&gt;
&lt;figure src=&quot;/media/2026/sabbatical-retrospective-1/IMG_9832.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/sabbatical-retrospective-1/IMG_9832.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/VAeWIbxrET-600.webp 600w, https://james.li/img/VAeWIbxrET-1200.webp 1200w, https://james.li/img/VAeWIbxrET-5712.webp 5712w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/VAeWIbxrET-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot; width=&quot;5712&quot; height=&quot;4284&quot; srcset=&quot;https://james.li/img/VAeWIbxrET-600.jpeg 600w, https://james.li/img/VAeWIbxrET-1200.jpeg 1200w, https://james.li/img/VAeWIbxrET-5712.jpeg 5712w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure src=&quot;/media/2026/sabbatical-retrospective-1/IMG_9920.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/sabbatical-retrospective-1/IMG_9920.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/hUKSUnIK7N-600.webp 600w, https://james.li/img/hUKSUnIK7N-1200.webp 1200w, https://james.li/img/hUKSUnIK7N-5712.webp 5712w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/hUKSUnIK7N-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot; width=&quot;5712&quot; height=&quot;4284&quot; srcset=&quot;https://james.li/img/hUKSUnIK7N-600.jpeg 600w, https://james.li/img/hUKSUnIK7N-1200.jpeg 1200w, https://james.li/img/hUKSUnIK7N-5712.jpeg 5712w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;In the third week of April, I traveled for Corey&#39;s birthday trip, which involved renting a houseboat on Lake Powell. It proved to be quite adventurous and a lot of fun—we experienced a small hailstorm, crashed our boats on a shore (and then recovered them), and made  use of the waterslide. I hadn&#39;t realized how much I&#39;d missed that feeling of outdoor adventure, or how how much I&#39;d missed the landscapes of the American Southwest, so this trip felt really rejuvenating.&lt;/p&gt;
&lt;figure src=&quot;/media/2026/sabbatical-retrospective-1/IMG_0249.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/sabbatical-retrospective-1/IMG_0249.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/ZS-KeYFJOB-600.webp 600w, https://james.li/img/ZS-KeYFJOB-1200.webp 1200w, https://james.li/img/ZS-KeYFJOB-5712.webp 5712w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/ZS-KeYFJOB-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot; width=&quot;5712&quot; height=&quot;4284&quot; srcset=&quot;https://james.li/img/ZS-KeYFJOB-600.jpeg 600w, https://james.li/img/ZS-KeYFJOB-1200.jpeg 1200w, https://james.li/img/ZS-KeYFJOB-5712.jpeg 5712w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure src=&quot;/media/2026/sabbatical-retrospective-1/IMG_0267.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/sabbatical-retrospective-1/IMG_0267.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/Yx1m5yewJH-600.webp 600w, https://james.li/img/Yx1m5yewJH-1200.webp 1200w, https://james.li/img/Yx1m5yewJH-5712.webp 5712w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/Yx1m5yewJH-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot; width=&quot;5712&quot; height=&quot;4284&quot; srcset=&quot;https://james.li/img/Yx1m5yewJH-600.jpeg 600w, https://james.li/img/Yx1m5yewJH-1200.jpeg 1200w, https://james.li/img/Yx1m5yewJH-5712.jpeg 5712w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;figure src=&quot;/media/2026/sabbatical-retrospective-1/IMG_0427.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/sabbatical-retrospective-1/IMG_0427.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/AqMdMqVYe8-600.webp 600w, https://james.li/img/AqMdMqVYe8-1200.webp 1200w, https://james.li/img/AqMdMqVYe8-4032.webp 4032w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/AqMdMqVYe8-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot; width=&quot;4032&quot; height=&quot;3024&quot; srcset=&quot;https://james.li/img/AqMdMqVYe8-600.jpeg 600w, https://james.li/img/AqMdMqVYe8-1200.jpeg 1200w, https://james.li/img/AqMdMqVYe8-4032.jpeg 4032w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure src=&quot;/media/2026/sabbatical-retrospective-1/IMG_0433.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/sabbatical-retrospective-1/IMG_0433.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/cNOd0RQMjn-600.webp 600w, https://james.li/img/cNOd0RQMjn-1200.webp 1200w, https://james.li/img/cNOd0RQMjn-4032.webp 4032w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/cNOd0RQMjn-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot; width=&quot;4032&quot; height=&quot;3024&quot; srcset=&quot;https://james.li/img/cNOd0RQMjn-600.jpeg 600w, https://james.li/img/cNOd0RQMjn-1200.jpeg 1200w, https://james.li/img/cNOd0RQMjn-4032.jpeg 4032w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;hr&gt;
&lt;p&gt;After the Lake Powell trip, I developed a weird pain in my lower back, side, and chest when breathing deeply. I still hadn&#39;t fully settled my health insurance situation, so this was extra stressful. When I went to an urgent care clinic, the provider diagnosed me with a bruised rib and prescribed me some NSAIDs and rest, although the diagnosis was a bit murky because I hadn&#39;t had any obvious trauma on the trip.&lt;/p&gt;
&lt;p&gt;I didn&#39;t know at the time, but this was the beginning of several weeks of health issues for me.&lt;/p&gt;
&lt;p&gt;The pain seemed to be manageable and maybe improving slightly, so one week after the Lake Powell trip, Sharlene and I proceeded with our planned travel to Tokyo.&lt;/p&gt;
&lt;p&gt;During our flight there, a couple hours before landing, I suddenly felt extremely cold, struggled to think, and felt much worse pain in my side. With some difficulty, we made it to our hotel, and the next day, a doctor at an urgent care clinic prescribed me some antibiotics. She didn&#39;t have a clear diagnosis, but suspected some kind of pleural infection. Movement was often painful, so I stayed in bed most of the time.&lt;/p&gt;
&lt;figure src=&quot;/media/2026/sabbatical-retrospective-1/IMG_3534.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/sabbatical-retrospective-1/IMG_3534.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/MUCfKVmX0D-600.webp 600w, https://james.li/img/MUCfKVmX0D-1200.webp 1200w, https://james.li/img/MUCfKVmX0D-4032.webp 4032w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/MUCfKVmX0D-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot; width=&quot;4032&quot; height=&quot;3024&quot; srcset=&quot;https://james.li/img/MUCfKVmX0D-600.jpeg 600w, https://james.li/img/MUCfKVmX0D-1200.jpeg 1200w, https://james.li/img/MUCfKVmX0D-4032.jpeg 4032w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;figcaption&gt;I spent most of my time in bed like this, propped up on pillows because laying down felt worse.&lt;/figcaption&gt;&lt;/figure&gt;&lt;figure src=&quot;/media/2026/sabbatical-retrospective-1/IMG_0992.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/sabbatical-retrospective-1/IMG_0992.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/QL_gZ72EMK-600.webp 600w, https://james.li/img/QL_gZ72EMK-1200.webp 1200w, https://james.li/img/QL_gZ72EMK-5712.webp 5712w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/QL_gZ72EMK-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot; width=&quot;5712&quot; height=&quot;4284&quot; srcset=&quot;https://james.li/img/QL_gZ72EMK-600.jpeg 600w, https://james.li/img/QL_gZ72EMK-1200.jpeg 1200w, https://james.li/img/QL_gZ72EMK-5712.jpeg 5712w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;figcaption&gt;Sharlene bringing me amazing food from one of the several 7-11 stores nearby&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;Thankfully, over the next few days, my pain and energy improved until I was able to walk around and do normal tourist things again. The pain was replaced by a bad cough which made it difficult to speak, but I hoped the cough would go away in time.&lt;/p&gt;
&lt;p&gt;Aside from my illness, Tokyo was amazing! This was our first visit, so everything felt new to us. I felt like I was in a movie set the first time we walked down a small side street. The urban environment there is so dense and human in a way U.S. cities are not. We were also surprised by how tourist-friendly it was. A lot of our time was spent shopping, supported by the favorable exchange rate and the gigantic department stores.&lt;/p&gt;
&lt;figure src=&quot;/media/2026/sabbatical-retrospective-1/IMG_0579.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/sabbatical-retrospective-1/IMG_0579.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/o7qeNhTkvu-600.webp 600w, https://james.li/img/o7qeNhTkvu-1200.webp 1200w, https://james.li/img/o7qeNhTkvu-5712.webp 5712w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/o7qeNhTkvu-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot; width=&quot;5712&quot; height=&quot;4284&quot; srcset=&quot;https://james.li/img/o7qeNhTkvu-600.jpeg 600w, https://james.li/img/o7qeNhTkvu-1200.jpeg 1200w, https://james.li/img/o7qeNhTkvu-5712.jpeg 5712w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure src=&quot;/media/2026/sabbatical-retrospective-1/IMG_0808.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/sabbatical-retrospective-1/IMG_0808.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/O_NGFyASV0-600.webp 600w, https://james.li/img/O_NGFyASV0-1200.webp 1200w, https://james.li/img/O_NGFyASV0-5712.webp 5712w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/O_NGFyASV0-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot; width=&quot;5712&quot; height=&quot;4284&quot; srcset=&quot;https://james.li/img/O_NGFyASV0-600.jpeg 600w, https://james.li/img/O_NGFyASV0-1200.jpeg 1200w, https://james.li/img/O_NGFyASV0-5712.jpeg 5712w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;figure src=&quot;/media/2026/sabbatical-retrospective-1/IMG_1008.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/sabbatical-retrospective-1/IMG_1008.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/sWwmGL-NOd-600.webp 600w, https://james.li/img/sWwmGL-NOd-1200.webp 1200w, https://james.li/img/sWwmGL-NOd-5712.webp 5712w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/sWwmGL-NOd-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot; width=&quot;5712&quot; height=&quot;4284&quot; srcset=&quot;https://james.li/img/sWwmGL-NOd-600.jpeg 600w, https://james.li/img/sWwmGL-NOd-1200.jpeg 1200w, https://james.li/img/sWwmGL-NOd-5712.jpeg 5712w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure src=&quot;/media/2026/sabbatical-retrospective-1/IMG_0922.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/sabbatical-retrospective-1/IMG_0922.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/jmJ7njrrvz-600.webp 600w, https://james.li/img/jmJ7njrrvz-1200.webp 1200w, https://james.li/img/jmJ7njrrvz-4032.webp 4032w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/jmJ7njrrvz-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot; width=&quot;4032&quot; height=&quot;3024&quot; srcset=&quot;https://james.li/img/jmJ7njrrvz-600.jpeg 600w, https://james.li/img/jmJ7njrrvz-1200.jpeg 1200w, https://james.li/img/jmJ7njrrvz-4032.jpeg 4032w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;figure src=&quot;/media/2026/sabbatical-retrospective-1/IMG_0969.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/sabbatical-retrospective-1/IMG_0969.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/ouAITvNxFd-600.webp 600w, https://james.li/img/ouAITvNxFd-1200.webp 1200w, https://james.li/img/ouAITvNxFd-5712.webp 5712w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/ouAITvNxFd-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot; width=&quot;5712&quot; height=&quot;4284&quot; srcset=&quot;https://james.li/img/ouAITvNxFd-600.jpeg 600w, https://james.li/img/ouAITvNxFd-1200.jpeg 1200w, https://james.li/img/ouAITvNxFd-5712.jpeg 5712w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure src=&quot;/media/2026/sabbatical-retrospective-1/IMG_1325.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/sabbatical-retrospective-1/IMG_1325.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/QKWw5A3rk2-600.webp 600w, https://james.li/img/QKWw5A3rk2-1200.webp 1200w, https://james.li/img/QKWw5A3rk2-5712.webp 5712w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/QKWw5A3rk2-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot; width=&quot;5712&quot; height=&quot;4284&quot; srcset=&quot;https://james.li/img/QKWw5A3rk2-600.jpeg 600w, https://james.li/img/QKWw5A3rk2-1200.jpeg 1200w, https://james.li/img/QKWw5A3rk2-5712.jpeg 5712w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;figure src=&quot;/media/2026/sabbatical-retrospective-1/IMG_1136.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/sabbatical-retrospective-1/IMG_1136.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/f975IRs4Vf-600.webp 600w, https://james.li/img/f975IRs4Vf-1200.webp 1200w, https://james.li/img/f975IRs4Vf-5768.webp 5768w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/f975IRs4Vf-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot; width=&quot;5768&quot; height=&quot;7691&quot; srcset=&quot;https://james.li/img/f975IRs4Vf-600.jpeg 600w, https://james.li/img/f975IRs4Vf-1200.jpeg 1200w, https://james.li/img/f975IRs4Vf-5768.jpeg 5768w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;/figure&gt;&lt;figure src=&quot;/media/2026/sabbatical-retrospective-1/IMG_1406.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/sabbatical-retrospective-1/IMG_1406.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/EQGFR5vW9U-600.webp 600w, https://james.li/img/EQGFR5vW9U-1200.webp 1200w, https://james.li/img/EQGFR5vW9U-4284.webp 4284w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/EQGFR5vW9U-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-2&quot; width=&quot;4284&quot; height=&quot;5712&quot; srcset=&quot;https://james.li/img/EQGFR5vW9U-600.jpeg 600w, https://james.li/img/EQGFR5vW9U-1200.jpeg 1200w, https://james.li/img/EQGFR5vW9U-4284.jpeg 4284w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;Fortunately, we had kept our trip planning simple and contained within Tokyo, so our plans weren&#39;t too impacted by my illness. We still had a great time and experienced Tokyo the way we hoped to, and we returned to SF in early May feeling satisfied and happy.&lt;/p&gt;
&lt;h2 id=&quot;reflections-on-these-first-few-months&quot; tabindex=&quot;-1&quot;&gt;Reflections on these first few months&lt;/h2&gt;
&lt;p&gt;Looking back, I think these first four original months of the sabbatical were pretty fruitful. I didn&#39;t really have concrete plans going into the sabbatical; I mainly just wanted a break from my daily work routine, and to be free to explore whatever seemed interesting to me. The travel we did was fulfilling and memorable (especially since I&#39;d avoided flying for a few years for environmental reasons), and proposing to Sharlene was a challenging and fun project to pull off.&lt;/p&gt;
&lt;p&gt;However, the months ahead would prove to be a bit more challenging for my physical and mental health.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://james.li/2026/sabbatical-retrospective-2/&quot;&gt;Read more in part 2 →&lt;/a&gt;&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Some wedding photos + Sharlene&#39;s wedding costs writeup</title>
    <link href="https://james.li/2026/wedding/" />
    <updated>2026-04-21T00:00:00Z</updated>
    <id>https://james.li/2026/wedding/</id>
    <content type="html">&lt;p&gt;Sharlene and I had our wedding celebration exactly one month ago, on March 21st, 2026! It was a lot of work and strife planning the big weekend, but it was very worth it. We were so lucky to celebrate our marriage surrounded by all of our amazing friends and family.&lt;/p&gt;
&lt;h2 id=&quot;background&quot; tabindex=&quot;-1&quot;&gt;Background&lt;/h2&gt;
&lt;p&gt;We&#39;d actually gotten legally married in October of last year, but this event in March was the real celebration. For us, we didn&#39;t really feel married until we celebrated with our friends and family.&lt;/p&gt;
&lt;p&gt;We had our celebration at &lt;a href=&quot;https://paletteteahouse.com&quot;&gt;Palette Tea House&lt;/a&gt; in San Francisco&#39;s Ghirardelli Square. Our night started with a cocktail hour, then continued with our vow exchange, dinner, and speeches from some of our friends, before finally concluding with a bunch of karaoke.&lt;/p&gt;
&lt;p&gt;We wanted our event to be fun and heartfelt rather than polished or overly produced, and we&#39;re pretty happy with how it played out.&lt;/p&gt;
&lt;h2 id=&quot;sharlene&#39;s-wedding-costs-writeup-%F0%9F%92%B8&quot; tabindex=&quot;-1&quot;&gt;Sharlene&#39;s wedding costs writeup 💸&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://sharlene.party/posts/wedding-budget-recap/&quot;&gt;Sharlene wrote up a budget recap (with numbers!) at her website here.&lt;/a&gt; Click through to read! I think it&#39;s a great breakdown of our costs and tradeoffs, and I hope it can serve as a useful reference for anybody planning a wedding in the future.&lt;/p&gt;
&lt;p&gt;The TL;DR:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Venue and food: $19.7k&lt;/li&gt;
&lt;li&gt;DJ, photography, coordinator, florals: $9k&lt;/li&gt;
&lt;li&gt;Splurges: $24.2k&lt;/li&gt;
&lt;li&gt;Grand total: $52k&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This was definitely the most expensive thing we&#39;ve ever done. We&#39;re very fortunate to have had the privilege to host this celebration.&lt;/p&gt;
&lt;h2 id=&quot;some-photos!&quot; tabindex=&quot;-1&quot;&gt;Some photos!&lt;/h2&gt;
&lt;p&gt;All photos are by &lt;a href=&quot;https://www.ericlephotography.com&quot;&gt;Eric Le&lt;/a&gt; (and his assistant Dom) of &lt;a href=&quot;https://www.inspiredbystudio.com&quot;&gt;Inspired By Studio&lt;/a&gt;. They did an amazing job.&lt;/p&gt;
&lt;p&gt;There are so many great photos of all our family and friends, but I don&#39;t think it makes sense to try to post them here. Instead, I&#39;m just picking a few photos from our couples&#39; photo session and of the event as a whole.&lt;/p&gt;
&lt;figure src=&quot;/media/2026/wedding/Sharlene_James-150227.jpg&quot; alt=&quot;&quot; class=&quot;img-1&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/wedding/Sharlene_James-150227.jpg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/XeZeaaG9uP-600.webp 600w, https://james.li/img/XeZeaaG9uP-1200.webp 1200w, https://james.li/img/XeZeaaG9uP-3565.webp 3565w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/XeZeaaG9uP-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-1&quot; width=&quot;3565&quot; height=&quot;5347&quot; srcset=&quot;https://james.li/img/XeZeaaG9uP-600.jpeg 600w, https://james.li/img/XeZeaaG9uP-1200.jpeg 1200w, https://james.li/img/XeZeaaG9uP-3565.jpeg 3565w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;figure src=&quot;/media/2026/wedding/Sharlene_James-144410.jpg&quot; alt=&quot;&quot; class=&quot;img-1&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/wedding/Sharlene_James-144410.jpg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/KqVqrg6zfr-600.webp 600w, https://james.li/img/KqVqrg6zfr-1200.webp 1200w, https://james.li/img/KqVqrg6zfr-5857.webp 5857w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/KqVqrg6zfr-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-1&quot; width=&quot;5857&quot; height=&quot;3905&quot; srcset=&quot;https://james.li/img/KqVqrg6zfr-600.jpeg 600w, https://james.li/img/KqVqrg6zfr-1200.jpeg 1200w, https://james.li/img/KqVqrg6zfr-5857.jpeg 5857w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;figure src=&quot;/media/2026/wedding/Sharlene_James-145013.jpg&quot; alt=&quot;&quot; class=&quot;img-1&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/wedding/Sharlene_James-145013.jpg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/IoEKkYOzul-600.webp 600w, https://james.li/img/IoEKkYOzul-1200.webp 1200w, https://james.li/img/IoEKkYOzul-3406.webp 3406w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/IoEKkYOzul-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-1&quot; width=&quot;3406&quot; height=&quot;5109&quot; srcset=&quot;https://james.li/img/IoEKkYOzul-600.jpeg 600w, https://james.li/img/IoEKkYOzul-1200.jpeg 1200w, https://james.li/img/IoEKkYOzul-3406.jpeg 3406w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;figure src=&quot;/media/2026/wedding/Sharlene_James-145654.jpg&quot; alt=&quot;&quot; class=&quot;img-1&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/wedding/Sharlene_James-145654.jpg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/7teFhxQllO-600.webp 600w, https://james.li/img/7teFhxQllO-1200.webp 1200w, https://james.li/img/7teFhxQllO-5844.webp 5844w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/7teFhxQllO-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-1&quot; width=&quot;5844&quot; height=&quot;3896&quot; srcset=&quot;https://james.li/img/7teFhxQllO-600.jpeg 600w, https://james.li/img/7teFhxQllO-1200.jpeg 1200w, https://james.li/img/7teFhxQllO-5844.jpeg 5844w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;figure src=&quot;/media/2026/wedding/Sharlene_James-152658.jpg&quot; alt=&quot;&quot; class=&quot;img-1&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/wedding/Sharlene_James-152658.jpg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/riGsBjdm-W-600.webp 600w, https://james.li/img/riGsBjdm-W-1200.webp 1200w, https://james.li/img/riGsBjdm-W-3991.webp 3991w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/riGsBjdm-W-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-1&quot; width=&quot;3991&quot; height=&quot;5987&quot; srcset=&quot;https://james.li/img/riGsBjdm-W-600.jpeg 600w, https://james.li/img/riGsBjdm-W-1200.jpeg 1200w, https://james.li/img/riGsBjdm-W-3991.jpeg 3991w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;hr&gt;
&lt;figure src=&quot;/media/2026/wedding/Sharlene_James-161016.jpg&quot; alt=&quot;&quot; class=&quot;img-1&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/wedding/Sharlene_James-161016.jpg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/Xf24argk5P-600.webp 600w, https://james.li/img/Xf24argk5P-1200.webp 1200w, https://james.li/img/Xf24argk5P-5957.webp 5957w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/Xf24argk5P-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-1&quot; width=&quot;5957&quot; height=&quot;3971&quot; srcset=&quot;https://james.li/img/Xf24argk5P-600.jpeg 600w, https://james.li/img/Xf24argk5P-1200.jpeg 1200w, https://james.li/img/Xf24argk5P-5957.jpeg 5957w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;figure src=&quot;/media/2026/wedding/Sharlene_James-161225.jpg&quot; alt=&quot;&quot; class=&quot;img-1&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/wedding/Sharlene_James-161225.jpg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/PnC7wbghFD-600.webp 600w, https://james.li/img/PnC7wbghFD-1200.webp 1200w, https://james.li/img/PnC7wbghFD-3902.webp 3902w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/PnC7wbghFD-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-1&quot; width=&quot;3902&quot; height=&quot;5853&quot; srcset=&quot;https://james.li/img/PnC7wbghFD-600.jpeg 600w, https://james.li/img/PnC7wbghFD-1200.jpeg 1200w, https://james.li/img/PnC7wbghFD-3902.jpeg 3902w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;figure src=&quot;/media/2026/wedding/Sharlene_James-161431.jpg&quot; alt=&quot;&quot; class=&quot;img-1&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/wedding/Sharlene_James-161431.jpg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/c6qu7IYq0J-600.webp 600w, https://james.li/img/c6qu7IYq0J-1200.webp 1200w, https://james.li/img/c6qu7IYq0J-5905.webp 5905w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/c6qu7IYq0J-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-1&quot; width=&quot;5905&quot; height=&quot;3937&quot; srcset=&quot;https://james.li/img/c6qu7IYq0J-600.jpeg 600w, https://james.li/img/c6qu7IYq0J-1200.jpeg 1200w, https://james.li/img/c6qu7IYq0J-5905.jpeg 5905w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;hr&gt;
&lt;figure src=&quot;/media/2026/wedding/Sharlene_James-172308.jpg&quot; alt=&quot;&quot; class=&quot;img-1&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/wedding/Sharlene_James-172308.jpg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/yBDzlsNUpD-600.webp 600w, https://james.li/img/yBDzlsNUpD-1200.webp 1200w, https://james.li/img/yBDzlsNUpD-5742.webp 5742w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/yBDzlsNUpD-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-1&quot; width=&quot;5742&quot; height=&quot;3828&quot; srcset=&quot;https://james.li/img/yBDzlsNUpD-600.jpeg 600w, https://james.li/img/yBDzlsNUpD-1200.jpeg 1200w, https://james.li/img/yBDzlsNUpD-5742.jpeg 5742w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;figure src=&quot;/media/2026/wedding/Sharlene_James-172737.jpg&quot; alt=&quot;&quot; class=&quot;img-1&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/wedding/Sharlene_James-172737.jpg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/2_Zux6m1Pz-600.webp 600w, https://james.li/img/2_Zux6m1Pz-1200.webp 1200w, https://james.li/img/2_Zux6m1Pz-3506.webp 3506w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/2_Zux6m1Pz-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-1&quot; width=&quot;3506&quot; height=&quot;5259&quot; srcset=&quot;https://james.li/img/2_Zux6m1Pz-600.jpeg 600w, https://james.li/img/2_Zux6m1Pz-1200.jpeg 1200w, https://james.li/img/2_Zux6m1Pz-3506.jpeg 3506w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;figure src=&quot;/media/2026/wedding/Sharlene_James-172934.jpg&quot; alt=&quot;&quot; class=&quot;img-1&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/wedding/Sharlene_James-172934.jpg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/kINsa4lAr3-600.webp 600w, https://james.li/img/kINsa4lAr3-1200.webp 1200w, https://james.li/img/kINsa4lAr3-5161.webp 5161w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/kINsa4lAr3-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-1&quot; width=&quot;5161&quot; height=&quot;3441&quot; srcset=&quot;https://james.li/img/kINsa4lAr3-600.jpeg 600w, https://james.li/img/kINsa4lAr3-1200.jpeg 1200w, https://james.li/img/kINsa4lAr3-5161.jpeg 5161w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;hr&gt;
&lt;figure src=&quot;/media/2026/wedding/Sharlene_James-195517.jpg&quot; alt=&quot;&quot; class=&quot;img-1&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/wedding/Sharlene_James-195517.jpg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/mHRcXueWFn-600.webp 600w, https://james.li/img/mHRcXueWFn-1200.webp 1200w, https://james.li/img/mHRcXueWFn-5874.webp 5874w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/mHRcXueWFn-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-1&quot; width=&quot;5874&quot; height=&quot;3916&quot; srcset=&quot;https://james.li/img/mHRcXueWFn-600.jpeg 600w, https://james.li/img/mHRcXueWFn-1200.jpeg 1200w, https://james.li/img/mHRcXueWFn-5874.jpeg 5874w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;figure src=&quot;/media/2026/wedding/Sharlene_James-205217.jpg&quot; alt=&quot;&quot; class=&quot;img-1&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/wedding/Sharlene_James-205217.jpg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/sd12XmQJXe-600.webp 600w, https://james.li/img/sd12XmQJXe-1200.webp 1200w, https://james.li/img/sd12XmQJXe-5866.webp 5866w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/sd12XmQJXe-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-1&quot; width=&quot;5866&quot; height=&quot;3911&quot; srcset=&quot;https://james.li/img/sd12XmQJXe-600.jpeg 600w, https://james.li/img/sd12XmQJXe-1200.jpeg 1200w, https://james.li/img/sd12XmQJXe-5866.jpeg 5866w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;figure src=&quot;/media/2026/wedding/Sharlene_James-210006.jpg&quot; alt=&quot;&quot; class=&quot;img-1&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/wedding/Sharlene_James-210006.jpg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/PNrliJvFAq-600.webp 600w, https://james.li/img/PNrliJvFAq-1200.webp 1200w, https://james.li/img/PNrliJvFAq-5374.webp 5374w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/PNrliJvFAq-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-1&quot; width=&quot;5374&quot; height=&quot;3583&quot; srcset=&quot;https://james.li/img/PNrliJvFAq-600.jpeg 600w, https://james.li/img/PNrliJvFAq-1200.jpeg 1200w, https://james.li/img/PNrliJvFAq-5374.jpeg 5374w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;h2 id=&quot;thanks-to...&quot; tabindex=&quot;-1&quot;&gt;Thanks to...&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Our vendors&lt;/strong&gt;: We were really happy with all of our vendors and would recommend any of them without hesitation.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Venue and food&lt;/em&gt;: &lt;a href=&quot;https://paletteteahouse.com&quot;&gt;Palette Tea House&lt;/a&gt; was so great to work with, priced right, and served amazing food. 100% the right choice for us.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Photography&lt;/em&gt;: &lt;a href=&quot;https://www.ericlephotography.com&quot;&gt;Eric Le&lt;/a&gt; (and his assistant Dom) of &lt;a href=&quot;https://www.inspiredbystudio.com&quot;&gt;Inspired By Studio&lt;/a&gt; asked all the right questions, guided us through our day with professionalism and cheer, and delivered spectacular work. On top of that, he generously volunteered to cover our tea ceremony and delivered our full gallery insanely quickly.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;DJ/MC&lt;/em&gt;: &lt;a href=&quot;https://www.heartofgolddjs.com&quot;&gt;Heart Of Gold DJs&lt;/a&gt;&#39; Jordan Springman answered all our questions, went above and beyond to accommodate the Chinese-language songs we wanted to include, and just made all our audio and karaoke work perfectly. Karaoke was a blast thanks to her.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Day-of coordinator&lt;/em&gt;: &lt;a href=&quot;https://www.arlenemunozevents.com&quot;&gt;Arlene Muñoz&lt;/a&gt; made sure everything ran smoothly so we could enjoy our day. Other coordinators we interviewed were also good at planning and tracking details, but Arlene stood out because she made us feel relaxed and reassured.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Florals&lt;/em&gt;: &lt;a href=&quot;https://www.villageno7.com&quot;&gt;Village No. 7&lt;/a&gt;&#39;s Cecilia Tran did a great job creating our cute tabletop florals and the boutonniere I wore.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Dress&lt;/em&gt;: Sharlene&#39;s incredible dress was custom made by &lt;a href=&quot;https://www.instagram.com/alethea_official.id&quot;&gt;Alethea Sposa&lt;/a&gt; in Jakarta, Indonesia, and then saved by emergency alterations from Suzanne Hanley of &lt;a href=&quot;https://atelierdesmodistes.com&quot;&gt;Atelier Des Modistes&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Our wedding party&lt;/strong&gt;, for handling all our last-minute needs with such competence and grace, and for generally being incredible people.&lt;/p&gt;
&lt;p&gt;And of course, &lt;strong&gt;all of our friends and family&lt;/strong&gt; who were able to join us and celebrate this special moment in our lives.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Electrical upgrades for our Winnebago Solis camper van</title>
    <link href="https://james.li/2026/van-electrical-upgrades/" />
    <updated>2026-03-05T00:00:00Z</updated>
    <id>https://james.li/2026/van-electrical-upgrades/</id>
    <content type="html">&lt;nav id=&quot;TOC&quot; class=&quot;toc&quot;&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://james.li/2026/van-electrical-upgrades/#introduction&quot;&gt;Introduction&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://james.li/2026/van-electrical-upgrades/#summary-of-changes&quot;&gt;Summary of changes&lt;/a&gt;&lt;ul&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://james.li/2026/van-electrical-upgrades/#the-original-system&quot;&gt;The original system&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://james.li/2026/van-electrical-upgrades/#project-goals&quot;&gt;Project goals&lt;/a&gt;&lt;ul&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://james.li/2026/van-electrical-upgrades/#1.-lithium-(lifepo4)-house-battery&quot;&gt;1. Lithium (LiFePO4) house battery&lt;/a&gt;&lt;ul&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://james.li/2026/van-electrical-upgrades/#2.-li-bim-225-isolation-module&quot;&gt;2. Li-BIM 225 isolation module&lt;/a&gt;&lt;ul&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://james.li/2026/van-electrical-upgrades/#3.-anker-solix-c1000-gen-2-portable-power-station&quot;&gt;3. Anker Solix C1000 Gen 2 portable power station&lt;/a&gt;&lt;ul&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://james.li/2026/van-electrical-upgrades/#4.-lithium-compatible-shore-power-converter&quot;&gt;4. Lithium-compatible shore power converter&lt;/a&gt;&lt;ul&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://james.li/2026/van-electrical-upgrades/#5.-hardwired-charging-for-the-anker-power-station&quot;&gt;5. Hardwired charging for the Anker power station&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://james.li/2026/van-electrical-upgrades/#6.-mppt-solar-controller&quot;&gt;6. MPPT solar controller&lt;/a&gt;&lt;ul&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://james.li/2026/van-electrical-upgrades/#conclusions&quot;&gt;Conclusions&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://james.li/2026/van-electrical-upgrades/#resources&quot;&gt;Resources&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/nav&gt;&lt;h2 id=&quot;introduction&quot; tabindex=&quot;-1&quot;&gt;Introduction&lt;/h2&gt;
&lt;p&gt;Back in October 2025, Sharlene and I bought a lightly used 2022 Winnebago Solis 59P camper van! Sharlene had just left her job at Notion in order to spend time with me in the last few months of my sabbatical year, and we decided the most exciting way to spend our time would be to do an extended camper van trip.&lt;/p&gt;
&lt;figure src=&quot;/media/2026/van-electrical-upgrades/IMG_4697.jpeg&quot; alt=&quot;&quot; class=&quot;img-1-med&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/van-electrical-upgrades/IMG_4697.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/5CFvIPb0mX-600.webp 600w, https://james.li/img/5CFvIPb0mX-1200.webp 1200w, https://james.li/img/5CFvIPb0mX-3860.webp 3860w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/5CFvIPb0mX-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-1-med&quot; width=&quot;3860&quot; height=&quot;2881&quot; srcset=&quot;https://james.li/img/5CFvIPb0mX-600.jpeg 600w, https://james.li/img/5CFvIPb0mX-1200.jpeg 1200w, https://james.li/img/5CFvIPb0mX-3860.jpeg 3860w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;figcaption&gt;Me at camp with our van in Zion National Park&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;We had a very memorable time traveling, first around the Southwest in late October through November and then hanging out along the Southern California coast in December. I think we grew a lot as a couple, while also having a lot of fun!&lt;/p&gt;
&lt;p&gt;I may write separately in the future about our van travels, but this post is specifically just to document the electrical system upgrades I&#39;ve made to the van so far.&lt;/p&gt;
&lt;p&gt;I hope this is helpful for anyone considering similar modifications to their van! I&#39;ve been really enjoying tinkering on the van and gradually making it work better for us.&lt;/p&gt;
&lt;h2 id=&quot;summary-of-changes&quot; tabindex=&quot;-1&quot;&gt;Summary of changes&lt;/h2&gt;
&lt;h3 id=&quot;going-into-our-october%E2%80%93december-big-trip&quot; tabindex=&quot;-1&quot;&gt;Going into our October–December big trip&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;Replaced the two original lead-acid AGM house batteries with one 165 Ah lithium (LiFePO4) battery&lt;/li&gt;
&lt;li&gt;Replaced the original isolation solenoid with an Li-BIM 225 isolation module&lt;/li&gt;
&lt;li&gt;Bought a portable power station (Anker Solix C1000 Gen 2) to run our 120 V AC appliances&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&quot;additional-changes-after-our-big-trip&quot; tabindex=&quot;-1&quot;&gt;Additional changes after our big trip&lt;/h3&gt;
&lt;ol start=&quot;4&quot;&gt;
&lt;li&gt;Replaced the shore power converter with a lithium-battery-compatible unit&lt;/li&gt;
&lt;li&gt;Wired in a dedicated charging cable for the Anker power station&lt;/li&gt;
&lt;li&gt;Replaced the original PWM solar charge controller with a Victron MPPT controller&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h2 id=&quot;the-original-system&quot; tabindex=&quot;-1&quot;&gt;The original system&lt;/h2&gt;
&lt;p&gt;When we bought the van, its electrical system was unchanged from the Winnebago original. Here&#39;s a diagram I made of that system:&lt;/p&gt;
&lt;figure src=&quot;/media/2026/van-electrical-upgrades/van-diagram-original.png&quot; alt=&quot;&quot; class=&quot;img-1&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/van-electrical-upgrades/van-diagram-original.png&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/3KVbOuMx6k-600.webp 600w, https://james.li/img/3KVbOuMx6k-1200.webp 1200w, https://james.li/img/3KVbOuMx6k-2479.webp 2479w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/3KVbOuMx6k-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-1&quot; width=&quot;2479&quot; height=&quot;1750&quot; srcset=&quot;https://james.li/img/3KVbOuMx6k-600.jpeg 600w, https://james.li/img/3KVbOuMx6k-1200.jpeg 1200w, https://james.li/img/3KVbOuMx6k-2479.jpeg 2479w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;This is a pretty typical RV electrical system. When you&#39;re connected to shore power, everything works, but when you&#39;re not connected to shore power and the engine is off, you can only run your 12-volt DC systems. The 120 V AC outlets in the van are energized only when the van is connected to shore power.&lt;/p&gt;
&lt;p&gt;Our van doesn&#39;t have a generator since it&#39;s the 59P model. The 59PX model has a built-in gas generator which does power the 120 V AC outlets, but I didn&#39;t really want the generator due to noise and maintenance. (We also didn&#39;t care for the extra length or the A/C unit of the PX.)&lt;/p&gt;
&lt;h2 id=&quot;project-goals&quot; tabindex=&quot;-1&quot;&gt;Project goals&lt;/h2&gt;
&lt;p&gt;Off the bat, when we bought the van, the original house batteries were not holding a charge and needed replacement. (This type of lead-acid battery gets damaged if discharged too deeply, so for a used van, this was somewhat expected.)&lt;/p&gt;
&lt;p&gt;We wanted to be able to run a microwave and Instant Pot to heat canned soup and cook rice, while also primarily camping off-grid without relying on shore power.&lt;/p&gt;
&lt;p&gt;Many people want to run air conditioning off their batteries too, but for our travels this was &lt;em&gt;not&lt;/em&gt; part of our wish list.&lt;/p&gt;
&lt;p&gt;We didn&#39;t have a specific budget, but two new AGM batteries would have cost around $600-$1000, so we were aiming for a cost not too much greater than that.&lt;/p&gt;
&lt;h3 id=&quot;keeping-it-simple&quot; tabindex=&quot;-1&quot;&gt;Keeping it simple&lt;/h3&gt;
&lt;p&gt;Some other Solis owners have done extensive van upgrade projects that often involve adding many more lithium batteries, relocating batteries inside, and adding an inverter or combined inverter/charger/transfer switch unit. These projects are really neat because you can build a very integrated and capable system.&lt;/p&gt;
&lt;p&gt;However, we wanted to avoid making major modifications to the van, because:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We wanted to hit the road as soon as possible, rather than spend our precious days prepping the van&lt;/li&gt;
&lt;li&gt;We weren&#39;t sure if we might sell the van after this trip, and big modifications usually don&#39;t help resale value&lt;/li&gt;
&lt;li&gt;We weren&#39;t very familiar with the van&#39;s internals, so we didn&#39;t feel confident performing deep rocket surgery&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id=&quot;1.-lithium-(lifepo4)-house-battery&quot; tabindex=&quot;-1&quot;&gt;1. Lithium (LiFePO4) house battery&lt;/h2&gt;
&lt;p&gt;The total usable capacity of the two original AGM batteries was about 100 Ah.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://james.li/2026/van-electrical-upgrades/#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt; I replaced them with a single &lt;a href=&quot;https://www.litime.com/products/12v-165ah-smart-self-heating-lithium-battery&quot;&gt;165 Ah LiFePO4 battery&lt;/a&gt;. This battery cost around $500 and has a Bluetooth-enabled BMS for checking the status, as well as self-heating capability so it can be charged in cold temperatures. It&#39;s the same physical size (Group 31) as the original batteries.&lt;/p&gt;
&lt;h3 id=&quot;installation&quot; tabindex=&quot;-1&quot;&gt;Installation&lt;/h3&gt;
&lt;p&gt;With the help of my friend Corey and his transmission jack, removing the old batteries and putting in the new one was fairly straightforward. The two original batteries were mounted underneath the van, one in front of and one behind the rear axle. I put the new battery in the front mounting cage and removed the rear mounting cage. As a bonus, removing the rear battery freed up space to mount a spare tire underneath the van.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://james.li/2026/van-electrical-upgrades/#fn2&quot; id=&quot;fnref2&quot;&gt;[2]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;figure src=&quot;/media/2026/van-electrical-upgrades/IMG_4764.jpeg&quot; alt=&quot;&quot; class=&quot;img-1&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/van-electrical-upgrades/IMG_4764.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/ZAWtZrQrYD-600.webp 600w, https://james.li/img/ZAWtZrQrYD-1200.webp 1200w, https://james.li/img/ZAWtZrQrYD-4032.webp 4032w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/ZAWtZrQrYD-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-1&quot; width=&quot;4032&quot; height=&quot;3024&quot; srcset=&quot;https://james.li/img/ZAWtZrQrYD-600.jpeg 600w, https://james.li/img/ZAWtZrQrYD-1200.jpeg 1200w, https://james.li/img/ZAWtZrQrYD-4032.jpeg 4032w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;figcaption&gt;Removing the original, front battery. The transmission jack was definitely the right tool for lowering these heavy batteries.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;figure src=&quot;/media/2026/van-electrical-upgrades/IMG_7742.jpeg&quot; alt=&quot;&quot; class=&quot;img-1&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/van-electrical-upgrades/IMG_7742.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/r6yBEiMSP1-600.webp 600w, https://james.li/img/r6yBEiMSP1-1200.webp 1200w, https://james.li/img/r6yBEiMSP1-4032.webp 4032w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/r6yBEiMSP1-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-1&quot; width=&quot;4032&quot; height=&quot;3024&quot; srcset=&quot;https://james.li/img/r6yBEiMSP1-600.jpeg 600w, https://james.li/img/r6yBEiMSP1-1200.jpeg 1200w, https://james.li/img/r6yBEiMSP1-4032.jpeg 4032w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;figcaption&gt;The new LiFePO4 battery after being installed in the front mounting cage. The new spare tire is also visible here, mounted behind the axle.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;After putting in this battery, I changed the Xantrex solar charge controller&#39;s battery type setting to the LiFePO4 option (very easy, just a few button presses per the manual).&lt;/p&gt;
&lt;p&gt;As an extra safety measure, I also added a 200 A fuse at the positive terminal of the new battery. (I don&#39;t remember exactly which one I bought, but it was similar to &lt;a href=&quot;https://www.amazon.com/BOJACK-Terminal-Marine-Battery-Waterproof/dp/B0CHJP4G4S&quot;&gt;this one on Amazon&lt;/a&gt;.)&lt;/p&gt;
&lt;h3 id=&quot;reflections-on-battery-sizing&quot; tabindex=&quot;-1&quot;&gt;Reflections on battery sizing&lt;/h3&gt;
&lt;p&gt;We did have to watch our battery carefully to avoid running out of energy, particularly when parked in one place for more than a couple of days. More solar power and/or a bigger battery would have helped with this; I believe the biggest battery that still fits in the stock Solis mounting cage is the &lt;a href=&quot;https://www.epochbatteries.com/products/12v-300ah-heated-bluetooth-lifepo4-battery-epoch-essentials&quot;&gt;Epoch 300 Ah battery&lt;/a&gt;. Having that much energy would&#39;ve been very cool, but that battery also costs $1200, so ultimately I think the Li Time 165 Ah battery was a reasonable compromise for us.&lt;/p&gt;
&lt;h3 id=&quot;issues-with-state-of-charge-accuracy&quot; tabindex=&quot;-1&quot;&gt;Issues with state of charge accuracy&lt;/h3&gt;
&lt;p&gt;Our Li Time battery&#39;s reported state of charge (SOC) in the app was often very inaccurate. It turns out that the battery needs to be charged to 14.6 V in order to consider itself 100% charged and recalibrate its SOC number. The van&#39;s alternator, solar charger, and shore power converter could only get the battery to around 14.2 V, which is enough to get it to a 99% SOC but not to the magic 100%.&lt;/p&gt;
&lt;p&gt;After this recalibration, the SOC is reasonable for a short period (maybe a few days, I&#39;m not sure) before needing another 100% charge to calibrate again.&lt;/p&gt;
&lt;p&gt;Unfortunately, I only figured out the cause after our big trip. During our trip, the battery sometimes shut itself off due to low cell voltage while the app still reported a reassuring SOC number (usually around 30%, but one time as high as 70%). And during discharge, it would stick at 99% for a long time before dropping later than expected, resulting in the high SOC estimate. After waking up to a dead battery a couple of times, we ended up just watching the voltage number closely and generally not trusting the battery very much.&lt;/p&gt;
&lt;p&gt;I contacted Li Time support and the company shipped me a new battery under warranty. (Credit where it&#39;s due for the good support!) The new battery initially seemed OK but then started to exhibit the same behavior. It was only after I installed the new power converter (item #4 in this post) and charged the battery to 14.6 V that the inaccuracy went away.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;2.-li-bim-225-isolation-module&quot; tabindex=&quot;-1&quot;&gt;2. Li-BIM 225 isolation module&lt;/h2&gt;
&lt;p&gt;The stock system has a solenoid that connects the house and chassis batteries whenever the van is running. Apparently this solenoid is a common point of failure, so other owners often replace it with a &lt;a href=&quot;https://www.precisioncircuitsinc.com/product/lithium-battery-isolation-manager/&quot;&gt;Precision Circuits Li-BIM 225&lt;/a&gt; ($135). This device does much the same thing, but is supposedly more reliable and will also cycle the connection periodically as a way to try to keep the alternator from being overloaded for too long. It will also charge the chassis battery from the house battery when parked if the house battery has a high enough voltage.&lt;/p&gt;
&lt;p&gt;Installation was fairly simple. I basically followed &lt;a href=&quot;https://youtu.be/4fPysL4JAVk?si=cs6ljFdTeyZVr8SA&quot;&gt;this video by Scott Griepentrog&lt;/a&gt;, except for the diode and boost switch modifications at the end.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://james.li/2026/van-electrical-upgrades/#fn3&quot; id=&quot;fnref3&quot;&gt;[3]&lt;/a&gt;&lt;/sup&gt; After disconnecting both chassis and house batteries for safety, I opened the junction box under the van, removed the solenoid, moved the electrical connections over, and mounted the Li-BIM 225 using a couple of self-tapping sheet metal screws.&lt;/p&gt;
&lt;figure src=&quot;/media/2026/van-electrical-upgrades/IMG_4817.jpeg&quot; alt=&quot;&quot; class=&quot;img-1&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/van-electrical-upgrades/IMG_4817.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/0GTP5M9cvH-600.webp 600w, https://james.li/img/0GTP5M9cvH-1200.webp 1200w, https://james.li/img/0GTP5M9cvH-4032.webp 4032w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/0GTP5M9cvH-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-1&quot; width=&quot;4032&quot; height=&quot;3024&quot; srcset=&quot;https://james.li/img/0GTP5M9cvH-600.jpeg 600w, https://james.li/img/0GTP5M9cvH-1200.jpeg 1200w, https://james.li/img/0GTP5M9cvH-4032.jpeg 4032w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;figcaption&gt;The Li-BIM (green module) installed in the under-van junction box. A metal cover (not pictured) closes up the junction box.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;h3 id=&quot;charging-issue-(ultimately-not-related-to-the-li-bim)&quot; tabindex=&quot;-1&quot;&gt;Charging issue (ultimately not related to the Li-BIM)&lt;/h3&gt;
&lt;p&gt;After we put in the Li-BIM 225, we noticed that the battery didn&#39;t seem to be charging from the alternator because the Li-BIM wasn&#39;t engaging. However, we also weren&#39;t sure if the battery had ever been charging properly before the Li-BIM installation. Eventually, we traced the issue to a relay behind the plastic interior trim of the passenger side B-pillar: one of the spade wire connectors to the relay was loose, and this was preventing the &amp;quot;engine on&amp;quot; signal to the Li-BIM. So, the issue was unrelated to the Li-BIM and not caused by it.&lt;/p&gt;
&lt;h3 id=&quot;reflections&quot; tabindex=&quot;-1&quot;&gt;Reflections&lt;/h3&gt;
&lt;p&gt;I&#39;m not sure the Li-BIM was really necessary because the Ram Promaster alternators don&#39;t actually seem to fail very often, especially when charging our relatively small size house battery. The behavior of the Li-BIM also made troubleshooting our charging and battery issues a little more complicated. But now that it&#39;s there, I&#39;m happy to leave it and not worry about it.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;3.-anker-solix-c1000-gen-2-portable-power-station&quot; tabindex=&quot;-1&quot;&gt;3. Anker Solix C1000 Gen 2 portable power station&lt;/h2&gt;
&lt;p&gt;IMO, this is the easiest way to get 120 V AC power—much less involved than integrating an inverter into the van. The power station also increases our energy storage capacity.&lt;/p&gt;
&lt;p&gt;After some research, I bought an &lt;a href=&quot;https://www.ankersolix.com/products/c1000-gen2?variant=52743678394698&quot;&gt;Anker SOLIX C1000 Gen 2&lt;/a&gt; for around $500. It has 1 kWh of energy capacity and can output 2 kW. This specific model has all its outputs on one of the long sides, perfect for our chosen placement behind the wet bath, where it won&#39;t fly forward when we brake hard.&lt;/p&gt;
&lt;p&gt;It just sits in the cargo area of the van and charges off the house battery via the existing 12 V socket by the galley sink. I used some tape to manage the charging cable.&lt;/p&gt;
&lt;figure src=&quot;/media/2026/van-electrical-upgrades/IMG_4906.jpeg&quot; alt=&quot;&quot; class=&quot;img-1&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/van-electrical-upgrades/IMG_4906.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/F_GF_5PfBZ-600.webp 600w, https://james.li/img/F_GF_5PfBZ-1200.webp 1200w, https://james.li/img/F_GF_5PfBZ-4284.webp 4284w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/F_GF_5PfBZ-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-1&quot; width=&quot;4284&quot; height=&quot;5712&quot; srcset=&quot;https://james.li/img/F_GF_5PfBZ-600.jpeg 600w, https://james.li/img/F_GF_5PfBZ-1200.jpeg 1200w, https://james.li/img/F_GF_5PfBZ-4284.jpeg 4284w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;figcaption&gt;Initially, we just plugged our microwave directly into the power station (the gray thing in the lower right of this picture). The 12 V charging cable runs along the step (where the blue tape is), up the passenger side cabinets, and plugs into the 12 V socket by the sink.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;figure src=&quot;/media/2026/van-electrical-upgrades/IMG_7749.jpeg&quot; alt=&quot;&quot; class=&quot;img-1&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/van-electrical-upgrades/IMG_7749.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/z5IPer0s1b-600.webp 600w, https://james.li/img/z5IPer0s1b-1200.webp 1200w, https://james.li/img/z5IPer0s1b-4032.webp 4032w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/z5IPer0s1b-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-1&quot; width=&quot;4032&quot; height=&quot;3024&quot; srcset=&quot;https://james.li/img/z5IPer0s1b-600.jpeg 600w, https://james.li/img/z5IPer0s1b-1200.jpeg 1200w, https://james.li/img/z5IPer0s1b-4032.jpeg 4032w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;figcaption&gt;Later, we moved the microwave into one of the rear cabinets and ran an extension cord to the power station. This &lt;a href=&quot;https://www.walmart.com/ip/Mainstays-0-7-Cu-ft-Countertop-Microwave-Oven-700-Watts-Red-New/5128955468&quot;&gt;microwave we got from Walmart&lt;/a&gt; fits well in this cabinet after removing the cabinet&#39;s rear carpet panel. (It doesn&#39;t fit in the galley cabinet, though.) Much tidier without the microwave floating around loose!&lt;/figcaption&gt;&lt;/figure&gt;
&lt;h3 id=&quot;reflections-1&quot; tabindex=&quot;-1&quot;&gt;Reflections&lt;/h3&gt;
&lt;p&gt;I&#39;m really happy with the Anker power station and am very glad I got it rather than trying to install an inverter. I&#39;ve had zero issues with the Anker. We were able to microwave our soup and cook our rice! I really love the whole battery system and find it kind of unreasonably exciting and fun.&lt;/p&gt;
&lt;p&gt;The only issue with this setup is that charging the Anker can kill the house battery, so we had to actively keep an eye on the batteries and unplug the cable if the house battery was getting low. I remedied this later with a low voltage cutoff in my hardwired charging cable (see #5 below).&lt;/p&gt;
&lt;figure src=&quot;/media/2026/van-electrical-upgrades/IMG_8451.jpeg&quot; alt=&quot;&quot; class=&quot;img-1-med&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/van-electrical-upgrades/IMG_8451.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/wfJZ-4GqhV-600.webp 600w, https://james.li/img/wfJZ-4GqhV-1200.webp 1200w, https://james.li/img/wfJZ-4GqhV-5712.webp 5712w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/wfJZ-4GqhV-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-1-med&quot; width=&quot;5712&quot; height=&quot;4284&quot; srcset=&quot;https://james.li/img/wfJZ-4GqhV-600.jpeg 600w, https://james.li/img/wfJZ-4GqhV-1200.jpeg 1200w, https://james.li/img/wfJZ-4GqhV-5712.jpeg 5712w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;figcaption&gt;Sharlene cooks lunch in the Instant Pot (powered by the Anker) on a beautiful day at Faria Beach Park, Ventura, CA&lt;/figcaption&gt;&lt;/figure&gt;
&lt;hr&gt;
&lt;p&gt;Here&#39;s the system diagram again with these three changes highlighted in yellow:&lt;/p&gt;
&lt;figure src=&quot;/media/2026/van-electrical-upgrades/van-diagram-2025-10.png&quot; alt=&quot;&quot; class=&quot;img-1&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/van-electrical-upgrades/van-diagram-2025-10.png&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/kRY3kaCJzr-600.webp 600w, https://james.li/img/kRY3kaCJzr-1200.webp 1200w, https://james.li/img/kRY3kaCJzr-2479.webp 2479w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/kRY3kaCJzr-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-1&quot; width=&quot;2479&quot; height=&quot;1750&quot; srcset=&quot;https://james.li/img/kRY3kaCJzr-600.jpeg 600w, https://james.li/img/kRY3kaCJzr-1200.jpeg 1200w, https://james.li/img/kRY3kaCJzr-2479.jpeg 2479w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;hr&gt;
&lt;h2 id=&quot;4.-lithium-compatible-shore-power-converter&quot; tabindex=&quot;-1&quot;&gt;4. Lithium-compatible shore power converter&lt;/h2&gt;
&lt;p&gt;After our big trip, I had some time to tinker with the van a bit more.&lt;/p&gt;
&lt;p&gt;In order to charge the house battery to the desired 14.6 V, I went ahead and put in a power converter that had a selectable lithium battery charge profile. The original converter WFCO WF-8955PEC only has a lead-acid battery charging profile.&lt;/p&gt;
&lt;p&gt;The power converter is located underneath the WFCO fuse / power distribution panel, behind the black plastic cover. After unscrewing the screw at the base, the converter slides out and its wires can be disconnected:&lt;/p&gt;
&lt;figure src=&quot;/media/2026/van-electrical-upgrades/IMG_9023.jpeg&quot; alt=&quot;&quot; class=&quot;img-1&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/van-electrical-upgrades/IMG_9023.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/K5dR9Dx_ne-600.webp 600w, https://james.li/img/K5dR9Dx_ne-1200.webp 1200w, https://james.li/img/K5dR9Dx_ne-5712.webp 5712w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/K5dR9Dx_ne-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-1&quot; width=&quot;5712&quot; height=&quot;4284&quot; srcset=&quot;https://james.li/img/K5dR9Dx_ne-600.jpeg 600w, https://james.li/img/K5dR9Dx_ne-1200.jpeg 1200w, https://james.li/img/K5dR9Dx_ne-5712.jpeg 5712w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;figcaption&gt;Original converter coming out&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;Then, the new converter can be simply swapped in:&lt;/p&gt;
&lt;figure src=&quot;/media/2026/van-electrical-upgrades/IMG_9025.jpeg&quot; alt=&quot;&quot; class=&quot;img-1&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/van-electrical-upgrades/IMG_9025.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/j45T-r4yfw-600.webp 600w, https://james.li/img/j45T-r4yfw-1200.webp 1200w, https://james.li/img/j45T-r4yfw-5712.webp 5712w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/j45T-r4yfw-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-1&quot; width=&quot;5712&quot; height=&quot;4284&quot; srcset=&quot;https://james.li/img/j45T-r4yfw-600.jpeg 600w, https://james.li/img/j45T-r4yfw-1200.jpeg 1200w, https://james.li/img/j45T-r4yfw-5712.jpeg 5712w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;figcaption&gt;New converter installed!&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;The name-brand WFCO part is WF-8955-AD (&amp;quot;AD&amp;quot; stands for auto-detection of the battery type). The &lt;a href=&quot;https://www.wfcotech.com/shop/converters/wf-8900-ad-rep/wf-8955-ad-rep-converter-replacement-kit/&quot;&gt;genuine part costs $381&lt;/a&gt; at time of writing, but Amazon has many cheaper generic options. I chose &lt;a href=&quot;https://www.amazon.com/WAVLINK-Converter-13V-16-5V-Adjustable-Multi-Stage/dp/B0F1FJCYCQ?th=1&quot;&gt;this WAVLINK brand one&lt;/a&gt; which has a physical switch to select the charging profile and cost $77 including tax.&lt;/p&gt;
&lt;h3 id=&quot;reflections-2&quot; tabindex=&quot;-1&quot;&gt;Reflections&lt;/h3&gt;
&lt;p&gt;The new converter successfully charges the battery to 14.6 V and brings the reported SOC to 100%. After reaching 100%, the battery SOC recalibrates and seems to behave accurately for a short while (maybe a few days, I&#39;m not sure) before getting wonky again.&lt;/p&gt;
&lt;p&gt;In writing this post, I realized that I could have skipped installing this converter and saved my $77. The MPPT solar charger I later put in (item #6 below) is also able to get the battery to 14.6 V, so it achieves the same goal. We get solar all the time, but don&#39;t plug into shore power very often, so this converter will rarely get used.&lt;/p&gt;
&lt;p&gt;Oh well, I guess. If nothing else, I learned a bit more about the van&#39;s electrical distribution panel.&lt;/p&gt;
&lt;p&gt;Here&#39;s the system diagram with the new converter highlighted:&lt;/p&gt;
&lt;figure src=&quot;/media/2026/van-electrical-upgrades/van-diagram-2026-01.png&quot; alt=&quot;&quot; class=&quot;img-1&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/van-electrical-upgrades/van-diagram-2026-01.png&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/B8mEx1qmZx-600.webp 600w, https://james.li/img/B8mEx1qmZx-1200.webp 1200w, https://james.li/img/B8mEx1qmZx-2479.webp 2479w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/B8mEx1qmZx-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-1&quot; width=&quot;2479&quot; height=&quot;1750&quot; srcset=&quot;https://james.li/img/B8mEx1qmZx-600.jpeg 600w, https://james.li/img/B8mEx1qmZx-1200.jpeg 1200w, https://james.li/img/B8mEx1qmZx-2479.jpeg 2479w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;hr&gt;
&lt;h2 id=&quot;5.-hardwired-charging-for-the-anker-power-station&quot; tabindex=&quot;-1&quot;&gt;5. Hardwired charging for the Anker power station&lt;/h2&gt;
&lt;p&gt;During our big trip, we charged the Anker power station by simply plugging it into one of the van&#39;s 12 V sockets using the XT60 car charger cable that came in the box. This was easy to set up, but had a few limitations:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Charging the Anker could completely deplete the house battery, leaving us without the ability to turn on our lights, use our furnace, or run our water pump. So we had to make sure to unplug the charger if the house battery was low on charge.&lt;/li&gt;
&lt;li&gt;The charge rate was limited to about 10 A (~120 W).&lt;/li&gt;
&lt;li&gt;The actual power getting to the Anker power station was only around 90 W because of the resistance in the small 12 V wires. About 25% of the energy coming from the house battery was being wasted as heat in the wiring! I was also a little nervous about potential fire risk due to heat buildup if there were any frayed wires, bad connections, etc. in the wiring.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;First, I found &lt;a href=&quot;https://www.amazon.com/dp/B07WDLFFFB&quot;&gt;this low voltage cutoff module on Amazon&lt;/a&gt; and bought it for $25.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://james.li/2026/van-electrical-upgrades/#fn4&quot; id=&quot;fnref4&quot;&gt;[4]&lt;/a&gt;&lt;/sup&gt; This module disconnects a load from the battery when the battery voltage drops below a selectable voltage, and reconnects the load to the battery when the voltage rises again.&lt;/p&gt;
&lt;p&gt;The voltage threshold is set using these DIP switches on the side:&lt;/p&gt;
&lt;figure src=&quot;/media/2026/van-electrical-upgrades/IMG_9297.jpeg&quot; alt=&quot;&quot; class=&quot;img-1&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/van-electrical-upgrades/IMG_9297.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/jgGIR3AyuA-600.webp 600w, https://james.li/img/jgGIR3AyuA-1200.webp 1200w, https://james.li/img/jgGIR3AyuA-4032.webp 4032w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/jgGIR3AyuA-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-1&quot; width=&quot;4032&quot; height=&quot;3024&quot; srcset=&quot;https://james.li/img/jgGIR3AyuA-600.jpeg 600w, https://james.li/img/jgGIR3AyuA-1200.jpeg 1200w, https://james.li/img/jgGIR3AyuA-4032.jpeg 4032w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;figcaption&gt;Setting the disconnect and reconnect voltage thresholds.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;At this 12.1 V cutoff threshold, the house battery should have around 10% charge left. In retrospect, I would have liked a higher threshold to keep more energy in the house battery, but this is much better than nothing.&lt;/p&gt;
&lt;p&gt;I then wired the module into the one empty circuit available in the van&#39;s WFCO distribution panel using 10 AWG cable:&lt;/p&gt;
&lt;figure src=&quot;/media/2026/van-electrical-upgrades/IMG_9299.jpeg&quot; alt=&quot;&quot; class=&quot;img-1&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/van-electrical-upgrades/IMG_9299.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/wiskLUEbdn-600.webp 600w, https://james.li/img/wiskLUEbdn-1200.webp 1200w, https://james.li/img/wiskLUEbdn-4284.webp 4284w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/wiskLUEbdn-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-1&quot; width=&quot;4284&quot; height=&quot;5712&quot; srcset=&quot;https://james.li/img/wiskLUEbdn-600.jpeg 600w, https://james.li/img/wiskLUEbdn-1200.jpeg 1200w, https://james.li/img/wiskLUEbdn-4284.jpeg 4284w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;figcaption&gt;This module has nice terminals that are the perfect size for the 10 AWG cable.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;figure src=&quot;/media/2026/van-electrical-upgrades/IMG_9301.jpeg&quot; alt=&quot;&quot; class=&quot;img-1&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/van-electrical-upgrades/IMG_9301.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/KLklsE7Bb6-600.webp 600w, https://james.li/img/KLklsE7Bb6-1200.webp 1200w, https://james.li/img/KLklsE7Bb6-5712.webp 5712w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/KLklsE7Bb6-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-1&quot; width=&quot;5712&quot; height=&quot;4284&quot; srcset=&quot;https://james.li/img/KLklsE7Bb6-600.jpeg 600w, https://james.li/img/KLklsE7Bb6-1200.jpeg 1200w, https://james.li/img/KLklsE7Bb6-5712.jpeg 5712w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;figcaption&gt;The plastic module tucks in conveniently next to the shore power converter.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;The specific cable I used was &lt;a href=&quot;https://www.amazon.com/dp/B0C9D74XP3&quot;&gt;this one that terminates in a female XT60 connector.&lt;/a&gt; ($9). I removed the ring terminals to wire it into the distribution panel. I wasn&#39;t able to find an easily accessible negative busbar, so I did the slightly janky thing and just squeezed the negative end into the terminal where the power converter was also connected (the green wire at the right side in the photo above).&lt;/p&gt;
&lt;p&gt;I then added &lt;a href=&quot;https://www.amazon.com/dp/B0DPQFGRJ6&quot;&gt;this XT60 to XT60i adapter cable&lt;/a&gt; ($10) to connect to the Anker power station. The XT60i connector is the same as the XT60, except that it has an extra middle conductor which is tied to the negative wire. The presence of this conductor tells the power station that it is connected to a solar panel, rather than a car socket, and can safely draw 15 A instead of 8 or 10 A. For my setup, this is both safe (because the current is traveling through a short distance of thicker gauge cable) and desirable (so the Anker can charge more quickly).&lt;/p&gt;
&lt;figure src=&quot;/media/2026/van-electrical-upgrades/IMG_9302.jpeg&quot; alt=&quot;&quot; class=&quot;img-1&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/van-electrical-upgrades/IMG_9302.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/qduycn428D-600.webp 600w, https://james.li/img/qduycn428D-1200.webp 1200w, https://james.li/img/qduycn428D-5712.webp 5712w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/qduycn428D-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-1&quot; width=&quot;5712&quot; height=&quot;4284&quot; srcset=&quot;https://james.li/img/qduycn428D-600.jpeg 600w, https://james.li/img/qduycn428D-1200.jpeg 1200w, https://james.li/img/qduycn428D-5712.jpeg 5712w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;figcaption&gt;Added the XT60 to XT60i adapter cable, and put the plastic cover back onto the WFCO distribution center&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;Now, the Anker power station can charge 2x faster than before, at a whole 15 A (~185 W), without wasting a big chunk of power as heat!&lt;/p&gt;
&lt;p&gt;I haven&#39;t had a chance to test the low voltage cutoff yet, but I&#39;m optimistic it&#39;ll save the house battery from being wiped out by the Anker.&lt;/p&gt;
&lt;figure src=&quot;/media/2026/van-electrical-upgrades/IMG_9303.jpeg&quot; alt=&quot;&quot; class=&quot;img-1&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/van-electrical-upgrades/IMG_9303.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/UEkOBnt6xl-600.webp 600w, https://james.li/img/UEkOBnt6xl-1200.webp 1200w, https://james.li/img/UEkOBnt6xl-5712.webp 5712w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/UEkOBnt6xl-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-1&quot; width=&quot;5712&quot; height=&quot;4284&quot; srcset=&quot;https://james.li/img/UEkOBnt6xl-600.jpeg 600w, https://james.li/img/UEkOBnt6xl-1200.jpeg 1200w, https://james.li/img/UEkOBnt6xl-5712.jpeg 5712w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;figcaption&gt;Anker happily charging at 185 W! I&#39;m also pleased that the wiring is cleaner than before.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;hr&gt;
&lt;h2 id=&quot;6.-mppt-solar-controller&quot; tabindex=&quot;-1&quot;&gt;6. MPPT solar controller&lt;/h2&gt;
&lt;p&gt;Finally, I replaced the stock Xantrex PWM-type solar charge controller with a &lt;a href=&quot;https://www.victronenergy.com/solar-charge-controllers/smartsolar-100-30-100-50&quot;&gt;Victron SmartSolar MPPT 100/30&lt;/a&gt; controller ($120 via Amazon).&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://james.li/2026/van-electrical-upgrades/#fn5&quot; id=&quot;fnref5&quot;&gt;[5]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;h3 id=&quot;pwm-vs.-mppt&quot; tabindex=&quot;-1&quot;&gt;PWM vs. MPPT&lt;/h3&gt;
&lt;p&gt;Initially, I wasn&#39;t sure if this upgrade was worth doing. People on the internet agree that MPPT (maximum power point tracking) solar charge controllers are more efficient, especially in partially shaded conditions, but some people say it&#39;s minimal benefit in sunny climates for small panels like the 220 W one on the Solis, while other say it&#39;s very significant.&lt;/p&gt;
&lt;p&gt;I found &lt;a href=&quot;https://james.li/media/2026/van-electrical-upgrades/Technical-Information-Which-solar-charge-controller-PWM-or-MPPT.pdf&quot;&gt;this technical document from Victron (PDF)&lt;/a&gt; to be extremely helpful in understanding the difference between how PWM and MPPT controllers operate.&lt;/p&gt;
&lt;p&gt;Basically, PWM controllers simply connect the panel directly to the battery, so that the panel operates at whatever voltage the battery is at. The panel can work at this voltage, but it has its own maximum power point at which it generates the most power. For the 220 W panel on the Solis (&lt;a href=&quot;https://james.li/media/2026/van-electrical-upgrades/XantrexSolar_Max_Datasheet2019.pdf&quot;&gt;datasheet PDF here&lt;/a&gt;), that point is at 25.8 V and 8.54 A under the standard test condition. So when our PWM controller connects the panel to the ~13 V battery, the panel is forced to operate far from its optimal voltage.&lt;/p&gt;
&lt;p&gt;In contrast, an MPPT controller figures out what voltage the solar panel likes, draws power from the panel at that voltage, then transforms the power to a voltage appropriate for the battery.&lt;/p&gt;
&lt;p&gt;After looking at the Solis panel&#39;s datasheet and realizing how far the maximum power voltage (Vmp) is from the battery&#39;s ~13 V, I started to feel that there were probably big gains in solar power available by switching to MPPT. I&#39;d always been pretty disappointed in the solar output, and often wished for more battery capacity (as mentioned earlier). The MPPT controller is a lot cheaper and easier than buying more batteries, so I figured it was worth a shot.&lt;/p&gt;
&lt;h3 id=&quot;installation-1&quot; tabindex=&quot;-1&quot;&gt;Installation&lt;/h3&gt;
&lt;p&gt;Installation basically consists of carefully swapping the cables from the old unit to the new one, then mounting the new unit and covering the hole in the wall. For moving the cables over, I followed this order of operations:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Disconnect one of the PV cables from the old unit. Cover with tape to prevent accidental shorting.&lt;/li&gt;
&lt;li&gt;Move the battery cables from the old unit to the new unit. Be careful not to short anything, and also be careful not to reverse the + and -, as the Victron SmartSolar isn&#39;t protected against reverse polarity of the battery! Green is - and black is + in my van.&lt;/li&gt;
&lt;li&gt;Move the PV cables from the old unit to the new one.&lt;/li&gt;
&lt;/ol&gt;
&lt;figure src=&quot;/media/2026/van-electrical-upgrades/IMG_9278.jpeg&quot; alt=&quot;&quot; class=&quot;img-1&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/van-electrical-upgrades/IMG_9278.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/31nZj4j7g4-600.webp 600w, https://james.li/img/31nZj4j7g4-1200.webp 1200w, https://james.li/img/31nZj4j7g4-5712.webp 5712w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/31nZj4j7g4-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-1&quot; width=&quot;5712&quot; height=&quot;4284&quot; srcset=&quot;https://james.li/img/31nZj4j7g4-600.jpeg 600w, https://james.li/img/31nZj4j7g4-1200.jpeg 1200w, https://james.li/img/31nZj4j7g4-5712.jpeg 5712w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;figcaption&gt;The old Xantrex PWM unit, outputting a mediocre 4.6 A (60 W) on a fairly sunny day.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;figure src=&quot;/media/2026/van-electrical-upgrades/IMG_9533.jpeg&quot; alt=&quot;&quot; class=&quot;img-1&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/van-electrical-upgrades/IMG_9533.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/U2u_ZzFmQa-600.webp 600w, https://james.li/img/U2u_ZzFmQa-1200.webp 1200w, https://james.li/img/U2u_ZzFmQa-5712.webp 5712w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/U2u_ZzFmQa-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-1&quot; width=&quot;5712&quot; height=&quot;4284&quot; srcset=&quot;https://james.li/img/U2u_ZzFmQa-600.jpeg 600w, https://james.li/img/U2u_ZzFmQa-1200.jpeg 1200w, https://james.li/img/U2u_ZzFmQa-5712.jpeg 5712w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;figcaption&gt;It was a little tricky squeezing the Victron unit through the opening in the wall. This angle worked.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;I mounted the SmartSolar unit to the existing plywood inside the Solis wall using some #6 x 3/4&amp;quot; screws and washers. #8 might have been more appropriate but I didn&#39;t have those on hand. No pilot holes were needed, nor could I have gotten a drill into the space to make pilot holes; I just used a screwdriver and it worked fine.&lt;/p&gt;
&lt;figure src=&quot;/media/2026/van-electrical-upgrades/IMG_9536.jpeg&quot; alt=&quot;&quot; class=&quot;img-1&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/van-electrical-upgrades/IMG_9536.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/YHK62uc3tD-600.webp 600w, https://james.li/img/YHK62uc3tD-1200.webp 1200w, https://james.li/img/YHK62uc3tD-5712.webp 5712w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/YHK62uc3tD-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-1&quot; width=&quot;5712&quot; height=&quot;4284&quot; srcset=&quot;https://james.li/img/YHK62uc3tD-600.jpeg 600w, https://james.li/img/YHK62uc3tD-1200.jpeg 1200w, https://james.li/img/YHK62uc3tD-5712.jpeg 5712w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;figcaption&gt;The new Victron SmartSolar unit mounted inside the wall.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;I then covered up the hole with an IKEA-Skadis-compatible pegboard that I 3D printed (&lt;a href=&quot;https://james.li/media/2026/van-electrical-upgrades/skadis-pegboard-for-Solis.stl&quot;&gt;STL here&lt;/a&gt;):&lt;/p&gt;
&lt;figure src=&quot;/media/2026/van-electrical-upgrades/IMG_9539.jpeg&quot; alt=&quot;&quot; class=&quot;img-1&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/van-electrical-upgrades/IMG_9539.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/10GseHYLMW-600.webp 600w, https://james.li/img/10GseHYLMW-1200.webp 1200w, https://james.li/img/10GseHYLMW-5712.webp 5712w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/10GseHYLMW-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-1&quot; width=&quot;5712&quot; height=&quot;4284&quot; srcset=&quot;https://james.li/img/10GseHYLMW-600.jpeg 600w, https://james.li/img/10GseHYLMW-1200.jpeg 1200w, https://james.li/img/10GseHYLMW-5712.jpeg 5712w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;figcaption&gt;All neatly covered up. Pegboard accessories to come later!&lt;/figcaption&gt;&lt;/figure&gt;
&lt;h3 id=&quot;reflections-3&quot; tabindex=&quot;-1&quot;&gt;Reflections&lt;/h3&gt;
&lt;p&gt;The MPPT controller was a really worthwhile upgrade, and I wish I&#39;d done it way sooner. I don&#39;t recall ever seeing the Xantrex PWM controller output more than 6 A (~80 W) on the sunniest winter days. In contrast, immediately after installation the Victron was outputting a consistent 160 W on a partly cloudy day—that&#39;s double the power in less optimal conditions! It feels like I&#39;m getting so much free energy now.&lt;/p&gt;
&lt;p&gt;Additionally, the Victron can be set to charge to the full 14.6 V that my house battery needs to calibrate its SOC. The Xantrex would cut off power before reaching 14.6 V.&lt;/p&gt;
&lt;p&gt;The data available in the app over Bluetooth is also pretty fun to look at.&lt;/p&gt;
&lt;p&gt;I haven&#39;t had a chance yet to take the van out on a trip and really test the solar controller, but just looking at the output, I&#39;m already very happy with it.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Here&#39;s the final system diagram with those last two changes highlighted:&lt;/p&gt;
&lt;figure src=&quot;/media/2026/van-electrical-upgrades/van-diagram-2026-02.png&quot; alt=&quot;&quot; class=&quot;img-1&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/van-electrical-upgrades/van-diagram-2026-02.png&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/2uCT5a55ld-600.webp 600w, https://james.li/img/2uCT5a55ld-1200.webp 1200w, https://james.li/img/2uCT5a55ld-2479.webp 2479w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/2uCT5a55ld-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-1&quot; width=&quot;2479&quot; height=&quot;1750&quot; srcset=&quot;https://james.li/img/2uCT5a55ld-600.jpeg 600w, https://james.li/img/2uCT5a55ld-1200.jpeg 1200w, https://james.li/img/2uCT5a55ld-2479.jpeg 2479w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;hr&gt;
&lt;h2 id=&quot;conclusions&quot; tabindex=&quot;-1&quot;&gt;Conclusions&lt;/h2&gt;
&lt;p&gt;Overall, these upgrades make the van work a lot better for our needs, without fundamentally changing the architecture or operation of the van&#39;s electrical system.&lt;/p&gt;
&lt;p&gt;If you&#39;re just getting started, and have similar needs/wants, I think I&#39;d primarily recommend replacing the AGM house batteries with one lithium battery, and throwing in a portable power station to run appliances. Those two changes will enable a lot!&lt;/p&gt;
&lt;p&gt;Then, put in the Victron MPPT solar charge controller to replenish the batteries faster when parked and get the batteries to 100% for more accurate SOC readings.&lt;/p&gt;
&lt;p&gt;I would also recommend the hardwired charging cable for the portable power station.&lt;/p&gt;
&lt;p&gt;The Li-BIM is nice to have, but not necessary. Finally, the upgraded shore power converter wasn&#39;t actually necessary at all for us.&lt;/p&gt;
&lt;p&gt;I&#39;m generally pretty happy with the choices I made and hope that this writeup is helpful for people researching similar upgrades for their vans. I find all this off-grid power stuff really fun and rewarding and am really glad to have had the opportunity to mess around like this with our van. Me and Sharlene&#39;s lives have been very busy lately (wedding planning!!), but we hope to take the van out for many more camping trips later this year! 🚐&lt;/p&gt;
&lt;h2 id=&quot;resources&quot; tabindex=&quot;-1&quot;&gt;Resources&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;a href=&quot;https://www.facebook.com/groups/solisowners&quot;&gt;Winnebago Solis Owners and Wannabees&lt;/a&gt; Facebook group has a lot of great information and owner experience.&lt;/li&gt;
&lt;li&gt;Scott Griepentrog at &lt;a href=&quot;https://stg.net&quot;&gt;stg.net&lt;/a&gt; has a wealth of information on lithium battery systems and the Li-BIM for the Winnebago Travato and Solis. In particular, he has a &lt;a href=&quot;https://docs.google.com/document/d/1JSGedt6nnEefCzyTxxA33pcxxDx0KqSxFJtFTSLLe7M/edit?tab=t.0#heading=h.jzn07kuzg798&quot;&gt;huge Google Doc&lt;/a&gt; which provides lots of detail for DIYers.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;Each battery had a nominal capacity of 100 Ah, but discharging below around 50% is not good for the batteries, so the actual usable capacity was about 50 Ah per battery. &lt;a href=&quot;https://james.li/2026/van-electrical-upgrades/#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn2&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;I think undermounting the spare tire is a lot better than the more common &lt;a href=&quot;https://landedgear.com/products/promastersparetiremount&quot;&gt;mounting on the rear doors&lt;/a&gt;. The &lt;a href=&quot;https://www.ebay.com/itm/177401607267&quot;&gt;mounting hardware&lt;/a&gt; is a few hundred dollars cheaper, you don&#39;t have to drill new holes into the van, and you can still open the rear doors the full 270º. My new spare wheel and tire cost $400 from Tire Rack. &lt;a href=&quot;https://james.li/2026/van-electrical-upgrades/#fnref2&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn3&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;I opted to leave the &amp;quot;Sig&amp;quot; input disconnected to simplify installation. This input allows you to command the Li-BIM to connect the chassis and house batteries (e.g., if your chassis battery is dead and you want to charge it from the house battery), but getting it to work with the existing boost switch in the dashboard of the Solis requires adding a diode. I decided not to bother because it didn&#39;t seem worth the effort, and in case I wanted to swap back to the original solenoid later. The boost switch isn&#39;t really needed anyways because the Li-BIM will occasionally charge the chassis battery if the house battery voltage is high enough. &lt;a href=&quot;https://james.li/2026/van-electrical-upgrades/#fnref3&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn4&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;I picked this particular model because it has a nice plastic enclosure and simple settings. There were some other products on Amazon that are cheaper, but they were unenclosed boards and had a more fiddly user interface. &lt;a href=&quot;https://james.li/2026/van-electrical-upgrades/#fnref4&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn5&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;There are other MPPT controllers on the market, but Victron is consistently most recommended for quality and brand reputation. One person in the Facebook group recommends the $70 &lt;a href=&quot;https://hqsolarpower.com/products/20a-mppt-solar-charge-controller-with-parallel-charging-bluetooth&quot;&gt;HQST 20 A MPPT controller&lt;/a&gt; on the basis that a 30 A controller isn&#39;t necessary; this seems reasonable to me, but I thought it was worth paying $40-50 more to have the better brand and support. If you want a flush mount unit to avoid having a hole in the wall to cover up, you could put in the &lt;a href=&quot;https://sunforgellc.com/product/sb3000i/&quot;&gt;Blue Sky Energy Solar Boost 3000i&lt;/a&gt; or the &lt;a href=&quot;https://richsolar.com/products/bravo-flush-30-30-amp-mppt-flush-mount-solar-charge-controller&quot;&gt;Rich Solar MPPT 30 A&lt;/a&gt; controller. However, both of these are a lot more expensive than the Victron, and I also think the Blue Sky Energy controller is extra ugly. &lt;a href=&quot;https://james.li/2026/van-electrical-upgrades/#fnref5&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content>
  </entry>
  <entry>
    <title>Acme Weather</title>
    <link href="https://james.li/2026/acme-weather/" />
    <updated>2026-02-25T00:00:00Z</updated>
    <id>https://james.li/2026/acme-weather/</id>
    <content type="html">&lt;p&gt;I &lt;a href=&quot;https://james.li/2023/dark-sky/&quot;&gt;complained on this blog three years ago&lt;/a&gt; about the death of Dark Sky, my favorite weather app, after its acquisition by Apple. Even now, years later, Apple Weather still feels like a poor replacement and I often find myself missing Dark Sky.&lt;/p&gt;
&lt;p&gt;However, yesterday I learned from my friend Henry that the creators of Dark Sky just last week &lt;a href=&quot;https://acmeweather.com/blog/introducing-acme-weather&quot;&gt;launched a new weather app called Acme Weather&lt;/a&gt;!&lt;/p&gt;
&lt;p&gt;My initial impressions are that it looks really nice! Here&#39;s what you see when you open the app:&lt;/p&gt;
&lt;figure src=&quot;/media/2026/acme-weather/IMG_9604-portrait.png&quot; alt=&quot;&quot; class=&quot;img-1&quot;&gt;&lt;a href=&quot;https://james.li/media/2026/acme-weather/IMG_9604-portrait.png&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/Z7FlGlMP0Z-600.webp 600w, https://james.li/img/Z7FlGlMP0Z-1200.webp 1200w, https://james.li/img/Z7FlGlMP0Z-1419.webp 1419w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/Z7FlGlMP0Z-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-1&quot; width=&quot;1419&quot; height=&quot;2796&quot; srcset=&quot;https://james.li/img/Z7FlGlMP0Z-600.jpeg 600w, https://james.li/img/Z7FlGlMP0Z-1200.jpeg 1200w, https://james.li/img/Z7FlGlMP0Z-1419.jpeg 1419w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;The key new feature is the line chart that shows the range of different forecasts, so you can get a sense of how much uncertainty there is in the forecast. As someone who occasionally uses the Windy app to compare different forecast models, I really love this visualization.&lt;/p&gt;
&lt;p&gt;Other nice design features:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;You can swipe backwards on the timeline to view yesterday&#39;s weather, or forward to see tomorrow&#39;s, and the nice natural text description on top changes too.&lt;/li&gt;
&lt;li&gt;If there&#39;s rain coming, the map shows the forecasted daily precipitation totals.&lt;/li&gt;
&lt;li&gt;It&#39;s super easy to make a report of your current weather, and easy to view community reports&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;It&#39;s not a perfect replacement for Dark Sky; for example, it doesn&#39;t have the vertical bar that used different colors to intuitively communicate weather conditions over the day. Dark Sky did a great job focusing on precipitation intensity rather than the % chance of precipitation (the latter is a useless metric, IMO), while Acme Weather still requires an extra swipe and tap to view precipitation intensity. Maybe some of these things were part of the Dark Sky IP that&#39;s now owned by Apple.&lt;/p&gt;
&lt;p&gt;But I&#39;m still way more excited to use this over Apple Weather. (I&#39;m super happy to give them my money, too—it&#39;s free for 2 weeks, and then $25 a year afterwards.) You should go download it and give it a try!&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Books I read in 2025</title>
    <link href="https://james.li/2025/books/" />
    <updated>2026-01-05T00:00:00Z</updated>
    <id>https://james.li/2025/books/</id>
    <content type="html">&lt;p&gt;I have a more detailed format for my reading list this year, with page counts and comments. As in the past, the exclamation mark (&lt;code&gt;!&lt;/code&gt;) indicates books that I particularly liked.&lt;/p&gt;
&lt;p&gt;In 2025, I started 20 books and finished 15 of those. This is down from &lt;a href=&quot;https://james.li/2024/books/&quot;&gt;2024&lt;/a&gt; (started 27, finished 23), which itself was down from a peak in &lt;a href=&quot;https://james.li/2023/books/&quot;&gt;2023&lt;/a&gt; (started 45, finished 35). I think reading was just less of a priority for me this year; even though I spent the year on sabbatical, I didn&#39;t really build a reading routine. I&#39;m okay with that outcome, since I spent lots of time doing other interesting things, but I think it shows how important a routine is for my reading volume.&lt;/p&gt;
&lt;p&gt;That being said, I really enjoyed my reading this year. Maybe there wasn&#39;t sheer quantity, but at least there was some quality?&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;#&lt;/th&gt;
&lt;th&gt;!&lt;/th&gt;
&lt;th&gt;Title and Author&lt;/th&gt;
&lt;th&gt;Pages Read&lt;/th&gt;
&lt;th&gt;Date Finished&lt;/th&gt;
&lt;th&gt;Comments&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;South of the Border, West of the Sun&lt;/em&gt; – Haruki Murakami&lt;/td&gt;
&lt;td&gt;213/213&lt;/td&gt;
&lt;td&gt;1/13&lt;/td&gt;
&lt;td&gt;Starting off the year with Murakami. This one was interesting but I&#39;m not sure I felt really captured by it the way I have been by some other books of his.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;An Elegant Puzzle: Systems of Engineering Management&lt;/em&gt; – Will Larson&lt;/td&gt;
&lt;td&gt;100/214&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;Skimmed because I had to return it to the library, would like to return to it in the future. Many useful specific pieces of advice in here.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;Thinking In Systems&lt;/em&gt; – Donella H. Meadows&lt;/td&gt;
&lt;td&gt;186/186&lt;/td&gt;
&lt;td&gt;1/21&lt;/td&gt;
&lt;td&gt;Diagrams for days. Good primer and high-level systematic approach looking at stocks and flows. I was surprised that it&#39;s mostly policy- rather than engineering-focused, and also surprised at the more philosophical elements.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;!&lt;/td&gt;
&lt;td&gt;&lt;em&gt;The Wind-Up Bird Chronicle&lt;/em&gt; – Haruki Murakami&lt;/td&gt;
&lt;td&gt;607/607&lt;/td&gt;
&lt;td&gt;2/19&lt;/td&gt;
&lt;td&gt;Confusing and interesting and complicated, in a really fascinating way. A pretty long read, but worthwhile. Maybe one of my more favorite Murakami books. I felt like it had its own world whereas &lt;em&gt;South of the Border, West of the Sun&lt;/em&gt; felt more like a collection of tropes.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;I Hope This Finds You Well&lt;/em&gt; – Natalie Sue&lt;/td&gt;
&lt;td&gt;352/352&lt;/td&gt;
&lt;td&gt;3/17&lt;/td&gt;
&lt;td&gt;It&#39;s a rom-com&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;Automate Your Busywork&lt;/em&gt; – Aytekin Tank&lt;/td&gt;
&lt;td&gt;177/177&lt;/td&gt;
&lt;td&gt;4/11&lt;/td&gt;
&lt;td&gt;OK, I guess&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;Film Camera Zen&lt;/em&gt; – Bellamy Hunt&lt;/td&gt;
&lt;td&gt;191/191&lt;/td&gt;
&lt;td&gt;4/14&lt;/td&gt;
&lt;td&gt;Fun coffee table book of cameras&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;The Rise and Fall of American Growth&lt;/em&gt; – Robert J. Gordon&lt;/td&gt;
&lt;td&gt;170/652&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;Big academic tome, I didn&#39;t care to read the entire thing but the thesis feels compelling and interesting, particularly the notion that real growth has fallen off in recent decades.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;!&lt;/td&gt;
&lt;td&gt;&lt;em&gt;Abundance&lt;/em&gt; – Ezra Klein and Derek Thompson&lt;/td&gt;
&lt;td&gt;226/226&lt;/td&gt;
&lt;td&gt;5/4&lt;/td&gt;
&lt;td&gt;Landmark book. Synthesized a lot of frustrations and issues that have become increasingly top of mind for me the last couple of years.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;Slouching Towards Bethlehem&lt;/em&gt; – Joan Didion&lt;/td&gt;
&lt;td&gt;273/351&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;Collection of short stories, I enjoyed the vibes but lost momentum&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;!&lt;/td&gt;
&lt;td&gt;&lt;em&gt;Apple in China&lt;/em&gt; – Patrick McGee&lt;/td&gt;
&lt;td&gt;387/387&lt;/td&gt;
&lt;td&gt;6/17&lt;/td&gt;
&lt;td&gt;Great read, really fascinating details and stories. Thanks to my friend Denton for lending me his copy!&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;Growth&lt;/em&gt; – Daniel Susskind&lt;/td&gt;
&lt;td&gt;90/237&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;Didn&#39;t get too far into this one&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;13&lt;/td&gt;
&lt;td&gt;!&lt;/td&gt;
&lt;td&gt;&lt;em&gt;Training and Racing with a Power Meter&lt;/em&gt; (3rd Edition) – Hunter Allen, Andrew Coggan, Stephen McGregor&lt;/td&gt;
&lt;td&gt;234/301&lt;/td&gt;
&lt;td&gt;7/1&lt;/td&gt;
&lt;td&gt;This book was not interesting at all to me until I bought a power meter, and then it became extremely interesting. Didn&#39;t 100% only because the last couple of chapters are not relevant to me.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;14&lt;/td&gt;
&lt;td&gt;!&lt;/td&gt;
&lt;td&gt;&lt;em&gt;Circe&lt;/em&gt; – Madeline Miller&lt;/td&gt;
&lt;td&gt;285/285&lt;/td&gt;
&lt;td&gt;7/14&lt;/td&gt;
&lt;td&gt;Skillfully woven. Fun to read mythology after mostly forgetting it; I also found the depiction of motherhood really stirring&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;15&lt;/td&gt;
&lt;td&gt;!&lt;/td&gt;
&lt;td&gt;&lt;em&gt;The Art of Gathering&lt;/em&gt; – Priya Parker&lt;/td&gt;
&lt;td&gt;281/281&lt;/td&gt;
&lt;td&gt;9/10&lt;/td&gt;
&lt;td&gt;Very useful for wedding planning&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;16&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;All the Colors of the Dark&lt;/em&gt; – Chris Whitaker&lt;/td&gt;
&lt;td&gt;592/592&lt;/td&gt;
&lt;td&gt;9/28&lt;/td&gt;
&lt;td&gt;Page-turner!&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;17&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;The City and Its Uncertain Walls&lt;/em&gt; – Haruki Murakami&lt;/td&gt;
&lt;td&gt;690/690 (ebook)&lt;/td&gt;
&lt;td&gt;11/4&lt;/td&gt;
&lt;td&gt;Another Murakami; this one felt even more abstract and inscrutable than usual.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;18&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;Twice&lt;/em&gt; – Mitch Albom&lt;/td&gt;
&lt;td&gt;100% (ebook)&lt;/td&gt;
&lt;td&gt;12/10&lt;/td&gt;
&lt;td&gt;Fun read, blasted through in one evening&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;19&lt;/td&gt;
&lt;td&gt;!&lt;/td&gt;
&lt;td&gt;&lt;em&gt;The Murder On the Links&lt;/em&gt; – Agatha Christie&lt;/td&gt;
&lt;td&gt;249/249&lt;/td&gt;
&lt;td&gt;12/21&lt;/td&gt;
&lt;td&gt;First Agatha Christie book I&#39;ve ever read, and I understand now why she&#39;s considered one of the defining authors of the detective mystery genre. This had all the tropes but was so much fun. Sharlene and I read the whole thing in a single day.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;20&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;Emotional Design&lt;/em&gt; – Don Norman&lt;/td&gt;
&lt;td&gt;133/325 (ebook)&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;I really liked &lt;em&gt;The Design of Everyday Things&lt;/em&gt; but struggled more to get into this one; it didn&#39;t feel nearly as relevant or timeless.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
</content>
  </entry>
  <entry>
    <title>Four months with my Ricoh GR IIIx</title>
    <link href="https://james.li/2025/ricoh-four-months/" />
    <updated>2025-09-27T00:00:00Z</updated>
    <id>https://james.li/2025/ricoh-four-months/</id>
    <content type="html">&lt;p&gt;Back in May, I bought myself my first brand-new dedicated camera in about a decade. It&#39;s a Ricoh GR IIIx, a pocket-sized digital camera with an APS-C size sensor and a fixed 26.1mm f/2.8 lens (equivalent to 40mm on full frame).&lt;/p&gt;
&lt;figure src=&quot;/media/2025/ricoh-four-months/IMG_3992.jpeg&quot; alt=&quot;&quot; class=&quot;img-1&quot;&gt;&lt;a href=&quot;https://james.li/media/2025/ricoh-four-months/IMG_3992.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/R3sfzxosZl-600.webp 600w, https://james.li/img/R3sfzxosZl-1200.webp 1200w, https://james.li/img/R3sfzxosZl-3982.webp 3982w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/R3sfzxosZl-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-1&quot; width=&quot;3982&quot; height=&quot;2983&quot; srcset=&quot;https://james.li/img/R3sfzxosZl-600.jpeg 600w, https://james.li/img/R3sfzxosZl-1200.jpeg 1200w, https://james.li/img/R3sfzxosZl-3982.jpeg 3982w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;I&#39;d known about these Ricohs before, but it wasn&#39;t until I actually picked up a GR IIIx in a Bic Camera store in Tokyo that I realized how much I liked it. It&#39;s small but has a big sensor, the lens splits the difference between my favored 35mm and 50mm focal lengths,&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://james.li/2025/ricoh-four-months/#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt; and unlike some other compact digital cameras,&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://james.li/2025/ricoh-four-months/#fn2&quot; id=&quot;fnref2&quot;&gt;[2]&lt;/a&gt;&lt;/sup&gt; it feels fast and responsive and pared down to the essentials. It has exactly the physical controls you need, and I knew how to use it as soon as I picked it up. The JPEGs straight out of camera also generally look pretty nice.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://james.li/2025/ricoh-four-months/#fn3&quot; id=&quot;fnref3&quot;&gt;[3]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;A couple of years ago, I wrote about &lt;a href=&quot;https://james.li/2022/i-dont-use-my-camera&quot;&gt;how I fell out of using my Fujifilm X-T1&lt;/a&gt;. The Ricoh is a lot smaller than the Fujifilm, so it&#39;s easy to keep in my bag and bring everywhere. As a result, I use it more.&lt;/p&gt;
&lt;p&gt;Here are some photos I&#39;ve made with the Ricoh these past few months.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;1.-city-life&quot; tabindex=&quot;-1&quot;&gt;1. City life&lt;/h2&gt;
&lt;p&gt;First, a few photos from life around San Francisco, shot in May and June.&lt;/p&gt;
&lt;figure src=&quot;/media/2025/ricoh-four-months/R0000234.jpeg&quot; alt=&quot;&quot; class=&quot;img-1-max&quot;&gt;&lt;a href=&quot;https://james.li/media/2025/ricoh-four-months/R0000234.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/0kMrW34VgR-600.webp 600w, https://james.li/img/0kMrW34VgR-1200.webp 1200w, https://james.li/img/0kMrW34VgR-6000.webp 6000w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/0kMrW34VgR-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-1-max&quot; width=&quot;6000&quot; height=&quot;4000&quot; srcset=&quot;https://james.li/img/0kMrW34VgR-600.jpeg 600w, https://james.li/img/0kMrW34VgR-1200.jpeg 1200w, https://james.li/img/0kMrW34VgR-6000.jpeg 6000w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;figure src=&quot;/media/2025/ricoh-four-months/R0000242.jpeg&quot; alt=&quot;&quot; class=&quot;img-1-max&quot;&gt;&lt;a href=&quot;https://james.li/media/2025/ricoh-four-months/R0000242.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/bi15sITe7d-600.webp 600w, https://james.li/img/bi15sITe7d-1200.webp 1200w, https://james.li/img/bi15sITe7d-5863.webp 5863w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/bi15sITe7d-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-1-max&quot; width=&quot;5863&quot; height=&quot;3908&quot; srcset=&quot;https://james.li/img/bi15sITe7d-600.jpeg 600w, https://james.li/img/bi15sITe7d-1200.jpeg 1200w, https://james.li/img/bi15sITe7d-5863.jpeg 5863w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;figure src=&quot;/media/2025/ricoh-four-months/R0000327.jpeg&quot; alt=&quot;&quot; class=&quot;img-1-max&quot;&gt;&lt;a href=&quot;https://james.li/media/2025/ricoh-four-months/R0000327.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/an_vuzSa3U-600.webp 600w, https://james.li/img/an_vuzSa3U-1200.webp 1200w, https://james.li/img/an_vuzSa3U-5838.webp 5838w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/an_vuzSa3U-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-1-max&quot; width=&quot;5838&quot; height=&quot;3892&quot; srcset=&quot;https://james.li/img/an_vuzSa3U-600.jpeg 600w, https://james.li/img/an_vuzSa3U-1200.jpeg 1200w, https://james.li/img/an_vuzSa3U-5838.jpeg 5838w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;figure src=&quot;/media/2025/ricoh-four-months/R0000371.jpeg&quot; alt=&quot;&quot; class=&quot;img-1-max&quot;&gt;&lt;a href=&quot;https://james.li/media/2025/ricoh-four-months/R0000371.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/BYBBEqH2f8-600.webp 600w, https://james.li/img/BYBBEqH2f8-1200.webp 1200w, https://james.li/img/BYBBEqH2f8-6000.webp 6000w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/BYBBEqH2f8-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-1-max&quot; width=&quot;6000&quot; height=&quot;4000&quot; srcset=&quot;https://james.li/img/BYBBEqH2f8-600.jpeg 600w, https://james.li/img/BYBBEqH2f8-1200.jpeg 1200w, https://james.li/img/BYBBEqH2f8-6000.jpeg 6000w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;figure src=&quot;/media/2025/ricoh-four-months/R0000390.jpeg&quot; alt=&quot;&quot; class=&quot;img-1-max&quot;&gt;&lt;a href=&quot;https://james.li/media/2025/ricoh-four-months/R0000390.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/yNqegOu24u-600.webp 600w, https://james.li/img/yNqegOu24u-1200.webp 1200w, https://james.li/img/yNqegOu24u-6000.webp 6000w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/yNqegOu24u-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-1-max&quot; width=&quot;6000&quot; height=&quot;4000&quot; srcset=&quot;https://james.li/img/yNqegOu24u-600.jpeg 600w, https://james.li/img/yNqegOu24u-1200.jpeg 1200w, https://james.li/img/yNqegOu24u-6000.jpeg 6000w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;hr&gt;
&lt;p&gt;In early July, we traveled to New York for a few days for my friend Louisa&#39;s wedding celebration. I really enjoyed experiencing a slice of NYC summer (in all its sticky humidity) with my friends there.&lt;/p&gt;
&lt;figure src=&quot;/media/2025/ricoh-four-months/R0000460.jpeg&quot; alt=&quot;&quot; class=&quot;img-1-max&quot;&gt;&lt;a href=&quot;https://james.li/media/2025/ricoh-four-months/R0000460.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/SYkxQ-vYMN-600.webp 600w, https://james.li/img/SYkxQ-vYMN-1200.webp 1200w, https://james.li/img/SYkxQ-vYMN-6000.webp 6000w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/SYkxQ-vYMN-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-1-max&quot; width=&quot;6000&quot; height=&quot;4000&quot; srcset=&quot;https://james.li/img/SYkxQ-vYMN-600.jpeg 600w, https://james.li/img/SYkxQ-vYMN-1200.jpeg 1200w, https://james.li/img/SYkxQ-vYMN-6000.jpeg 6000w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;figure src=&quot;/media/2025/ricoh-four-months/R0000473.jpeg&quot; alt=&quot;&quot; class=&quot;img-1-max&quot;&gt;&lt;a href=&quot;https://james.li/media/2025/ricoh-four-months/R0000473.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/aDzQmsbAxo-600.webp 600w, https://james.li/img/aDzQmsbAxo-1200.webp 1200w, https://james.li/img/aDzQmsbAxo-6000.webp 6000w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/aDzQmsbAxo-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-1-max&quot; width=&quot;6000&quot; height=&quot;4000&quot; srcset=&quot;https://james.li/img/aDzQmsbAxo-600.jpeg 600w, https://james.li/img/aDzQmsbAxo-1200.jpeg 1200w, https://james.li/img/aDzQmsbAxo-6000.jpeg 6000w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;figure src=&quot;/media/2025/ricoh-four-months/R0000478.jpeg&quot; alt=&quot;&quot; class=&quot;img-1-max&quot;&gt;&lt;a href=&quot;https://james.li/media/2025/ricoh-four-months/R0000478.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/vcBAPTz6Bk-600.webp 600w, https://james.li/img/vcBAPTz6Bk-1200.webp 1200w, https://james.li/img/vcBAPTz6Bk-6000.webp 6000w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/vcBAPTz6Bk-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-1-max&quot; width=&quot;6000&quot; height=&quot;4000&quot; srcset=&quot;https://james.li/img/vcBAPTz6Bk-600.jpeg 600w, https://james.li/img/vcBAPTz6Bk-1200.jpeg 1200w, https://james.li/img/vcBAPTz6Bk-6000.jpeg 6000w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;hr&gt;
&lt;p&gt;And a couple of assorted photos from other places in late July and September:&lt;/p&gt;
&lt;figure src=&quot;/media/2025/ricoh-four-months/R0000650.jpeg&quot; alt=&quot;&quot; class=&quot;img-1-max&quot;&gt;&lt;a href=&quot;https://james.li/media/2025/ricoh-four-months/R0000650.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/jhBlfi-Z8B-600.webp 600w, https://james.li/img/jhBlfi-Z8B-1200.webp 1200w, https://james.li/img/jhBlfi-Z8B-6000.webp 6000w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/jhBlfi-Z8B-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-1-max&quot; width=&quot;6000&quot; height=&quot;4000&quot; srcset=&quot;https://james.li/img/jhBlfi-Z8B-600.jpeg 600w, https://james.li/img/jhBlfi-Z8B-1200.jpeg 1200w, https://james.li/img/jhBlfi-Z8B-6000.jpeg 6000w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;figcaption&gt;Evening walk, Walnut, California&lt;/figcaption&gt;&lt;/figure&gt;
&lt;figure src=&quot;/media/2025/ricoh-four-months/R0000828.jpeg&quot; alt=&quot;&quot; class=&quot;img-1-max&quot;&gt;&lt;a href=&quot;https://james.li/media/2025/ricoh-four-months/R0000828.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/CbFSfg2lGJ-600.webp 600w, https://james.li/img/CbFSfg2lGJ-1200.webp 1200w, https://james.li/img/CbFSfg2lGJ-6000.webp 6000w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/CbFSfg2lGJ-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-1-max&quot; width=&quot;6000&quot; height=&quot;4000&quot; srcset=&quot;https://james.li/img/CbFSfg2lGJ-600.jpeg 600w, https://james.li/img/CbFSfg2lGJ-1200.jpeg 1200w, https://james.li/img/CbFSfg2lGJ-6000.jpeg 6000w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;figcaption&gt;Pigeon, Cherry Creek Trail, Denver, Colorado&lt;/figcaption&gt;&lt;/figure&gt;
&lt;hr&gt;
&lt;h2 id=&quot;2.-in-the-rockies&quot; tabindex=&quot;-1&quot;&gt;2. In the Rockies&lt;/h2&gt;
&lt;p&gt;While flying back to SF from NYC in July, I took this photo of the Rockies from my window seat&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://james.li/2025/ricoh-four-months/#fn4&quot; id=&quot;fnref4&quot;&gt;[4]&lt;/a&gt;&lt;/sup&gt;:&lt;/p&gt;
&lt;figure src=&quot;/media/2025/ricoh-four-months/R0000619.jpeg&quot; alt=&quot;&quot; class=&quot;img-1-max&quot;&gt;&lt;a href=&quot;https://james.li/media/2025/ricoh-four-months/R0000619.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/wcTH0_CIzM-600.webp 600w, https://james.li/img/wcTH0_CIzM-1200.webp 1200w, https://james.li/img/wcTH0_CIzM-6000.webp 6000w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/wcTH0_CIzM-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-1-max&quot; width=&quot;6000&quot; height=&quot;4000&quot; srcset=&quot;https://james.li/img/wcTH0_CIzM-600.jpeg 600w, https://james.li/img/wcTH0_CIzM-1200.jpeg 1200w, https://james.li/img/wcTH0_CIzM-6000.jpeg 6000w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;It&#39;s hard to get any sense of scale when looking down at those mountains from so high up—they might as well be rumpled blankets on my bed at home. I spent some time later trying to figure out what area is in that photo above—I think Independence Pass is somewhere in the middle of the frame, based on a distant shape in that photo that seems to match Taylor Park Reservoir.&lt;/p&gt;
&lt;p&gt;In September, our friends Reini and Andrew invited us to visit Colorado for a few days with them. The last time I&#39;d been in Colorado was in 2018,&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://james.li/2025/ricoh-four-months/#fn5&quot; id=&quot;fnref5&quot;&gt;[5]&lt;/a&gt;&lt;/sup&gt; so it was nice to return and spend more time in that landscape. Compared to my aerial photo, it was a very different perspective being on the ground in those mountains. These photos are all from our one day in Rocky Mountain National Park:&lt;/p&gt;
&lt;figure src=&quot;/media/2025/ricoh-four-months/R0001111.jpeg&quot; alt=&quot;&quot; class=&quot;img-1-max&quot;&gt;&lt;a href=&quot;https://james.li/media/2025/ricoh-four-months/R0001111.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/5-Rd9u3udY-600.webp 600w, https://james.li/img/5-Rd9u3udY-1200.webp 1200w, https://james.li/img/5-Rd9u3udY-6000.webp 6000w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/5-Rd9u3udY-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-1-max&quot; width=&quot;6000&quot; height=&quot;4000&quot; srcset=&quot;https://james.li/img/5-Rd9u3udY-600.jpeg 600w, https://james.li/img/5-Rd9u3udY-1200.jpeg 1200w, https://james.li/img/5-Rd9u3udY-6000.jpeg 6000w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;figure src=&quot;/media/2025/ricoh-four-months/R0001107.jpeg&quot; alt=&quot;&quot; class=&quot;img-1-max&quot;&gt;&lt;a href=&quot;https://james.li/media/2025/ricoh-four-months/R0001107.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/Xoh0Zs8H2x-600.webp 600w, https://james.li/img/Xoh0Zs8H2x-1200.webp 1200w, https://james.li/img/Xoh0Zs8H2x-5413.webp 5413w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/Xoh0Zs8H2x-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-1-max&quot; width=&quot;5413&quot; height=&quot;3609&quot; srcset=&quot;https://james.li/img/Xoh0Zs8H2x-600.jpeg 600w, https://james.li/img/Xoh0Zs8H2x-1200.jpeg 1200w, https://james.li/img/Xoh0Zs8H2x-5413.jpeg 5413w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;figure src=&quot;/media/2025/ricoh-four-months/R0001039.jpeg&quot; alt=&quot;&quot; class=&quot;img-1-max&quot;&gt;&lt;a href=&quot;https://james.li/media/2025/ricoh-four-months/R0001039.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/FNtq4gKiPK-600.webp 600w, https://james.li/img/FNtq4gKiPK-1200.webp 1200w, https://james.li/img/FNtq4gKiPK-6000.webp 6000w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/FNtq4gKiPK-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-1-max&quot; width=&quot;6000&quot; height=&quot;4000&quot; srcset=&quot;https://james.li/img/FNtq4gKiPK-600.jpeg 600w, https://james.li/img/FNtq4gKiPK-1200.jpeg 1200w, https://james.li/img/FNtq4gKiPK-6000.jpeg 6000w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;figure src=&quot;/media/2025/ricoh-four-months/R0001067.jpeg&quot; alt=&quot;&quot; class=&quot;img-1-max&quot;&gt;&lt;a href=&quot;https://james.li/media/2025/ricoh-four-months/R0001067.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/_8qPaumDEl-600.webp 600w, https://james.li/img/_8qPaumDEl-1200.webp 1200w, https://james.li/img/_8qPaumDEl-6000.webp 6000w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/_8qPaumDEl-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-1-max&quot; width=&quot;6000&quot; height=&quot;4000&quot; srcset=&quot;https://james.li/img/_8qPaumDEl-600.jpeg 600w, https://james.li/img/_8qPaumDEl-1200.jpeg 1200w, https://james.li/img/_8qPaumDEl-6000.jpeg 6000w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;figure src=&quot;/media/2025/ricoh-four-months/R0001073.jpeg&quot; alt=&quot;&quot; class=&quot;img-1-max&quot;&gt;&lt;a href=&quot;https://james.li/media/2025/ricoh-four-months/R0001073.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/uBardNeuMS-600.webp 600w, https://james.li/img/uBardNeuMS-1200.webp 1200w, https://james.li/img/uBardNeuMS-6000.webp 6000w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/uBardNeuMS-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-1-max&quot; width=&quot;6000&quot; height=&quot;4000&quot; srcset=&quot;https://james.li/img/uBardNeuMS-600.jpeg 600w, https://james.li/img/uBardNeuMS-1200.jpeg 1200w, https://james.li/img/uBardNeuMS-6000.jpeg 6000w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;figure src=&quot;/media/2025/ricoh-four-months/R0001079.jpeg&quot; alt=&quot;&quot; class=&quot;img-1-max&quot;&gt;&lt;a href=&quot;https://james.li/media/2025/ricoh-four-months/R0001079.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/m3D6om6iB6-600.webp 600w, https://james.li/img/m3D6om6iB6-1200.webp 1200w, https://james.li/img/m3D6om6iB6-5703.webp 5703w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/m3D6om6iB6-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-1-max&quot; width=&quot;5703&quot; height=&quot;3802&quot; srcset=&quot;https://james.li/img/m3D6om6iB6-600.jpeg 600w, https://james.li/img/m3D6om6iB6-1200.jpeg 1200w, https://james.li/img/m3D6om6iB6-5703.jpeg 5703w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;figure src=&quot;/media/2025/ricoh-four-months/R0001090.jpeg&quot; alt=&quot;&quot; class=&quot;img-1-max-nosnap&quot;&gt;&lt;a href=&quot;https://james.li/media/2025/ricoh-four-months/R0001090.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/yJ31_3kV8V-600.webp 600w, https://james.li/img/yJ31_3kV8V-1200.webp 1200w, https://james.li/img/yJ31_3kV8V-4185.webp 4185w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/yJ31_3kV8V-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-1-max-nosnap&quot; width=&quot;4185&quot; height=&quot;2790&quot; srcset=&quot;https://james.li/img/yJ31_3kV8V-600.jpeg 600w, https://james.li/img/yJ31_3kV8V-1200.jpeg 1200w, https://james.li/img/yJ31_3kV8V-4185.jpeg 4185w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;hr&gt;
&lt;p&gt;Anyways, I&#39;m enjoying this new camera a lot and am looking forward to making more photos with it!&lt;/p&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;My friend Kelly has the GR III with the wider 18mm lens (28mm full frame equivalent), and I&#39;d tried it briefly in December, but that focal length isn&#39;t very interesting to me—it&#39;s too similar to my iPhone—and so the camera didn&#39;t &amp;quot;click&amp;quot; for me at that time. &lt;a href=&quot;https://james.li/2025/ricoh-four-months/#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn2&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;I was also considering the Sony RX100 series of cameras (the super zoom is pretty cool) but when I tried it in the store, it just didn&#39;t feel fast and snappy the way the Ricoh did. I think the Sony has too much going on in too small of a package for my preferences. &lt;a href=&quot;https://james.li/2025/ricoh-four-months/#fnref2&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn3&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;I&#39;ve mostly been shooting with the &amp;quot;Negative Film&amp;quot; simulation, and only doing some small edits on the JPEG file in Apple Photos. I save all the RAW files, though, so that I can reprocess them in the camera if I want to try a different film simulation. The &amp;quot;Negative Film&amp;quot; simulation generally works okay but sometimes I find it shifts red colors towards orange too blatantly. Greens can also look rather blue. &lt;a href=&quot;https://james.li/2025/ricoh-four-months/#fnref3&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn4&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;&lt;a href=&quot;https://james.li/2025/airplane-window-photos&quot;&gt;More on airplane window seat photos from earlier in the year&lt;/a&gt; &lt;a href=&quot;https://james.li/2025/ricoh-four-months/#fnref4&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn5&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;I passed through Colorado in 2018 while driving my &lt;a href=&quot;https://james.li/protege5&quot;&gt;Mazda Protege5&lt;/a&gt; from LA to Detroit (and back) for my internship at Ford. &lt;a href=&quot;https://james.li/2025/ricoh-four-months/#fnref5&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content>
  </entry>
  <entry>
    <title>Measuring bike fit using XY coordinates</title>
    <link href="https://james.li/2025/bike-fit-measurement/" />
    <updated>2025-09-09T00:00:00Z</updated>
    <id>https://james.li/2025/bike-fit-measurement/</id>
    <content type="html">&lt;p&gt;This page describes a simple method I learned recently for measuring the locations of your bike&#39;s contact points (handlebar and saddle) relative to the bottom bracket. This is useful because quantifying these locations allows you to better compare different bike fits, or transfer a fit from one bike to another.&lt;/p&gt;
&lt;p&gt;Prior to doing these measurements, I just adjusted my bike until I was happy with the fit. This works fine for one bike, but doesn&#39;t help if you want to set up a second bike the same way, or want to understand why a different bike feels better or worse.&lt;/p&gt;
&lt;p&gt;I learned this method from Allen Kuo, who runs &lt;a href=&quot;https://www.clubhousevelo.com&quot;&gt;Clubhouse Velo Fit Studio&lt;/a&gt; in San Francisco and developed the excellent &lt;a href=&quot;https://xybikecalc.com&quot;&gt;XY Bike Calc web tool&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;overview&quot; tabindex=&quot;-1&quot;&gt;Overview&lt;/h2&gt;
&lt;p&gt;Our goal is to describe the positions of the bike saddle and bike handlebars relative to the bottom bracket, using X and Y measurements, as shown in this helpful diagram from the &lt;a href=&quot;https://xybikecalc.com/guide/&quot;&gt;XY Bike Calc guide&lt;/a&gt;:&lt;/p&gt;
&lt;figure src=&quot;/media/2025/bike-fit-measurement/xy-measurement-diagram.jpg&quot; alt=&quot;&quot; class=&quot;img-1&quot;&gt;&lt;a href=&quot;https://james.li/media/2025/bike-fit-measurement/xy-measurement-diagram.jpg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/8BXzs5XrJA-600.webp 600w, https://james.li/img/8BXzs5XrJA-1200.webp 1200w, https://james.li/img/8BXzs5XrJA-2500.webp 2500w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/8BXzs5XrJA-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-1&quot; width=&quot;2500&quot; height=&quot;1658&quot; srcset=&quot;https://james.li/img/8BXzs5XrJA-600.jpeg 600w, https://james.li/img/8BXzs5XrJA-1200.jpeg 1200w, https://james.li/img/8BXzs5XrJA-2500.jpeg 2500w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;figcaption&gt;Source: &lt;a href=&quot;https://xybikecalc.com/guide/&quot;&gt;XY Bike Calc&lt;/a&gt;&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;The saddle is measured at the center of the saddle rails, while the handlebars are measured at the center of where they are clamped by the stem.&lt;/p&gt;
&lt;h2 id=&quot;tools-needed&quot; tabindex=&quot;-1&quot;&gt;Tools needed&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Small tape measure. I had a small 6 ft / 2 m tape measure from school that was perfect for this.&lt;/li&gt;
&lt;li&gt;Self-leveling line laser. I bought &lt;a href=&quot;https://www.amazon.com/dp/B07VPH48T9&quot;&gt;this one from Amazon&lt;/a&gt; for about $16.&lt;/li&gt;
&lt;li&gt;Something to stand the bike upright. This method will be more accurate if the bike is close to vertical.&lt;/li&gt;
&lt;li&gt;Optionally, a small tripod or other adjustable base for the line laser. I just stacked boxes and other small objects to position the laser where I needed it.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;setup&quot; tabindex=&quot;-1&quot;&gt;Setup&lt;/h2&gt;
&lt;p&gt;Set the bike up so that it is standing upright.&lt;/p&gt;
&lt;p&gt;Next, check that the bike is level: Turn on the laser and align the laser line with the axles of the bike. The axles should be level with each other; if not, adjust how the bike is set up. (The laser should be self-leveling throughout this entire process, not locked.)&lt;/p&gt;
&lt;p&gt;Then, reposition the laser so that the center point is aligned with the bottom bracket of the bike. Try to set up the laser so that it is aimed square to the bike rather than from an angle off-center.&lt;/p&gt;
&lt;p&gt;Here&#39;s what my setup looked like:&lt;/p&gt;
&lt;figure src=&quot;/media/2025/bike-fit-measurement/IMG_3645.jpeg&quot; alt=&quot;&quot; class=&quot;img-1&quot;&gt;&lt;a href=&quot;https://james.li/media/2025/bike-fit-measurement/IMG_3645.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/tFwngbLyF--600.webp 600w, https://james.li/img/tFwngbLyF--1200.webp 1200w, https://james.li/img/tFwngbLyF--4032.webp 4032w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/tFwngbLyF--600.jpeg&quot; alt=&quot;&quot; class=&quot;img-1&quot; width=&quot;4032&quot; height=&quot;3024&quot; srcset=&quot;https://james.li/img/tFwngbLyF--600.jpeg 600w, https://james.li/img/tFwngbLyF--1200.jpeg 1200w, https://james.li/img/tFwngbLyF--4032.jpeg 4032w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;figcaption&gt;Ready to take measurements on my CAAD12. I turned down the lights so the photo would look better, but I was able to do the measurements with the room at normal brightness.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;h2 id=&quot;measurements&quot; tabindex=&quot;-1&quot;&gt;Measurements&lt;/h2&gt;
&lt;p&gt;Use the tape measure to measure the positions of your saddle rail center and handlebar center from the vertical and horizontal laser lines.&lt;/p&gt;
&lt;p&gt;I just eyeballed the angle of my tape measure as best as I could and the results seemed pretty repeatable.&lt;/p&gt;
&lt;p&gt;These were my resulting measurements:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Point&lt;/th&gt;
&lt;th&gt;X&lt;/th&gt;
&lt;th&gt;Y&lt;/th&gt;
&lt;th&gt;Comments&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Saddle Rail Center&lt;/td&gt;
&lt;td&gt;178 mm&lt;/td&gt;
&lt;td&gt;622 mm&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Handlebar center&lt;/td&gt;
&lt;td&gt;443 mm&lt;/td&gt;
&lt;td&gt;604 mm&lt;/td&gt;
&lt;td&gt;These bars have 74mm reach&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;I then plugged my numbers into the Bike Position Simulator on XY Bike Calc to make sure things looked right:&lt;/p&gt;
&lt;figure src=&quot;/media/2025/bike-fit-measurement/screenshot-xybikecalc.png&quot; alt=&quot;&quot; class=&quot;img-1&quot;&gt;&lt;a href=&quot;https://james.li/media/2025/bike-fit-measurement/screenshot-xybikecalc.png&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/R3_aEXJUez-600.webp 600w, https://james.li/img/R3_aEXJUez-1200.webp 1200w, https://james.li/img/R3_aEXJUez-2820.webp 2820w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/R3_aEXJUez-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-1&quot; width=&quot;2820&quot; height=&quot;1428&quot; srcset=&quot;https://james.li/img/R3_aEXJUez-600.jpeg 600w, https://james.li/img/R3_aEXJUez-1200.jpeg 1200w, https://james.li/img/R3_aEXJUez-2820.jpeg 2820w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;Now, I know pretty accurately how my bike was set up at this point in time.&lt;/p&gt;
&lt;h2 id=&quot;transferring-to-another-bike&quot; tabindex=&quot;-1&quot;&gt;Transferring to another bike&lt;/h2&gt;
&lt;p&gt;My main motivation for doing this was to transfer my fit from my Cannondale CAAD12 to the Trek T1000 tandem that Sharlene and I bought recently. I&#39;m pretty happy with my fit on the CAAD12, which I&#39;ve gradually dialed in over this past season of riding. Setting up the tandem is a great use case for this method because it&#39;s so cumbersome to take out and ride by myself. It&#39;s much easier to use these measurements to set it up indoors rather than spend a lot of riding time adjusting my fit through trial and error.&lt;/p&gt;
&lt;p&gt;First, I set up the tandem bike with the laser lines centered on the bottom bracket:&lt;/p&gt;
&lt;figure src=&quot;/media/2025/bike-fit-measurement/IMG_3649.jpeg&quot; alt=&quot;&quot; class=&quot;img-1&quot;&gt;&lt;a href=&quot;https://james.li/media/2025/bike-fit-measurement/IMG_3649.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/i__1ofzPht-600.webp 600w, https://james.li/img/i__1ofzPht-1200.webp 1200w, https://james.li/img/i__1ofzPht-5712.webp 5712w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/i__1ofzPht-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-1&quot; width=&quot;5712&quot; height=&quot;4284&quot; srcset=&quot;https://james.li/img/i__1ofzPht-600.jpeg 600w, https://james.li/img/i__1ofzPht-1200.jpeg 1200w, https://james.li/img/i__1ofzPht-5712.jpeg 5712w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;Then, I could simply measure the saddle and handlebar positions and then adjust to get as close as possible to my target position.&lt;/p&gt;
&lt;p&gt;These are the numbers I ended up with:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Point&lt;/th&gt;
&lt;th&gt;X&lt;/th&gt;
&lt;th&gt;Y&lt;/th&gt;
&lt;th&gt;Comments&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Saddle rail center&lt;/td&gt;
&lt;td&gt;185 mm&lt;br&gt;(+7 from CAAD12)&lt;/td&gt;
&lt;td&gt;612 mm&lt;br&gt;(-10 from CAAD12)&lt;/td&gt;
&lt;td&gt;Cranks are 10mm longer on Trek. Can&#39;t go forward more due to setback seatpost.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Handlebar center&lt;/td&gt;
&lt;td&gt;432 mm&lt;br&gt;(-11 from CAAD12)&lt;/td&gt;
&lt;td&gt;650 mm&lt;br&gt;(+46 from CAAD12)&lt;/td&gt;
&lt;td&gt;Bar has a little more reach, ~85 mm vs. the CAAD12&#39;s 74 mm&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;So I was able to get pretty close to the CAAD12&#39;s position. The main differences were that the Trek&#39;s bars ended up a bit higher, and the saddle was very slightly farther back.&lt;/p&gt;
&lt;figure src=&quot;/media/2025/bike-fit-measurement/IMG_3650.jpeg&quot; alt=&quot;&quot; class=&quot;img-1&quot;&gt;&lt;a href=&quot;https://james.li/media/2025/bike-fit-measurement/IMG_3650.jpeg&quot;&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://james.li/img/llm3WE9dzj-600.webp 600w, https://james.li/img/llm3WE9dzj-1200.webp 1200w, https://james.li/img/llm3WE9dzj-5712.webp 5712w&quot; sizes=&quot;100vw&quot;&gt;&lt;img loading=&quot;eager&quot; decoding=&quot;async&quot; src=&quot;https://james.li/img/llm3WE9dzj-600.jpeg&quot; alt=&quot;&quot; class=&quot;img-1&quot; width=&quot;5712&quot; height=&quot;4284&quot; srcset=&quot;https://james.li/img/llm3WE9dzj-600.jpeg 600w, https://james.li/img/llm3WE9dzj-1200.jpeg 1200w, https://james.li/img/llm3WE9dzj-5712.jpeg 5712w&quot; sizes=&quot;100vw&quot;&gt;&lt;/picture&gt;&lt;/a&gt;&lt;figcaption&gt;Sanity checking by putting the bikes side by side&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;We took the tandem out on our first longer ride this past weekend and I didn&#39;t have to make any fit adjustments, so I think this method worked pretty well!&lt;/p&gt;
</content>
  </entry>
</feed>