<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[Andrew Liu's Blog]]></title><description><![CDATA[Welcome to Costco, I love you.]]></description><link>https://www.liu.blog</link><image><url>https://substackcdn.com/image/fetch/$s_!VtJY!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F766a90a3-3a69-44bd-acd9-fc16ee5236a3_1280x1280.png</url><title>Andrew Liu&apos;s Blog</title><link>https://www.liu.blog</link></image><generator>Substack</generator><lastBuildDate>Thu, 08 Oct 2026 07:40:02 GMT</lastBuildDate><atom:link href="https://www.liu.blog/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Andrew Liu]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[woke@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[woke@substack.com]]></itunes:email><itunes:name><![CDATA[Andrew Liu]]></itunes:name></itunes:owner><itunes:author><![CDATA[Andrew Liu]]></itunes:author><googleplay:owner><![CDATA[woke@substack.com]]></googleplay:owner><googleplay:email><![CDATA[woke@substack.com]]></googleplay:email><googleplay:author><![CDATA[Andrew Liu]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Cloning apartment keys for fun and profit]]></title><description><![CDATA[I really dislike carrying my key fob around so I wasted $200 on a Flipper Zero.]]></description><link>https://www.liu.blog/p/key-fob</link><guid isPermaLink="false">https://www.liu.blog/p/key-fob</guid><dc:creator><![CDATA[Andrew Liu]]></dc:creator><pubDate>Fri, 25 Sep 2026 22:07:02 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/797a3c01-3cbd-4b69-878e-cc2a398f9035_1920x1080.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I try to keep my pockets relatively empty. It&#8217;s annoying carrying too many things. For example, I don&#8217;t have a wallet. I use Apple Pay for everything, and I hold some cards in a MagSafe PopSocket as a backup. In theory, all I need to carry is my phone. (Emphasis on the &#8220;in theory&#8221; part.)</p><p>My apartment assigns RFID key fobs for their doors and elevators. It&#8217;s a thick piece of plastic the size of a half dollar. There&#8217;s only one copy. I have mine attached to a keychain with my car keys and an AirTag, so I need to carry an entire key ring around, even if I&#8217;m not driving. As a result, more than half of my pocket space is filled with unnecessary items. That really put a wrench in my desire to be a minimalist.</p><p>So I began to wonder:</p><ul><li><p>Can I clone multiple copies of my apartment key fob?</p></li><li><p>Can I have a functioning key in a better form factor?</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!FumS!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1bd4f070-53e7-4eb1-9880-d24e82c6a327_4032x3024.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!FumS!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1bd4f070-53e7-4eb1-9880-d24e82c6a327_4032x3024.jpeg 424w, https://substackcdn.com/image/fetch/$s_!FumS!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1bd4f070-53e7-4eb1-9880-d24e82c6a327_4032x3024.jpeg 848w, https://substackcdn.com/image/fetch/$s_!FumS!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1bd4f070-53e7-4eb1-9880-d24e82c6a327_4032x3024.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!FumS!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1bd4f070-53e7-4eb1-9880-d24e82c6a327_4032x3024.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!FumS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1bd4f070-53e7-4eb1-9880-d24e82c6a327_4032x3024.jpeg" width="616" height="462" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1bd4f070-53e7-4eb1-9880-d24e82c6a327_4032x3024.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1092,&quot;width&quot;:1456,&quot;resizeWidth&quot;:616,&quot;bytes&quot;:3214088,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.liu.blog/i/215430611?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1bd4f070-53e7-4eb1-9880-d24e82c6a327_4032x3024.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!FumS!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1bd4f070-53e7-4eb1-9880-d24e82c6a327_4032x3024.jpeg 424w, https://substackcdn.com/image/fetch/$s_!FumS!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1bd4f070-53e7-4eb1-9880-d24e82c6a327_4032x3024.jpeg 848w, https://substackcdn.com/image/fetch/$s_!FumS!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1bd4f070-53e7-4eb1-9880-d24e82c6a327_4032x3024.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!FumS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1bd4f070-53e7-4eb1-9880-d24e82c6a327_4032x3024.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">My key ring. Honestly it&#8217;s not that bad, but it could&#8217;ve been an empty pocket.</figcaption></figure></div><h1>Identifying the key fob</h1><p>On the back of the key fob there&#8217;s an inscription that reads &#8220;M+ 2K.&#8221; That was a nice start. If we could identify the protocol the key fob uses, that could reveal how feasible it is to clone the key. (Older and broken protocols may have known flaws that allow you to exfiltrate any secret data without tampering with the physical key itself.)</p><p>Due to security reasons, iPhones don&#8217;t allow arbitrary NFC reading, so I had to use an Android phone and download an <a href="https://play.google.com/store/apps/details?id=com.wakdev.wdnfc&amp;hl=en_US">NFC app</a> for that. Otherwise, identifying the protocol was as simple as scanning the key fob.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!MFfp!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b6f4861-d9aa-41ee-8404-683c594bd8a2_1000x1298.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!MFfp!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b6f4861-d9aa-41ee-8404-683c594bd8a2_1000x1298.png 424w, https://substackcdn.com/image/fetch/$s_!MFfp!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b6f4861-d9aa-41ee-8404-683c594bd8a2_1000x1298.png 848w, https://substackcdn.com/image/fetch/$s_!MFfp!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b6f4861-d9aa-41ee-8404-683c594bd8a2_1000x1298.png 1272w, https://substackcdn.com/image/fetch/$s_!MFfp!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b6f4861-d9aa-41ee-8404-683c594bd8a2_1000x1298.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!MFfp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b6f4861-d9aa-41ee-8404-683c594bd8a2_1000x1298.png" width="312" height="404.976" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1b6f4861-d9aa-41ee-8404-683c594bd8a2_1000x1298.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1298,&quot;width&quot;:1000,&quot;resizeWidth&quot;:312,&quot;bytes&quot;:252624,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.liu.blog/i/215430611?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b6f4861-d9aa-41ee-8404-683c594bd8a2_1000x1298.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!MFfp!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b6f4861-d9aa-41ee-8404-683c594bd8a2_1000x1298.png 424w, https://substackcdn.com/image/fetch/$s_!MFfp!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b6f4861-d9aa-41ee-8404-683c594bd8a2_1000x1298.png 848w, https://substackcdn.com/image/fetch/$s_!MFfp!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b6f4861-d9aa-41ee-8404-683c594bd8a2_1000x1298.png 1272w, https://substackcdn.com/image/fetch/$s_!MFfp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b6f4861-d9aa-41ee-8404-683c594bd8a2_1000x1298.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Look at me, I downloaded an Android app and scanned my apartment key. I&#8217;m such a hacker!</figcaption></figure></div><p>The app showed that the key fob used an NFC protocol called <a href="https://www.nxp.com/docs/en/data-sheet/MF1S50YYX_V1.pdf">MIFARE Classic 1K</a>. (NFC is a subset of RFID that uses a high-frequency band.) A quick Google search shows that that protocol is old and totally broken. Cloning the apartment key is feasible. The problem is that neither Android phones nor iPhones break the specific NFC protocol and extract its data, so I needed specialized hardware to make a clone.</p><h1>Buying hardware</h1><p>I needed NFC devices that I could use as my clones, and I needed something that would write my key&#8217;s data to those devices.</p><p>For my NFC writer, I bought a <a href="https://flipper.net/">Flipper Zero</a>. It&#8217;s a popular Swiss Army Knife for hacking around access control systems, and it has a cool dolphin mascot.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!_SAu!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f18a346-104f-4721-9162-f6f5dfccffd9_1017x546.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!_SAu!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f18a346-104f-4721-9162-f6f5dfccffd9_1017x546.jpeg 424w, https://substackcdn.com/image/fetch/$s_!_SAu!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f18a346-104f-4721-9162-f6f5dfccffd9_1017x546.jpeg 848w, https://substackcdn.com/image/fetch/$s_!_SAu!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f18a346-104f-4721-9162-f6f5dfccffd9_1017x546.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!_SAu!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f18a346-104f-4721-9162-f6f5dfccffd9_1017x546.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!_SAu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f18a346-104f-4721-9162-f6f5dfccffd9_1017x546.jpeg" width="574" height="308.165191740413" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3f18a346-104f-4721-9162-f6f5dfccffd9_1017x546.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:546,&quot;width&quot;:1017,&quot;resizeWidth&quot;:574,&quot;bytes&quot;:110994,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.liu.blog/i/215430611?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2910cc0-465c-4db0-a17f-a183eab5183f_1024x768.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!_SAu!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f18a346-104f-4721-9162-f6f5dfccffd9_1017x546.jpeg 424w, https://substackcdn.com/image/fetch/$s_!_SAu!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f18a346-104f-4721-9162-f6f5dfccffd9_1017x546.jpeg 848w, https://substackcdn.com/image/fetch/$s_!_SAu!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f18a346-104f-4721-9162-f6f5dfccffd9_1017x546.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!_SAu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f18a346-104f-4721-9162-f6f5dfccffd9_1017x546.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">I&#8217;ll be honest I mainly bought the Flipper for the dolphin.</figcaption></figure></div><p>For my clones, I wanted key cards and wearable rings. Key cards could fit flush with credit cards in a wallet, and I could wear a ring without having to store anything in my pockets.</p><p>Buying blank key cards was simple enough. They were cheap on Amazon. NFC rings were a different story. The compatible ones were sold in random biohacking specialty shops, and they cost an arm and a leg. To make matters worse, I didn&#8217;t know my ring size, so I was reluctant to take my chances. I ended up buying from my friends overseas at AliExpress.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!lJwW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b0fae32-813f-4146-964e-a13898c09e4d_1947x1028.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!lJwW!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b0fae32-813f-4146-964e-a13898c09e4d_1947x1028.png 424w, https://substackcdn.com/image/fetch/$s_!lJwW!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b0fae32-813f-4146-964e-a13898c09e4d_1947x1028.png 848w, https://substackcdn.com/image/fetch/$s_!lJwW!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b0fae32-813f-4146-964e-a13898c09e4d_1947x1028.png 1272w, https://substackcdn.com/image/fetch/$s_!lJwW!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b0fae32-813f-4146-964e-a13898c09e4d_1947x1028.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!lJwW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b0fae32-813f-4146-964e-a13898c09e4d_1947x1028.png" width="1456" height="769" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9b0fae32-813f-4146-964e-a13898c09e4d_1947x1028.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:769,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:326424,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.liu.blog/i/215430611?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b0fae32-813f-4146-964e-a13898c09e4d_1947x1028.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!lJwW!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b0fae32-813f-4146-964e-a13898c09e4d_1947x1028.png 424w, https://substackcdn.com/image/fetch/$s_!lJwW!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b0fae32-813f-4146-964e-a13898c09e4d_1947x1028.png 848w, https://substackcdn.com/image/fetch/$s_!lJwW!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b0fae32-813f-4146-964e-a13898c09e4d_1947x1028.png 1272w, https://substackcdn.com/image/fetch/$s_!lJwW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b0fae32-813f-4146-964e-a13898c09e4d_1947x1028.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">The stuff on AliExpress is so cheap! The only downside is that it takes 347362 years to ship.</figcaption></figure></div><p>With the hardware in place, I was ready to start cloning.</p><h1>Extracting NFC data</h1><p>The Flipper Zero has a straightforward menu to read from an NFC device. However, I did need to install <a href="https://momentum-fw.dev/">custom firmware</a> so it could break the specific protocol on my apartment key. After that, it was a matter of waiting while it read the data from my key.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!YhpH!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24d98897-d48b-4119-864e-32724d8361ec_3024x2253.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!YhpH!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24d98897-d48b-4119-864e-32724d8361ec_3024x2253.jpeg 424w, https://substackcdn.com/image/fetch/$s_!YhpH!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24d98897-d48b-4119-864e-32724d8361ec_3024x2253.jpeg 848w, https://substackcdn.com/image/fetch/$s_!YhpH!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24d98897-d48b-4119-864e-32724d8361ec_3024x2253.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!YhpH!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24d98897-d48b-4119-864e-32724d8361ec_3024x2253.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!YhpH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24d98897-d48b-4119-864e-32724d8361ec_3024x2253.jpeg" width="600" height="447.0238095238095" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/24d98897-d48b-4119-864e-32724d8361ec_3024x2253.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:2253,&quot;width&quot;:3024,&quot;resizeWidth&quot;:600,&quot;bytes&quot;:838414,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.liu.blog/i/215430611?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6667dfd6-37e7-405c-a52f-72642048319b_3024x4032.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!YhpH!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24d98897-d48b-4119-864e-32724d8361ec_3024x2253.jpeg 424w, https://substackcdn.com/image/fetch/$s_!YhpH!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24d98897-d48b-4119-864e-32724d8361ec_3024x2253.jpeg 848w, https://substackcdn.com/image/fetch/$s_!YhpH!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24d98897-d48b-4119-864e-32724d8361ec_3024x2253.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!YhpH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24d98897-d48b-4119-864e-32724d8361ec_3024x2253.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">This is called being a script kiddie.</figcaption></figure></div><p>Unsurprisingly, most of the data within the key fob was set to default values. After all, it&#8217;s an apartment complex, not some secure facility.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!QqL2!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc03790eb-0317-48bb-ad15-ee81c4e89a75_1206x1899.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!QqL2!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc03790eb-0317-48bb-ad15-ee81c4e89a75_1206x1899.png 424w, https://substackcdn.com/image/fetch/$s_!QqL2!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc03790eb-0317-48bb-ad15-ee81c4e89a75_1206x1899.png 848w, https://substackcdn.com/image/fetch/$s_!QqL2!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc03790eb-0317-48bb-ad15-ee81c4e89a75_1206x1899.png 1272w, https://substackcdn.com/image/fetch/$s_!QqL2!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc03790eb-0317-48bb-ad15-ee81c4e89a75_1206x1899.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!QqL2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc03790eb-0317-48bb-ad15-ee81c4e89a75_1206x1899.png" width="400" height="629.8507462686567" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c03790eb-0317-48bb-ad15-ee81c4e89a75_1206x1899.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1899,&quot;width&quot;:1206,&quot;resizeWidth&quot;:400,&quot;bytes&quot;:536017,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.liu.blog/i/215430611?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc03790eb-0317-48bb-ad15-ee81c4e89a75_1206x1899.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!QqL2!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc03790eb-0317-48bb-ad15-ee81c4e89a75_1206x1899.png 424w, https://substackcdn.com/image/fetch/$s_!QqL2!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc03790eb-0317-48bb-ad15-ee81c4e89a75_1206x1899.png 848w, https://substackcdn.com/image/fetch/$s_!QqL2!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc03790eb-0317-48bb-ad15-ee81c4e89a75_1206x1899.png 1272w, https://substackcdn.com/image/fetch/$s_!QqL2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc03790eb-0317-48bb-ad15-ee81c4e89a75_1206x1899.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">My actual apartment key. I have a feeling only Sector 0 is used. Most other sectors contain garbage data.</figcaption></figure></div><h1>Creating the clones</h1><p>Writing the data was even easier than reading it; it&#8217;s almost instantaneous. Although I had cards and rings that could open my door, the form factor mattered a lot with usability.</p><p>The key cards work great, but the rings had a disappointing performance. It&#8217;s due mostly to the form factor. Rings are too small, and since the electric coil winds around the ring itself, wearing the ring interferes with the signal. I was only able to get the rings to open my door if I wasn&#8217;t wearing the ring.  </p><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;69c6fcfe-c860-4e96-a6df-19e40506e769&quot;,&quot;duration&quot;:null}"></div><p>Afterward, I kept using my original key fob whenever I was driving, and I&#8217;d use the key card otherwise. The ring was a neat gimmick, but it wasn&#8217;t practical, since I had to take it off every time I used it.</p><p>In the end, I&#8217;m down around $250, all in the name of saving some pocket space. At least I get to write this blog post about it.</p><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;2a33c278-344e-49ed-a302-b205c0c0d4a4&quot;,&quot;duration&quot;:null}"></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.liu.blog/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Andrew Liu's Blog! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Slow Productivity]]></title><description><![CDATA[Various opinions I have around productivity, plus a summary of Slow Productivity by Cal Newport.]]></description><link>https://www.liu.blog/p/slow-productivity</link><guid isPermaLink="false">https://www.liu.blog/p/slow-productivity</guid><dc:creator><![CDATA[Andrew Liu]]></dc:creator><pubDate>Sun, 30 Aug 2026 19:28:38 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/a26e6f15-161a-4e53-86fa-4214e01659c4_3002x2286.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I&#8217;m a Cal Newport fan. Pretty much any time I write a book summary on this blog, it&#8217;s one of <a href="https://www.liu.blog/p/so-good-they-cant-ignore-you">his</a> <a href="https://www.liu.blog/p/deep-work">books</a>. This blog post covers his latest book, <a href="https://www.goodreads.com/en/book/show/197773418-slow-productivity">Slow Productivity</a>, with my personal opinions sprinkled throughout.</p><p>Cal Newport&#8217;s premise is that knowledge workers are overwhelmed with competing obligations and interruptions. Stress is high and hours are long, but valuable output is low.</p><p>To address the trap of modern knowledge work, he presents the concept of slow productivity:</p><blockquote><p><strong>A philosophy for organizing knowledge work efforts in a sustainable and meaningful manner, based on the following three principles:</strong></p><p>1. Do fewer things.</p><p>2. Work at a natural pace.</p><p>3. Obsess over quality.</p></blockquote><p>I would add that the rise of hustle culture, LARPing, and AI slop cannons has not helped. If anything, these developments have glorified the idea of spinning your wheels with nothing to show for it.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!RlGO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf7f8494-c172-497d-ba34-0377821928a0_1202x1036.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!RlGO!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf7f8494-c172-497d-ba34-0377821928a0_1202x1036.webp 424w, https://substackcdn.com/image/fetch/$s_!RlGO!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf7f8494-c172-497d-ba34-0377821928a0_1202x1036.webp 848w, https://substackcdn.com/image/fetch/$s_!RlGO!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf7f8494-c172-497d-ba34-0377821928a0_1202x1036.webp 1272w, https://substackcdn.com/image/fetch/$s_!RlGO!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf7f8494-c172-497d-ba34-0377821928a0_1202x1036.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!RlGO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf7f8494-c172-497d-ba34-0377821928a0_1202x1036.webp" width="1202" height="1036" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/df7f8494-c172-497d-ba34-0377821928a0_1202x1036.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1036,&quot;width&quot;:1202,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:204818,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.liu.blog/i/209564525?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee061989-9f22-4d23-8eba-d116499e3085_1456x1066.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!RlGO!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf7f8494-c172-497d-ba34-0377821928a0_1202x1036.webp 424w, https://substackcdn.com/image/fetch/$s_!RlGO!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf7f8494-c172-497d-ba34-0377821928a0_1202x1036.webp 848w, https://substackcdn.com/image/fetch/$s_!RlGO!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf7f8494-c172-497d-ba34-0377821928a0_1202x1036.webp 1272w, https://substackcdn.com/image/fetch/$s_!RlGO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf7f8494-c172-497d-ba34-0377821928a0_1202x1036.webp 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Cal Newport and me at his first book signing event for Slow Productivity in March 2024.</figcaption></figure></div><p>I agree that knowledge work needs a reframing. Slow productivity isn&#8217;t about being lazy or wasting time. Rather, it&#8217;s a way to preserve your focus and energy, so you can go hard on the few things that matter.</p><p>For each principle, I&#8217;ll summarize Cal Newport&#8217;s advice and add my own thoughts.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.liu.blog/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Andrew Liu's Blog! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h1>Principle 1: Do Fewer Things</h1><blockquote><p>Strive to reduce your obligations to the point where you can easily imagine accomplishing them with time to spare. Leverage this reduced load to more fully embrace and advance the small number of projects that matter most.</p></blockquote><h2>Cal&#8217;s Propositions</h2><ul><li><p><strong>Limit how much you attempt to do.</strong> Have one main goal per day. Keep <em>at most</em> 3 missions at a time. (The fewer the better.)</p></li><li><p><strong>Protect your time.</strong> Automate or eliminate menial tasks. Throw money at the problem if you have to. Schedule your time. Do not let other people claim your time for free.</p></li><li><p><strong>Maintain a backlog of work and pull from it,</strong> rather than allowing new tasks to be thrust upon you. That way you only focus on what&#8217;s next on your plate.</p></li></ul><h2>Andrew&#8217;s Commentary</h2><ul><li><p><strong>Working smart beats working hard.</strong> My college days are an example: I spent more time playing League of Legends than I spent studying. But when I studied, I focused hard. Come graduation time, my stress was low, but my grades and career prospects were high.</p></li><li><p><strong>Everything has an opportunity cost.</strong> Stretching yourself too thin means nothing gets done. This is also the thesis of <a href="https://www.goodreads.com/en/book/show/19776547-essentialism">Essentialism</a>: you should focus harder on fewer things.</p></li><li><p><strong>If you don&#8217;t prioritize, others will prioritize for you.</strong> The Eisenhower Matrix distinguishes between important work and work that&#8217;s merely &#8220;urgent.&#8221; Most incoming requests appear urgent but don&#8217;t actually matter. Have the discipline to say no.</p></li><li><p><strong>The advice matches the <a href="https://en.wikipedia.org/wiki/Getting_Things_Done">Getting Things Done</a> system.</strong> The gist of it is to triage incoming tasks and focus only on what&#8217;s next. I use GTD in my own life and automate almost everything with <a href="https://www.todoist.com/">Todoist</a>.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jqhI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72289553-9bbc-4f14-9167-300a22e3550d_3840x2969.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jqhI!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72289553-9bbc-4f14-9167-300a22e3550d_3840x2969.png 424w, https://substackcdn.com/image/fetch/$s_!jqhI!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72289553-9bbc-4f14-9167-300a22e3550d_3840x2969.png 848w, https://substackcdn.com/image/fetch/$s_!jqhI!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72289553-9bbc-4f14-9167-300a22e3550d_3840x2969.png 1272w, https://substackcdn.com/image/fetch/$s_!jqhI!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72289553-9bbc-4f14-9167-300a22e3550d_3840x2969.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jqhI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72289553-9bbc-4f14-9167-300a22e3550d_3840x2969.png" width="1456" height="1126" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/72289553-9bbc-4f14-9167-300a22e3550d_3840x2969.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1126,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!jqhI!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72289553-9bbc-4f14-9167-300a22e3550d_3840x2969.png 424w, https://substackcdn.com/image/fetch/$s_!jqhI!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72289553-9bbc-4f14-9167-300a22e3550d_3840x2969.png 848w, https://substackcdn.com/image/fetch/$s_!jqhI!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72289553-9bbc-4f14-9167-300a22e3550d_3840x2969.png 1272w, https://substackcdn.com/image/fetch/$s_!jqhI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72289553-9bbc-4f14-9167-300a22e3550d_3840x2969.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">The steps for &#8220;inbox processing&#8221; in the Getting Things Done system.</figcaption></figure></div><h1>Principle 2: Work at a Natural Pace</h1><blockquote><p>Don&#8217;t rush your most important work. Allow it instead to unfold along a sustainable timeline, with variations in intensity, in settings conducive to brilliance.</p></blockquote><h2>Cal&#8217;s Propositions</h2><ul><li><p><strong>Give yourself permission to take longer and miss &#8220;deadlines.&#8221;</strong> Your timelines should be generous enough to be clearly attainable. Most people tend to estimate that a project will take half the time it actually needs.</p></li><li><p><strong>Embrace seasonality in your schedule.</strong> Knowledge work is cyclical; you need periods of rest. So incorporate sabbaticals, schedule focus blocks, and modulate the intensity throughout your day/week/month/year.</p></li><li><p><strong>Curate your environment.</strong> Having a working space with good vibes makes a difference. Set rituals to connect and disconnect from work, so you can get in (and out of) a flow state.</p></li></ul><h2>Andrew&#8217;s Commentary</h2><ul><li><p><strong>&#8220;Work like a lion, not like a cow.&#8221;</strong> Progress is rarely uniform. Bursts of great work can accomplish more than consistent mediocre work. So you&#8217;re better off resting and recharging in service of doing your best work.</p></li><li><p><strong>Speed can compromise quality and long-term progress.</strong> If moving &#8220;faster&#8221; lowers the quality bar or makes you reckless, you may create more work&#8212;or set yourself back&#8212;in the long run.</p></li><li><p><strong>Unrealistic timelines lose credibility.</strong> It&#8217;s tempting to set aggressive deadlines to manufacture pressure. It might improve velocity, but if a goal is unrealistic, people stop taking it seriously. Why try hard when it doesn&#8217;t change the outcome?</p></li><li><p><strong>Procrastination isn&#8217;t necessarily bad.</strong> In <a href="https://www.youtube.com/watch?v=fxbCHn6gE3U">Adam Grant&#8217;s TED Talk</a> about the Warby Parker founders, Grant notes that strategic procrastination can buy time for ideas to incubate. The key was that they were quick to start but slow to finish.</p><div id="youtube2-fxbCHn6gE3U" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;fxbCHn6gE3U&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/fxbCHn6gE3U?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div></li></ul><h1>Principle 3: Obsess over Quality</h1><blockquote><p>Obsess over the quality of what you produce, even if this means missing opportunities in the short term. Leverage the value of these results to gain more and more freedom in your efforts over the long term.</p></blockquote><h2>Cal&#8217;s Propositions</h2><ul><li><p><strong>Improve your taste.</strong> Invest time on the side to learn more about your craft (or the world in general). Similarly, build a community of like-minded individuals. A strong community helps you raise your standards.</p></li><li><p><strong>Reject perfectionism.</strong> Progress is what matters. Give yourself enough time, but don&#8217;t give yourself unlimited time.</p></li><li><p><strong>Bet on yourself and have skin in the game.</strong> Make your commitments public to maximize accountability. Be open to taking risks (both socially and financially).</p></li></ul><h2>Andrew&#8217;s Commentary</h2><ul><li><p><strong>Finishing projects is more important than starting them.</strong> Starting lots of things without finishing them accomplishes nothing.</p></li><li><p><strong>The world is becoming increasingly winner-take-all.</strong> Being incrementally better can yield disproportionately better results. As AI slop becomes more abundant, high-quality work becomes more valuable by comparison.</p></li><li><p><strong>&#8220;Hire people who give a shit.&#8221;</strong> There is something meaningful about taking pride in your work. Life is too short to wallow in mediocrity. My former boss wrote a <a href="https://alexw.substack.com/p/hire">blog post</a> around this very topic.</p></li></ul><h1>Parting Thoughts</h1><p>Most people get productivity wrong. &#8220;Hustling&#8221; or &#8220;moving fast&#8221; can create the appearance of progress without producing meaningful results. Therefore, it&#8217;s better to value <strong>output over input</strong>.</p><p>I don&#8217;t think that &#8220;slow and steady wins the race.&#8221; Rather, being <strong>hasty and reckless loses the race</strong>. Slowing down is not the same as wasting time, nor is it an endorsement of mediocrity. It happens in service of making better decisions.</p><p>Productivity is also a long-term game. Therefore, you must focus on <strong>process over outcome</strong>. Bias toward action, but be patient with results. Outsized results come from sticking with a sound process long enough for it to compound. Cal Newport himself frames it well:</p><blockquote><p>I work hard almost every day. But those days are rarely hard to get through. The distinction matters.</p></blockquote><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!I2p1!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc18f1276-c965-4d87-9aae-2ace1c66c225_3024x2500.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!I2p1!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc18f1276-c965-4d87-9aae-2ace1c66c225_3024x2500.jpeg 424w, https://substackcdn.com/image/fetch/$s_!I2p1!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc18f1276-c965-4d87-9aae-2ace1c66c225_3024x2500.jpeg 848w, https://substackcdn.com/image/fetch/$s_!I2p1!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc18f1276-c965-4d87-9aae-2ace1c66c225_3024x2500.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!I2p1!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc18f1276-c965-4d87-9aae-2ace1c66c225_3024x2500.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!I2p1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc18f1276-c965-4d87-9aae-2ace1c66c225_3024x2500.jpeg" width="3024" height="2500" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c18f1276-c965-4d87-9aae-2ace1c66c225_3024x2500.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:2500,&quot;width&quot;:3024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:955595,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.liu.blog/i/209564525?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba6f28a6-355a-4e38-9231-a4a08790091e_3024x4032.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!I2p1!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc18f1276-c965-4d87-9aae-2ace1c66c225_3024x2500.jpeg 424w, https://substackcdn.com/image/fetch/$s_!I2p1!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc18f1276-c965-4d87-9aae-2ace1c66c225_3024x2500.jpeg 848w, https://substackcdn.com/image/fetch/$s_!I2p1!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc18f1276-c965-4d87-9aae-2ace1c66c225_3024x2500.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!I2p1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc18f1276-c965-4d87-9aae-2ace1c66c225_3024x2500.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">My signed copy of Slow Productivity. &#8220;Andrew &#8212; Stay slow!&#8221;</figcaption></figure></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.liu.blog/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Andrew Liu's Blog! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[My first night in New York]]></title><description><![CDATA[I spent a month in NYC. This is why I went and what happened when I arrived.]]></description><link>https://www.liu.blog/p/i-saw-the-tv-glow</link><guid isPermaLink="false">https://www.liu.blog/p/i-saw-the-tv-glow</guid><dc:creator><![CDATA[Andrew Liu]]></dc:creator><pubDate>Sat, 08 Aug 2026 05:07:33 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Yw5n!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2834864b-103c-4a4e-9859-6b9df27e91b8_1400x700.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>In the summer of 2026, I spent 30 days in New York City. This blog post details why I took the trip and shares a vignette from the first day in the city.</p><h1>I Saw the TV Glow</h1><p>Over the first half of 2026, a disturbing thought started creeping into the back of my mind: I felt like I was waiting to die. Is that all there is to life? You live, you meander around, and then you die. It&#8217;s quite sad when you have nothing to look forward to and there&#8217;s nothing that makes you excited to jump out of bed. Being asleep feels like you&#8217;re dead, and being asleep feels quite cozy. Sometimes it felt like being buried alive.</p><p>This all reminded me of an indie film I saw back in 2024 called <em><a href="https://www.imdb.com/title/tt15574270/">I Saw the TV Glow</a></em>. Without spoiling too much, by the end of the movie you see the main character slowly suffer and deteriorate into a shell of his former self because he refuses to make an important life decision.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Yw5n!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2834864b-103c-4a4e-9859-6b9df27e91b8_1400x700.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Yw5n!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2834864b-103c-4a4e-9859-6b9df27e91b8_1400x700.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Yw5n!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2834864b-103c-4a4e-9859-6b9df27e91b8_1400x700.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Yw5n!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2834864b-103c-4a4e-9859-6b9df27e91b8_1400x700.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Yw5n!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2834864b-103c-4a4e-9859-6b9df27e91b8_1400x700.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Yw5n!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2834864b-103c-4a4e-9859-6b9df27e91b8_1400x700.jpeg" width="1400" height="700" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2834864b-103c-4a4e-9859-6b9df27e91b8_1400x700.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:700,&quot;width&quot;:1400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Yw5n!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2834864b-103c-4a4e-9859-6b9df27e91b8_1400x700.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Yw5n!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2834864b-103c-4a4e-9859-6b9df27e91b8_1400x700.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Yw5n!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2834864b-103c-4a4e-9859-6b9df27e91b8_1400x700.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Yw5n!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2834864b-103c-4a4e-9859-6b9df27e91b8_1400x700.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Seriously, you should see the movie. It&#8217;s good. But that&#8217;s beyond the point here.</figcaption></figure></div><p>Being rational about it, my reaction was that waiting to die was&#8230;really stupid. Why do I feel this way? How do I change it? I&#8217;m sufficiently intelligent, and I&#8217;m blessed with the freedom to do whatever I want in life. There&#8217;s literally nothing physically stopping me from being happy.</p><p>After some introspection and feedback, the leading culprit was my geography. DC is beautiful. DC is clean. My family is local. But is staying the right choice for me?</p><ul><li><p><strong>I can&#8217;t relate to most people in Washington, DC.</strong> Don&#8217;t get me wrong, there are many people here whom I absolutely adore, but they feel more like exceptions than the rule. I value people with high degrees of metacognition, agency, and intellectual curiosity&#8212;genuine people who seek to make the most out of their lives. You can find people like that in DC, but the density is low. It gets demoralizing after a while.</p></li><li><p><strong>It was hard to do fun stuff on a whim.</strong> DC is relatively walkable, but it&#8217;s still not enough. I compare it to a large suburb. The path of least resistance is to stay at home.</p></li><li><p><strong>The entropy is too low.</strong> During Covid, I moved back to the DMV to be closer to family. Family is important to me. But over time, I considered how it could be a cognitive blind spot. Is being local actually that important? How local is close enough? I could project out the rest of my life if I stayed in the area. I did not like the fact that it was easy to project.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!M98r!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d96ad8b-641e-40df-b854-82fe12e65a0d_990x304.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!M98r!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d96ad8b-641e-40df-b854-82fe12e65a0d_990x304.png 424w, https://substackcdn.com/image/fetch/$s_!M98r!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d96ad8b-641e-40df-b854-82fe12e65a0d_990x304.png 848w, https://substackcdn.com/image/fetch/$s_!M98r!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d96ad8b-641e-40df-b854-82fe12e65a0d_990x304.png 1272w, https://substackcdn.com/image/fetch/$s_!M98r!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d96ad8b-641e-40df-b854-82fe12e65a0d_990x304.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!M98r!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d96ad8b-641e-40df-b854-82fe12e65a0d_990x304.png" width="990" height="304" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2d96ad8b-641e-40df-b854-82fe12e65a0d_990x304.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:304,&quot;width&quot;:990,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:118838,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:&quot;&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.liu.blog/i/206743900?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d96ad8b-641e-40df-b854-82fe12e65a0d_990x304.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!M98r!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d96ad8b-641e-40df-b854-82fe12e65a0d_990x304.png 424w, https://substackcdn.com/image/fetch/$s_!M98r!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d96ad8b-641e-40df-b854-82fe12e65a0d_990x304.png 848w, https://substackcdn.com/image/fetch/$s_!M98r!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d96ad8b-641e-40df-b854-82fe12e65a0d_990x304.png 1272w, https://substackcdn.com/image/fetch/$s_!M98r!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d96ad8b-641e-40df-b854-82fe12e65a0d_990x304.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">From a chat with someone I trust. I get double meat and guac on my Chipotle burritos, so I&#8217;d argue that my standards are pretty high.</figcaption></figure></div><p>I had tried living in New York City <a href="https://www.liu.blog/p/2024">back in 2024</a>, but I ended the trip early after being deterred by the hygiene of the city. I was looking for a nice, peaceful place back then. Over the next two years, my needs evolved. I wanted a bit more excitement, adventure, and energy.</p><p>So I figured &#8220;fuck it, let&#8217;s do an experiment.&#8221; And I booked my trip to NYC.</p><h1>Arriving in the city</h1><p>On the afternoon of May 28, 2026, I stepped out of Penn Station in Manhattan and hauled my suitcase down 9th Avenue. It was relatively humid that day, so beads of sweat quickly started to form on my head as I made my way into Chelsea. As I was walking, my Airbnb host sent me a welcome text and asked to do a quick FaceTime call. I was already a bit wary of the guy, since he tried to finesse me out of $200 for &#8220;cleaning fees&#8221; immediately after I booked the place, but I stopped at a quiet spot to take his call. I happened to be in front of an elementary school, so random parents walking their kids would shoot me dirty looks as I stood there awkwardly gripping a suitcase in one hand and an iPhone in the other.</p><p>A few blocks later, I arrived at the building where I was supposed to stay. It was a brownstone on a quiet street in Chelsea. I was dying to get some air conditioning, so I wasted no time punching in the door code and getting a roof over my head. Past the front door, I was greeted by a short hallway. And at the end of it was a set of stairs.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!wuEK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F649888ac-4758-4103-a7a7-a63284643147_4284x5712.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!wuEK!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F649888ac-4758-4103-a7a7-a63284643147_4284x5712.jpeg 424w, https://substackcdn.com/image/fetch/$s_!wuEK!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F649888ac-4758-4103-a7a7-a63284643147_4284x5712.jpeg 848w, https://substackcdn.com/image/fetch/$s_!wuEK!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F649888ac-4758-4103-a7a7-a63284643147_4284x5712.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!wuEK!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F649888ac-4758-4103-a7a7-a63284643147_4284x5712.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!wuEK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F649888ac-4758-4103-a7a7-a63284643147_4284x5712.jpeg" width="1456" height="1941" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/649888ac-4758-4103-a7a7-a63284643147_4284x5712.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1941,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:6829333,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.liu.blog/i/206743900?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F649888ac-4758-4103-a7a7-a63284643147_4284x5712.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!wuEK!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F649888ac-4758-4103-a7a7-a63284643147_4284x5712.jpeg 424w, https://substackcdn.com/image/fetch/$s_!wuEK!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F649888ac-4758-4103-a7a7-a63284643147_4284x5712.jpeg 848w, https://substackcdn.com/image/fetch/$s_!wuEK!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F649888ac-4758-4103-a7a7-a63284643147_4284x5712.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!wuEK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F649888ac-4758-4103-a7a7-a63284643147_4284x5712.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">&#8220;Well fuck,&#8221; thought Andrew, as he realized that his journey had just begun.</figcaption></figure></div><p>Lugging a suitcase up five flights of stairs was worse than the entire walk from Penn Station. The hall was narrow and the stairs formed a spiral, so it was hard not to bump the suitcase into the wall after every other step. After climbing a flight of stairs, you realize how little work you actually accomplished.</p><p>Eventually, I made it to my Airbnb. It was a charming studio that I definitely overpaid for. The place was a shithole by Arlington standards, but by NYC standards it was an opulent palace. Despite being objectively small, it felt quite spacious. I suspect it was a mix of the high ceilings and efficient interior design. The place smelled like curry, and the air conditioning kept buzzing. But I didn&#8217;t care. I needed to process my thoughts.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!h9yF!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65c0abf2-49e3-4a70-9097-19ae4266dfcd_1024x768.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!h9yF!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65c0abf2-49e3-4a70-9097-19ae4266dfcd_1024x768.webp 424w, https://substackcdn.com/image/fetch/$s_!h9yF!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65c0abf2-49e3-4a70-9097-19ae4266dfcd_1024x768.webp 848w, https://substackcdn.com/image/fetch/$s_!h9yF!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65c0abf2-49e3-4a70-9097-19ae4266dfcd_1024x768.webp 1272w, https://substackcdn.com/image/fetch/$s_!h9yF!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65c0abf2-49e3-4a70-9097-19ae4266dfcd_1024x768.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!h9yF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65c0abf2-49e3-4a70-9097-19ae4266dfcd_1024x768.webp" width="1024" height="768" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/65c0abf2-49e3-4a70-9097-19ae4266dfcd_1024x768.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:768,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:55032,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.liu.blog/i/206743900?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65c0abf2-49e3-4a70-9097-19ae4266dfcd_1024x768.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!h9yF!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65c0abf2-49e3-4a70-9097-19ae4266dfcd_1024x768.webp 424w, https://substackcdn.com/image/fetch/$s_!h9yF!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65c0abf2-49e3-4a70-9097-19ae4266dfcd_1024x768.webp 848w, https://substackcdn.com/image/fetch/$s_!h9yF!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65c0abf2-49e3-4a70-9097-19ae4266dfcd_1024x768.webp 1272w, https://substackcdn.com/image/fetch/$s_!h9yF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65c0abf2-49e3-4a70-9097-19ae4266dfcd_1024x768.webp 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">My Airbnb</figcaption></figure></div><p>As I sat at the desk and stared into my laptop to &#8220;process my thoughts,&#8221; I began feeling antsy. I&#8217;m just looking at a screen and burning rent money. Think Andrew, think. What should I be doing? <em>Simple: reach out to friends and stock the apartment. I gotta get groceries. I gotta cook and eat.</em> (Spoiler alert: Andrew ate out every day in NYC.)</p><p>I trekked my way down to the corner bodega. It was literally next door. Amazing. The walk outside was shorter than the walk downstairs. The entire store consisted of two dusty aisles crammed together, and in the corner lay a tiny cat curled up on the floor licking its paw. I passed my overpriced ramen and toilet paper to the cashier and pressed &#8220;no tip&#8221; after tapping my card. They&#8217;re price-gouging me <strong>and</strong> expecting a tip? Maybe we need a communist grocery store after all. (Or I should have gone to Target.)</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!q839!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe9589ac-b417-4d25-9d20-de176fedbb85_4284x3375.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!q839!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe9589ac-b417-4d25-9d20-de176fedbb85_4284x3375.jpeg 424w, https://substackcdn.com/image/fetch/$s_!q839!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe9589ac-b417-4d25-9d20-de176fedbb85_4284x3375.jpeg 848w, https://substackcdn.com/image/fetch/$s_!q839!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe9589ac-b417-4d25-9d20-de176fedbb85_4284x3375.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!q839!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe9589ac-b417-4d25-9d20-de176fedbb85_4284x3375.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!q839!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe9589ac-b417-4d25-9d20-de176fedbb85_4284x3375.jpeg" width="4284" height="3375" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/be9589ac-b417-4d25-9d20-de176fedbb85_4284x3375.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:3375,&quot;width&quot;:4284,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3216327,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.liu.blog/i/206743900?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0b8c7a9-e218-445e-beda-39bff7dbd45f_4284x5712.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!q839!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe9589ac-b417-4d25-9d20-de176fedbb85_4284x3375.jpeg 424w, https://substackcdn.com/image/fetch/$s_!q839!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe9589ac-b417-4d25-9d20-de176fedbb85_4284x3375.jpeg 848w, https://substackcdn.com/image/fetch/$s_!q839!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe9589ac-b417-4d25-9d20-de176fedbb85_4284x3375.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!q839!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe9589ac-b417-4d25-9d20-de176fedbb85_4284x3375.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">The bodega cat next door. MEOW MEOW MEOW</figcaption></figure></div><p>By then, only two hours had passed since I had stepped out of Penn Station, and the sun was still bright outside. It was also too early for dinner. So I figured the best thing to do at this point was to walk outside aimlessly.</p><p>Normally Andrew is a man on a mission, but today Andrew was a moth drawn to the flame. I didn&#8217;t have a destination in mind, so I just walked wherever felt natural. Sometimes that meant following the traffic, and sometimes it meant avoiding the crowds. Four avenues later, I found myself by Madison Square Park. Staring down 23rd Street, you could see the sun begin to set. <em>Look at all these normies taking sunset photos</em>, I thought, as I snapped a photo of the sunset.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!es1S!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5dd97c9-f1e6-4e0e-94da-51f595bd4ac9_1456x1941.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!es1S!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5dd97c9-f1e6-4e0e-94da-51f595bd4ac9_1456x1941.webp 424w, https://substackcdn.com/image/fetch/$s_!es1S!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5dd97c9-f1e6-4e0e-94da-51f595bd4ac9_1456x1941.webp 848w, https://substackcdn.com/image/fetch/$s_!es1S!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5dd97c9-f1e6-4e0e-94da-51f595bd4ac9_1456x1941.webp 1272w, https://substackcdn.com/image/fetch/$s_!es1S!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5dd97c9-f1e6-4e0e-94da-51f595bd4ac9_1456x1941.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!es1S!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5dd97c9-f1e6-4e0e-94da-51f595bd4ac9_1456x1941.webp" width="1456" height="1941" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d5dd97c9-f1e6-4e0e-94da-51f595bd4ac9_1456x1941.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1941,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:497880,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.liu.blog/i/206743900?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5dd97c9-f1e6-4e0e-94da-51f595bd4ac9_1456x1941.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!es1S!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5dd97c9-f1e6-4e0e-94da-51f595bd4ac9_1456x1941.webp 424w, https://substackcdn.com/image/fetch/$s_!es1S!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5dd97c9-f1e6-4e0e-94da-51f595bd4ac9_1456x1941.webp 848w, https://substackcdn.com/image/fetch/$s_!es1S!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5dd97c9-f1e6-4e0e-94da-51f595bd4ac9_1456x1941.webp 1272w, https://substackcdn.com/image/fetch/$s_!es1S!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5dd97c9-f1e6-4e0e-94da-51f595bd4ac9_1456x1941.webp 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Not pictured: a normie taking sunset photos</figcaption></figure></div><p>Madison Square Park felt like a large adult playground: the interior resembled a well-shaded nature preserve, but you could see the city buildings looming beyond the edges of the park. Energy pervaded the park grounds. People packed the walkways as they paced across the park, yet there were just as many people sitting on the benches and just chilling there. A Shake Shack kiosk stood at the edge of the park and reminded me that I was getting hungry.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ClNG!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c5009b9-0268-4362-8579-b02abcefdaee_1456x1092.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ClNG!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c5009b9-0268-4362-8579-b02abcefdaee_1456x1092.webp 424w, https://substackcdn.com/image/fetch/$s_!ClNG!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c5009b9-0268-4362-8579-b02abcefdaee_1456x1092.webp 848w, https://substackcdn.com/image/fetch/$s_!ClNG!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c5009b9-0268-4362-8579-b02abcefdaee_1456x1092.webp 1272w, https://substackcdn.com/image/fetch/$s_!ClNG!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c5009b9-0268-4362-8579-b02abcefdaee_1456x1092.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ClNG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c5009b9-0268-4362-8579-b02abcefdaee_1456x1092.webp" width="1456" height="1092" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4c5009b9-0268-4362-8579-b02abcefdaee_1456x1092.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1092,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:507480,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.liu.blog/i/206743900?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c5009b9-0268-4362-8579-b02abcefdaee_1456x1092.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ClNG!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c5009b9-0268-4362-8579-b02abcefdaee_1456x1092.webp 424w, https://substackcdn.com/image/fetch/$s_!ClNG!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c5009b9-0268-4362-8579-b02abcefdaee_1456x1092.webp 848w, https://substackcdn.com/image/fetch/$s_!ClNG!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c5009b9-0268-4362-8579-b02abcefdaee_1456x1092.webp 1272w, https://substackcdn.com/image/fetch/$s_!ClNG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c5009b9-0268-4362-8579-b02abcefdaee_1456x1092.webp 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Mmm burgers YUMMY</figcaption></figure></div><p>I ordered a burger and looked for a place to sit. The tables were all occupied. I wandered over to a secluded park bench and began munching on my burger. <em>This is what being a hobo must feel like</em>, I thought. And there were a lot of attractive, well-dressed hobos eating and sitting on park benches that day. As I scarfed down the remainder of my burger, a gust of wind blew my receipt into the nearby bushes. I considered leaving it for a split second before picking it up. I can&#8217;t litter on my first day here; there&#8217;s enough shit lining these city streets already. I tossed my trash and resumed my walk.</p><p>An extra hour of walking led me fifteen streets north to Bryant Park. An ambient energy radiated from that direction. At this time, it was dark outside, and the buildings were lighting up. An empty stage lit up the center of the park. There must have been a concert there a few hours ago, as volunteers were packing up the chairs. Despite the concert being over, the park was filled with people lounging on the greenery. It put me at ease. Seeing other people enjoying the moment reminded me that I didn&#8217;t need to rush.</p><p>So I stuck around in Bryant Park for a bit and soaked up the energy.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!aY_U!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa51e0fe9-d355-4ff3-b170-012b955c043a_1456x1941.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!aY_U!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa51e0fe9-d355-4ff3-b170-012b955c043a_1456x1941.webp 424w, https://substackcdn.com/image/fetch/$s_!aY_U!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa51e0fe9-d355-4ff3-b170-012b955c043a_1456x1941.webp 848w, https://substackcdn.com/image/fetch/$s_!aY_U!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa51e0fe9-d355-4ff3-b170-012b955c043a_1456x1941.webp 1272w, https://substackcdn.com/image/fetch/$s_!aY_U!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa51e0fe9-d355-4ff3-b170-012b955c043a_1456x1941.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!aY_U!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa51e0fe9-d355-4ff3-b170-012b955c043a_1456x1941.webp" width="1456" height="1941" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a51e0fe9-d355-4ff3-b170-012b955c043a_1456x1941.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1941,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:608344,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.liu.blog/i/206743900?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa51e0fe9-d355-4ff3-b170-012b955c043a_1456x1941.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!aY_U!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa51e0fe9-d355-4ff3-b170-012b955c043a_1456x1941.webp 424w, https://substackcdn.com/image/fetch/$s_!aY_U!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa51e0fe9-d355-4ff3-b170-012b955c043a_1456x1941.webp 848w, https://substackcdn.com/image/fetch/$s_!aY_U!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa51e0fe9-d355-4ff3-b170-012b955c043a_1456x1941.webp 1272w, https://substackcdn.com/image/fetch/$s_!aY_U!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa51e0fe9-d355-4ff3-b170-012b955c043a_1456x1941.webp 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">This isn&#8217;t iPhone lighting. The park was very bright despite it being the evening.</figcaption></figure></div><p>My last stop of the night was Times Square. It was the only planned part of the walk; you gotta make the pilgrimage on day 1. I expected a crowded tourist trap, and that&#8217;s exactly what I got. I pushed my way through a few crowds, watched some breakdancers perform, and pushed my way out of the cesspool. It was a quick foray, but I needed to check that box.</p><p>At this point it was legitimately getting late. I tried to avoid people as I made my way back to the Airbnb, but even the off-streets were littered with people. Like jeez, don&#8217;t you New Yorkers have work tomorrow? Or I suppose people in this city have lives outside of work. I had never felt this much energy outside on a Thursday night. It was like the city was a living, breathing creature. And somehow, I felt a little bit more alive myself.</p><p>Eventually it got quiet as I reached the block of my Airbnb. While walking back, I reflected and tried to make sense of the day. This place is a bit weird, but I&#8217;m <em>choosing</em> to be in the middle of this weirdness. I paused before the steps of the brownstone, still lost in thought. Is this what living feels like? Only then was my trance broken as two rats scurried past me into a big bag of trash. Welcome to New York.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.liu.blog/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Andrew Liu's Blog! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!rKHl!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9f9f5b5-2b33-4de8-bf4c-9d9fbe44a951_1268x1228.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!rKHl!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9f9f5b5-2b33-4de8-bf4c-9d9fbe44a951_1268x1228.webp 424w, https://substackcdn.com/image/fetch/$s_!rKHl!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9f9f5b5-2b33-4de8-bf4c-9d9fbe44a951_1268x1228.webp 848w, https://substackcdn.com/image/fetch/$s_!rKHl!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9f9f5b5-2b33-4de8-bf4c-9d9fbe44a951_1268x1228.webp 1272w, https://substackcdn.com/image/fetch/$s_!rKHl!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9f9f5b5-2b33-4de8-bf4c-9d9fbe44a951_1268x1228.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!rKHl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9f9f5b5-2b33-4de8-bf4c-9d9fbe44a951_1268x1228.webp" width="1268" height="1228" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c9f9f5b5-2b33-4de8-bf4c-9d9fbe44a951_1268x1228.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1228,&quot;width&quot;:1268,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:178902,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.liu.blog/i/206743900?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9f9f5b5-2b33-4de8-bf4c-9d9fbe44a951_1268x1228.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!rKHl!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9f9f5b5-2b33-4de8-bf4c-9d9fbe44a951_1268x1228.webp 424w, https://substackcdn.com/image/fetch/$s_!rKHl!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9f9f5b5-2b33-4de8-bf4c-9d9fbe44a951_1268x1228.webp 848w, https://substackcdn.com/image/fetch/$s_!rKHl!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9f9f5b5-2b33-4de8-bf4c-9d9fbe44a951_1268x1228.webp 1272w, https://substackcdn.com/image/fetch/$s_!rKHl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9f9f5b5-2b33-4de8-bf4c-9d9fbe44a951_1268x1228.webp 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Basically my route that day</figcaption></figure></div><p><em>(Note for those who read to the end: I originally planned to write multiple vignettes from the month, but the blog post is long enough as-is. I&#8217;ll probably share more stories across multiple blog posts.)</em></p>]]></content:encoded></item><item><title><![CDATA[How not to be a bad party guest (or host)]]></title><description><![CDATA[Learnings from hosting a handful of 50+ person gatherings.]]></description><link>https://www.liu.blog/p/party-rules</link><guid isPermaLink="false">https://www.liu.blog/p/party-rules</guid><dc:creator><![CDATA[Andrew Liu]]></dc:creator><pubDate>Mon, 01 Jun 2026 05:47:01 GMT</pubDate><enclosure url="https://images.unsplash.com/photo-1513151233558-d860c5398176?q=80&amp;w=2340&amp;auto=format&amp;fit=crop&amp;ixlib=rb-4.1.0&amp;ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I like hosting parties. Most of mine end up with more than 50 guests, which has given me plenty of opportunities to notice what makes guests (and parties) good or bad.</p><p>Most party etiquette is never stated out loud. People are expected to just &#8220;get it.&#8221; This post is my attempt to spell out the unspoken rules.</p><h1>How to be a good party guest</h1><p>Key observation: <strong>Good guests consider the experience of other people in the room, not just their own.</strong></p><h2>Support the room</h2><ul><li><p>Adopt a &#8220;host mentality,&#8221; even though you&#8217;re a guest. <em>Your goal is to make people feel comfortable and welcome.</em> That&#8217;ll make it easier to mingle with people, because you know that you&#8217;re helping add value.</p></li><li><p>Talk to people you don&#8217;t know. Not everybody knows each other. You may be helping someone who&#8217;s shy or lonely break out of their shell.</p><ul><li><p>It&#8217;s natural to assume that everybody else already knows each other. That couldn&#8217;t be further from the truth. Usually most people know a tiny subset of the other people in the room.</p></li><li><p>You&#8217;re already a second-degree connection with everybody in the room. You both know the host. &#8220;How do you know the host?&#8221; is a really easy icebreaker.</p></li></ul></li><li><p>Try to show up reasonably on time. On the other hand, don&#8217;t overstay your welcome.</p><ul><li><p>Hosts appreciate those who show up early, as early birds can help bootstrap a crowd.</p></li><li><p>Staying too late isn&#8217;t ideal (especially if you&#8217;re not helping out). You basically turn into a liability, and the host eventually has to shepherd you out.</p></li><li><p>If you arrive early, help set up. If you stay late, help clean up.</p></li></ul></li><li><p>Under no circumstances should you make anyone feel uncomfortable. If someone isn&#8217;t interested in talking to you, then move on and talk to someone else.</p></li></ul><h2>Bringing a +1</h2><ul><li><p>If you know the host, try to bring a +1 that the host doesn&#8217;t know. <em>Bringing a great +1 is the greatest favor you can do for the party.</em></p></li><li><p>Unexpected +1&#8217;s can put an unwelcome burden on a party, so be careful. The host bears the downside consequences of having bad guests. They&#8217;re trusting your judgment when you bring a +1.</p><ul><li><p>Bring someone you know and trust. Don&#8217;t bring an acquaintance who &#8220;ought to get outside more and make some friends.&#8221;</p></li></ul></li><li><p>If you don&#8217;t know the host, don&#8217;t bring a +1 (unless it&#8217;s your partner).</p></li><li><p>Don&#8217;t bring a +2. Or at least ask first.</p></li></ul><h2>Pay respects to the host</h2><ul><li><p>Find the host in person and at least thank them for hosting. This is especially important if you don&#8217;t know the host well, as it&#8217;s your chance to introduce yourself.</p></li><li><p>The day after the party, thank the host over text.</p></li><li><p>If you can&#8217;t make the party, let the host know and thank them for the invite. Never flake. Showing up is half the battle. And if you must flake, be sure to update your RSVP accordingly.</p></li></ul><h2>Final thoughts</h2><ul><li><p>If you&#8217;ve never hosted before, this is your message to host something! Being a host is the best way to learn how to be a great guest.</p></li><li><p>If you&#8217;re self conscious about whether you&#8217;re a good guest, you&#8217;re probably a good guest.</p></li><li><p>All of the points above especially apply if you don&#8217;t know the host. Most social etiquette is made up of unspoken rules, so this is one big test of social awareness.</p></li></ul><h1>How to be a good party host</h1><p>Key observation: <strong>Parties are a repeated game. Good guests attract more good guests. Bad guests drive away good guests. Over time, those effects compound.</strong></p><h2>Be a super-connector</h2><ul><li><p>Do your rounds. Make sure people feel comfortable. The party is for your guests. Today you are providing value.</p></li><li><p>Make it easier for new people to talk to each other.</p><ul><li><p>Actively introduce people who don&#8217;t know each other, especially if you think they&#8217;d get along.</p></li><li><p>Consider making everyone wear name tags or doing introductions/ice breakers.</p></li></ul></li><li><p>Follow up after the party. Thank your guests.</p></li></ul><h2>Curate the crowd</h2><ul><li><p>Don&#8217;t do open invites.</p></li><li><p>Invite people you don&#8217;t know well but would like to know better. They don&#8217;t have to be your &#8220;friends.&#8221;</p></li><li><p>Don&#8217;t feel obligated to invite people, even if&#8230;</p><ul><li><p>&#8230;they were previous guests.</p></li><li><p>&#8230;they&#8217;re friends with your friends. </p></li><li><p>&#8230;they explicitly ask you to be invited.</p></li><li><p>&#8230;they didn&#8217;t do anything wrong explicitly, but your gut tells you not to.</p></li></ul></li><li><p>Ask people you trust to bring +1&#8217;s. (See the +1 etiquette from the previous section.)</p></li><li><p>Try to maintain a balanced gender ratio. Skewed ratios can impact perceived safety/comfort, which will also affect future attendance.</p></li></ul><h2>Trust in your guests</h2><ul><li><p>Trust in your guests. They&#8217;re adults and will figure out how to have a good time. So treat them like adults and don&#8217;t feel pressured to micromanage.</p></li><li><p>Delegate work. Multiple pairs of hands makes things exponentially easier.</p><ul><li><p>The very act of delegating &#8220;work&#8221; during a party becomes a way to get people to ease in and can be a good excuse for people to mingle.</p></li></ul></li><li><p>Be sure to take care of yourself. Eat and hydrate properly. If you need to take an &#8220;introvert break,&#8221; then do so! You are doing a service for all the people in the room, so you need to make sure your needs are also being met.</p></li></ul><h2>Final thoughts</h2><ul><li><p>The day after hosting a party, be sure to rest and recover. Pay attention to your emotions and take time to reflect.</p></li><li><p>Remember that you are doing a service for all the people in the room. Give yourself some credit.</p></li><li><p>It&#8217;s not the venue or events that matter; it&#8217;s the people. The people set the vibe.</p></li></ul><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.liu.blog/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Andrew Liu's Blog! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://images.unsplash.com/photo-1513151233558-d860c5398176?q=80&amp;w=2340&amp;auto=format&amp;fit=crop&amp;ixlib=rb-4.1.0&amp;ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://images.unsplash.com/photo-1513151233558-d860c5398176?q=80&amp;w=2340&amp;auto=format&amp;fit=crop&amp;ixlib=rb-4.1.0&amp;ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D 424w, https://images.unsplash.com/photo-1513151233558-d860c5398176?q=80&amp;w=2340&amp;auto=format&amp;fit=crop&amp;ixlib=rb-4.1.0&amp;ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D 848w, https://images.unsplash.com/photo-1513151233558-d860c5398176?q=80&amp;w=2340&amp;auto=format&amp;fit=crop&amp;ixlib=rb-4.1.0&amp;ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D 1272w, https://images.unsplash.com/photo-1513151233558-d860c5398176?q=80&amp;w=2340&amp;auto=format&amp;fit=crop&amp;ixlib=rb-4.1.0&amp;ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D 1456w" sizes="100vw"><img src="https://images.unsplash.com/photo-1513151233558-d860c5398176?q=80&amp;w=2340&amp;auto=format&amp;fit=crop&amp;ixlib=rb-4.1.0&amp;ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D" width="2340" height="1560" data-attrs="{&quot;src&quot;:&quot;https://images.unsplash.com/photo-1513151233558-d860c5398176?q=80&amp;w=2340&amp;auto=format&amp;fit=crop&amp;ixlib=rb-4.1.0&amp;ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1560,&quot;width&quot;:2340,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://images.unsplash.com/photo-1513151233558-d860c5398176?q=80&amp;w=2340&amp;auto=format&amp;fit=crop&amp;ixlib=rb-4.1.0&amp;ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D 424w, https://images.unsplash.com/photo-1513151233558-d860c5398176?q=80&amp;w=2340&amp;auto=format&amp;fit=crop&amp;ixlib=rb-4.1.0&amp;ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D 848w, https://images.unsplash.com/photo-1513151233558-d860c5398176?q=80&amp;w=2340&amp;auto=format&amp;fit=crop&amp;ixlib=rb-4.1.0&amp;ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D 1272w, https://images.unsplash.com/photo-1513151233558-d860c5398176?q=80&amp;w=2340&amp;auto=format&amp;fit=crop&amp;ixlib=rb-4.1.0&amp;ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div>]]></content:encoded></item><item><title><![CDATA[Don't live on autopilot]]></title><description><![CDATA[A framework for what deserves your attention.]]></description><link>https://www.liu.blog/p/autopilot</link><guid isPermaLink="false">https://www.liu.blog/p/autopilot</guid><dc:creator><![CDATA[Andrew Liu]]></dc:creator><pubDate>Fri, 01 May 2026 03:35:08 GMT</pubDate><enclosure url="https://images.unsplash.com/photo-1624933796245-4b07a2ae0cbf?fm=jpg&amp;q=60&amp;w=3000&amp;auto=format&amp;fit=crop&amp;ixlib=rb-4.1.0&amp;ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>The first week I started at Scale AI, I had a chat with Alex the CEO about whether Scale was already a &#8220;successful startup.&#8221; He predicted that if the company were to operate on autopilot without him around, it would fall into a downward spiral before ultimately imploding.</p><p>I kept revisiting this thought experiment because it applies to life in general. Your life is a startup; it can crash and burn. So I repurposed it into a recipe for how to live.</p><p>All you need to do is ask yourself a similar question: <strong>in my life, what would fail if left on autopilot?</strong></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://images.unsplash.com/photo-1624933796245-4b07a2ae0cbf?fm=jpg&amp;q=60&amp;w=3000&amp;auto=format&amp;fit=crop&amp;ixlib=rb-4.1.0&amp;ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://images.unsplash.com/photo-1624933796245-4b07a2ae0cbf?fm=jpg&amp;q=60&amp;w=3000&amp;auto=format&amp;fit=crop&amp;ixlib=rb-4.1.0&amp;ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D 424w, https://images.unsplash.com/photo-1624933796245-4b07a2ae0cbf?fm=jpg&amp;q=60&amp;w=3000&amp;auto=format&amp;fit=crop&amp;ixlib=rb-4.1.0&amp;ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D 848w, https://images.unsplash.com/photo-1624933796245-4b07a2ae0cbf?fm=jpg&amp;q=60&amp;w=3000&amp;auto=format&amp;fit=crop&amp;ixlib=rb-4.1.0&amp;ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D 1272w, https://images.unsplash.com/photo-1624933796245-4b07a2ae0cbf?fm=jpg&amp;q=60&amp;w=3000&amp;auto=format&amp;fit=crop&amp;ixlib=rb-4.1.0&amp;ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D 1456w" sizes="100vw"><img src="https://images.unsplash.com/photo-1624933796245-4b07a2ae0cbf?fm=jpg&amp;q=60&amp;w=3000&amp;auto=format&amp;fit=crop&amp;ixlib=rb-4.1.0&amp;ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D" width="728" height="485.3333333333333" data-attrs="{&quot;src&quot;:&quot;https://images.unsplash.com/photo-1624933796245-4b07a2ae0cbf?fm=jpg&amp;q=60&amp;w=3000&amp;auto=format&amp;fit=crop&amp;ixlib=rb-4.1.0&amp;ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:2000,&quot;width&quot;:3000,&quot;resizeWidth&quot;:728,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;brown wooden canoe on brown soil&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-normal" alt="brown wooden canoe on brown soil" title="brown wooden canoe on brown soil" srcset="https://images.unsplash.com/photo-1624933796245-4b07a2ae0cbf?fm=jpg&amp;q=60&amp;w=3000&amp;auto=format&amp;fit=crop&amp;ixlib=rb-4.1.0&amp;ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D 424w, https://images.unsplash.com/photo-1624933796245-4b07a2ae0cbf?fm=jpg&amp;q=60&amp;w=3000&amp;auto=format&amp;fit=crop&amp;ixlib=rb-4.1.0&amp;ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D 848w, https://images.unsplash.com/photo-1624933796245-4b07a2ae0cbf?fm=jpg&amp;q=60&amp;w=3000&amp;auto=format&amp;fit=crop&amp;ixlib=rb-4.1.0&amp;ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D 1272w, https://images.unsplash.com/photo-1624933796245-4b07a2ae0cbf?fm=jpg&amp;q=60&amp;w=3000&amp;auto=format&amp;fit=crop&amp;ixlib=rb-4.1.0&amp;ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Don&#8217;t be like this plane.</figcaption></figure></div><h1>Boiling the frog (you are the frog)</h1><p>Major failure modes in life come from boiling the frog: <em>you don&#8217;t notice the problem until it&#8217;s too late</em>. Imagine what your life looks like 10 years out. Some areas will be fine, but others area will suffer. If you were to change nothing, where does your life go?</p><p>Some things in life feel like a big deal right now but aren&#8217;t actually important. Conversely, the real priorities can be a big deal later while barely being noticeable in the moment. But you should focus on them now.</p><p>Why do important life domains rarely feel like a big deal in the present? <strong>Because they either compound, or they expire.</strong></p><h2>Compounding Domains</h2><ul><li><p><strong>Finances:</strong> Money can snowball in either direction. Crippling debt can keep you trapped for the rest of your life, while smart financial habits allow you to retire early. You don&#8217;t want to be the recently-laid-off 60-year-old with a mortgage and no savings.</p></li><li><p><strong>Physical health:</strong> Muscle growth peaks at a relatively early age and slows down. The same happens with agility. Your physical fitness influences your longevity, and improving your fitness becomes harder when you&#8217;re old or unhealthy. The best way to be healthy when you&#8217;re old is to be healthy when you&#8217;re young.</p></li><li><p><strong>Friendship:</strong> Quality friendships are key to wellbeing. But friendships atrophy and drift apart because people are too &#8220;busy,&#8221; and people complain that it&#8217;s hard to make friends as adults.</p></li></ul><h2>Expiring Domains</h2><ul><li><p><strong>Dating and marriage:</strong> Dating gets harder as you age. On average, people become less attractive and more set in their ways. Fertility goes down, and it becomes harder to meet people. Yet who you partner with is arguably the most important decision of your life.</p></li><li><p><strong>Travel and experiences:</strong> You may not have the ability to travel later in life. This may be due to physical health, energy levels, or from other life obligations. So do it while you can. Money is fungible; experiences less so.</p></li><li><p><strong>Geographic optionality:</strong> Avoid putting down roots until you&#8217;re confident you want to stay somewhere for the long term. Homeownership is often treated like a checkbox rather than a choice. Far too often, people never move (or stay in their hometown), which closes off many opportunities.</p></li></ul><p>None of these <em>feel</em> urgent in the moment, but they are. By the time it&#8217;s obvious, the ship has already sailed. That&#8217;s why it&#8217;s important to be vigilant of these failure modes while they don&#8217;t feel like a big deal.</p><h1>What should you be doing right now?</h1><ol><li><p>Identify parts of your life that are operating on autopilot. Which ones are projected to fail? <em>The parts of life that fail on autopilot are where your attention is most needed.</em></p></li><li><p>Select the highest priority part of your life that&#8217;s on track to fail. You can only really fix one or two things at a time. When prioritizing, ask: What will expire soon? What will compound the most? What will be hard to reverse?</p></li><li><p>Focus your attention on the most important &#8220;autopilot failure mode,&#8221; and intervene until you&#8217;re happy with its trajectory. </p></li><li><p>Systematize that part of your life (i.e. build good habits) so it won&#8217;t regress the moment you divert your attention elsewhere.</p></li><li><p>Repeat the process.</p></li></ol><p>Another way to describe this is to &#8220;find the ticking time bomb and defuse it.&#8221; Most lives don&#8217;t fail in the conventional sense. They just pass by until options quietly disappear. So your job is to notice what won&#8217;t fix itself and act before it&#8217;s too late.</p>]]></content:encoded></item><item><title><![CDATA[A simple financial setup guide for clueless high income earners]]></title><description><![CDATA[Do you have a bunch of cash sitting in a high-yield savings account? And you have no idea what to do with it? Well this blog post is for you!]]></description><link>https://www.liu.blog/p/voo-and-chill</link><guid isPermaLink="false">https://www.liu.blog/p/voo-and-chill</guid><dc:creator><![CDATA[Andrew Liu]]></dc:creator><pubDate>Sun, 08 Mar 2026 04:28:43 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!fZlW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66bb94a8-a51c-4cf0-9719-7429a585717f_2192x2192.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>This blog post was inspired by a couple of friends and coworkers figuring out how to manage their money.</p><p>It&#8217;s not for day traders or people trying to gamble. It&#8217;s not for people struggling to live below their means. There are plenty of resources for you, but this is not the correct place to look. <strong>You&#8217;ll need a fair chunk of cash to implement the contents of this blog post. If this ain&#8217;t you, stop reading!</strong></p><p>Here&#8217;s the situation I see way too frequently:</p><ul><li><p>You&#8217;re a (relatively) high earner who lives well below your means.</p></li><li><p>You&#8217;re probably sitting on a pile of cash in a high-yield savings account, and you probably have a concentrated position on a single company&#8217;s stock (i.e. your employer).</p></li><li><p>While you&#8217;re not in financial trouble, the lack of a strategy makes you nervous about the future. <strong>You want a simple, idiot-proof, low-maintenance strategy that just works.</strong></p></li></ul><p>Fortunately, it&#8217;s not that hard.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.liu.blog/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Andrew Liu's Blog! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h1>The strategy</h1><ol><li><p>Calculate and save up an emergency fund (3-6 months of expenses). Keep that in a high-yield savings account.</p></li><li><p>Pay off any remaining debts.</p></li><li><p>Figure out if you&#8217;ll need a lump sum of cash in the future (e.g. to buy a house).</p></li><li><p>Max out your tax-advantaged retirement accounts (e.g. 401k, HSA, mega-backdoor Roth).</p></li><li><p>Chuck any surplus cash into a taxable investment account.</p></li><li><p>Go touch grass.</p></li></ol><p>Hopefully the first three steps should be simple enough. Usually it&#8217;s the investment part that trips people up. (&#8220;Where do I put my money? What do I buy?&#8221;)</p><h1>What do I do? Where do I put my money?</h1><p>Prioritize contributing to retirement accounts because of the tax benefits. Understand how much money you need for spending and how much you have to spare for investing. Then it&#8217;s time to click some buttons.</p><h2>401(k)</h2><p>The first place you&#8217;ll want to put invest is into a 401(k). Max it out. You&#8217;ll probably get employer matching. It&#8217;s free money.</p><p>You should aim to max out your 401(k) every year. That&#8217;s around $24k of contributions per year at the time of writing. Any contributions to the 401(k) must come out of your paycheck, and you typically configure the contribution amount/percentage via your brokerage.</p><p>How you spread out your contributions is up to you. What matters is that you max out the account by end of year. Personally I try to max things out as quickly as possible: at the start of the year, I hold on to some cash and then contribute 100% of my paycheck until the retirement accounts are maxed out.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!EtRL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98188fb4-c36c-46c8-b6e4-82ec381de5f7_2692x1612.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!EtRL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98188fb4-c36c-46c8-b6e4-82ec381de5f7_2692x1612.png 424w, https://substackcdn.com/image/fetch/$s_!EtRL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98188fb4-c36c-46c8-b6e4-82ec381de5f7_2692x1612.png 848w, https://substackcdn.com/image/fetch/$s_!EtRL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98188fb4-c36c-46c8-b6e4-82ec381de5f7_2692x1612.png 1272w, https://substackcdn.com/image/fetch/$s_!EtRL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98188fb4-c36c-46c8-b6e4-82ec381de5f7_2692x1612.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!EtRL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98188fb4-c36c-46c8-b6e4-82ec381de5f7_2692x1612.png" width="1456" height="872" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/98188fb4-c36c-46c8-b6e4-82ec381de5f7_2692x1612.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:872,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:380762,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.liu.blog/i/188669898?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98188fb4-c36c-46c8-b6e4-82ec381de5f7_2692x1612.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!EtRL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98188fb4-c36c-46c8-b6e4-82ec381de5f7_2692x1612.png 424w, https://substackcdn.com/image/fetch/$s_!EtRL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98188fb4-c36c-46c8-b6e4-82ec381de5f7_2692x1612.png 848w, https://substackcdn.com/image/fetch/$s_!EtRL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98188fb4-c36c-46c8-b6e4-82ec381de5f7_2692x1612.png 1272w, https://substackcdn.com/image/fetch/$s_!EtRL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98188fb4-c36c-46c8-b6e4-82ec381de5f7_2692x1612.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">My retirement account contributions in Vanguard. I configured it to take my entire paycheck and put it into a pre-tax 401(k) and mega backdoor Roth IRA. It will automatically stop once I hit the IRS limit. I set it and forget it once per year.</figcaption></figure></div><p>&#8220;Should I contribute to a pre-tax 401(k) or Roth?&#8221; I&#8217;ll be honest, it really doesn&#8217;t matter. Flip a coin. Or if you&#8217;re too lazy to flip a coin, just pick Roth. The difference in the long run is minuscule and situationally dependent. The math needed to figure out what&#8217;s optimal for you isn&#8217;t worth the time, in my opinion.</p><h2>Mega Backdoor Roth IRA</h2><p>Maxed out your 401(k)? Great job! If your employers supports the mega backdoor Roth IRA and you <em>still</em> have money from your paycheck <em>that you don&#8217;t plan to use</em>, you can continue to contribute parts of your paycheck up to the IRS limits.</p><p>I&#8217;ve written about the <a href="https://www.liu.blog/p/megabackdoor">mega backdoor Roth IRA</a> previously, so I won&#8217;t harp on it too much here. Just make sure it&#8217;s actually offered by your employer, and make sure you have the money to spare. As of the time of writing, it&#8217;s an additional $35k of contributions after maxing out your 401(k).</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;41bb252f-6f47-4233-92e6-63bb8aeca7b2&quot;,&quot;caption&quot;:&quot;If you're lucky enough to work at a company with a generous 401(k) policy, you might be able to take advantage of a wonderful investment mechanism called the mega backdoor Roth IRA. Each year, you can contribute a large chunk of money that grows tax free until the end of time. Nice!&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;lg&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;The Mega Backdoor Roth&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:9212428,&quot;name&quot;:&quot;Andrew Liu&quot;,&quot;bio&quot;:&quot;Chrome Security at Google | &#127929; &#129355; &#129313; Piano, BJJ, and Improv | &#128272; Open sourced Google Authenticator | &#129302; Started ML Infra team at Scale AI | &#128205; SF -> DC&quot;,&quot;photo_url&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/5c353352-4762-4d4b-8b9d-e6d3ce745326_340x340.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2020-11-23T02:50:31.000Z&quot;,&quot;cover_image&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/70dcdaa7-5bdb-4d63-a57f-68d3a030f1cb_2000x1335.jpeg&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://www.liu.blog/p/megabackdoor&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:157216054,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:0,&quot;comment_count&quot;:0,&quot;publication_id&quot;:48246,&quot;publication_name&quot;:&quot;Andrew Liu's Blog&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!KqfF!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4006949f-a59a-47ff-a70f-41e9859b3ac9_1280x1280.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p>Unlike the 401(k), contributing to a mega backdoor Roth isn&#8217;t for everyone. There&#8217;s no employer matching, and the limit you can contribute is quite high. <strong>Do not max out a mega backdoor Roth IRA if you expect you&#8217;ll need that $35k within a few years.</strong></p><h2>HSA</h2><p>It&#8217;s a bit less obvious, but a Health Savings Account (HSA) is a tax-advantaged investment account. I recommend young and healthy people opt for an HSA if possible. You can contribute money from your paycheck into your HSA. Your employer probably contributes money into your HSA as well.</p><p>With your HSA money, you can spend it on medical expenses, but you can also invest the money. If possible, max out your annual HSA contributions, and set it to auto-invest. Even if you don&#8217;t expect to get sick, it&#8217;s a great avenue for future medical expenses. And transferring an HSA to your children doesn&#8217;t get taxed, so you can really stick it to Uncle Sam.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!fZlW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66bb94a8-a51c-4cf0-9719-7429a585717f_2192x2192.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!fZlW!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66bb94a8-a51c-4cf0-9719-7429a585717f_2192x2192.png 424w, https://substackcdn.com/image/fetch/$s_!fZlW!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66bb94a8-a51c-4cf0-9719-7429a585717f_2192x2192.png 848w, https://substackcdn.com/image/fetch/$s_!fZlW!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66bb94a8-a51c-4cf0-9719-7429a585717f_2192x2192.png 1272w, https://substackcdn.com/image/fetch/$s_!fZlW!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66bb94a8-a51c-4cf0-9719-7429a585717f_2192x2192.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!fZlW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66bb94a8-a51c-4cf0-9719-7429a585717f_2192x2192.png" width="1456" height="1456" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/66bb94a8-a51c-4cf0-9719-7429a585717f_2192x2192.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1456,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:438320,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.liu.blog/i/188669898?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66bb94a8-a51c-4cf0-9719-7429a585717f_2192x2192.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!fZlW!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66bb94a8-a51c-4cf0-9719-7429a585717f_2192x2192.png 424w, https://substackcdn.com/image/fetch/$s_!fZlW!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66bb94a8-a51c-4cf0-9719-7429a585717f_2192x2192.png 848w, https://substackcdn.com/image/fetch/$s_!fZlW!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66bb94a8-a51c-4cf0-9719-7429a585717f_2192x2192.png 1272w, https://substackcdn.com/image/fetch/$s_!fZlW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66bb94a8-a51c-4cf0-9719-7429a585717f_2192x2192.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">My HSA investment portfolio within HealthEquity. It&#8217;s set to hold a (mandatory) $500 cash reserve and auto-invest everything else into VIIIX (an S&amp;P 500 proxy).</figcaption></figure></div><p>A side note on HSAs: if you have medical expenses, prefer to pay with &#8220;normal&#8221; money rather than withdrawing from your HSA. You should be careful about taking money out of a tax-advantaged investment account. You won&#8217;t get an opportunity to put it back in.</p><h2>Taxable accounts</h2><p>You&#8217;ve maxed out your 401(k), the mega backdoor Roth, and your HSA. And you <em>still</em> want to invest more? You absolute stud! Maybe you can just Venmo me the extra money instead.</p><p>On a more serious note, you don&#8217;t want to hold surplus funds as cash for too long. Open up a brokerage account. Any will do. I recommend a large brokerage with a shit UI. The shittier the UI, the less tempted you are to fuck around. Brokerages with nice UIs encourage you to constantly look at your money, which is a recipe for doing something stupid and ruining years of compounding.</p><p>Vanguard, <a href="https://fidelity.app.link/e/4GKxQUjek1b">Fidelity</a>, and <a href="https://www.schwab.com/client-referral?refrid=REFERHPCQHPN4">Schwab</a> all work great. If you already have an employer account with a broker, it&#8217;s easy to open up a personal account with them too. (For example, Google employees might prefer a Schwab account, since that&#8217;s where their stock goes.) <a href="https://ibkr.com/referral/andrew9229">Interactive Brokers</a> also works, but its UI is too shit, even for me. Avoid <a href="https://join.robinhood.com/andrewl1411">Robinhood</a>; its UI is too nice. <a href="https://m1.finance/2x8piiLHuUkm">M1 Finance</a> is fine (because of their auto-rebalancing features), but be careful since their UI is nice. Most importantly, use my referral codes so I can afford guac on my Chipotle burritos.</p><h1>Investing: what do I actually buy?</h1><p>Investing is important. If used correctly, money compounds. When it comes time to retire, you want to live off your compounding nest egg. Compounding takes time, so try to invest as much as you can as early as you can.</p><p>The two greatest mistakes in investing is (a) taking too much risk and (b) not taking enough risk. Understand your personal risk tolerance. The <a href="https://www.bogleheads.org/wiki/Getting_started">Bogleheads</a> and <a href="https://www.reddit.com/r/personalfinance/wiki/commontopics/">Reddit /r/personalfinance</a> wikis are great starting points for further reading.</p><p>Here&#8217;s what you do:</p><ol><li><p>Pick a low-cost, diversified index fund (or funds).</p></li><li><p>Put your investment cash into said fund(s).</p></li><li><p>Periodically deposit more funds into the portfolio and rebalance as necessary.</p></li></ol><h2>What&#8217;s in Andrew&#8217;s portfolio?</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Kl5G!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73839ada-7dbb-40fd-8d80-e15927f9c827_1296x370.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Kl5G!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73839ada-7dbb-40fd-8d80-e15927f9c827_1296x370.png 424w, https://substackcdn.com/image/fetch/$s_!Kl5G!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73839ada-7dbb-40fd-8d80-e15927f9c827_1296x370.png 848w, https://substackcdn.com/image/fetch/$s_!Kl5G!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73839ada-7dbb-40fd-8d80-e15927f9c827_1296x370.png 1272w, https://substackcdn.com/image/fetch/$s_!Kl5G!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73839ada-7dbb-40fd-8d80-e15927f9c827_1296x370.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Kl5G!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73839ada-7dbb-40fd-8d80-e15927f9c827_1296x370.png" width="1296" height="370" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/73839ada-7dbb-40fd-8d80-e15927f9c827_1296x370.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:370,&quot;width&quot;:1296,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:137902,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.liu.blog/i/188669898?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73839ada-7dbb-40fd-8d80-e15927f9c827_1296x370.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Kl5G!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73839ada-7dbb-40fd-8d80-e15927f9c827_1296x370.png 424w, https://substackcdn.com/image/fetch/$s_!Kl5G!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73839ada-7dbb-40fd-8d80-e15927f9c827_1296x370.png 848w, https://substackcdn.com/image/fetch/$s_!Kl5G!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73839ada-7dbb-40fd-8d80-e15927f9c827_1296x370.png 1272w, https://substackcdn.com/image/fetch/$s_!Kl5G!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73839ada-7dbb-40fd-8d80-e15927f9c827_1296x370.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">What I tell you doesn&#8217;t matter unless I&#8217;ve actually walked the walk.</figcaption></figure></div><p>In <em>Skin in the Game</em>, Nassim Taleb made a great quote about investing advice. <a href="https://www.goodreads.com/quotes/9136608-don-t-tell-me-what-you-think-tell-me-what-you">&#8220;Don&#8217;t tell me what you think, tell me what you have in your portfolio.&#8221;</a> Here&#8217;s what I have in my portfolio:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!fQ-9!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae376462-6737-4284-83e7-5b1e2939e081_2906x1714.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!fQ-9!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae376462-6737-4284-83e7-5b1e2939e081_2906x1714.png 424w, https://substackcdn.com/image/fetch/$s_!fQ-9!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae376462-6737-4284-83e7-5b1e2939e081_2906x1714.png 848w, https://substackcdn.com/image/fetch/$s_!fQ-9!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae376462-6737-4284-83e7-5b1e2939e081_2906x1714.png 1272w, https://substackcdn.com/image/fetch/$s_!fQ-9!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae376462-6737-4284-83e7-5b1e2939e081_2906x1714.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!fQ-9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae376462-6737-4284-83e7-5b1e2939e081_2906x1714.png" width="1456" height="859" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ae376462-6737-4284-83e7-5b1e2939e081_2906x1714.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:859,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:317675,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.liu.blog/i/188669898?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae376462-6737-4284-83e7-5b1e2939e081_2906x1714.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!fQ-9!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae376462-6737-4284-83e7-5b1e2939e081_2906x1714.png 424w, https://substackcdn.com/image/fetch/$s_!fQ-9!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae376462-6737-4284-83e7-5b1e2939e081_2906x1714.png 848w, https://substackcdn.com/image/fetch/$s_!fQ-9!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae376462-6737-4284-83e7-5b1e2939e081_2906x1714.png 1272w, https://substackcdn.com/image/fetch/$s_!fQ-9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae376462-6737-4284-83e7-5b1e2939e081_2906x1714.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">A screenshot of my taxable portfolio within Interactive Brokers. Pretty simple! (Note: I&#8217;m holding treasuries because it&#8217;s the money I&#8217;ll use to pay taxes this year.)</figcaption></figure></div><p>I hold <a href="https://www.ishares.com/us/products/239726/ishares-core-sp-500-etf">IVV</a>/<a href="https://www.ishares.com/us/products/239623/ishares-msci-eafe-etf">EFA</a>/<a href="https://imgpfunds.com/im-dbi-managed-futures-strategy-etf/">DMBF</a> with a 50/50/50 allocation. Three positions. That&#8217;s it. All equally weighted. My taxable portfolio is 1.5x leveraged (hence it&#8217;s not a 33/33/33 allocation). For every two dollars I have, I borrow one dollar on margin. <strong>Do not take leverage if you don&#8217;t know what you&#8217;re doing. Taking leverage can fuck you and kill decades of progress. You can get by just fine without leverage.</strong></p><p>For my tax-advantaged portfolios, it&#8217;s a lot simpler. I just go 100% in the S&amp;P 500. No leverage. It&#8217;s all auto-invested. My two investment accounts are my 401(k) and my HSA. In my 401(k), the portfolio is completely in <a href="https://investor.vanguard.com/mutual-funds/profile/pe/overview/M219">Vanguard&#8217;s S&amp;P 500 proxy</a>. In my HSA, the portfolio is completely <a href="https://investor.vanguard.com/investment-products/mutual-funds/profile/viiix">VIIIX</a>, which is some other S&amp;P 500 proxy. The exact fund doesn&#8217;t matter: VOO, IVV, or some other S&amp;P 500 proxy will all have 99.9% correlation. These were not deliberate strategic decisions on my part; I just picked whatever S&amp;P 500 proxy was available.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!sO8q!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fbf642b-1e0f-42fc-9616-49e5e0bc622a_2704x1870.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!sO8q!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fbf642b-1e0f-42fc-9616-49e5e0bc622a_2704x1870.png 424w, https://substackcdn.com/image/fetch/$s_!sO8q!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fbf642b-1e0f-42fc-9616-49e5e0bc622a_2704x1870.png 848w, https://substackcdn.com/image/fetch/$s_!sO8q!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fbf642b-1e0f-42fc-9616-49e5e0bc622a_2704x1870.png 1272w, https://substackcdn.com/image/fetch/$s_!sO8q!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fbf642b-1e0f-42fc-9616-49e5e0bc622a_2704x1870.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!sO8q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fbf642b-1e0f-42fc-9616-49e5e0bc622a_2704x1870.png" width="1456" height="1007" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2fbf642b-1e0f-42fc-9616-49e5e0bc622a_2704x1870.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1007,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:284405,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.liu.blog/i/188669898?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fbf642b-1e0f-42fc-9616-49e5e0bc622a_2704x1870.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!sO8q!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fbf642b-1e0f-42fc-9616-49e5e0bc622a_2704x1870.png 424w, https://substackcdn.com/image/fetch/$s_!sO8q!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fbf642b-1e0f-42fc-9616-49e5e0bc622a_2704x1870.png 848w, https://substackcdn.com/image/fetch/$s_!sO8q!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fbf642b-1e0f-42fc-9616-49e5e0bc622a_2704x1870.png 1272w, https://substackcdn.com/image/fetch/$s_!sO8q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fbf642b-1e0f-42fc-9616-49e5e0bc622a_2704x1870.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">My 401(k) in Vanguard. I just chuck it all into the S&amp;P 500.</figcaption></figure></div><p>Why do I do what I do?</p><ul><li><p>I have a stake in both domestic index funds and international index funds. Having exposure to both domestic and international equities obviates the need for bonds.</p></li><li><p>I have a stake in a managed futures strategy as a hedge in situations where equities perform poorly.</p></li><li><p>I leverage 1.5x such that I magnify returns without suffering from volatility drag.</p></li><li><p>For my retirement accounts, my position is much simpler because retirement accounts can&#8217;t take leverage. (Also I have a financial advisor managing my taxable account, and I&#8217;m too lazy to do anything fancier for my retirement accounts.)</p></li></ul><p><strong>Don&#8217;t blindly copy me. I&#8217;ll give you suggestions in the next section. </strong>If none of this made sense to you, don&#8217;t stress out.</p><h2>Recommended example portfolios</h2><p>In my examples, I&#8217;ll use <a href="https://investor.vanguard.com/investment-products/etfs/profile/voo">VOO</a> to represent the S&amp;P 500 (i.e. domestic) index and <a href="https://investor.vanguard.com/investment-products/etfs/profile/vxus">VXUS</a> to represent the international index. There are many funds that track the same index, so when you buy for yourself, you don&#8217;t need those exact ticker symbols.</p><p>I present to you the <strong>1-fund portfolio</strong> and the <strong>2-fund portfolio</strong>:</p><ul><li><p>The 1-fund portfolio: 100% in VOO</p><ul><li><p>So simple! You literally can&#8217;t go wrong with this. The S&amp;P 500 is already super diverse.</p></li><li><p>In your retirement accounts, you can opt to go for a target retirement date fund as well. It doesn&#8217;t really matter.</p></li></ul></li><li><p>The 2-fund portfolio: 50/50 in VOO and VXUS; equally weighted</p><ul><li><p>This is good if you want international exposure.</p></li><li><p>This is also good if you want to scratch that itch with having more than 1 position in your portfolio.</p></li><li><p>Why have a 50/50 allocation instead of 60/40 or something else? Because 50/50 is simple. People will debate all day about whether to hold more domestic or international equities. Don&#8217;t waste your time, and instead go for a &#8220;good enough&#8221; portfolio.</p></li></ul></li></ul><p>Did you expect something more complicated? I sure hope not. These are set-it-and-forget-it portfolios that will make you a very happy camper over a long time horizon.</p><p>It&#8217;s hard to go wrong since you&#8217;re sufficiently diversified. Diversification is the only free lunch in investing. Do not take leverage. If you find this blog post informative, you&#8217;re not ready to handle leverage. Your goal is the match the index, not beat it. The best strategy to match the index is to buy the index.</p><h1>Maintenance</h1><p>Investments into retirement accounts should be fully automated. Contributions will come straight out of your paycheck. You may need to adjust contributions once a year, since IRS limits change and health insurance policies change.</p><p>For personal investment accounts, try not to mess with it too frequently. (Every month or quarter is perfectly fine.) Ideally you rebalance around the same time you get a cash infusion (e.g. every other paycheck). When rebalancing, buy positions in your portfolio that are underweight; try to avoid selling overweight positions. Most brokerages have some form of auto-investing that will track a target portfolio allocation. So ideally, you&#8217;ll have to do very little manual decision-making in general.</p><p><strong>If a part of your compensation is in company stock, sell the stock as soon as it vests and reinvest the proceeds.</strong> Some companies offer auto-sell programs so you only need to handle reinvesting the cash. I know of many people who are hesitant to sell company stock. It&#8217;s a rabbit-hole of a debate, and I won&#8217;t go to deep into it. If you had the cash, would you buy back the stock? If not, then you should diversify. Furthermore, you organically incur concentration risk with your employer, even without the additional concentration risk from holding too much of a single stock.</p><p>At this point, everything should be automated and diversified. Great! Pat yourself on the back. Now we proceed to the most important step: <strong>STOP THINKING ABOUT INVESTING and go touch grass.</strong> Money is a means to an end. You&#8217;ve set yourself up for success. Now go live a good life. </p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.liu.blog/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Andrew Liu's Blog! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Vibe coding has made me lazy, which is great!]]></title><description><![CDATA[I wrote ClickFix.fyi, deployed OpenClaw, and organized my BJJ notes without doing much thinking.]]></description><link>https://www.liu.blog/p/vibe-coding</link><guid isPermaLink="false">https://www.liu.blog/p/vibe-coding</guid><dc:creator><![CDATA[Andrew Liu]]></dc:creator><pubDate>Mon, 02 Mar 2026 01:23:14 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!XMqz!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26caf02a-48e9-4613-a9b9-04c239aab170_2368x1568.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I&#8217;m a software engineer. In a sense, my job is to be as lazy as possible. Since AI is all the hotness now, there&#8217;s been an influx of various tools. I tried a few of them for different use cases:</p><ol><li><p>I used Antigravity to set up a website with interactive demos.</p></li><li><p>I used OpenClaw to manage my self-hosted services.</p></li><li><p>I used Claude Code to organize my BJJ notes.</p></li></ol><p>Each of these were done within a day. I did minimal typing, and it was mostly free. Here are my experiences.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.liu.blog/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Andrew Liu's Blog! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h1>ClickFix.fyi - Antigravity</h1><p>At work, I&#8217;m working on mitigation of the ClickFix scam. While there are various news articles about ClickFix, there&#8217;s no centralized informational site about it actually is. So I vibe coded an informational site in a day or so.</p><p>It&#8217;s called <a href="https://www.clickfix.fyi/">ClickFix.fyi</a>. Curious about what ClickFix is? Well now you can visit the site!</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!DWr5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F457d76f2-8786-4e3b-aaa9-f14609298bf0_1868x2374.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!DWr5!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F457d76f2-8786-4e3b-aaa9-f14609298bf0_1868x2374.png 424w, https://substackcdn.com/image/fetch/$s_!DWr5!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F457d76f2-8786-4e3b-aaa9-f14609298bf0_1868x2374.png 848w, https://substackcdn.com/image/fetch/$s_!DWr5!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F457d76f2-8786-4e3b-aaa9-f14609298bf0_1868x2374.png 1272w, https://substackcdn.com/image/fetch/$s_!DWr5!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F457d76f2-8786-4e3b-aaa9-f14609298bf0_1868x2374.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!DWr5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F457d76f2-8786-4e3b-aaa9-f14609298bf0_1868x2374.png" width="1456" height="1850" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/457d76f2-8786-4e3b-aaa9-f14609298bf0_1868x2374.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1850,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:387615,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.liu.blog/i/187905214?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F457d76f2-8786-4e3b-aaa9-f14609298bf0_1868x2374.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!DWr5!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F457d76f2-8786-4e3b-aaa9-f14609298bf0_1868x2374.png 424w, https://substackcdn.com/image/fetch/$s_!DWr5!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F457d76f2-8786-4e3b-aaa9-f14609298bf0_1868x2374.png 848w, https://substackcdn.com/image/fetch/$s_!DWr5!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F457d76f2-8786-4e3b-aaa9-f14609298bf0_1868x2374.png 1272w, https://substackcdn.com/image/fetch/$s_!DWr5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F457d76f2-8786-4e3b-aaa9-f14609298bf0_1868x2374.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">An interactive demo included in the ClickFix.fyi site.</figcaption></figure></div><p>By nature of it being work-relevant, I used <a href="https://antigravity.google/">Google Antigravity</a>. It&#8217;s great. You just tell it what to do. I wanted a static site, so it made a site using <a href="https://astro.build/">Astro</a>. I don&#8217;t know Astro, but it doesn&#8217;t matter. I just told it what to do; I didn&#8217;t even review the code. It was awesome. It can even generate images and interactive demos.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!XMqz!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26caf02a-48e9-4613-a9b9-04c239aab170_2368x1568.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!XMqz!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26caf02a-48e9-4613-a9b9-04c239aab170_2368x1568.png 424w, https://substackcdn.com/image/fetch/$s_!XMqz!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26caf02a-48e9-4613-a9b9-04c239aab170_2368x1568.png 848w, https://substackcdn.com/image/fetch/$s_!XMqz!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26caf02a-48e9-4613-a9b9-04c239aab170_2368x1568.png 1272w, https://substackcdn.com/image/fetch/$s_!XMqz!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26caf02a-48e9-4613-a9b9-04c239aab170_2368x1568.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!XMqz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26caf02a-48e9-4613-a9b9-04c239aab170_2368x1568.png" width="1456" height="964" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/26caf02a-48e9-4613-a9b9-04c239aab170_2368x1568.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:964,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:589133,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.liu.blog/i/187905214?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26caf02a-48e9-4613-a9b9-04c239aab170_2368x1568.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!XMqz!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26caf02a-48e9-4613-a9b9-04c239aab170_2368x1568.png 424w, https://substackcdn.com/image/fetch/$s_!XMqz!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26caf02a-48e9-4613-a9b9-04c239aab170_2368x1568.png 848w, https://substackcdn.com/image/fetch/$s_!XMqz!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26caf02a-48e9-4613-a9b9-04c239aab170_2368x1568.png 1272w, https://substackcdn.com/image/fetch/$s_!XMqz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26caf02a-48e9-4613-a9b9-04c239aab170_2368x1568.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">A screenshot of my Antigravity instance used to code ClickFix.fyi. Here I&#8217;m generating the favicon.</figcaption></figure></div><p>At the time, I was on the free tier. I used Claude models first, but the quota burned out almost immediately. Not surprising, I guess. But the Gemini quota was surprisingly generous for a free tier. You can work through an entire project without having to worry about running out of quota. (Though the caveat is that once you run out of quota, you&#8217;re kind of fucked because you have to wait a week. On paid plans it&#8217;s a lot better.)</p><h1>VM Management - OpenClaw</h1><p>Coding is great and all, but what happens when you give AI real power? <a href="https://openclaw.ai/">OpenClaw</a> has been all the hotness recently, so I wanted to test it out.</p><p>The first step? Get a free VM. Oracle Cloud has a free tier that&#8217;s quite generous. You can get a 4-core machine with 24GB RAM on their free tier. The only caveat is that it&#8217;s an ARM machine. But honestly that doesn&#8217;t matter. I like self-hosting random shit by myself, so having a free beefy machine is great.</p><p>With OpenClaw, the real limiting factor is the model itself. It doesn&#8217;t require much compute otherwise. So if you self-host a model, you&#8217;d better have a lot of GPU compute. It&#8217;s better to pay $20 for a <s>Claude</s> ChatGPT subscription. Then you can run OpenClaw on a toaster. (You shouldn&#8217;t be buying a Mac Mini unless you have a specific reason. The correct way to go is to have the Gateway on a VM and <a href="https://docs.openclaw.ai/nodes">add your local Mac as a node</a>.) I set a Telegram bot for my OpenClaw instance, and then it was easy to chat on the go. And all of this was (mostly) free.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!SmbP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf2324f3-b45c-419a-8dd7-65d0ff4f5253_1666x1924.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!SmbP!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf2324f3-b45c-419a-8dd7-65d0ff4f5253_1666x1924.png 424w, https://substackcdn.com/image/fetch/$s_!SmbP!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf2324f3-b45c-419a-8dd7-65d0ff4f5253_1666x1924.png 848w, https://substackcdn.com/image/fetch/$s_!SmbP!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf2324f3-b45c-419a-8dd7-65d0ff4f5253_1666x1924.png 1272w, https://substackcdn.com/image/fetch/$s_!SmbP!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf2324f3-b45c-419a-8dd7-65d0ff4f5253_1666x1924.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!SmbP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf2324f3-b45c-419a-8dd7-65d0ff4f5253_1666x1924.png" width="1456" height="1681" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/bf2324f3-b45c-419a-8dd7-65d0ff4f5253_1666x1924.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1681,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1162232,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.liu.blog/i/187905214?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf2324f3-b45c-419a-8dd7-65d0ff4f5253_1666x1924.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!SmbP!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf2324f3-b45c-419a-8dd7-65d0ff4f5253_1666x1924.png 424w, https://substackcdn.com/image/fetch/$s_!SmbP!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf2324f3-b45c-419a-8dd7-65d0ff4f5253_1666x1924.png 848w, https://substackcdn.com/image/fetch/$s_!SmbP!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf2324f3-b45c-419a-8dd7-65d0ff4f5253_1666x1924.png 1272w, https://substackcdn.com/image/fetch/$s_!SmbP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf2324f3-b45c-419a-8dd7-65d0ff4f5253_1666x1924.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Some of my chats with my OpenClaw bot. Here I give it GitHub access and it sets up a new repository with minimal prompting.</figcaption></figure></div><p>And goddamn, it was quite nerve wracking. While setting up, I asked the bot about OpenClaw configs. I was expecting answers and links to documentation. Instead it directly modified its own configs. Eventually I gave it access to my GitHub so it could back up its own data. And it did all of that with minimal prompting from me. So far it&#8217;s been doing a great job, even though it&#8217;s scary, since OpenClaw can basically pwn my GitHub if it goes rogue. While the blast radius is still limited, I lack the proper failsafes, yet I&#8217;m also eager to expand its access so it can do more.</p><h1>Obsidian BJJ Notes - Claude Code</h1><p>As a Google shill, I&#8217;ve been using Gemini CLI at work. But I paid for Claude, and I wanted to try out Claude Code and get value out of my subscription. But Antigravity was good enough for my coding projects; I didn&#8217;t have any other project out of the blue to work on. Then it dawned on me that I didn&#8217;t need to use Claude Code for code.</p><p>I have an <a href="https://obsidian.md/">Obsidian</a> vault for all of my notes. It&#8217;s all markdown files. The vault contains my journal and also random notes. Of those notes, I have a folder for BJJ. Historically I&#8217;ve kept raw notes around every class. Those raw notes have never really been synthesized into anything deeper than that. For those who do BJJ, you&#8217;ll know that positions in BJJ resemble a flowchart: you transition into different positions depending on what happens. Obsidian is great for back-linking: a page can link to another page quite easily; it matches the graph-like nature of BJJ.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!W47G!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0af1c98-019d-4c8f-91f1-7cfec0e4c818_3126x2230.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!W47G!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0af1c98-019d-4c8f-91f1-7cfec0e4c818_3126x2230.png 424w, https://substackcdn.com/image/fetch/$s_!W47G!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0af1c98-019d-4c8f-91f1-7cfec0e4c818_3126x2230.png 848w, https://substackcdn.com/image/fetch/$s_!W47G!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0af1c98-019d-4c8f-91f1-7cfec0e4c818_3126x2230.png 1272w, https://substackcdn.com/image/fetch/$s_!W47G!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0af1c98-019d-4c8f-91f1-7cfec0e4c818_3126x2230.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!W47G!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0af1c98-019d-4c8f-91f1-7cfec0e4c818_3126x2230.png" width="728" height="519.5" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d0af1c98-019d-4c8f-91f1-7cfec0e4c818_3126x2230.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:1039,&quot;width&quot;:1456,&quot;resizeWidth&quot;:728,&quot;bytes&quot;:717605,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.liu.blog/i/187905214?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0af1c98-019d-4c8f-91f1-7cfec0e4c818_3126x2230.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!W47G!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0af1c98-019d-4c8f-91f1-7cfec0e4c818_3126x2230.png 424w, https://substackcdn.com/image/fetch/$s_!W47G!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0af1c98-019d-4c8f-91f1-7cfec0e4c818_3126x2230.png 848w, https://substackcdn.com/image/fetch/$s_!W47G!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0af1c98-019d-4c8f-91f1-7cfec0e4c818_3126x2230.png 1272w, https://substackcdn.com/image/fetch/$s_!W47G!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0af1c98-019d-4c8f-91f1-7cfec0e4c818_3126x2230.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">A graph view of my BJJ notes in Obsidian. Notice how related positions are no interconnected.</figcaption></figure></div><p>It&#8217;s quite nice. Claude asked how I&#8217;d like the notes organized, and we had a relatively nice back and forth. Then it took my raw notes and put everything into its own page. At this point I feel like Claude is the real BJJ expert here. All I had to do is go to sleep and let the AI cook.</p><p>I will note that volume (not complexity) might be the bottleneck for AI. I ran out of Claude quota (on a paid plan) and had to wait five hours before resuming the job. The organization of the positions isn&#8217;t inherently complex; it&#8217;s just a lot of work, and it&#8217;s a lot of notes.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!71fN!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac6ab529-d701-4b7d-9ee8-081eb88b7eb8_1912x1916.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!71fN!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac6ab529-d701-4b7d-9ee8-081eb88b7eb8_1912x1916.png 424w, https://substackcdn.com/image/fetch/$s_!71fN!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac6ab529-d701-4b7d-9ee8-081eb88b7eb8_1912x1916.png 848w, https://substackcdn.com/image/fetch/$s_!71fN!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac6ab529-d701-4b7d-9ee8-081eb88b7eb8_1912x1916.png 1272w, https://substackcdn.com/image/fetch/$s_!71fN!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac6ab529-d701-4b7d-9ee8-081eb88b7eb8_1912x1916.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!71fN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac6ab529-d701-4b7d-9ee8-081eb88b7eb8_1912x1916.png" width="1456" height="1459" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ac6ab529-d701-4b7d-9ee8-081eb88b7eb8_1912x1916.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1459,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:423606,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.liu.blog/i/187905214?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac6ab529-d701-4b7d-9ee8-081eb88b7eb8_1912x1916.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!71fN!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac6ab529-d701-4b7d-9ee8-081eb88b7eb8_1912x1916.png 424w, https://substackcdn.com/image/fetch/$s_!71fN!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac6ab529-d701-4b7d-9ee8-081eb88b7eb8_1912x1916.png 848w, https://substackcdn.com/image/fetch/$s_!71fN!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac6ab529-d701-4b7d-9ee8-081eb88b7eb8_1912x1916.png 1272w, https://substackcdn.com/image/fetch/$s_!71fN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac6ab529-d701-4b7d-9ee8-081eb88b7eb8_1912x1916.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">The Claude Code session I used to reorganize my BJJ notes. Here it&#8217;s presenting a template outline for the notes.</figcaption></figure></div><h1>Conclusion</h1><p>So what did I learn from all of this?</p><ul><li><p>AI is pretty good at this point. As you get more comfortable, you should give it more agentic/destructive permissions. <strong>Don&#8217;t just use it for coding.</strong></p></li><li><p>Using AI doesn&#8217;t necessarily save you time. <strong>If things aren&#8217;t sufficiently clear, it will fuck up.</strong></p><ul><li><p>This is especially bad if you have the &#8220;stare-and-wait&#8221; workflow, where you sit there like a ding-dong and as the AI does something. That doesn&#8217;t save you any time; if you do that, you&#8217;re better off manually coding. The important part is that you give the AI the info it needs and then you leave to do something else.</p></li></ul></li><li><p><strong>Laziness is a virtue, so long as you outsource the work that doesn&#8217;t require your judgment.</strong> For a lot of this work, I could have done it myself (albeit slower). So it&#8217;s perfect for AI. But for other things that I didn&#8217;t know (e.g. Astro), I didn&#8217;t learn shit, and I wouldn&#8217;t be able to maintain the website without the help of AI.</p></li><li><p>Quota (for both free and paid tiers) is scarce but pretty reasonable, in my opinion. The value you get from paying is far greater than the monetary cost. Lots of people have subscription fatigue and aversion to paying for software, but that&#8217;s a mistake. <strong>You should index on the value you get from your expenses.</strong></p></li><li><p>Regarding security, I need to have a better plan. It&#8217;s not a bad idea to give AI more intrusive permissions. Being a chicken gets you nowhere. But there is the real threat model of an AI going rogue or making an honest mistake and fucking everything up. For example, in my case, the biggest risk is that Claude nukes all of my GitHub repositories. Not the end of the world, but it&#8217;s still pretty bad. Realistically, I don&#8217;t want to revoke those permissions, but I do need a reliable failsafe. In my situation, I suppose it should be some form of killswitch to disable the VM hosting my OpenClaw gateway.</p></li></ul><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.liu.blog/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Andrew Liu's Blog! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Five years ago, I came to my senses and quit alcohol]]></title><description><![CDATA[I realized I was killing myself and becoming an NPC, which made me reconsider some life choices.]]></description><link>https://www.liu.blog/p/alcohol</link><guid isPermaLink="false">https://www.liu.blog/p/alcohol</guid><dc:creator><![CDATA[Andrew Liu]]></dc:creator><pubDate>Fri, 23 Jan 2026 19:17:59 GMT</pubDate><enclosure url="https://images.unsplash.com/photo-1525268323446-0505b6fe7778?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwxNXx8YWxjb2hvbHxlbnwwfHx8fDE3NjkxMjQxNDh8MA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>The summer I turned 21, I got drunk for the first time.</p><p>I was in San Francisco for the summer interning at Dropbox. Dropbox has quite the drinking culture: every other weekend, the entire intern cohort would squeeze into a tiny apartment, stock the place up with beers, and play drinking games all night long. The world would get fuzzier as I became progressively more inebriated, but I enjoyed the process since I was having so much fun.</p><p>It was an abrupt introduction to alcohol. I recall my last day in SF that summer: the morning of my flight, I stumbled my way to the airport hungover and half lucid. I have no clue how I got back home in one piece.</p><div class="captioned-image-container"><figure><div class="image-link image2" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!UKsX!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b31384c-041f-4f13-b1ed-1e571e05cf75_135x127.png 424w, https://substackcdn.com/image/fetch/$s_!UKsX!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b31384c-041f-4f13-b1ed-1e571e05cf75_135x127.png 848w, https://substackcdn.com/image/fetch/$s_!UKsX!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b31384c-041f-4f13-b1ed-1e571e05cf75_135x127.png 1272w, https://substackcdn.com/image/fetch/$s_!UKsX!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b31384c-041f-4f13-b1ed-1e571e05cf75_135x127.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!UKsX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b31384c-041f-4f13-b1ed-1e571e05cf75_135x127.png" width="209" height="196.61481481481482" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7b31384c-041f-4f13-b1ed-1e571e05cf75_135x127.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:127,&quot;width&quot;:135,&quot;resizeWidth&quot;:209,&quot;bytes&quot;:11843,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.liu.blog/i/176465986?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b31384c-041f-4f13-b1ed-1e571e05cf75_135x127.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!UKsX!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b31384c-041f-4f13-b1ed-1e571e05cf75_135x127.png 424w, https://substackcdn.com/image/fetch/$s_!UKsX!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b31384c-041f-4f13-b1ed-1e571e05cf75_135x127.png 848w, https://substackcdn.com/image/fetch/$s_!UKsX!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b31384c-041f-4f13-b1ed-1e571e05cf75_135x127.png 1272w, https://substackcdn.com/image/fetch/$s_!UKsX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b31384c-041f-4f13-b1ed-1e571e05cf75_135x127.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></div><figcaption class="image-caption">A real life picture of me when I&#8217;m drunk.</figcaption></figure></div><p>After graduating college and moving to the Bay Area, I drank infrequently, but whenever a social event had alcohol in the picture, I had a bad habit of drinking too much. There&#8217;s a joke that one drink is just right, two drinks is too many, and three drinks is not enough. That embodies how I handle my limits.</p><p>I&#8217;d take a shot of tequila, feel nothing, and pound a few extra shots since &#8220;nothing was happening.&#8221; Some time would pass and as I became less lucid, I&#8217;d utter a few regrettable remarks and forget how the rest of the night went.</p><p>You have to cut me some slack. I was an impressionable person in my early 20s. I wanted to fit in and have fun, and alcohol seemed like an easy way to socially blend in.</p><p>Then COVID hit. I left the Bay Area and I had a bunch of time alone to reflect on how I wanted to live my life.</p><h1>Why did I quit?</h1><p>The fact that I didn&#8217;t know my limits was bad enough, but I would come to realize that the act of drinking was already pretty bad. Bad enough that I concluded that this needed to stop.</p><h2>I was slowly killing myself&#8230;</h2><p>I&#8217;ve blacked out more times than I&#8217;d care to admit. If you think about it, being drunk is quite terrifying. Parts of your brain turn off. You lose control of your thoughts, despite trying your hardest to stay lucid. It&#8217;s as if you&#8217;re thinking someone else&#8217;s thoughts. It&#8217;s how I imagine dying feels; it&#8217;s totally different from falling asleep.</p><p><strong>I realized that every time I got drunk, I was slowly killing myself.</strong> It&#8217;s scary when you can&#8217;t recognize or trust your own mind.</p><h2>&#8230;for literally no good reason.</h2><p>The stupid part is that I never even enjoyed drinking. I only did so at social events when alcohol was freely available. The tech industry in Silicon Valley has a drinking culture, so it&#8217;s actively tolerated, if not encouraged.</p><p>I drank to fit in and trick myself into having fun. But the truth is that I wasn&#8217;t having fun. <strong>By drinking for social validation, I was living someone else&#8217;s life.</strong> It wasn&#8217;t a real choice of mine, and deep down I didn&#8217;t want to live my life pretending to be someone else.</p><h1>How did I stop?</h1><p>It was pretty easy, actually. I made a declaration to myself to pause all drinking for 5 years. After that duration passed, I&#8217;d give myself permission to reevaluate. At the beginning, it was remarkably easy to enforce, since it happened during the COVID lockdowns.</p><p>Otherwise, I employed a few identity/mindset shifts:</p><ul><li><p>I can have fun and fit in without alcohol. Alcohol doesn&#8217;t make you braver; it makes you stupider. Alcohol doesn&#8217;t build social status; it reduces your social awareness.</p></li><li><p>It&#8217;s more important to be high-agency and make my own independent decisions, rather than &#8220;going with the flow.&#8221;</p></li><li><p>I want to prove to myself that I can say no to people. If you only go on autopilot, you&#8217;re nothing more than an NPC.</p></li><li><p>I don&#8217;t want to destroy my body and my mind. That prospect is scarier than any perceived benefits of alcohol.</p></li></ul><p>With the proper mindset, it became easy to just stop drinking. Whenever I was at a bar, I&#8217;d just have a mocktail. At parties, I&#8217;d simply socialize while sober. For me, this was all mental.</p><h1>Miscellaneous thoughts</h1><ul><li><p>My life is better, and my mind is definitely clearer. Avoiding alcohol is arguably just as important as writing, when it comes to being a clear thinker.</p></li><li><p>Quitting alcohol has definitely tested (and validated) my ability to resist social pressure and take ownership of my choices.</p></li><li><p>You can definitely have fun without alcohol. If anything, it&#8217;s quite amusing being the one sober person in a room full of drunk people.</p></li><li><p>People are remarkably respectful of my choice not to drink. For that I am grateful.</p></li><li><p>Scott Galloway has an interesting perspective around <a href="https://www.profgalloway.com/firewater/">society&#8217;s shift away from alcohol</a>. His claims that the pendulum has swung too far against alcohol (&#8220;the worst thing that&#8217;s happened to young people is the anti-alcohol movement&#8221;) and pushes for people to drink more and make more &#8220;bad decisions.&#8221; Otherwise the loneliness epidemic persists, and young people aren&#8217;t pushed to take social risks. As a chronic over-thinker, I believe he does have a point. Is the trade-off worth it? For now, I&#8217;m still a teetotaler, but I do need to take this into consideration.</p></li></ul><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.liu.blog/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">&#127866; Subscribe! Do it! You know you want to! &#127866;</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://images.unsplash.com/photo-1525268323446-0505b6fe7778?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwxNXx8YWxjb2hvbHxlbnwwfHx8fDE3NjkxMjQxNDh8MA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://images.unsplash.com/photo-1525268323446-0505b6fe7778?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwxNXx8YWxjb2hvbHxlbnwwfHx8fDE3NjkxMjQxNDh8MA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 424w, https://images.unsplash.com/photo-1525268323446-0505b6fe7778?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwxNXx8YWxjb2hvbHxlbnwwfHx8fDE3NjkxMjQxNDh8MA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 848w, https://images.unsplash.com/photo-1525268323446-0505b6fe7778?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwxNXx8YWxjb2hvbHxlbnwwfHx8fDE3NjkxMjQxNDh8MA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 1272w, https://images.unsplash.com/photo-1525268323446-0505b6fe7778?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwxNXx8YWxjb2hvbHxlbnwwfHx8fDE3NjkxMjQxNDh8MA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 1456w" sizes="100vw"><img src="https://images.unsplash.com/photo-1525268323446-0505b6fe7778?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwxNXx8YWxjb2hvbHxlbnwwfHx8fDE3NjkxMjQxNDh8MA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080" width="2500" height="1664" data-attrs="{&quot;src&quot;:&quot;https://images.unsplash.com/photo-1525268323446-0505b6fe7778?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwxNXx8YWxjb2hvbHxlbnwwfHx8fDE3NjkxMjQxNDh8MA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1664,&quot;width&quot;:2500,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;assorted bottle on table&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="assorted bottle on table" title="assorted bottle on table" srcset="https://images.unsplash.com/photo-1525268323446-0505b6fe7778?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwxNXx8YWxjb2hvbHxlbnwwfHx8fDE3NjkxMjQxNDh8MA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 424w, https://images.unsplash.com/photo-1525268323446-0505b6fe7778?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwxNXx8YWxjb2hvbHxlbnwwfHx8fDE3NjkxMjQxNDh8MA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 848w, https://images.unsplash.com/photo-1525268323446-0505b6fe7778?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwxNXx8YWxjb2hvbHxlbnwwfHx8fDE3NjkxMjQxNDh8MA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 1272w, https://images.unsplash.com/photo-1525268323446-0505b6fe7778?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwxNXx8YWxjb2hvbHxlbnwwfHx8fDE3NjkxMjQxNDh8MA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Photo by <a href="https://unsplash.com/@sergio_as">S&#233;rgio Alves Santos</a> on <a href="https://unsplash.com">Unsplash</a></figcaption></figure></div><p></p>]]></content:encoded></item><item><title><![CDATA[2025 Year in Review]]></title><description><![CDATA[My 2025 year in review.]]></description><link>https://www.liu.blog/p/2025</link><guid isPermaLink="false">https://www.liu.blog/p/2025</guid><dc:creator><![CDATA[Andrew Liu]]></dc:creator><pubDate>Thu, 01 Jan 2026 01:58:56 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!1iM9!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1100f844-4768-4cfa-8baf-79afb90cfe60_5712x4284.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em><strong>Links to my previous year-in-review blog posts:</strong></em></p><ul><li><p><em><strong><a href="https://www.liu.blog/p/2024">2024</a></strong></em></p></li><li><p><em><strong><a href="https://www.liu.blog/p/2023">2023</a></strong></em></p></li></ul><p>Ever since I&#8217;ve begun writing these year-in-review blog posts, there&#8217;s been a looming pressure to one-up the previous years. 2025 felt like a relatively tame year in comparison to the past two years, and I&#8217;ve made my peace with it. The first half of the year felt like a blur, but it did get better in the second half. And throughout 2025, a fair bit happened:</p><ul><li><p>I got my blue belt in BJJ and competed for the first time.</p></li><li><p>I gave me first external conference talk.</p></li><li><p>I spent a month in Asia, and I visited Taiwan and Japan for the first time.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!1iM9!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1100f844-4768-4cfa-8baf-79afb90cfe60_5712x4284.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!1iM9!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1100f844-4768-4cfa-8baf-79afb90cfe60_5712x4284.jpeg 424w, https://substackcdn.com/image/fetch/$s_!1iM9!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1100f844-4768-4cfa-8baf-79afb90cfe60_5712x4284.jpeg 848w, https://substackcdn.com/image/fetch/$s_!1iM9!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1100f844-4768-4cfa-8baf-79afb90cfe60_5712x4284.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!1iM9!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1100f844-4768-4cfa-8baf-79afb90cfe60_5712x4284.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!1iM9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1100f844-4768-4cfa-8baf-79afb90cfe60_5712x4284.jpeg" width="1456" height="1092" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1100f844-4768-4cfa-8baf-79afb90cfe60_5712x4284.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1092,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4808910,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.liu.blog/i/182452532?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1100f844-4768-4cfa-8baf-79afb90cfe60_5712x4284.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!1iM9!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1100f844-4768-4cfa-8baf-79afb90cfe60_5712x4284.jpeg 424w, https://substackcdn.com/image/fetch/$s_!1iM9!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1100f844-4768-4cfa-8baf-79afb90cfe60_5712x4284.jpeg 848w, https://substackcdn.com/image/fetch/$s_!1iM9!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1100f844-4768-4cfa-8baf-79afb90cfe60_5712x4284.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!1iM9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1100f844-4768-4cfa-8baf-79afb90cfe60_5712x4284.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">The outside of my 2025 holiday card.</figcaption></figure></div><h1>Overview of the year</h1><p>I started the year feeling aimless. In 2024, I had moved and switched jobs, so I felt I should take a bit of a breather. But when you don&#8217;t have a goal, you&#8217;re usually quite passive with your time.</p><p>It felt like the first half of the year went to various one-off social events. I barely remember them, and I have little to show for it. Fortunately, external goals and obligations with a strict deadline (e.g. preparing for a BJJ competition and travel) forced me to snap out of it. Then the year started to pick up.</p><h2>Brazilian Jiu-Jitsu</h2><p>Around May, I decided to sign up for a BJJ competition. I trained for a while, but I never competed before. Nor was I comfortable fighting under pressure. So it was about time to give it a try.</p><p>I started increasing the time I spent on the mats and reduced my focus on other areas of life. Around two weeks before my competition, I dislocated my toe in training. It wasn&#8217;t bad enough to change any plans, but I did literally end up limping my way into the competition.</p><p>There&#8217;s a night-and-day difference between competing in BJJ and normal sparring. Someone is going at you 100% unhinged. Your adrenaline goes through the roof, and your field of vision decreases. And after a match, you find yourself completely gassed out. But you learn a lot. You notice what works and what breaks down when you&#8217;re under pressure.</p><p>I competed a second time shortly afterwards. That one forced me to deal with loss. It&#8217;s a rare and interesting emotion you feel when you drive an hour to some random sports center, lose in a single-elimination bracket, get handed a participation trophy, and stand on a podium to get your picture taken while wearing said participation trophy.</p><p>Later in the year, I got promoted to a blue belt. Honestly nothing changed, except the color of the belt.</p><div class="image-gallery-embed" data-attrs="{&quot;gallery&quot;:{&quot;images&quot;:[{&quot;type&quot;:&quot;image/jpeg&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/246d2a13-f0ef-47cc-8a20-58d0a8882af8_1126x1374.jpeg&quot;},{&quot;type&quot;:&quot;image/jpeg&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/98cb557c-bfb0-4b20-b712-869b2e8994d8_2696x2941.jpeg&quot;},{&quot;type&quot;:&quot;image/jpeg&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/383a7ba0-2003-43e7-8eec-77775ca0d932_3024x4032.jpeg&quot;},{&quot;type&quot;:&quot;image/jpeg&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2db1ab58-ff13-477c-8a7c-42fa9d63af9a_3024x4032.jpeg&quot;}],&quot;caption&quot;:&quot;Clockwise from top left: my first BJJ competition, getting my blue belt, Google-branded BJJ gear, dropping in for a class in Tokyo.&quot;,&quot;alt&quot;:&quot;&quot;,&quot;staticGalleryImage&quot;:{&quot;type&quot;:&quot;image/png&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/48408735-8afd-49c5-8115-b397a96aa534_1456x1456.png&quot;}},&quot;isEditorNode&quot;:true}"></div><p>BJJ really is a lot of fun. I enjoy it a lot, and you should try it out if you haven&#8217;t already. Next year, I plan to begin training Judo in tandem with BJJ, as I&#8217;d like to learn how to grapple while standing.</p><h2>Career</h2><p>It was a turbulent year at Google. My manager left early in the year, then layoffs happened, then <a href="https://privacysandbox.google.com/blog/update-on-plans-for-privacy-sandbox-technologies">Privacy Sandbox became defunct</a>, and then came a giant reorg that dragged on for months. I&#8217;ve been at startups before, I&#8217;m used to volatility at work. It&#8217;s just unexpected for a company of this size. But Google&#8217;s stock price has performed well this year, so I&#8217;m happy.</p><p>On a less tongue-in-cheek note, things are picking back up at work. The reorg has been settling in a reasonable manner.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!0WUR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe87aab26-f529-4013-868a-342c5cbfa31e_1376x1152.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!0WUR!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe87aab26-f529-4013-868a-342c5cbfa31e_1376x1152.png 424w, https://substackcdn.com/image/fetch/$s_!0WUR!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe87aab26-f529-4013-868a-342c5cbfa31e_1376x1152.png 848w, https://substackcdn.com/image/fetch/$s_!0WUR!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe87aab26-f529-4013-868a-342c5cbfa31e_1376x1152.png 1272w, https://substackcdn.com/image/fetch/$s_!0WUR!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe87aab26-f529-4013-868a-342c5cbfa31e_1376x1152.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!0WUR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe87aab26-f529-4013-868a-342c5cbfa31e_1376x1152.png" width="516" height="432" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e87aab26-f529-4013-868a-342c5cbfa31e_1376x1152.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1152,&quot;width&quot;:1376,&quot;resizeWidth&quot;:516,&quot;bytes&quot;:166588,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.liu.blog/i/182452532?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe87aab26-f529-4013-868a-342c5cbfa31e_1376x1152.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!0WUR!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe87aab26-f529-4013-868a-342c5cbfa31e_1376x1152.png 424w, https://substackcdn.com/image/fetch/$s_!0WUR!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe87aab26-f529-4013-868a-342c5cbfa31e_1376x1152.png 848w, https://substackcdn.com/image/fetch/$s_!0WUR!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe87aab26-f529-4013-868a-342c5cbfa31e_1376x1152.png 1272w, https://substackcdn.com/image/fetch/$s_!0WUR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe87aab26-f529-4013-868a-342c5cbfa31e_1376x1152.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Internally, people were meme&#8217;ing about GOOG dropping below $200 early in the year. Nobody expected it to go above $300.</figcaption></figure></div><p>Halfway through the year, <a href="https://scale.com/blog/scale-ai-announces-next-phase-of-company-evolution">Meta &#8220;acquired&#8221; a 50% stake in Scale AI</a> for around $15 billion. As a result of the deal, shareholders were paid a one-time dividend. It was a pretty neat experience shared between me and my former coworkers. Startups rarely have an exit, and Meta acquisition was certainly unexpected.</p><p>In the back of my head, I&#8217;ve had a desire to give conference talks. After coming back from Defcon this year, I was inspired to actually do it. After preparing proposals and <a href="https://docs.google.com/presentation/d/1znvv_gKdgoAwx1kePxZ_KadVozszS396yy_DiiyVdBc/edit">slides</a>, I spoke at 3 different conferences this year. Speaking is a lot of work: you do a bunch of preparation that culminates in an hour-long presentation. But it&#8217;s fun and I glad I did it. It&#8217;s a nice way to share my work outside of the workplace.</p><div class="image-gallery-embed" data-attrs="{&quot;gallery&quot;:{&quot;images&quot;:[{&quot;type&quot;:&quot;image/jpeg&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/abd98673-b213-4983-b98a-3b448dc87479_4284x5712.jpeg&quot;},{&quot;type&quot;:&quot;image/jpeg&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3d3a6f6e-0128-499b-9a5e-aa627daa9f00_3024x4032.jpeg&quot;},{&quot;type&quot;:&quot;image/jpeg&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/93280eb0-23b9-48a1-a4ab-9d60950380d2_3024x4032.jpeg&quot;},{&quot;type&quot;:&quot;image/jpeg&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2a71569d-b67e-4edd-b8e4-1623f37423af_4284x5712.jpeg&quot;}],&quot;caption&quot;:&quot;Clockwise from top left: speaking at DevFest DC, speaking at BSides NoVA, hanging out with a robotic dog, speaker swag from BSides.&quot;,&quot;alt&quot;:&quot;&quot;,&quot;staticGalleryImage&quot;:{&quot;type&quot;:&quot;image/png&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ab5b8c7e-6ac3-494b-99e1-a5c3c87b0a63_1456x1456.png&quot;}},&quot;isEditorNode&quot;:true}"></div><p>So how would I summarize this year career-wise? Pretty good, albeit unexpectedly adventurous.</p><h2>Travel</h2><p>Compared to previous years, I didn&#8217;t travel much. Or rather, I had fewer trips. I definitely had my longest trip abroad this year.</p><p>In August, I went to Defcon in Las Vegas. That&#8217;s been an annual tradition for a while now. Though this year, there was a speaker who gave a talk on Privacy Sandbox: it was cool to see someone external talk about my project at work.</p><div class="image-gallery-embed" data-attrs="{&quot;gallery&quot;:{&quot;images&quot;:[{&quot;type&quot;:&quot;image/jpeg&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/02c8a9e0-5120-431f-8c73-0c04e7f58c23_4032x3024.jpeg&quot;},{&quot;type&quot;:&quot;image/jpeg&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4118fe3e-4b50-4577-ad5d-be673759d47c_3024x4032.jpeg&quot;},{&quot;type&quot;:&quot;image/jpeg&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/65c7b892-7ea3-41ca-8db8-525ac61b8835_4284x5712.jpeg&quot;}],&quot;caption&quot;:&quot;Left to right: book signing with the Privacy Sandbox speaker, the inside of the signed book, me on a boat.&quot;,&quot;alt&quot;:&quot;&quot;,&quot;staticGalleryImage&quot;:{&quot;type&quot;:&quot;image/png&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d639bb1f-47cd-4a0a-8ad7-9c7d3bf759c3_1456x474.png&quot;}},&quot;isEditorNode&quot;:true}"></div><p>For most of November, I was abroad in Asia. I was going to <a href="https://www.w3.org/2025/11/TPAC/">a conference</a> in Kobe, Japan. But since I was already in Asia, why not stay for a while?</p><p>I started in Kobe, where I was mostly working. The rest of the month was a long vacation: I went to Taipei, Beijing, and Tokyo. It was my first time going to Taiwan and Japan, and I&#8217;m glad I fit so much into a single trip. A month in Asia is a long time, so I can&#8217;t really describe the details in a blog post. Needless to say, it was ton of fun, and I&#8217;m glad to be back home after being away for so long.</p><div class="image-gallery-embed" data-attrs="{&quot;gallery&quot;:{&quot;images&quot;:[{&quot;type&quot;:&quot;image/jpeg&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a673d612-6828-4fcc-a5fa-6f93b58514c7_1980x3520.jpeg&quot;},{&quot;type&quot;:&quot;image/jpeg&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a45249b4-9e44-4b4e-a1d8-3b9aebd0fa01_3024x4032.jpeg&quot;},{&quot;type&quot;:&quot;image/jpeg&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ce03af05-8910-4974-943e-4c3b157a6ef0_4284x5712.jpeg&quot;},{&quot;type&quot;:&quot;image/jpeg&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0b2ba65d-926e-4be0-91c1-567870079832_4284x5712.jpeg&quot;},{&quot;type&quot;:&quot;image/jpeg&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8e005d4e-f1ec-4526-a1dc-cce4c09daac5_3260x4906.jpeg&quot;},{&quot;type&quot;:&quot;image/jpeg&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a52efc53-d014-4da3-86d3-67f45f4763bb_5712x4284.jpeg&quot;}],&quot;caption&quot;:&quot;Clockwise from top left: eating Kobe beef, the night market in Taipei, doing the Killer Queen Jojo pose on top of Shibuya Sky, doing a Jojo pose in front of the Jojo store, wearing a kimono at Senso-Ji temple, omakase in Tokyo with various international friends.&quot;,&quot;alt&quot;:&quot;&quot;,&quot;staticGalleryImage&quot;:{&quot;type&quot;:&quot;image/png&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7e280efb-3ac9-4e87-b2f2-39f72cf68732_1456x964.png&quot;}},&quot;isEditorNode&quot;:true}"></div><h1>What&#8217;s next?</h1><p>The big lesson I want to take into 2026 is to avoid aimlessness. You must always have a goal in mind and something to work towards. It&#8217;s better to have a bad goal (and later switch to a better goal) than to not have any goals at all. Why? There&#8217;s no pressure to change when you&#8217;re aimless, and a lot of time can fly by before you &#8220;wake up.&#8221;</p><p>So how do I want to go about 2026? The theme is to be dialed in. <a href="https://marginalrevolution.com/">Tyler Cowen</a> pioneered the idea of having a personal production function. Most people are consumers, not producers. I&#8217;d like to be the latter.</p><ul><li><p>For example, I didn&#8217;t publish any blog posts (besides my annual reviews) this year. I&#8217;d like to change that. One blog post a month seems like a reasonable minimum.</p></li><li><p>I should be more aware of what&#8217;s going on in the industry outside of work. That means being an active member in external communities and opportunistically speaking at more conferences.</p></li><li><p>It&#8217;s important to have some side project to tinker on at all times, no matter how silly. For instance, I&#8217;m currently learning how to clone apartment keys. It doesn&#8217;t have to be ambitious, it just needs to exist.</p></li><li><p>And of course, I&#8217;d like to start learning Judo and be consistent with it.</p></li></ul><p>Happy new year!</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!evOc!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83b57b0a-2a69-4ebf-af14-068b48de9d21_5712x4284.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!evOc!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83b57b0a-2a69-4ebf-af14-068b48de9d21_5712x4284.jpeg 424w, https://substackcdn.com/image/fetch/$s_!evOc!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83b57b0a-2a69-4ebf-af14-068b48de9d21_5712x4284.jpeg 848w, https://substackcdn.com/image/fetch/$s_!evOc!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83b57b0a-2a69-4ebf-af14-068b48de9d21_5712x4284.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!evOc!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83b57b0a-2a69-4ebf-af14-068b48de9d21_5712x4284.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!evOc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83b57b0a-2a69-4ebf-af14-068b48de9d21_5712x4284.jpeg" width="1456" height="1092" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/83b57b0a-2a69-4ebf-af14-068b48de9d21_5712x4284.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1092,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:5195986,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.liu.blog/i/182452532?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83b57b0a-2a69-4ebf-af14-068b48de9d21_5712x4284.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!evOc!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83b57b0a-2a69-4ebf-af14-068b48de9d21_5712x4284.jpeg 424w, https://substackcdn.com/image/fetch/$s_!evOc!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83b57b0a-2a69-4ebf-af14-068b48de9d21_5712x4284.jpeg 848w, https://substackcdn.com/image/fetch/$s_!evOc!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83b57b0a-2a69-4ebf-af14-068b48de9d21_5712x4284.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!evOc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83b57b0a-2a69-4ebf-af14-068b48de9d21_5712x4284.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">The inside of my 2025 holiday card.</figcaption></figure></div><h1>Miscellaneous learnings</h1><h2>On human nature</h2><ul><li><p>People don&#8217;t know what they want, and they&#8217;re quite receptive to what you want. So be clear with what you want, and go for it. (Corollary: the squeaky wheel gets the grease. I mean this in a positive way. People are usually happy to help you.)</p></li><li><p>I&#8217;m quite likable as a person. At least in the long term. Though I don&#8217;t give the best first impressions, since I&#8217;m robotic. The solution to this seems to be to just own it and be clear if I&#8217;m joking around/being sarcastic. (People are bad at recognizing sarcasm.)</p></li><li><p>Be approachable. Approach people. Most people are chicken, so you should minimize friction for them.</p></li><li><p>I used to say that courage is the limiting resource, not intelligence. Though I still stand by that statement, I think it&#8217;s actually agency that matters. Courage is more of a means to cultivating agency. Be as high-agency as possible.</p></li></ul><h2>On progress</h2><ul><li><p>What has taught me the most and the fastest is doing reps, reps, reps.</p></li><li><p>There truly is no perfect time to start. Excessive waiting doesn&#8217;t beget any benefits. The first half of the year was less interesting than the second half because I was just waiting around. (Note that this is not the same as &#8220;precrastination.&#8221; Quickly workshopping solutions in your head is a useful skill.)</p></li><li><p>Do not be aimless. Have a bad goal is better than having no goal. You must be in the driver&#8217;s seat of your life, or else you&#8217;ll be dragged around, and time will just pass you by. Your attention is precious and limited.</p></li></ul><h2>On mortality</h2><ul><li><p>My life is pretty good. Like really freaking good. So when things don&#8217;t go my way, I shouldn&#8217;t be all that sad when putting everything into perspective.</p></li><li><p>When managing finances, there are three states of being: <a href="https://engaging-data.com/will-money-last-retire-early/">rich, broke, and dead</a>. Your life expectancy plays a huge role into how much you can and should spend.</p></li><li><p>Most things are just a means to an end, and you probably think otherwise because of your ego. Go to work and make money; your career isn&#8217;t a reflection of your value as a human. Apologize to others if you&#8217;re wrong; avoiding a moment of embarrassment isn&#8217;t worth a lifetime of regret.</p></li></ul><h2>On human relationships</h2><ul><li><p>There will be times that tempt you into exhibiting toxic behavior. Resist the urge; do not be toxic. Ever. On the flip side, you must have zero tolerance for toxic behavior from others.</p></li><li><p>Deal with interpersonal issues as soon as possible, even if they feel too small to be worth talking about. If problems grow and fester, it&#8217;ll be too late. Better to nip it in the bud.</p></li><li><p>And the biggest learning of the year: <strong>accept people for who they are.</strong> Just because you don&#8217;t vibe with someone doesn&#8217;t mean you&#8217;re broken or they&#8217;re broken. It doesn&#8217;t mean anyone did something wrong. Different people want different things, and you don&#8217;t have to change people. So you must learn to accept others (including yourself) for who they are, not what you want them to be. Then it becomes easier to appreciate the hidden beauty within everyone.</p></li></ul><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.liu.blog/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Congrats, you&#8217;ve read to the end. Did you know that you could subscribe for email updates?</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p><em><strong>Links to my previous year-in-review blog posts:</strong></em></p><ul><li><p><em><strong><a href="https://www.liu.blog/p/2024">2024</a></strong></em></p></li><li><p><em><strong><a href="https://www.liu.blog/p/2023">2023</a></strong></em></p></li></ul>]]></content:encoded></item><item><title><![CDATA[Advice on advice]]></title><description><![CDATA[Most advice is bad. Fortunately, we can dissect why it's bad and how to give advice that's less bad.]]></description><link>https://www.liu.blog/p/advice</link><guid isPermaLink="false">https://www.liu.blog/p/advice</guid><dc:creator><![CDATA[Andrew Liu]]></dc:creator><pubDate>Wed, 19 Feb 2025 15:02:52 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/d072b702-d459-4c2b-bb8e-176f63b9cb06_1024x768.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><div class="image-link image2" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!EgPZ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ebc6615-399f-47f7-bc4b-9aaeadfdf28d_1024x768.jpeg 424w, https://substackcdn.com/image/fetch/$s_!EgPZ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ebc6615-399f-47f7-bc4b-9aaeadfdf28d_1024x768.jpeg 848w, https://substackcdn.com/image/fetch/$s_!EgPZ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ebc6615-399f-47f7-bc4b-9aaeadfdf28d_1024x768.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!EgPZ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ebc6615-399f-47f7-bc4b-9aaeadfdf28d_1024x768.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!EgPZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ebc6615-399f-47f7-bc4b-9aaeadfdf28d_1024x768.jpeg" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1ebc6615-399f-47f7-bc4b-9aaeadfdf28d_1024x768.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!EgPZ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ebc6615-399f-47f7-bc4b-9aaeadfdf28d_1024x768.jpeg 424w, https://substackcdn.com/image/fetch/$s_!EgPZ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ebc6615-399f-47f7-bc4b-9aaeadfdf28d_1024x768.jpeg 848w, https://substackcdn.com/image/fetch/$s_!EgPZ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ebc6615-399f-47f7-bc4b-9aaeadfdf28d_1024x768.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!EgPZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ebc6615-399f-47f7-bc4b-9aaeadfdf28d_1024x768.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></div></figure></div><blockquote><p>"All models are wrong, some models are useful."<br><br>- some autistic statistician, probably</p></blockquote><p>I like to receive advice. Hearing others&#8217; perspectives expands my own thinking, and it's a helpful tool. What's not to love? But after listening to enough advice, you realize that not all advice is created equal. Even "good" advice shared with the best of intentions can send you down the wrong path.</p><p>When receiving advice, it's risky to listen blindly. The quality of your filtering mechanism decides the impact that advice has on your life. I would go so far as to say that the act of receiving advice well may be equally as difficult as giving good advice.</p><h1>Pitfalls with &#8220;good&#8221; advice</h1><p>If I were to compress all problems with advice into a phrase, it would be that <strong>context matters and incentives matter</strong>. Advice is not universally true, and true advice is not universally useful.</p><h2>Advice is context dependent</h2><p>What works for others may not work for you. People tend to share what worked for them and what they <em>think</em> is true. Unfortunately that guarantees nothing.</p><p>Take for example, the common advice to "just be yourself." It's not universally true and can even be destructive. Self-conscious people might benefit from being themselves, but delusional people will not. The receiver matters.</p><ul><li><p><strong>Corollary: Advice is vulnerable to the <a href="https://xyproblem.info/">XY problem</a>.</strong> If you give advice, are you addressing the core issue or some different-but-related problem?</p></li><li><p><strong>Corollary: Smart people can give stupid advice.</strong> Don&#8217;t assume smart people are infallible. Nobody knows your personal situation as well as you do.</p></li><li><p><strong>Corollary: Confidently-given advice warrants skepticism.</strong> Confidence is either backed up by evidence or delusion. Unless someone else knows the nuances of your life well, assume the latter.</p></li></ul><h2>Advice needs skin in the game</h2><p>Incentives matter. Consider the following pieces of advice, and notice what's wrong with them:</p><ul><li><p>"You should buy my online course." (Ulterior motive)</p></li><li><p>"Hurry up, get married, and have kids. Time is ticking!" (Projection)</p></li><li><p>"Don't stress out, you're perfect. The other person is wrong." (Walking on eggshells)</p></li></ul><p>Why doesn&#8217;t everybody give brutally honest advice? Because all advice givers play a meta game of some sort. Exploring <em>why</em> they say something is just as important as hearing <em>what</em> they say.</p><ul><li><p><strong>Corollary: Follow your own advice.</strong> It's easy to tell other people to do stuff. Beware hypocrites.</p></li><li><p><strong>Corollary: The only real advice is to think for yourself. </strong>You&#8217;re the only person with your own best interests in mind. Everything you hear passes through your own internal filtering mechanism. It&#8217;s your last line of defense.</p></li></ul><h1>The 3 axes of advice</h1><p>Advice tends to fall along 3 different spectrums:</p><ul><li><p>How it makes you feel.</p></li><li><p>How correct it is.</p></li><li><p>How useful it is.</p></li></ul><p>It's worth paying attention to where a piece of advice falls on each of these spectrums. Otherwise, you may improperly weigh advice. It's easy to conflate advice that makes you feel good with advice that's correct, for instance.</p><h2>Feel-good</h2><p>Some people just know how to say all the right words. Two different people might tell you the same thing, and only one of them can make it land. But whether something makes you feel good or not doesn't determine its validity.</p><p>Contrast these two statements:</p><ol><li><p>"You're unhealthy and need to lose weight."</p></li><li><p>"Don't worry, the perfect one is out there waiting for you."</p></li></ol><p>The rude piece of advice may be true, while the one that sounds good is completely meaningless!</p><h2>Correct</h2><p>Advice that is "more correct" may be worse than advice that's directionally correct (or even wrong). The receiver may suffer from information overload or misinterpret the advice.</p><p>Here are two approaches to weight-loss advice:</p><ol><li><p>"Make sure to keep your daily caloric intake slightly below your TDEE."</p></li><li><p>"Stop drinking soda."</p></li></ol><p>I zoned out halfway through reading the first bullet point.</p><h2>Useful</h2><p>Arguably, this is the only trait around advice that matters. Whether advice is useful has painfully little to do with whether it sounds good or is true.</p><p>For example:</p><ol><li><p>"Follow your talent; don't follow your passion."</p></li><li><p>"Just keep going to the gym, and it'll cure your anxiety."</p></li></ol><p>I'm not sure if these statements feel good. I don't even know if they're correct. But they&#8217;ve sure been helpful.</p><h1>Receiving and giving better advice</h1><p><strong>As a receiver:</strong></p><ol><li><p>Focus first on whether the advice is useful. Disregard everything else.</p></li><li><p>Hear what everyone has to say, but don&#8217;t necessarily adopt their advice.</p></li></ol><p><strong>As a giver:</strong></p><ol><li><p>Prioritize making the advice useful. You <em>do</em> want to help, right?</p></li><li><p>Then prioritize making the advice feel good. It&#8217;ll increase the chance that others listen to you. &#8220;Tough love&#8221; is seldom persuasive.</p></li><li><p>Remember you don&#8217;t have to give advice in the first place if it&#8217;s not going to be a net positive.</p></li></ol><p>But feel free to ignore everything I said. This is just my advice.</p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.liu.blog/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading! Subscribe for free to receive new posts.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[2024 Year in Review]]></title><description><![CDATA[My 2024 year in review.]]></description><link>https://www.liu.blog/p/2024</link><guid isPermaLink="false">https://www.liu.blog/p/2024</guid><dc:creator><![CDATA[Andrew Liu]]></dc:creator><pubDate>Tue, 07 Jan 2025 04:41:17 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/e681762a-7ce2-4dc6-a1b4-6d0469f2c025_2000x1333.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><div class="image-link image2" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!KMHA!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2143e9bb-d5b4-47c9-b1b5-79a6e27df1df_2000x1333.jpeg 424w, https://substackcdn.com/image/fetch/$s_!KMHA!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2143e9bb-d5b4-47c9-b1b5-79a6e27df1df_2000x1333.jpeg 848w, https://substackcdn.com/image/fetch/$s_!KMHA!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2143e9bb-d5b4-47c9-b1b5-79a6e27df1df_2000x1333.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!KMHA!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2143e9bb-d5b4-47c9-b1b5-79a6e27df1df_2000x1333.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!KMHA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2143e9bb-d5b4-47c9-b1b5-79a6e27df1df_2000x1333.jpeg" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2143e9bb-d5b4-47c9-b1b5-79a6e27df1df_2000x1333.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!KMHA!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2143e9bb-d5b4-47c9-b1b5-79a6e27df1df_2000x1333.jpeg 424w, https://substackcdn.com/image/fetch/$s_!KMHA!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2143e9bb-d5b4-47c9-b1b5-79a6e27df1df_2000x1333.jpeg 848w, https://substackcdn.com/image/fetch/$s_!KMHA!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2143e9bb-d5b4-47c9-b1b5-79a6e27df1df_2000x1333.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!KMHA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2143e9bb-d5b4-47c9-b1b5-79a6e27df1df_2000x1333.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></div><figcaption class="image-caption">Photo by <a href="https://unsplash.com/@kajtek?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit">Kajetan Sumila</a> / <a href="https://unsplash.com/?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit">Unsplash</a></figcaption></figure></div><p>For me, the overarching theme of 2024 was building infrastructure and reducing life volatility. While that sounds a lot like "settling down," I'd argue I'm going for the opposite: you can only do so many things at a time. If the rest of your life isn't in order, how do you expect to hit ambitious goals? The less random stuff you have to worry about in life, the easier it is to focus on what matters.</p><p>Anyway, enough yapping. Here are some highlights from 2024:</p><ul><li><p>I moved to Crystal City.</p></li><li><p>I returned to Google after being away for 5 years.</p></li><li><p>I started hosting parties for the tech community in Washington DC.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Xw-V!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36e764c8-a18a-4363-8778-2f868365581f_2000x1500.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Xw-V!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36e764c8-a18a-4363-8778-2f868365581f_2000x1500.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Xw-V!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36e764c8-a18a-4363-8778-2f868365581f_2000x1500.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Xw-V!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36e764c8-a18a-4363-8778-2f868365581f_2000x1500.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Xw-V!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36e764c8-a18a-4363-8778-2f868365581f_2000x1500.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Xw-V!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36e764c8-a18a-4363-8778-2f868365581f_2000x1500.jpeg" width="2000" height="1500" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/36e764c8-a18a-4363-8778-2f868365581f_2000x1500.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1500,&quot;width&quot;:2000,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!Xw-V!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36e764c8-a18a-4363-8778-2f868365581f_2000x1500.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Xw-V!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36e764c8-a18a-4363-8778-2f868365581f_2000x1500.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Xw-V!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36e764c8-a18a-4363-8778-2f868365581f_2000x1500.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Xw-V!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36e764c8-a18a-4363-8778-2f868365581f_2000x1500.jpeg 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">The front of my 2024 holiday card.</figcaption></figure></div><h2>Recap of the year</h2><p>Coming from <a href="https://andrew.cloud/2023/">last year's review</a>, on the top of my mind was the need to leave the suburbs, make a notable career shift, and maintain the trajectory from the previous year. It's not much, but each of these was a major project.</p><p>Here was my thought process: where I live and where I work can be the two most volatile life variables. What if I could move to a place where I'd never want to leave, and what if I could have my work be less hectic than a tech startup? Then those two variables could effectively run on autopilot. I could focus on everything else.</p><p>(As per usual, I'm not going to publish many of the spicier details. But you're always welcome to <a href="https://andrew.cloud/contact">ask me about them in private</a>.)</p><h3>Moving</h3><p>Early in the year, I decided it was time to leave...to go to Manhattan. If I were to move to a city, what better place than New York? It didn't sit quite right with me, but I dismissed it as a matter of expanding my comfort zone.</p><p>By a stroke of luck, I had a friend with an apartment in Murray Hill that would be vacant for a few months. I took up his offer to stay there. The plan was to do a month-long NYC trial period and begin touring apartments. Less than an hour after arriving in the city, I realized I didn't want to move to NYC. You see, I don't believe in sunk costs. As a DMV-raised kid, I'm a bit of a clean freak. The place is too filthy. Seeing the average resident on the street was depressing: they just look so dead inside. I was having a bad day, yet I was the happiest person in Manhattan. Three days after arriving, I left the city. Longest month of my life.</p><p>The biggest learning from the trip was that I needed "boots on the ground" as soon as possible. I learn fast and can make quick decisions once I gather real experiences. The next candidate for where I'd live was Washington DC/Northern Virginia. So I immediately started going on apartment tours. No time for theorizing.</p><p>One day I was having dinner with a bunch of friends at Amazon in Crystal City, and we went on a walk after eating. We passed by a building under construction. It has signs saying that it was leasing, and that piqued my interest. The next day, I toured the place, and I realized that I'd found my HQ2.</p><div class="image-gallery-embed" data-attrs="{&quot;gallery&quot;:{&quot;images&quot;:[{&quot;type&quot;:&quot;image/jpeg&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b2fb2ab8-4b31-46e7-9afe-ac4cce7f85d9_1024x768.jpeg&quot;},{&quot;type&quot;:&quot;image/jpeg&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/11ab82cf-2447-471c-9d57-0151df10c5e1_1600x1200.jpeg&quot;},{&quot;type&quot;:&quot;image/jpeg&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5a75f6dc-b949-4855-bcc0-30efb47ea480_1024x768.jpeg&quot;},{&quot;type&quot;:&quot;image/jpeg&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/66cc7e2a-a9ef-401c-bb91-5dd6afb2bef4_768x1024.jpeg&quot;}],&quot;caption&quot;:&quot;(top left) An empty corner of the apartment. (top right) Recruiting help for my move-in. (bottom left) The layout afterward. (bottom right) A view into DC.&quot;,&quot;alt&quot;:&quot;&quot;,&quot;staticGalleryImage&quot;:{&quot;type&quot;:&quot;image/png&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0d3d3a94-366e-4541-a5e8-4f32eb174043_1456x1456.png&quot;}},&quot;isEditorNode&quot;:true}"></div><p>Over the next couple of months, I'd move to Crystal City. Staying within the DMV was convenient, as I had plenty of friends to help with the move (and even do the interior design of the place). The place is lovely.</p><h3>Work</h3><p>Most of the second quarter of the year was dedicated to interviewing around. I figured it was time to leave Stairwell and return to Big Tech. When I had <a href="https://andrew.cloud/leaving-google/">left Google the first time around</a>, I believed that a person was either a startup guy or a big company guy. My belief is now that everybody has a certain number of "startup tokens" in their life that gets consumed for each startup they work at. I had already burned many such tokens, so it was time for a change of pace. And thus began the LeetCode grind.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!6TUS!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3afbf4d-de37-4a67-b0fb-16122af37510_1198x836.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!6TUS!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3afbf4d-de37-4a67-b0fb-16122af37510_1198x836.png 424w, https://substackcdn.com/image/fetch/$s_!6TUS!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3afbf4d-de37-4a67-b0fb-16122af37510_1198x836.png 848w, https://substackcdn.com/image/fetch/$s_!6TUS!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3afbf4d-de37-4a67-b0fb-16122af37510_1198x836.png 1272w, https://substackcdn.com/image/fetch/$s_!6TUS!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3afbf4d-de37-4a67-b0fb-16122af37510_1198x836.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!6TUS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3afbf4d-de37-4a67-b0fb-16122af37510_1198x836.png" width="1198" height="836" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f3afbf4d-de37-4a67-b0fb-16122af37510_1198x836.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:836,&quot;width&quot;:1198,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!6TUS!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3afbf4d-de37-4a67-b0fb-16122af37510_1198x836.png 424w, https://substackcdn.com/image/fetch/$s_!6TUS!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3afbf4d-de37-4a67-b0fb-16122af37510_1198x836.png 848w, https://substackcdn.com/image/fetch/$s_!6TUS!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3afbf4d-de37-4a67-b0fb-16122af37510_1198x836.png 1272w, https://substackcdn.com/image/fetch/$s_!6TUS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3afbf4d-de37-4a67-b0fb-16122af37510_1198x836.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">My LeetCode streak.</figcaption></figure></div><p>The job market in tech has evolved in the past few years. From interviewing around, I've noticed many differences:</p><ul><li><p>Though the job market isn't what it used to be in the late 2010's, it's not that bad for senior folks. I didn't have much trouble gathering interest and landing interviews. However, I've that's not the case for new grads. I feel bad for them, because I'm not sure what I'd do if I were in their shoes.</p></li><li><p>The interviewing "meta" has evolved for the better, in my opinion. Companies now openly say they give "LeetCode-styled" interview questions rather than saying some bullshit about coding questions being around fundamentals. The openness actually means interviewers end up asking better questions.</p></li><li><p>Nowadays, FAANG companies require candidates to go through team matching before receiving an offer. Back in the day, it was the other way around. I find it pretty reasonable. But that creates the scenario where candidates who passed the technical interviews can be stuck in "team matching limbo" for an indefinite period of time.</p></li><li><p>Despite the changes from COVID, remote work is not sticking as much as people expected. And generally, companies are trying to pull workers back to the tech hubs. However, it seems like hybrid has become the default for tech work.</p></li></ul><p>All things considered, I didn't apply to too many places. My criteria was simple: go to a FAANG or FAANG-adjacent tech company that was either remote or had a DC office. It wasn't all sunshine and rainbows: I tend to obsess over problems and fixate on worst-case scenarios. For instance, I temporarily developed a bit of a LeetCode "addiction" that impacted my physical health. And at times, I'd randomly worry about the prospect of having to break my lease.</p><p>Though everything panned out perfectly in the end. I returned to Google in their DC office. It was almost 5 years on the dot since I'd originally left. Readjusting to Google was pretty easy. I'm having a great time.</p><div class="image-gallery-embed" data-attrs="{&quot;gallery&quot;:{&quot;images&quot;:[{&quot;type&quot;:&quot;image/jpeg&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/092ff71b-b7d6-4bd5-ae40-92545b124985_1024x768.jpeg&quot;},{&quot;type&quot;:&quot;image/jpeg&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f4cf1aa5-b755-4fee-b6d0-ddaa2d642c67_768x1024.jpeg&quot;}],&quot;caption&quot;:&quot;(left) The lobby of the Google DC office. (right) My Noogler hat.&quot;,&quot;alt&quot;:&quot;&quot;,&quot;staticGalleryImage&quot;:{&quot;type&quot;:&quot;image/png&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a4dfa812-d44e-4a11-b5f4-c114a4a41259_1456x720.png&quot;}},&quot;isEditorNode&quot;:true}"></div><h3>Travel</h3><p>Travel was relatively light this year. The first half of the year was completely dedicated to moving and interviewing. It's probably better that way: I'm not the biggest fan of traveling, as it breaks a lot of good habits you form from your normal routine.</p><p>Besides various trips to NYC and the Bay Area, I took my annual Defcon trip, and I did an Asia trip where I visited China and then went to Thailand for the first time:</p><ul><li><p>This Defcon, I went as a member of the press. How? I'm a journalist for this blog!</p></li><li><p>In China, I went to Beijing, Wuxi, and Shanghai. They all have very different vibes.</p></li><li><p>I visited Chiang Mai and Bangkok in Thailand. Like with China, the cities all have different vibes. I also saw live Muay Thai for the first time.</p></li></ul><div class="image-gallery-embed" data-attrs="{&quot;gallery&quot;:{&quot;images&quot;:[{&quot;type&quot;:&quot;image/jpeg&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3d88b573-572e-4f12-abfe-1287650e2baa_1024x768.jpeg&quot;},{&quot;type&quot;:&quot;image/jpeg&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/75a15c9b-1497-4616-bb67-f3b4e93bc925_768x1024.jpeg&quot;},{&quot;type&quot;:&quot;image/jpeg&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4671ce9f-c311-403f-a4a9-68f1af81549c_768x1024.jpeg&quot;}],&quot;caption&quot;:&quot;(left) Defcon in Vegas. (center) The three tallest towers in Shanghai. (right) A photo bomber in Chiang Mai.&quot;,&quot;alt&quot;:&quot;&quot;,&quot;staticGalleryImage&quot;:{&quot;type&quot;:&quot;image/png&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/20d0cc52-34a9-424f-8cbb-1b6658443063_1456x474.png&quot;}},&quot;isEditorNode&quot;:true}"></div><h3>Hobbies and Projects</h3><p>When it comes to hobbies, this year felt overshadowed by last year. There wasn't anything wrong; 2023 was just such a good year that it was hard to compete with. I started so many new things last year, so this year was mostly continuing what I started. I continued to do improv, albeit less due to other life changes. I got my fourth stripe in BJJ and went on a hiatus due to moving.</p><p>Something new that happened was the creation of <a href="https://www.dctechparties.com/">DC Tech Parties</a>. Washington DC doesn't have the same tech community that SF or NYC have, so I figured there was an opportunity to construct a social center of gravity. So a few DC friends and I began party hosting. As with all new endeavors, you expect it to be a dumpster fire. But instead, we ended up having multiple events with hundreds of people.</p><div class="image-gallery-embed" data-attrs="{&quot;gallery&quot;:{&quot;images&quot;:[{&quot;type&quot;:&quot;image/jpeg&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b1a26587-0e81-4cf2-8a27-ceb7c62e3b9a_768x1024.jpeg&quot;},{&quot;type&quot;:&quot;image/jpeg&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4e4c63ac-eb67-4f4d-9354-13fd1c763896_1024x768.jpeg&quot;},{&quot;type&quot;:&quot;image/jpeg&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8ad3f4ab-2952-4fbe-b810-c98f122957ee_768x1024.jpeg&quot;}],&quot;caption&quot;:&quot;(left) A custom tech-themed drink menu. (center) The DC Tech Parties venue. (right) The organizers behind DC Tech Parties.&quot;,&quot;alt&quot;:&quot;&quot;,&quot;staticGalleryImage&quot;:{&quot;type&quot;:&quot;image/png&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/eff20b65-3f37-4915-b894-eb38c079b91a_1456x474.png&quot;}},&quot;isEditorNode&quot;:true}"></div><p>On the piano front, I'm building a new repertoire. When I resumed playing last year, I focused on relearning pieces I had previously played. However, I no longer need a teacher; I can self-teach pretty much any song. It's quite liberating: I can teach myself all of the bangers. Earlier in the year, I taught myself Liebestraum No. 3 by Liszt, and after that, I learned Fantaisie-Impromptu by Chopin. Liebestraum is in a good-enough state (video below). While I've learned the entirety of Fantasie-Impromptu, it's not performance-ready quite yet.</p><div id="youtube2-CpAR5Wz4R3I" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;CpAR5Wz4R3I&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/CpAR5Wz4R3I?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><h2>What's next?</h2><p>Well this is embarrassing. I haven't thought that far. The end of the year was filled with one-off social events (including ones that I hosted), so it's pretty easy to get lost in the weeds. It'll be easier to mull things over in January.</p><p>I have two initial thoughts that don't offer much closure, unfortunately. First, my life baseline is pretty good, so it's pretty hard to complain. Maybe I should just enjoy the moment. Second, a lot of things require maintenance (BJJ, hosting, etc.) so I can't arbitrarily drop the good things I have in pursuit of shiny new conquests.</p><p>This is all a fancy way of saying that I have no clue what I'm doing.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!tN30!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3af858c-7933-4014-a626-3e3e69140ea2_2000x1500.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!tN30!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3af858c-7933-4014-a626-3e3e69140ea2_2000x1500.jpeg 424w, https://substackcdn.com/image/fetch/$s_!tN30!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3af858c-7933-4014-a626-3e3e69140ea2_2000x1500.jpeg 848w, https://substackcdn.com/image/fetch/$s_!tN30!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3af858c-7933-4014-a626-3e3e69140ea2_2000x1500.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!tN30!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3af858c-7933-4014-a626-3e3e69140ea2_2000x1500.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!tN30!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3af858c-7933-4014-a626-3e3e69140ea2_2000x1500.jpeg" width="2000" height="1500" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a3af858c-7933-4014-a626-3e3e69140ea2_2000x1500.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1500,&quot;width&quot;:2000,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!tN30!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3af858c-7933-4014-a626-3e3e69140ea2_2000x1500.jpeg 424w, https://substackcdn.com/image/fetch/$s_!tN30!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3af858c-7933-4014-a626-3e3e69140ea2_2000x1500.jpeg 848w, https://substackcdn.com/image/fetch/$s_!tN30!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3af858c-7933-4014-a626-3e3e69140ea2_2000x1500.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!tN30!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3af858c-7933-4014-a626-3e3e69140ea2_2000x1500.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">The back of my 2024 holiday card.</figcaption></figure></div><h2>Miscellaneous learnings</h2><ul><li><p>Showing up is literally half the battle. Showing up again is the other half. (This is especially important for me, since almost nothing in life seems to go well on the first try.)</p></li><li><p>Respect your social battery. I'm an introvert who can trick people into think I'm extroverted. But if I burn out my social battery, I'll end up paying with my health.</p></li><li><p>I'm actually neurotic as fuck whenever I experience cognitive dissonance. I suspect that's the case for most seemingly "emotionless" people.</p></li><li><p>Fear of rejection is worse than rejection. I'm pretty good at taking rejection, but I'm bad at putting myself at risk of rejection. Besides, my life is objectively too good to be sad about rejection.</p></li><li><p>Rumination is waste of time. You should be focused on the present or the future. Though rumination isn't the same as reflection or introspection. When examining the past, it must be in service of organizing your thoughts or forming a strategy for the future.</p></li><li><p>Power dynamics and market forces apply to most things. Changing your environment can flip those dynamics. For example, my thought process while apartment-hunting differed wildly by location. While in Manhattan, I kept asking myself "what can I tolerate?" But in NoVA, I got to be picky: there were too many good options.</p></li><li><p>Direct strategies usually beat out indirect ones. Boots on the ground. You learn much faster by trying something out, failing, and iterating. On the other hand, making grand plans tend to be a waste of time, since they usually get flushed down the toilet in lieu of real world data.</p></li><li><p>Never drink the Kool-Aid. This isn't a new learning, and I've included it again because I struggle to follow this.</p></li><li><p>Investing money into your external appearance is worth it. This not just limited to clothing and can include aspects such as your living situation.</p></li><li><p>Improv and party hosting are life changing. I'm happier. It's easier to talk to people. It's easier to make other people happy. It took me a year to realize this, and I'm including it because it's such a big deal.</p></li></ul>]]></content:encoded></item><item><title><![CDATA[Macbook setup 2024 update]]></title><description><![CDATA[How I set up a fresh laptop (revised 2024 edition).]]></description><link>https://www.liu.blog/p/mac-setup-2024</link><guid isPermaLink="false">https://www.liu.blog/p/mac-setup-2024</guid><dc:creator><![CDATA[Andrew Liu]]></dc:creator><pubDate>Fri, 12 Jul 2024 03:03:17 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/b9e81744-ab52-40c8-889a-db7d55e252c5_2000x2000.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><div class="image-link image2" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!1rl4!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe60d86a2-0762-4d57-b827-2ee4255ca1cf_2000x2000.jpeg 424w, https://substackcdn.com/image/fetch/$s_!1rl4!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe60d86a2-0762-4d57-b827-2ee4255ca1cf_2000x2000.jpeg 848w, https://substackcdn.com/image/fetch/$s_!1rl4!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe60d86a2-0762-4d57-b827-2ee4255ca1cf_2000x2000.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!1rl4!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe60d86a2-0762-4d57-b827-2ee4255ca1cf_2000x2000.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!1rl4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe60d86a2-0762-4d57-b827-2ee4255ca1cf_2000x2000.jpeg" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e60d86a2-0762-4d57-b827-2ee4255ca1cf_2000x2000.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!1rl4!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe60d86a2-0762-4d57-b827-2ee4255ca1cf_2000x2000.jpeg 424w, https://substackcdn.com/image/fetch/$s_!1rl4!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe60d86a2-0762-4d57-b827-2ee4255ca1cf_2000x2000.jpeg 848w, https://substackcdn.com/image/fetch/$s_!1rl4!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe60d86a2-0762-4d57-b827-2ee4255ca1cf_2000x2000.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!1rl4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe60d86a2-0762-4d57-b827-2ee4255ca1cf_2000x2000.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></div><figcaption class="image-caption">Photo by <a href="https://unsplash.com/@applefanboy?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit">AB</a> / <a href="https://unsplash.com/?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit">Unsplash</a></figcaption></figure></div><p>It's been about a year since I published my <a href="https://andrew.cloud/mac-setup/">laptop setup guide</a>. Since then, I've tweaked a few more settings and provisioned a few more laptops.</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;0d678c0f-2043-4f08-a410-c2ec549aa9fe&quot;,&quot;caption&quot;:&quot;In June 2023, Apple released the 15-inch version of the MacBook Air. I was due for a laptop upgrade, and it was the perfect form factor. It's surprising that they never had a \&quot;non-pro\&quot; laptop with a large screen size.&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;lg&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;How I set up a new MacBook&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:9212428,&quot;name&quot;:&quot;Andrew Liu&quot;,&quot;bio&quot;:null,&quot;photo_url&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/5c353352-4762-4d4b-8b9d-e6d3ce745326_340x340.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2023-07-03T02:08:39.000Z&quot;,&quot;cover_image&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/061b5157-48b7-4b07-98d3-a0f9a6f5993c_2000x1333.jpeg&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://woke.substack.com/p/mac-setup&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:157216098,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:0,&quot;comment_count&quot;:0,&quot;publication_id&quot;:null,&quot;publication_name&quot;:&quot;Andrew Liu's Blog&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e5f32c2-8769-436f-ba6e-1bf6ad755771_1280x1280.png&quot;,&quot;belowTheFold&quot;:false,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><h1>Native Settings</h1><p>Everything here is modified within the System Settings app.</p><ul><li><p><a href="https://support.apple.com/guide/mac-help/change-computers-local-hostname-mac-mchlp2322/mac">Change your laptop's hostname</a> to something unique. A templated name like <code>yourname-mbp</code> is bound to have namespace collisions.</p></li><li><p>Within the Keyboard section...</p><ul><li><p>Customize the modifier keys (<code>Keyboard Shortcuts &gt; Modifier Keys</code>). I remap the caps lock key to escape.</p></li><li><p>Go to <code>Text Replacements...</code> and remove all entries.</p></li></ul></li><li><p>Within the Control Center, set <code>Automatically hide and show the menu bar</code> to <code>Never</code>.</p></li><li><p>Within the Lock Screen section, set <code>Require password after sceen saver begins or display is turned off</code> to <code>Immediately</code>. This locks the laptop immediately if the lid closes.</p></li><li><p>Within the Appearance section...</p><ul><li><p>Set <code>Show scroll bars</code> to <code>Always</code> .</p></li><li><p>Set <code>Click on the scroll bar to</code> to <code>Jump to the spot that's clicked</code>.</p></li></ul></li><li><p>Within the Desktop &amp; Dock settings, set windows to minimize using the scale effect.</p></li><li><p>Customize the hot corners. Remove the quick note from the bottom right, and add the notification center to the top right. That way, if you're not using a trackpad, you can still easily pull up notifications.</p></li></ul><h1>Finder</h1><p>There are a bunch of finder settings. I loosely follow the steps outlined in <a href="https://www.youtube.com/watch?v=dVxMrVJ58as&amp;t=164s">this video</a>. Just give it a watch and follow along.</p><p>For reference, this is what my finder window looks like after it's been set up. You can compare to mine as reference.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!_3Ru!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3819401d-3489-4eab-a384-5886041cc259_1826x996.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!_3Ru!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3819401d-3489-4eab-a384-5886041cc259_1826x996.png 424w, https://substackcdn.com/image/fetch/$s_!_3Ru!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3819401d-3489-4eab-a384-5886041cc259_1826x996.png 848w, https://substackcdn.com/image/fetch/$s_!_3Ru!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3819401d-3489-4eab-a384-5886041cc259_1826x996.png 1272w, https://substackcdn.com/image/fetch/$s_!_3Ru!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3819401d-3489-4eab-a384-5886041cc259_1826x996.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!_3Ru!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3819401d-3489-4eab-a384-5886041cc259_1826x996.png" width="1826" height="996" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3819401d-3489-4eab-a384-5886041cc259_1826x996.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:996,&quot;width&quot;:1826,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!_3Ru!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3819401d-3489-4eab-a384-5886041cc259_1826x996.png 424w, https://substackcdn.com/image/fetch/$s_!_3Ru!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3819401d-3489-4eab-a384-5886041cc259_1826x996.png 848w, https://substackcdn.com/image/fetch/$s_!_3Ru!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3819401d-3489-4eab-a384-5886041cc259_1826x996.png 1272w, https://substackcdn.com/image/fetch/$s_!_3Ru!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3819401d-3489-4eab-a384-5886041cc259_1826x996.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">A screenshot of my default Finder window.</figcaption></figure></div><h1>Apps</h1><p>Most of the apps in the <a href="https://andrew.cloud/mac-setup/">previous blog post</a> have stayed the same. However, I have added some extras. I personally pay for all of them, but they have free versions that work great too.</p><ul><li><p><a href="https://aptonic.com/">Dropzone 4</a> to have a place on the menu bar to send items or do quick actions.</p></li><li><p><a href="https://coconut-flavour.com/coconutbattery/">Coconut Battery</a> to monitor battery health.</p></li><li><p><a href="https://apphousekitchen.com/">AlDente</a> to regulate battery charge.</p></li><li><p><a href="https://github.com/ther0n/UnnaturalScrollWheels">UnnaturalScrollWheels</a> to have proper trackpad and mouse scrolling at the same time.</p></li><li><p><a href="https://www.macbartender.com/">Bartender 5</a> to organize the menu bar.</p></li></ul><p>And that's it. You now have a perfectly functional MacBook!</p>]]></content:encoded></item><item><title><![CDATA[Hosting a Colab GPU runtime on Windows]]></title><description><![CDATA[How I set up a GPU-powered Python kernel (using a Windows machine in my basement).]]></description><link>https://www.liu.blog/p/jupyter</link><guid isPermaLink="false">https://www.liu.blog/p/jupyter</guid><dc:creator><![CDATA[Andrew Liu]]></dc:creator><pubDate>Sun, 31 Mar 2024 05:05:02 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/64affaeb-6273-400c-8794-16e12fc38dd4_2000x1478.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><div class="image-link image2" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jORn!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2efa1572-6288-4a5f-806a-4122238e4d1c_2000x1478.jpeg 424w, https://substackcdn.com/image/fetch/$s_!jORn!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2efa1572-6288-4a5f-806a-4122238e4d1c_2000x1478.jpeg 848w, https://substackcdn.com/image/fetch/$s_!jORn!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2efa1572-6288-4a5f-806a-4122238e4d1c_2000x1478.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!jORn!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2efa1572-6288-4a5f-806a-4122238e4d1c_2000x1478.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jORn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2efa1572-6288-4a5f-806a-4122238e4d1c_2000x1478.jpeg" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2efa1572-6288-4a5f-806a-4122238e4d1c_2000x1478.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!jORn!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2efa1572-6288-4a5f-806a-4122238e4d1c_2000x1478.jpeg 424w, https://substackcdn.com/image/fetch/$s_!jORn!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2efa1572-6288-4a5f-806a-4122238e4d1c_2000x1478.jpeg 848w, https://substackcdn.com/image/fetch/$s_!jORn!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2efa1572-6288-4a5f-806a-4122238e4d1c_2000x1478.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!jORn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2efa1572-6288-4a5f-806a-4122238e4d1c_2000x1478.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></div><figcaption class="image-caption">Photo by <a href="https://unsplash.com/@timgarifov?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit">Timur Garifov</a> / <a href="https://unsplash.com/?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit">Unsplash</a></figcaption></figure></div><p>The title's a mouthful. Let me explain:</p><ol><li><p>I want remote access to a Python kernel with GPU acceleration.</p></li><li><p>Renting GPU compute is expensive. (I'm just casually tinkering around.)</p></li><li><p>I have a physical GPU at home, BUT it's on a Windows desktop.</p></li></ol><p>So the question is how do I expose a GPU-powered Jupyter Notebook to a remote machine?</p><ul><li><p>The notebook must have GPU acceleration available.</p></li><li><p>The notebook must be remotely accessible.</p></li><li><p>My desktop must not get pwned.</p></li><li><p>Ideally the Windows host experiences minimal changes or side effects.</p></li></ul><p>After some tinkering, I ended up with an arrangement that checks all the boxes. The Windows machine hosts a Linux environment via <a href="https://learn.microsoft.com/en-us/windows/wsl/about">WSL</a>. The Linux environment installs <a href="https://tailscale.com/">Tailscale</a>, so my other machines can reach it. Then the Linux environment acts as a normal notebook server.</p><p>Here's how I set it up.</p><h2>Choosing the Host (WSL)</h2><p>We start with a standard Windows host machine. On Windows, we also have the option to use WSL or a virtual machine.</p><ul><li><p>Virtual machines do not support GPU passthrough (while the host is also using the GPU). This is a non-starter.</p></li><li><p>Windows is a yucky operating system. Let's prefer to avoid it.</p></li><li><p>Dual booting Linux is a possibility, but the Windows host would not be able to operate at the same time.</p></li><li><p>WSL supports GPU passthrough, but the networking aspect is complicated. However, all of this is solved by Tailscale. This is the preferred route.</p></li></ul><p><a href="https://ubuntu.com/desktop/wsl">Installing Ubuntu</a> (or any other distro) for WSL is pretty straightforward. Once you're on your Linux "machine," you can verify that it does indeed have GPU access.</p><div class="captioned-image-container"><figure><pre><code>&#10095; uname -r
5.15.146.1-microsoft-standard-WSL2
&#10095; nvidia-smi -L
GPU 0: NVIDIA GeForce GTX 1070</code></pre><figcaption class="image-caption">As you can see here, WSL has access to the host's GPU.</figcaption></figure></div><h2>Installing Tailscale</h2><p>For those unfamiliar with Tailscale, the simplest way I can describe is as <a href="https://tailscale.com/blog/how-tailscale-works">a VPN that just works</a>. You can reach any machine in the network, even if it's behind a NAT. That way, you don't arbitrarily expose your machine to the public Internet.</p><p>Installing Tailscale in WSL comes with <a href="https://tailscale.com/kb/1295/install-windows-wsl2#considerations">a few caveats</a> though. WSL does not come with <a href="https://askubuntu.com/a/1379567">Systemd enabled</a>, so many services will not work. Tailscale requires a daemon, for example. (We'll also want other services, such as SSH.) Fortunately, enabling Systemd is as simple as modifying a config file. In <code>/etc/wsl.conf</code>, set the configuration as such:</p><div class="captioned-image-container"><figure><pre><code>&#10095; sudo cat /etc/wsl.conf
[boot]
systemd=true</code></pre><figcaption class="image-caption">WSL doesn't have Systemd enabled by default.</figcaption></figure></div><p>Now you can <a href="https://tailscale.com/kb/1017/install">install Tailscale</a>. You'll also want to install additional dependencies:</p><ul><li><p><a href="https://www.youtube.com/watch?v=VjkE4dqdHX8">SSH for remote access</a> (and port forwarding) to the machine</p></li><li><p>Tmux to keep the WSL instance and Jupyter server running in the background</p></li></ul><div class="captioned-image-container"><figure><pre><code># Install SSH server and tmux.
sudo apt install openssh-server tmux

# Enable SSH.
sudo systemctl enable ssh
sudo system status ssh

# Install Tailscale and join the tailnet.
curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale up</code></pre><figcaption class="image-caption">Within WSL, you'll need to set up SSH, tmux, and Tailscale.</figcaption></figure></div><p>You'll want to configure SSH and Tailscale as necessary. After all of this, don't forget to reboot the WSL instance.</p><h2>Starting a Jupyter Server</h2><p>With all the dependencies set up, you can <a href="https://jupyter.org/install">set up Jupyter Lab</a> in your WSL instance. It's a matter of installing a single PyPI package:</p><div class="captioned-image-container"><figure><pre><code>pip install jupyterlab</code></pre><figcaption class="image-caption">Jupyter Lab is the only required PyPI package for now. You can install more later.</figcaption></figure></div><p>Python should come out of the box in the Ubuntu WSL distribution. You may want to install other packages, but that can be done later within the notebook itself.</p><p>You can now start a Jupyter server. Most flags aren't critical <a href="https://research.google.com/colaboratory/local-runtimes.html">despite the documentation</a>, but you will need to make sure the server is protected by a token, or else Colab won't be able to connect to it. Additionally, you'll need to set the IP address the server listens on. By default it'll listen on <code>localhost</code>, which prevents remote access.</p><ul><li><p>If you have the server listen on <code>0.0.0.0</code>, it will accept connections from any origin. Usually this is bad security practice, but since the WSL instance is not publicly accessible, it's the end of the world.</p></li><li><p>Alternatively, you can set it to <code>$(tailscale ip -4)</code>. That forces the incoming connection to come from within the tailnet. The downside to this approach is that you'll have to run port forwarding for Colab even if you're on the Windows host OS. (This is described in more detail later.)</p></li></ul><p>With all the nuances out of the way, here's the command you can copy and paste. Be sure to run it within a tmux session.</p><div class="captioned-image-container"><figure><pre><code># A few notes:
#
# 1) Do this within a tmux session. You can detach from it later.
# 2) You can alternatively hardcode "0.0.0.0" for the --ip flag.
# 3) You can unset --IdentityProvider.token, but don't leave it blank.
#
jupyter lab \
  --no-browser \
  --ip="$(tailscale ip -4)" \
  --IdentityProvider.token="image_some_custom_password_here"</code></pre><figcaption class="image-caption">This command will start the Jupyter server and make it available to other machines in the tailnet. Run it within a tmux session.</figcaption></figure></div><p>Once the server is active, you can detach from the tmux session. Be sure to keep the session alive, so the notebook server (and Tailscale connection) do not disappear.</p><h2>Connecting to Jupyter Lab</h2><p>Now we switch gears and move to another computer. Before doing so, take a note of the tailnet IP (<code>tailscale ip -4</code>) or hostname of the WSL instance.</p><p>From any remote machine, as long as its <a href="https://tailscale.com/kb/1347/installation">part of the tailnet</a>, it can simply access Jupyter Lab. Just visit <code>http://wsl-tailscale-hostname-or-ip:8888/lab</code>. Pretty simple!</p><h2>Connecting to Colab</h2><blockquote><p><strong>Warning:</strong> Don't do this for any arbitrary Colab notebook running untrusted code. Remember that you're giving it <strong>remote code execution</strong> privileges on your machine.</p></blockquote><p>Using the Jupyter server as a Colab backend is a bit more involved. Colab only supports <code>localhost</code> as a local runtime host for some reason. So we'll have to port forward. (That's why SSH was a requirement when setting up WSL. Also, if you're on the Windows host, you can skip this step if the server is listening on <code>0.0.0.0</code>.) In a terminal on your remote machine, forward the port for the notebook server:</p><div class="captioned-image-container"><figure><pre><code>ssh wsl-tailscale-hostname-or-ip -L 8888:localhost:8888</code></pre><figcaption class="image-caption">Since Colab requires a localhost URL, you need to port forward.</figcaption></figure></div><p>Within a <a href="https://colab.google/">Colab notebook</a>, select the option to <code>Connect to a local runtime</code> and then put the local URL with the forwarded port. You'll also need the auth token from earlier.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!GfzD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb479ac7-374b-483b-909b-34da53d1d23a_1106x808.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!GfzD!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb479ac7-374b-483b-909b-34da53d1d23a_1106x808.png 424w, https://substackcdn.com/image/fetch/$s_!GfzD!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb479ac7-374b-483b-909b-34da53d1d23a_1106x808.png 848w, https://substackcdn.com/image/fetch/$s_!GfzD!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb479ac7-374b-483b-909b-34da53d1d23a_1106x808.png 1272w, https://substackcdn.com/image/fetch/$s_!GfzD!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb479ac7-374b-483b-909b-34da53d1d23a_1106x808.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!GfzD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb479ac7-374b-483b-909b-34da53d1d23a_1106x808.png" width="1106" height="808" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/db479ac7-374b-483b-909b-34da53d1d23a_1106x808.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:808,&quot;width&quot;:1106,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!GfzD!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb479ac7-374b-483b-909b-34da53d1d23a_1106x808.png 424w, https://substackcdn.com/image/fetch/$s_!GfzD!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb479ac7-374b-483b-909b-34da53d1d23a_1106x808.png 848w, https://substackcdn.com/image/fetch/$s_!GfzD!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb479ac7-374b-483b-909b-34da53d1d23a_1106x808.png 1272w, https://substackcdn.com/image/fetch/$s_!GfzD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb479ac7-374b-483b-909b-34da53d1d23a_1106x808.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">In Colab, select the local runtime option and put in the URL of the Jupyter server.</figcaption></figure></div><p>If the connection is successful, you should be able to interact with the kernel from your Jupyter server. Now's a good time to install any additional PyPI packages that you'd want, since a fresh WSL environment will not have much by default. Otherwise, it's identical to hosted runtimes, except you can keep the kernel alive indefinitely.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!HWdW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22a18595-8ea1-4681-b390-0ffac9e2bb8e_1642x768.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!HWdW!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22a18595-8ea1-4681-b390-0ffac9e2bb8e_1642x768.png 424w, https://substackcdn.com/image/fetch/$s_!HWdW!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22a18595-8ea1-4681-b390-0ffac9e2bb8e_1642x768.png 848w, https://substackcdn.com/image/fetch/$s_!HWdW!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22a18595-8ea1-4681-b390-0ffac9e2bb8e_1642x768.png 1272w, https://substackcdn.com/image/fetch/$s_!HWdW!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22a18595-8ea1-4681-b390-0ffac9e2bb8e_1642x768.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!HWdW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22a18595-8ea1-4681-b390-0ffac9e2bb8e_1642x768.png" width="1642" height="768" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/22a18595-8ea1-4681-b390-0ffac9e2bb8e_1642x768.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:768,&quot;width&quot;:1642,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!HWdW!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22a18595-8ea1-4681-b390-0ffac9e2bb8e_1642x768.png 424w, https://substackcdn.com/image/fetch/$s_!HWdW!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22a18595-8ea1-4681-b390-0ffac9e2bb8e_1642x768.png 848w, https://substackcdn.com/image/fetch/$s_!HWdW!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22a18595-8ea1-4681-b390-0ffac9e2bb8e_1642x768.png 1272w, https://substackcdn.com/image/fetch/$s_!HWdW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22a18595-8ea1-4681-b390-0ffac9e2bb8e_1642x768.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">The Colab local runtime is WSL-based and has GPU acceleration.</figcaption></figure></div><p>That's it! You're done! You can now use your own GPU on Colab from any remote machine.</p>]]></content:encoded></item><item><title><![CDATA[2023 Year in Review]]></title><description><![CDATA[Reflections from the year of 2023.]]></description><link>https://www.liu.blog/p/2023</link><guid isPermaLink="false">https://www.liu.blog/p/2023</guid><dc:creator><![CDATA[Andrew Liu]]></dc:creator><pubDate>Tue, 23 Jan 2024 03:44:33 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/3c901eea-1fe4-4afa-a7f8-bf0275ab7afb_2000x1333.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><div class="image-link image2" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!g6w_!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5f40d74-4084-4f1b-ab0d-e7fa45279c9f_2000x1333.jpeg 424w, https://substackcdn.com/image/fetch/$s_!g6w_!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5f40d74-4084-4f1b-ab0d-e7fa45279c9f_2000x1333.jpeg 848w, https://substackcdn.com/image/fetch/$s_!g6w_!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5f40d74-4084-4f1b-ab0d-e7fa45279c9f_2000x1333.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!g6w_!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5f40d74-4084-4f1b-ab0d-e7fa45279c9f_2000x1333.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!g6w_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5f40d74-4084-4f1b-ab0d-e7fa45279c9f_2000x1333.jpeg" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b5f40d74-4084-4f1b-ab0d-e7fa45279c9f_2000x1333.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!g6w_!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5f40d74-4084-4f1b-ab0d-e7fa45279c9f_2000x1333.jpeg 424w, https://substackcdn.com/image/fetch/$s_!g6w_!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5f40d74-4084-4f1b-ab0d-e7fa45279c9f_2000x1333.jpeg 848w, https://substackcdn.com/image/fetch/$s_!g6w_!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5f40d74-4084-4f1b-ab0d-e7fa45279c9f_2000x1333.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!g6w_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5f40d74-4084-4f1b-ab0d-e7fa45279c9f_2000x1333.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></div><figcaption class="image-caption">Photo by <a href="https://unsplash.com/@kajtek?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit">Kajetan Sumila</a> / <a href="https://unsplash.com/?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit">Unsplash</a></figcaption></figure></div><p>2023 was the best year I've had in a while. It's not even comparable when looking at the amount of objective change I've gone through. Over the span of 12 months, here are some notable life changes:</p><ul><li><p>I began improv/standup comedy and performed on stage multiple times.</p></li><li><p>I took up Brazilian Jiu-Jitsu and can fight without panicking.</p></li><li><p>I resumed playing the piano after a decade long hiatus.</p></li><li><p>I began hosting local mixer parties.</p></li><li><p>I visited China for the first time in 20 years.</p></li><li><p>I snowboarded my first black trail.</p></li></ul><p>Most of the credit goes to the fact that I was intentionally leaving my comfort zone. If you stay in your comfort zone, you won't grow. It's not what you want in the long term. Therefore, you must always seek to remain right outside the cusp of your comfort zone at all times. It's like progressive overload applied outside of the weight room. It doesn't have to be much, nor does it have to be done in a specific way. Just don't live life on autopilot.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!32DU!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8d64a48-c7ab-43cf-b6dd-ad48729988f5_2000x1500.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!32DU!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8d64a48-c7ab-43cf-b6dd-ad48729988f5_2000x1500.jpeg 424w, https://substackcdn.com/image/fetch/$s_!32DU!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8d64a48-c7ab-43cf-b6dd-ad48729988f5_2000x1500.jpeg 848w, https://substackcdn.com/image/fetch/$s_!32DU!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8d64a48-c7ab-43cf-b6dd-ad48729988f5_2000x1500.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!32DU!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8d64a48-c7ab-43cf-b6dd-ad48729988f5_2000x1500.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!32DU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8d64a48-c7ab-43cf-b6dd-ad48729988f5_2000x1500.jpeg" width="2000" height="1500" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b8d64a48-c7ab-43cf-b6dd-ad48729988f5_2000x1500.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1500,&quot;width&quot;:2000,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;The front of my 2023 holiday card.&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="The front of my 2023 holiday card." title="The front of my 2023 holiday card." srcset="https://substackcdn.com/image/fetch/$s_!32DU!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8d64a48-c7ab-43cf-b6dd-ad48729988f5_2000x1500.jpeg 424w, https://substackcdn.com/image/fetch/$s_!32DU!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8d64a48-c7ab-43cf-b6dd-ad48729988f5_2000x1500.jpeg 848w, https://substackcdn.com/image/fetch/$s_!32DU!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8d64a48-c7ab-43cf-b6dd-ad48729988f5_2000x1500.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!32DU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8d64a48-c7ab-43cf-b6dd-ad48729988f5_2000x1500.jpeg 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">The front of my 2023 holiday card.</figcaption></figure></div><h2>Recap of the year</h2><p>Late in 2022, I resolved to stop being a tech bro maximalist. I'm a good software engineer. My career was never a problem. It's not my failure mode. But looking ahead, I'd still be living a pretty shit life.</p><p>After leaving the Bay Area, it's easy to see that people who are a bit too into tech can be a bit...boring. I didn't want to be like that. If work is your personality, that's no fun. Why not try to be more interesting?</p><p>So that was the theme of 2023. Reject tech bro maximalism. Keep yourself outside of your comfort zone however possible. Optimize for being a more interesting person.</p><p>(Since this is a public blog post, a lot of the spicier details and events are omitted. They're pretty important. While I'd like to say I'm an open book, but I'm not going arbitrarily broadcast everything into the public. So if you'd like to hear more, <a href="https://andrew.cloud/contact/">hit me up in private</a>.)</p><h3>BJJ</h3><p>In 2022, I fell down a bit of a UFC rabbit hole. It's a fascinating question: what's the "meta" of human unarmed combat? Turns out it's a combination of striking and grappling (which makes up modern MMA). Not all martial arts are created equal.</p><p>So I started <a href="https://en.wikipedia.org/wiki/Muay_Thai">Muay Thai</a> in late 2022 to explore the fighting rabbit hole. Since I didn't want brain damage, I quit Muay Thai and started <a href="https://en.wikipedia.org/wiki/Brazilian_jiu-jitsu">Brazilian Jiu-Jitsu</a> in early 2023. Muay Thai is a form of striking, while BJJ is a form of grappling. Instead of getting punched in the face, I can get choked out instead.</p><p>I really enjoy BJJ. It's something I've kept up throughout the year and up to the present. It really does change you. I recall going to the gym at 7 am and being pinned to the ground for minutes on end. It gets hard to breathe. You feel like you're literally being squashed. At the end of class, your ears are ringing and you feel like throwing up. And the next day, you rinse and repeat.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!BTjj!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15ac28a5-8ab3-4cf2-84e7-dbc680267222_1920x1440.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!BTjj!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15ac28a5-8ab3-4cf2-84e7-dbc680267222_1920x1440.jpeg 424w, https://substackcdn.com/image/fetch/$s_!BTjj!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15ac28a5-8ab3-4cf2-84e7-dbc680267222_1920x1440.jpeg 848w, https://substackcdn.com/image/fetch/$s_!BTjj!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15ac28a5-8ab3-4cf2-84e7-dbc680267222_1920x1440.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!BTjj!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15ac28a5-8ab3-4cf2-84e7-dbc680267222_1920x1440.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!BTjj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15ac28a5-8ab3-4cf2-84e7-dbc680267222_1920x1440.jpeg" width="1920" height="1440" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/15ac28a5-8ab3-4cf2-84e7-dbc680267222_1920x1440.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1440,&quot;width&quot;:1920,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Rolling in Brazilian Jiu-Jitsu.&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Rolling in Brazilian Jiu-Jitsu." title="Rolling in Brazilian Jiu-Jitsu." srcset="https://substackcdn.com/image/fetch/$s_!BTjj!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15ac28a5-8ab3-4cf2-84e7-dbc680267222_1920x1440.jpeg 424w, https://substackcdn.com/image/fetch/$s_!BTjj!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15ac28a5-8ab3-4cf2-84e7-dbc680267222_1920x1440.jpeg 848w, https://substackcdn.com/image/fetch/$s_!BTjj!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15ac28a5-8ab3-4cf2-84e7-dbc680267222_1920x1440.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!BTjj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15ac28a5-8ab3-4cf2-84e7-dbc680267222_1920x1440.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Not pictured: me getting my ass kicked.</figcaption></figure></div><p>But the change has been priceless. There's a level of peace that you earn. You know your day literally can't get worse. You know that in case shit really goes down, you can remain calm.</p><h3>Comedy</h3><p>Back in 2018, when I was at Google, there was a program where you could have 1:1 time with a random director for career advice. The chat wasn't useful. But I remember the director mentioning if I should try out an improv class, which caused me to get a mini panic attack from the very <em>thought</em> of trying such a class.</p><p>Five years later, I take my first improv class. It really isn't that bad. In fact, it's the most fun I've had as adult in a good while. Rarely do we get the opportunity to just play around. I recommend every adult try out an improv class at least once. It's not like you're performing or acting. A beginner class has you playing some simple games in private. It's a ton of fun.</p><p>I'm the type of person to overthink. I'm quite introspective and tend to be in my head too much. Improv actively punishes that behavior. You have to be living in the moment. Thinking and doing nothing is worse than doing something stupid. It's carried over into my life as a whole. Take conversations, for example. Not everything you say has to be insightful. It's better to keep the flow going.</p><p>Improv went so well that I decided to continue that journey and tried doing standup comedy. Standup and improv are pretty different, even though they're cut from the same cloth. When doing standup comedy, you have to write a lot. You need to rehearse your performance. For improv, the less you prepare, the better.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!F89G!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d559cc9-dcd9-45be-91c0-9817db00d9f5_1280x960.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!F89G!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d559cc9-dcd9-45be-91c0-9817db00d9f5_1280x960.jpeg 424w, https://substackcdn.com/image/fetch/$s_!F89G!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d559cc9-dcd9-45be-91c0-9817db00d9f5_1280x960.jpeg 848w, https://substackcdn.com/image/fetch/$s_!F89G!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d559cc9-dcd9-45be-91c0-9817db00d9f5_1280x960.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!F89G!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d559cc9-dcd9-45be-91c0-9817db00d9f5_1280x960.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!F89G!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d559cc9-dcd9-45be-91c0-9817db00d9f5_1280x960.jpeg" width="1280" height="960" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8d559cc9-dcd9-45be-91c0-9817db00d9f5_1280x960.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:960,&quot;width&quot;:1280,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;The green room of DC Improv.&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="The green room of DC Improv." title="The green room of DC Improv." srcset="https://substackcdn.com/image/fetch/$s_!F89G!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d559cc9-dcd9-45be-91c0-9817db00d9f5_1280x960.jpeg 424w, https://substackcdn.com/image/fetch/$s_!F89G!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d559cc9-dcd9-45be-91c0-9817db00d9f5_1280x960.jpeg 848w, https://substackcdn.com/image/fetch/$s_!F89G!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d559cc9-dcd9-45be-91c0-9817db00d9f5_1280x960.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!F89G!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d559cc9-dcd9-45be-91c0-9817db00d9f5_1280x960.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Most comedy clubs have a green room where comedians hang out before the show. It's called a green room because the room is green.</figcaption></figure></div><p>After writing a few bits and bombing a few open mics, I ended up doing a few performances as well. Here are a few neat observations about standup comedy:</p><ul><li><p>It's one of the most honest forms of communication: you can't really hide laughter, nor can you fake laughter. So it's clear if you're funny or not.</p></li><li><p>Comedy writing has a clear purpose: control the audience's emotion. It's not like some work presentation where you're supposed to convey useful information. If anything, the audience losing brain cells is a sign of success.</p></li><li><p>Even though you're supposed to be "funny," that does not mean you don't take the craft seriously. Open mics are for A/B testing your jokes. You need to kill your ego and notice if your material sucks. I've seen plenty of delusional comedians who think they're funny and don't improve.</p></li></ul><p>Throughout the year, I did more improv and standup classes. At my core, I'm an introvert. But I've become pretty damn good at pretending to be extroverted.</p><p>(If you want to see videos of me performing, hit me up.)</p><h3>Snowboarding</h3><p>This season, I began snowboarding. The previous season, I tried skiing, but it wasn't for me. I didn't grow up as an athletic kid, so the self-preservation instinct made skiing difficult. I was too afraid of falling to learn.</p><p>Instead, I decided to give snowboarding a shot. Why? Because there was a higher learning curve. The first few days of snowboarding suck, but once it "clicks," it becomes a lot better. If you can do a green trail, you can survive a black trail. Whereas with skiing, moving up in skill will be a constant battle.</p><p>My plan was to bite the bullet and grind out the early learning stages of snowboarding. It was an investment of sorts: I have a few bad days at the beginning, and then I'll be fine afterward. It paid off. For my first few days at the slopes, my focus was on improving rather than having fun. Once I was able to do S-turns, then I really began to enjoy snowboarding. There's something to be said about sacrificing fun for intentional improvement: in the long term, you maximize your fun.</p><h3>Piano</h3><p>You've probably heard the stereotypes: the immigrant parents make their kid learn piano. The kid grinds outs the piano for 12 or so years throughout his childhood. He gets pretty good, but he grows to hate the piano. Once college comes, he quits and doesn't touch the instrument ever again.</p><p>That was me about a decade ago. I've always felt it to be a shame that I threw away such a talent. Learning the piano ate up a bunch of time and money. Halfway through 2023, I bought a keyboard and started practicing independently. It's pretty nice; I haven't forgotten all that much. But this time it's on my terms: I'm playing for my own enjoyment.</p><div id="youtube2-oPxQfUImLBM" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;oPxQfUImLBM&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/oPxQfUImLBM?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><h3>Other hobbies</h3><p>So far I've only described the hits when it comes to trying out new hobbies. Early 2023 was definitely more of an exploration phase where I tried out multiple things. Not everything stuck. For example, I tried other things like woodworking, volunteering, and I got my concealed carry license. None of those were super interesting, so I wasn't consistent with them. It seems like my "trinity" of hobbies are BJJ, comedy, and piano. And maybe snowboarding during the winter. This may change in the future, but they've stuck for the time being.</p><p>It seems that I've done a good strategy for figuring out what I like: try out everything, do more of what sticks. People tend to have natural affinities towards different activities. A good test seems to be to ask what you'd enjoy doing alone. Some activities you'd do if a friend does. For other activities, you're the one dragging your friends. And once they quit, you're still happy doing it by yourself.</p><h3>Hosting cocktail parties</h3><p>The first ~2 years after Covid were a waste. I left the Bay Area and returned to the DMV, and most of my time was spent journaling. Otherwise I have very little to show for it. It feels bad grappling with the fact that you've thrown away years of your life.</p><p>I had since moved to my own place, so it was time to touch grass and bring people together. By pure coincidence I stumbled upon <a href="https://party.pro/book/">a book about hosting cocktail parties</a> while listening to a podcast. I agreed many of the book's theses, so I started to implement them.</p><p>Throughout the year, I hosted multiple mixer-styled cocktail parties. You know how you have multiple friend groups that don't know each other? They're all invited to the same event. Throw in some name tags, icebreakers, and alcohol, and you've got yourself a party.</p><p>A few pro tips when it comes to hosting parties:</p><ul><li><p>Yes, you SHOULD intermingle your various friend groups. Being a connector is good for the world.</p></li><li><p>People are both nice and lonely. Usually they appreciate that you think of them, and they're happy to support you. Stop thinking otherwise.</p></li><li><p>No offense, but most people are lazy bums. So you have to be the change you wish to see in the world. Waiting doesn't work.</p></li><li><p>Before a party, make sure the food, drinks, and seating are all uniformly distributed across the room. People tend to gravitate towards the food or seats, so you don't want people to crowd towards (or avoid) any singular area.</p></li><li><p>When hosting parties, only a few things really matter (e.g. marketing and name tags). Otherwise, let the people self organize and have fun. They're adults, and you should treat them as such.</p></li></ul><p>As a self-proclaimed shy introvert, I've become surprisingly good at making new friends and talking to random people. Most things in life are learnable skills, and hosting lots of events is starting to make people think that I'm a social butterfly.</p><h3>Travel</h3><p>I don't get the romanticization of travel. Personally, I'm a bit of a homebody. The biggest value I get from traveling is the reminder that the world moves on, regardless of whether or not you keep up. Throughout 2023, I left my home base a total of 5 times:</p><ol><li><p>Early in the year, I took a vacation to Amsterdam and London. That was cool, I guess.</p></li><li><p>Shortly afterward, I visited the Bay Area for work (and snowboarding).</p></li><li><p>A few months later, there was a work offsite in Vegas. I normally go to Vegas annually for DEF CON, so it wasn't that novel.</p></li><li><p>Pretty much right after that offsite, I returned to Vegas for <a href="https://defcon.org/html/defcon-31/dc-31-index.html">DEF CON 31</a>. I'm in Las Vegas way too much...</p></li><li><p>Towards the end of the year, I took a trip to China. That was the interesting one. It was the first time I'd been to the country in 20 years.</p></li></ol><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!0k8L!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F238c9094-85d8-413e-b316-e1de6561a587_2000x1500.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!0k8L!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F238c9094-85d8-413e-b316-e1de6561a587_2000x1500.jpeg 424w, https://substackcdn.com/image/fetch/$s_!0k8L!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F238c9094-85d8-413e-b316-e1de6561a587_2000x1500.jpeg 848w, https://substackcdn.com/image/fetch/$s_!0k8L!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F238c9094-85d8-413e-b316-e1de6561a587_2000x1500.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!0k8L!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F238c9094-85d8-413e-b316-e1de6561a587_2000x1500.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!0k8L!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F238c9094-85d8-413e-b316-e1de6561a587_2000x1500.jpeg" width="2000" height="1500" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/238c9094-85d8-413e-b316-e1de6561a587_2000x1500.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1500,&quot;width&quot;:2000,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Bazaar Meat in Las Vegas&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Bazaar Meat in Las Vegas" title="Bazaar Meat in Las Vegas" srcset="https://substackcdn.com/image/fetch/$s_!0k8L!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F238c9094-85d8-413e-b316-e1de6561a587_2000x1500.jpeg 424w, https://substackcdn.com/image/fetch/$s_!0k8L!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F238c9094-85d8-413e-b316-e1de6561a587_2000x1500.jpeg 848w, https://substackcdn.com/image/fetch/$s_!0k8L!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F238c9094-85d8-413e-b316-e1de6561a587_2000x1500.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!0k8L!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F238c9094-85d8-413e-b316-e1de6561a587_2000x1500.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">The Alligator Hunters dining at the finest establishment in all of Las Vegas.</figcaption></figure></div><p>It might be a stretch to say that the China trip was life changing, but it really did give me an appreciation of the culture. Two decades ago, it was a third world country. Over the years, it's modernized. The cities are arguably nicer than America's major cities.</p><p>Chinese and American culture are wildly different from each other. I don't think most Americans understand how the Chinese think (and vice versa). American was created because the people value freedom and independence: that makes them good at innovation. China was built up from centuries of war: the people will happily conform to a powerful government in return for the promise of prosperity. That makes China good at copying what works and scaling it up.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!4u7K!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd940bf4c-bd1e-4c49-9848-e04833e20719_2000x900.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!4u7K!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd940bf4c-bd1e-4c49-9848-e04833e20719_2000x900.jpeg 424w, https://substackcdn.com/image/fetch/$s_!4u7K!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd940bf4c-bd1e-4c49-9848-e04833e20719_2000x900.jpeg 848w, https://substackcdn.com/image/fetch/$s_!4u7K!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd940bf4c-bd1e-4c49-9848-e04833e20719_2000x900.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!4u7K!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd940bf4c-bd1e-4c49-9848-e04833e20719_2000x900.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!4u7K!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd940bf4c-bd1e-4c49-9848-e04833e20719_2000x900.jpeg" width="2000" height="900" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d940bf4c-bd1e-4c49-9848-e04833e20719_2000x900.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:900,&quot;width&quot;:2000,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Tiananmen Square&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Tiananmen Square" title="Tiananmen Square" srcset="https://substackcdn.com/image/fetch/$s_!4u7K!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd940bf4c-bd1e-4c49-9848-e04833e20719_2000x900.jpeg 424w, https://substackcdn.com/image/fetch/$s_!4u7K!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd940bf4c-bd1e-4c49-9848-e04833e20719_2000x900.jpeg 848w, https://substackcdn.com/image/fetch/$s_!4u7K!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd940bf4c-bd1e-4c49-9848-e04833e20719_2000x900.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!4u7K!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd940bf4c-bd1e-4c49-9848-e04833e20719_2000x900.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Taking pictures with our favorite comrade.</figcaption></figure></div><p>Their "app ecosystem" is a pretty neat case study: the WeChat and Alipay duopoly shows how a single app can do everything for you. It's pretty convenient. I suspect Instagram, Twitter, or Apple should race to become the WeChat of America. All of them need to get their peer-to-peer payments story down first. That makes the app practically useful. And Threads should have been a tab in the Instagram app. Since it's its own app, nobody's using it anymore.</p><h3>Work</h3><p>Ah yes, work. While life was happening, Stairwell was going through its own adventures.</p><p>I'm going to be vague with this. We lost some good people. We lost some bad people. We also gained some good people. It was a turbulent year. And now the company is in its best shape since I joined.</p><p>Now's actually a really good time to join. If you're interested in working at a security startup (and you're competent), hit me up.</p><h2>What's next?</h2><p>If you received a holiday card from me, you'd know that this blog post was written pretty late. As of the time of writing (late-ish January), I just got back from travel, so I haven't had time to think too deeply about what I hope to accomplish in 2024.</p><p>They're not well-fleshed out, but here are a few thoughts:</p><ul><li><p>Everything that I began in 2023, I should continue into 2024. It shouldn't be a one-and-done deal. Keep up the trajectory.</p></li><li><p>Ever since I started sparring in BJJ, I've been neglecting the weight room. I currently weigh 140 pounds. Back in SF I was sustainably in the 160's and was an absolute unit. I need to recover my strength and muscle.</p></li><li><p>Stairwell's in a state where success is guaranteed, now I can think about growing instead of putting out fires. My career role model is Kelsey Hightower; emulating his journey would be amazing.</p></li><li><p>I may be moving to a city next year. There's only so much you can do in the Maryland suburbs. I feel like I've pulled most of the levers that I can.</p></li></ul><p>To be honest, I'm a bit worried that it's all downhill from here. What can I accomplish in 2024 that would make it an equal or better year than 2023? I do feel some pressure in this regard, and I don't have a game plan for that.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!h_cL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83450114-cf53-4c14-8d10-c55c4f47efc0_2000x1500.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!h_cL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83450114-cf53-4c14-8d10-c55c4f47efc0_2000x1500.jpeg 424w, https://substackcdn.com/image/fetch/$s_!h_cL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83450114-cf53-4c14-8d10-c55c4f47efc0_2000x1500.jpeg 848w, https://substackcdn.com/image/fetch/$s_!h_cL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83450114-cf53-4c14-8d10-c55c4f47efc0_2000x1500.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!h_cL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83450114-cf53-4c14-8d10-c55c4f47efc0_2000x1500.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!h_cL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83450114-cf53-4c14-8d10-c55c4f47efc0_2000x1500.jpeg" width="2000" height="1500" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/83450114-cf53-4c14-8d10-c55c4f47efc0_2000x1500.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1500,&quot;width&quot;:2000,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;The back of my 2023 holiday card.&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="The back of my 2023 holiday card." title="The back of my 2023 holiday card." srcset="https://substackcdn.com/image/fetch/$s_!h_cL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83450114-cf53-4c14-8d10-c55c4f47efc0_2000x1500.jpeg 424w, https://substackcdn.com/image/fetch/$s_!h_cL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83450114-cf53-4c14-8d10-c55c4f47efc0_2000x1500.jpeg 848w, https://substackcdn.com/image/fetch/$s_!h_cL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83450114-cf53-4c14-8d10-c55c4f47efc0_2000x1500.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!h_cL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83450114-cf53-4c14-8d10-c55c4f47efc0_2000x1500.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">The back of my 2023 holiday card.</figcaption></figure></div><p>On that note, let's wrap up this blog post with random wisdom that I gathered throughout the year.</p><h2>Miscellaneous learnings</h2><p>These are in no particular order. Some of these might be repeated.</p><h3>On the self</h3><ul><li><p>You must intentionally leave your comfort zone or else you won't grow. At all times, you should be living right outside the cusp of your comfort zone.</p></li><li><p>Most worthwhile results come in the long term, but honestly you can see pretty cool results over the span of a year.</p></li><li><p>Your ego tends to be the biggest blocker to happiness. Get rejected a lot: you'll realize it's not a big deal. Get your ass kicked: it'll end your physical insecurities. Humiliate yourself on stage: you'll learn how big your balls truly are.</p></li><li><p>Don't be afraid to delegate. You can only do so much as an individual. If I want to keep moving forward, I'll need some help. Most of my friends are supportive: I should take them up on their offers to help.</p></li><li><p>Without sounding like too much of a douchebag, I move past the change curve really fast. It might be because I'm intentional about being outside my comfort zone. But I can work past things in a month or two, when it would take other people years.</p></li></ul><h3>On socializing</h3><ul><li><p>The point of human conversation is to give the other person good vibes. It is not to conduct high-bandwidth information transfer.</p></li><li><p>You don't need to understand everything to make use of it. Not everything needs a rigorous definition. For example, I don't know what exactly "good vibes" or being funny entails. Yet I'll know it when I see it.</p></li><li><p>The best way to get your message across is to be funny and tell stories. Humans struggle to pay attention, let alone retain information.</p></li><li><p>Overthinking is the best way to ruin a conversation. Just say what's on your mind. Don't be afraid to attempt to joke around or sound stupid. Usually, these are of low consequence and high upside.</p></li><li><p>Being a connector is both the easiest and the best way to create social value. Humans are lonely and love it that you're thinking of them. Bringing people together will generate a lot of happiness in the world.</p></li><li><p>When meeting new people, be sure to exchange contact information before parting ways. (Both phone number AND Instagram.) You may regret not doing so.</p></li><li><p>If people aren't interested in talking, respect them. Don't try to win them over. Read the room. Move on.</p></li><li><p>Don't procrastinate on organizing social events. When things depend on other people, time is of the essence. Don't be the blocker, and give people ample buffer time.</p></li></ul><h3>On human nature</h3><ul><li><p>Random people tend to like it when you talk to them. So talk to as many people as possible. Just find some random excuse to talk. Or don't. Either works. Again, humans are lonely and actually would love to make a new friend.</p></li><li><p>Friendships are formed by frequent, casual, ad hoc interactions. So scheduling a monthly calendar event to catch up isn't effective. It kills the vibe. Not everybody may be in the mood to talk. It's better to randomly call or text. Or randomly invite them to events like dinner on the same day.</p></li><li><p>Women tend to have a higher baseline of social awareness than men. So the issue with most men is that they might be too dense (i.e. insufficient social awareness). On the other hand, the failure mode for women is that they become "divas" (i.e. they're way too particular about their social sensitivities).</p></li></ul><h3>On conflict</h3><ul><li><p>Do not shy away from conflict, especially if you're intimidated. Not everything is black and white, but some things are. There are some people who are too stupid to see nuance. Don't entertain such stupidity.</p></li><li><p>Learning how to fight gives you outsized benefits to your confidence and calmness. Your body language even changes. It makes all the difference knowing that you have a backup plan if all hell breaks loose.</p></li></ul>]]></content:encoded></item><item><title><![CDATA[The Distributed Pez Dispenser]]></title><description><![CDATA[How to get things done without being bogged down by bad planning.]]></description><link>https://www.liu.blog/p/pez-dispenser</link><guid isPermaLink="false">https://www.liu.blog/p/pez-dispenser</guid><dc:creator><![CDATA[Andrew Liu]]></dc:creator><pubDate>Fri, 14 Jul 2023 19:44:12 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/eef207a0-60fa-4174-835a-f36fb02aaeeb_2000x1333.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><div class="image-link image2" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!3-Mb!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad59b4d8-0d82-4717-80de-543acd43b128_2000x1333.jpeg 424w, https://substackcdn.com/image/fetch/$s_!3-Mb!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad59b4d8-0d82-4717-80de-543acd43b128_2000x1333.jpeg 848w, https://substackcdn.com/image/fetch/$s_!3-Mb!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad59b4d8-0d82-4717-80de-543acd43b128_2000x1333.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!3-Mb!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad59b4d8-0d82-4717-80de-543acd43b128_2000x1333.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!3-Mb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad59b4d8-0d82-4717-80de-543acd43b128_2000x1333.jpeg" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ad59b4d8-0d82-4717-80de-543acd43b128_2000x1333.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!3-Mb!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad59b4d8-0d82-4717-80de-543acd43b128_2000x1333.jpeg 424w, https://substackcdn.com/image/fetch/$s_!3-Mb!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad59b4d8-0d82-4717-80de-543acd43b128_2000x1333.jpeg 848w, https://substackcdn.com/image/fetch/$s_!3-Mb!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad59b4d8-0d82-4717-80de-543acd43b128_2000x1333.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!3-Mb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad59b4d8-0d82-4717-80de-543acd43b128_2000x1333.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></div><figcaption class="image-caption">Photo by <a href="https://unsplash.com/@ninjason?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit">Jason Leung</a> / <a href="https://unsplash.com/?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit">Unsplash</a></figcaption></figure></div><blockquote><p>My whole system of life is keeping at it. The task of life is not to see clearly in the distance but to do the task at hand.<br><br>- Charlie Munger</p></blockquote><h3>The Problem</h3><p>Let's talk about planning and prioritization.</p><ul><li><p>People who trust big, fancy Gantt charts are destined to be disappointed. Why? Because anything beyond the short-term is too volatile for rigid planning to be useful.</p></li><li><p>If you're unwilling or unable to quickly change the plans as needed, that means you're not adaptable. Eventually, you'll end up working on the wrong thing. Arguably, that's worse than doing nothing!</p></li><li><p>An inability to account for (and adapt to) real-life volatility is a sign of bad planning. A plan that assumes a perfect world is a bad plan.</p></li></ul><h3>The Solution</h3><p>Well, that's just fantastic. Should we scrap all our plans and yolo it? Not quite. Enter the "distributed Pez dispenser" model of planning. It's basically gradient descent:</p><ol><li><p>Gather everything you may want to work on in the foreseeable future.</p></li><li><p>Put it in a fuzzy priority queue. This is our "distributed Pez dispenser."</p></li><li><p>Pop from the top of this Pez dispenser. The "next" item to work should be clear. It's the most important thing at the given moment. So focus on that. Do it well.</p></li><li><p>Add to, consume from, or rebuild the Pez dispenser as circumstances shift.</p></li></ol><h3>Properties of the Pez Dispenser</h3><p>The rest of the contents of the Pez dispenser should be a "gray box." That means you don't really know its exact contents, but you should have a rough idea. A "rough idea" means you have two things:</p><ul><li><p>A north star of what must be done.</p></li><li><p>A general sense of what may change.</p></li></ul><p>You don't need to over-index on anything beyond what's next, because it's subject to change. Actually, it's unlikely that it <em>won't</em> change, given the volatility of real life. Notice how this model accounts for such volatility while allowing us to make incremental progress. The next step should always be clear, and you should never be married to anything after that.</p><p>This concept applies to life in general as well. Plans change, but that doesn't mean you don't make plans. Rather, avoid rigid plans. Have adjustable plans, and execute the current step well. Then rinse and repeat.</p>]]></content:encoded></item><item><title><![CDATA[How I set up a new MacBook]]></title><description><![CDATA[How I set up a fresh laptop.]]></description><link>https://www.liu.blog/p/mac-setup</link><guid isPermaLink="false">https://www.liu.blog/p/mac-setup</guid><dc:creator><![CDATA[Andrew Liu]]></dc:creator><pubDate>Mon, 03 Jul 2023 02:08:39 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/061b5157-48b7-4b07-98d3-a0f9a6f5993c_2000x1333.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><div class="image-link image2" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ezM9!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16d67d98-2909-479b-bc77-47ed7fdfb74a_2000x1333.jpeg 424w, https://substackcdn.com/image/fetch/$s_!ezM9!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16d67d98-2909-479b-bc77-47ed7fdfb74a_2000x1333.jpeg 848w, https://substackcdn.com/image/fetch/$s_!ezM9!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16d67d98-2909-479b-bc77-47ed7fdfb74a_2000x1333.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!ezM9!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16d67d98-2909-479b-bc77-47ed7fdfb74a_2000x1333.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ezM9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16d67d98-2909-479b-bc77-47ed7fdfb74a_2000x1333.jpeg" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/16d67d98-2909-479b-bc77-47ed7fdfb74a_2000x1333.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ezM9!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16d67d98-2909-479b-bc77-47ed7fdfb74a_2000x1333.jpeg 424w, https://substackcdn.com/image/fetch/$s_!ezM9!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16d67d98-2909-479b-bc77-47ed7fdfb74a_2000x1333.jpeg 848w, https://substackcdn.com/image/fetch/$s_!ezM9!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16d67d98-2909-479b-bc77-47ed7fdfb74a_2000x1333.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!ezM9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16d67d98-2909-479b-bc77-47ed7fdfb74a_2000x1333.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></div><figcaption class="image-caption">Photo by <a href="https://unsplash.com/@isaacmartin?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit">Isaac Martin</a> / <a href="https://unsplash.com/?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit">Unsplash</a></figcaption></figure></div><p>In June 2023, Apple released the 15-inch version of the MacBook Air. I was due for a laptop upgrade, and it was the perfect form factor. It's surprising that they never had a "non-pro" laptop with a large screen size.</p><p>I was inspired by Swyx's ritual of <a href="https://www.swyx.io/new-mac-setup">documenting his Mac setup</a>, so I decided to do the same. This is how I set up a fresh MacBook.</p><h1>Native Settings</h1><p>Upon creating an account on a new Apple laptop, you'll want to log in to your Apple account. Afterward, you'll have free rein over your machine.</p><ul><li><p>Go to System Settings, set the trackpad sensitivity to its maximum value, and make trackpad taps register as clicks. I'm so used to this workflow nowadays that anything else feels so slow and will drive me insane.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!qWQW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99bfc94f-86be-48d8-881a-246d1d79cc54_1810x1630.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!qWQW!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99bfc94f-86be-48d8-881a-246d1d79cc54_1810x1630.png 424w, https://substackcdn.com/image/fetch/$s_!qWQW!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99bfc94f-86be-48d8-881a-246d1d79cc54_1810x1630.png 848w, https://substackcdn.com/image/fetch/$s_!qWQW!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99bfc94f-86be-48d8-881a-246d1d79cc54_1810x1630.png 1272w, https://substackcdn.com/image/fetch/$s_!qWQW!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99bfc94f-86be-48d8-881a-246d1d79cc54_1810x1630.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!qWQW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99bfc94f-86be-48d8-881a-246d1d79cc54_1810x1630.png" width="1810" height="1630" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/99bfc94f-86be-48d8-881a-246d1d79cc54_1810x1630.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1630,&quot;width&quot;:1810,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!qWQW!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99bfc94f-86be-48d8-881a-246d1d79cc54_1810x1630.png 424w, https://substackcdn.com/image/fetch/$s_!qWQW!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99bfc94f-86be-48d8-881a-246d1d79cc54_1810x1630.png 848w, https://substackcdn.com/image/fetch/$s_!qWQW!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99bfc94f-86be-48d8-881a-246d1d79cc54_1810x1630.png 1272w, https://substackcdn.com/image/fetch/$s_!qWQW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99bfc94f-86be-48d8-881a-246d1d79cc54_1810x1630.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Max out the trackpad sensitivity and enable "Tap to click." You'll be so much faster.</figcaption></figure></div><ul><li><p>Go to the control center settings to configure the menu bar. You'll want to show sound levels and battery percentage: both are super useful. On the other hand, hide the spotlight icon.</p></li><li><p>For the "Internet Accounts," I use Google for all my contacts. Sign in with Google and then sync only contacts.</p></li><li><p>Hide the Dock and remove any hide delay. You can make the Dock automatically hide in System Settings, but you'll need to use the command line to remove the Dock's hide delay. The command to do so is below:</p></li></ul><pre><code>defaults write com.apple.dock autohide-time-modifier -int 0; killall Dock</code></pre><h1>Tier 1 Downloads</h1><p>Configuring the native laptop settings allows you to operate the laptop without going insane. So far we haven't downloaded anything yet. The next items we download are "prerequisites" for doing almost anything, so we set them up first.</p><ul><li><p>Download <a href="https://www.google.com/chrome/">Google Chrome</a> and sign in with your Google Account. I have Chrome sync everything, so most of the legwork is done automatically.</p></li><li><p>Download and sign in to <a href="https://1password.com/downloads/mac/">1Password</a>. It's necessary to authenticate with almost every single account I use. (I only memorize the credentials necessary to bootstrap my way to accessing 1Password.)</p></li><li><p>Enable the SSH agent in 1Password. That allows you to use SSH keys stored in the password manager. Do not generate a new SSH key on the local machine.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!PW3f!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4901350c-7502-4e5c-adc5-58bc9b5277e6_1940x1500.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!PW3f!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4901350c-7502-4e5c-adc5-58bc9b5277e6_1940x1500.png 424w, https://substackcdn.com/image/fetch/$s_!PW3f!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4901350c-7502-4e5c-adc5-58bc9b5277e6_1940x1500.png 848w, https://substackcdn.com/image/fetch/$s_!PW3f!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4901350c-7502-4e5c-adc5-58bc9b5277e6_1940x1500.png 1272w, https://substackcdn.com/image/fetch/$s_!PW3f!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4901350c-7502-4e5c-adc5-58bc9b5277e6_1940x1500.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!PW3f!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4901350c-7502-4e5c-adc5-58bc9b5277e6_1940x1500.png" width="1940" height="1500" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4901350c-7502-4e5c-adc5-58bc9b5277e6_1940x1500.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1500,&quot;width&quot;:1940,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!PW3f!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4901350c-7502-4e5c-adc5-58bc9b5277e6_1940x1500.png 424w, https://substackcdn.com/image/fetch/$s_!PW3f!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4901350c-7502-4e5c-adc5-58bc9b5277e6_1940x1500.png 848w, https://substackcdn.com/image/fetch/$s_!PW3f!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4901350c-7502-4e5c-adc5-58bc9b5277e6_1940x1500.png 1272w, https://substackcdn.com/image/fetch/$s_!PW3f!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4901350c-7502-4e5c-adc5-58bc9b5277e6_1940x1500.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">I store my SSH key in 1Password. You can securely move it around as a result.</figcaption></figure></div><ul><li><p>Download <a href="https://iterm2.com/">iTerm2</a>. The Native terminal sucks. This allows us to peacefully operate on the command line. I know there are other modern terminals, but this one works well for me.</p></li></ul><h1>Command Line</h1><blockquote><h4><a href="https://andrew.cloud/dev-setup/">My Developer Setup (with Vim, Tmux, and Zsh)</a></h4><p>The details around my command line setup.</p></blockquote><p>Fortunately, I've <a href="https://andrew.cloud/dev-setup/">automated the vast majority of my command line setup</a> in a <a href="https://github.com/MrPickles/dotfiles">git repository</a>. As a result, I won't talk too much about the details. But you can read the <a href="https://andrew.cloud/dev-setup/">blog post</a> if you're interested. (It's a bit outdated though.)</p><p>All you need to do is run a one-line command:</p><pre><code>curl https://raw.githubusercontent.com/MrPickles/dotfiles/refs/heads/master/scripts/dotfiles.sh | bash</code></pre><p>The dotfiles setup script will not set up <a href="https://brew.sh/">Homebrew</a>, since that requires a new terminal session. You will need to do that manually.</p><p>With Homebrew installed, you'll want to install several other packages. I have them <a href="https://github.com/MrPickles/dotfiles/blob/7f521c4b8cbbc4d7a0fd3f3f39b8479c7e844c6e/scripts/macos.sh">in a script</a>, but they're subject to change. Afterward, open up Neovim, and it will install a few other packages (like <code>fzf</code>) automatically.</p><p>Finally, import the <a href="https://github.com/MrPickles/dotfiles/blob/7f521c4b8cbbc4d7a0fd3f3f39b8479c7e844c6e/config/iTerm.json">existing iTerm settings</a>. It'll set up the font and colors. You'll still need to install the <a href="https://github.com/romkatv/powerlevel10k#meslo-nerd-font-patched-for-powerlevel10k">recommended font for Powerlevel10k</a>.</p><h1>Tier 2 Downloads</h1><p>The next few downloads are pretty core to operating my machine. They're not mandatory, which is why I don't install them immediately.</p><ul><li><p><a href="https://www.alfredapp.com/">Alfred</a>: You'll want to disable Spotlight indexing and remove the default Spotlight shortcut. Then you can let Alfred use that shortcut.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Jd3V!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F306b147e-ef5e-42a9-ae70-79012132ca0c_1810x1630.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Jd3V!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F306b147e-ef5e-42a9-ae70-79012132ca0c_1810x1630.png 424w, https://substackcdn.com/image/fetch/$s_!Jd3V!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F306b147e-ef5e-42a9-ae70-79012132ca0c_1810x1630.png 848w, https://substackcdn.com/image/fetch/$s_!Jd3V!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F306b147e-ef5e-42a9-ae70-79012132ca0c_1810x1630.png 1272w, https://substackcdn.com/image/fetch/$s_!Jd3V!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F306b147e-ef5e-42a9-ae70-79012132ca0c_1810x1630.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Jd3V!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F306b147e-ef5e-42a9-ae70-79012132ca0c_1810x1630.png" width="1810" height="1630" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/306b147e-ef5e-42a9-ae70-79012132ca0c_1810x1630.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1630,&quot;width&quot;:1810,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!Jd3V!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F306b147e-ef5e-42a9-ae70-79012132ca0c_1810x1630.png 424w, https://substackcdn.com/image/fetch/$s_!Jd3V!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F306b147e-ef5e-42a9-ae70-79012132ca0c_1810x1630.png 848w, https://substackcdn.com/image/fetch/$s_!Jd3V!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F306b147e-ef5e-42a9-ae70-79012132ca0c_1810x1630.png 1272w, https://substackcdn.com/image/fetch/$s_!Jd3V!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F306b147e-ef5e-42a9-ae70-79012132ca0c_1810x1630.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Disable the Spotlight shortcut, or else Alfred won't be able to use it.</figcaption></figure></div><ul><li><p><a href="https://folivora.ai/">BetterTouchTool</a>: Even if you don't have custom keyboard shortcuts, the drag-to-window-snap functionality is great on its own.</p></li><li><p><a href="https://licenses.cleanshot.com/download/cleanshotx">Cleanshot X</a>: Make sure it replaces any existing screenshot shortcuts. It's better than the native screenshot tool.</p></li><li><p><a href="https://tailscale.com/download/">Tailscale</a>: Once you connect your new machine to the Tailnet, it allows you to be part of a network with your other machines without the hassle of setting up a VPN.</p></li></ul><h1>Tier 3 Downloads</h1><p>The remaining downloads don't inhibit the normal operation of the machine itself. I do consider these the minimal set of programs that I use on a consistent basis, so I install them all immediately after wrapping up my tier 2 downloads.</p><p>They're listed in alphabetical order:</p><ul><li><p><a href="https://adguard.com/en/welcome.html">AdGuard</a>: This blocks ads that uBlock Origin misses.</p></li><li><p><a href="https://cron.com/download/macos">Cron</a>: Notion's calendar app.</p></li><li><p><a href="https://discord.com/download">Discord</a>: For chatting with gaming communities.</p></li><li><p><a href="https://www.dropbox.com/install">Dropbox</a>: Syncs my files.</p></li><li><p><a href="https://keepingyouawake.app/">KeepingYouAwake</a>: Keeps the laptop awake.</p></li><li><p><a href="https://keybase.io/download">Keybase</a>: For basic crypto operations.</p></li><li><p><a href="https://obsidian.md/">Obsidian</a>: All my notes are here.</p></li><li><p><a href="https://signal.org/en/download/">Signal</a>: My preferred chat app.</p></li><li><p><a href="https://slack.com/downloads/mac">Slack</a>: For work-related communications.</p></li><li><p><a href="https://apps.apple.com/app/spark-email-app-by-readdle/id1176895641">Spark</a>: An email client. Be sure to get Spark 2. Spark 3 sucks.</p></li><li><p><a href="https://www.spotify.com/us/download/mac/">Spotify</a>: For listening to music.</p></li><li><p><a href="https://streaksapp.com/">Streaks</a>: My habit tracker.</p></li><li><p><a href="https://todoist.com/downloads">Todoist</a>: My to-do list.</p></li><li><p><a href="https://www.whatsapp.com/download">WhatsApp</a>: For chatting with Android users and people living in third-world countries (same thing).</p></li><li><p><a href="https://www.wechat.com/">WeChat</a>: For chatting with Chinese relatives.</p></li></ul><h1>Wrapping Up</h1><ul><li><p>Be sure to log in to various accounts as necessary. This includes both websites on the browser and the recently downloaded apps.</p></li><li><p>Register any license keys as necessary. Most apps have a trial period, so there's plenty of time to do this. I store all of my license keys in 1Password.</p></li><li><p>Clean up the apps on the Dock, if you haven't already.</p></li><li><p>Be sure to revoke any old machine credentials as necessary. For example, you might want to remove old machines from Tailscale and Keybase.</p></li></ul><p>Cool! You're done. Enjoy the new laptop. &#128579;</p>]]></content:encoded></item><item><title><![CDATA[Preparing for Your First Ski Trip]]></title><description><![CDATA[Ski season is coming up. Here are my recommendations for people getting started.]]></description><link>https://www.liu.blog/p/skiing</link><guid isPermaLink="false">https://www.liu.blog/p/skiing</guid><dc:creator><![CDATA[Andrew Liu]]></dc:creator><pubDate>Wed, 14 Dec 2022 18:40:15 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/ef27505f-c16a-4ea3-8f67-3cb2de57cd6c_2000x1333.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><div class="image-link image2" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Zl4s!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf817c1c-1198-43f5-a504-3b5724c1cd52_2000x1333.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Zl4s!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf817c1c-1198-43f5-a504-3b5724c1cd52_2000x1333.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Zl4s!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf817c1c-1198-43f5-a504-3b5724c1cd52_2000x1333.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Zl4s!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf817c1c-1198-43f5-a504-3b5724c1cd52_2000x1333.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Zl4s!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf817c1c-1198-43f5-a504-3b5724c1cd52_2000x1333.jpeg" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/bf817c1c-1198-43f5-a504-3b5724c1cd52_2000x1333.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Zl4s!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf817c1c-1198-43f5-a504-3b5724c1cd52_2000x1333.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Zl4s!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf817c1c-1198-43f5-a504-3b5724c1cd52_2000x1333.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Zl4s!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf817c1c-1198-43f5-a504-3b5724c1cd52_2000x1333.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Zl4s!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf817c1c-1198-43f5-a504-3b5724c1cd52_2000x1333.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></div><figcaption class="image-caption">Photo by <a href="https://unsplash.com/@joanoger?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit">Joan Oger</a> / <a href="https://unsplash.com/?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit">Unsplash</a></figcaption></figure></div><p>Ski season is coming up. Unless you prepare beforehand, you won't be in a state where you can actually do any skiing or snowboarding. Here are my recommendations for people getting started.</p><h2>Required Gear</h2><p>Skiing is expensive. You'll need a fair amount of equipment. Fortunately, a lot of this consists of fixed costs. So grab out your credit card and pull up Amazon. Most of the gear can be found pretty easily with a <em>"&lt;item name&gt; snowboarding"</em> query on Amazon. You don't need to be creative; usually, the first result works great.</p><h3>You probably already have these</h3><ul><li><p><strong>Winter jacket:</strong> Just a generic winter jacket.</p></li><li><p><strong>Gloves or mittens:</strong> Make these that these are waterproof. The cloth-based gloves aren't waterproof, nor will they do an effective job of keeping your hands warm.</p></li></ul><h3>Buy these</h3><ul><li><p><strong>Thermals or long johns:</strong> These don't have to be skin-tight. Your goal is to wear more layers in order to provide additional insulation.</p></li><li><p><strong>Long winter socks:</strong> These should go up to the calves (at least) and should be higher than your ski shoes/snowboarding boots.</p></li><li><p><strong>Snow pants:</strong> These will be pretty stretchy since you'll be fitting them <em>over</em> your ski shoes/snowboarding boots. So don't be surprised if they feel a bit large at first.</p></li><li><p><strong>Ski goggles:</strong> This one's self-explanatory. They should be large enough to fit over glasses, but I still recommend my myopic friends wear contact lenses.</p></li><li><p><strong>Helmet:</strong> The proper helmets will have a strap in the back to attach your goggles. For the best protection, I recommend getting a helmet that's <a href="https://mipsprotection.com/">MIPS certified</a>. They will be a lot more expensive than normal helmets, but I guess you decide how much your brain cells are worth. (Though if you're only going to be on the bunny slopes, it may not be a big deal.)</p></li><li><p><strong>Gaiter or balaclava:</strong> Also known as a "ski mask," these are key for blocking your face from wind and debris. Plus it insulates your head. You may also want one of these if you plan to rob a bank.</p></li><li><p><strong>[Snowboarding only] Butt pads:</strong> When snowboarding, expect to fall on your ass a lot. So I recommend getting some armor to prevent you from hurting your butt. (Unless you're into that kind of stuff.)</p></li><li><p><strong>[Snowboarding only] Knee pads:</strong> In a similar vein, expect to fall forward as well. Your knees will take repeated punishment, so having some armor there is a game-changer.</p></li><li><p><strong>[Snowboarding only] Wrist guards:</strong> Also when falling forward, humans will reflexively put their hands out to "break" the fall. This is the worst thing you can do. If you fall forward, hug yourself and try to land on your forearms. You want to distribute the force over your body. Otherwise, that's how you break your wrists. But in such a case, wrist guards may save you a lot of misery. (Note that I personally don't use wrist guards. They tend not to fit well with gloves.)</p></li></ul><h3>Rent these</h3><p>The renting portion is relatively self-explanatory. If going on a day trip, rent the actual equipment:</p><ul><li><p><strong>Skis, poles, and ski shoes</strong></p></li><li><p><strong>Snowboard and snowboarding boots</strong></p></li></ul><p>Expect to pay $50-100 to rent the gear for a day. Some resorts may provide a helmet as part of the rental bundle. I'd advise against buying the main equipment for the first few seasons, as you haven't formed a preference for what specific types of skis/snowboards you like.</p><p>If you forget to buy some of the recommended items, the resort will likely have them for sale or rent. But be aware that the prices will be marked up a lot. So save your money and do a better job of preparing.</p><p>In general, depending on how many days you plan to go to the resort, it may make sense to rent at a local shop, rather than renting from the resort. Pricing will be better, but there will also be an expectation of a longer-term rental. You'll have to do the math yourself for those situations. For day trips, don't waste your time; just rent from the resort.</p><h2>Other Considerations</h2><h3>Resort logistics</h3><ul><li><p>Ski resorts local to the DMV area include <a href="https://www.libertymountainresort.com/">Liberty</a> and <a href="https://www.skiwhitetail.com/">Whitetail</a>. These can be around an hour's drive and easily fit into a day trip.</p></li><li><p>Expect to pay around $200 per day. That's around $100 for a day pass and $100 for rental equipment. You may incur other expenses throughout the day, such as paying for food and lessons.</p></li><li><p>If you end up going for multiple days in a season, it's far more economical to buy a <a href="https://www.epicpass.com/">season pass</a>. The last time I did the math, the break-even point was around 10 trips or so.</p></li><li><p>I recommend setting up all of these logistics as early as possible since walk-in passes/rentals aren't guaranteed (and prices go up over time).</p></li></ul><h3>Skiing vs snowboarding</h3><p>Do you go skiing or snowboarding? They all have their pros and cons. Though if you've done neither and only plan to spend <em>one day</em>, I recommend you go skiing.</p><div class="captioned-image-container"><figure><div class="image-link image2" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!i9HO!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4574b0c4-6e80-43ae-a558-3592296d5e30_1502x324.png 424w, https://substackcdn.com/image/fetch/$s_!i9HO!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4574b0c4-6e80-43ae-a558-3592296d5e30_1502x324.png 848w, https://substackcdn.com/image/fetch/$s_!i9HO!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4574b0c4-6e80-43ae-a558-3592296d5e30_1502x324.png 1272w, https://substackcdn.com/image/fetch/$s_!i9HO!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4574b0c4-6e80-43ae-a558-3592296d5e30_1502x324.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!i9HO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4574b0c4-6e80-43ae-a558-3592296d5e30_1502x324.png" width="1456" height="314" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4574b0c4-6e80-43ae-a558-3592296d5e30_1502x324.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:314,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:78320,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!i9HO!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4574b0c4-6e80-43ae-a558-3592296d5e30_1502x324.png 424w, https://substackcdn.com/image/fetch/$s_!i9HO!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4574b0c4-6e80-43ae-a558-3592296d5e30_1502x324.png 848w, https://substackcdn.com/image/fetch/$s_!i9HO!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4574b0c4-6e80-43ae-a558-3592296d5e30_1502x324.png 1272w, https://substackcdn.com/image/fetch/$s_!i9HO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4574b0c4-6e80-43ae-a558-3592296d5e30_1502x324.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></div></figure></div><p>Before skiing or snowboarding, consider watching some tutorial videos (<a href="https://www.youtube.com/playlist?list=PLC502BC8CCA9BB32D">skiing</a>, <a href="https://www.youtube.com/watch?v=lpx2kH96L_A">snowboarding</a>) so you aren't taken completely by surprise. You can also take lessons, I've found that trial-and-error after watching tutorials tends to be more effective.</p><p><strong>EDIT:</strong> I found a better tutorial for skiing. Watch <a href="https://www.youtube.com/watch?v=lJjDovqcieg">this one</a> instead.</p><h3>Additional supplies</h3><ul><li><p>Bringing your own food is optional since there are cafes at the resort. Though it's not a bad idea to have snacks and water in the car.</p></li><li><p>Consider bringing sunscreen. Though it's not the end of the world if you're covered up.</p></li><li><p>Ski helmets will have ear flaps to insulate your ears, so it's possible to safely wear Airpods and listen to music while going down the slopes. But if you're reading this blog post, maybe you should focus on staying alive instead.</p></li></ul>]]></content:encoded></item><item><title><![CDATA[Defcon 30 Recon Village CTF Write-up]]></title><description><![CDATA[The write-up for challenges in the Recon Village CTF from Defcon 30.]]></description><link>https://www.liu.blog/p/dc30-writeup</link><guid isPermaLink="false">https://www.liu.blog/p/dc30-writeup</guid><dc:creator><![CDATA[Andrew Liu]]></dc:creator><pubDate>Wed, 17 Aug 2022 15:21:00 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/41c5a0e5-aeec-48e1-a6fd-c8c8abf25bd5_1152x544.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><div class="image-link image2" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!p0pT!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2da39f6a-dd3e-4f35-8402-1059b921b6da_1152x544.jpeg 424w, https://substackcdn.com/image/fetch/$s_!p0pT!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2da39f6a-dd3e-4f35-8402-1059b921b6da_1152x544.jpeg 848w, https://substackcdn.com/image/fetch/$s_!p0pT!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2da39f6a-dd3e-4f35-8402-1059b921b6da_1152x544.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!p0pT!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2da39f6a-dd3e-4f35-8402-1059b921b6da_1152x544.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!p0pT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2da39f6a-dd3e-4f35-8402-1059b921b6da_1152x544.jpeg" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2da39f6a-dd3e-4f35-8402-1059b921b6da_1152x544.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!p0pT!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2da39f6a-dd3e-4f35-8402-1059b921b6da_1152x544.jpeg 424w, https://substackcdn.com/image/fetch/$s_!p0pT!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2da39f6a-dd3e-4f35-8402-1059b921b6da_1152x544.jpeg 848w, https://substackcdn.com/image/fetch/$s_!p0pT!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2da39f6a-dd3e-4f35-8402-1059b921b6da_1152x544.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!p0pT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2da39f6a-dd3e-4f35-8402-1059b921b6da_1152x544.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></div><figcaption class="image-caption">The awards ceremony at Defcon 30.</figcaption></figure></div><p>Last week at <a href="https://defcon.org/html/defcon-30/dc-30-index.html">Defcon 30</a>, some friends and I attempted the <a href="https://reconvillage.org/">Recon Village CTF</a>. While spending most of Friday grinding out a CTF in a hotel room wasn't my original plan, it turned out to be a lot of fun.</p><p>After a rather late night, we ended up solving most of the challenges and got first place in the competition. This is the write-up for the CTF's challenges.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!P_wX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d7c0d8f-16c9-4504-ac11-863ee4a6162d_2322x1942.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!P_wX!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d7c0d8f-16c9-4504-ac11-863ee4a6162d_2322x1942.png 424w, https://substackcdn.com/image/fetch/$s_!P_wX!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d7c0d8f-16c9-4504-ac11-863ee4a6162d_2322x1942.png 848w, https://substackcdn.com/image/fetch/$s_!P_wX!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d7c0d8f-16c9-4504-ac11-863ee4a6162d_2322x1942.png 1272w, https://substackcdn.com/image/fetch/$s_!P_wX!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d7c0d8f-16c9-4504-ac11-863ee4a6162d_2322x1942.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!P_wX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d7c0d8f-16c9-4504-ac11-863ee4a6162d_2322x1942.png" width="2000" height="1673" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3d7c0d8f-16c9-4504-ac11-863ee4a6162d_2322x1942.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1673,&quot;width&quot;:2000,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;CTF Scoreboard&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="CTF Scoreboard" title="CTF Scoreboard" srcset="https://substackcdn.com/image/fetch/$s_!P_wX!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d7c0d8f-16c9-4504-ac11-863ee4a6162d_2322x1942.png 424w, https://substackcdn.com/image/fetch/$s_!P_wX!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d7c0d8f-16c9-4504-ac11-863ee4a6162d_2322x1942.png 848w, https://substackcdn.com/image/fetch/$s_!P_wX!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d7c0d8f-16c9-4504-ac11-863ee4a6162d_2322x1942.png 1272w, https://substackcdn.com/image/fetch/$s_!P_wX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d7c0d8f-16c9-4504-ac11-863ee4a6162d_2322x1942.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">We're the "alligator hunters." We came up with that name because two nights ago, we ate dinner at a restaurant with alligator heads plastered over the walls.</figcaption></figure></div><h2>CTF Challenges</h2><blockquote><p>&#128161; Some of these OSINT challenges involve real people. As a result, parts of this write-up will be censored to protect their privacy. This blog post is for educational purposes only, and <strong>we do not endorse the usage of these tactics to research private individuals</strong>. Please don't dox people or otherwise be a creep.</p></blockquote><h3>Jerlean's 54th Birthday</h3><blockquote><p>Jerlean was in Vegas for their 54th birthday recently. Which hotel did they stay at?</p></blockquote><p>Our natural instinct was to start Googling for someone named Jerlean, but Google didn't return anything relevant. We then tried to find Jerlean on Facebook, but that didn't bear fruit either. Turns out Instagram was the key.</p><p>By querying "vegas birthday" on Instagram and scrolling down, you'll eventually bump into the following picture:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!F6Z2!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c3715f0-de7d-4178-a057-2ea57691c721_829x611.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!F6Z2!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c3715f0-de7d-4178-a057-2ea57691c721_829x611.png 424w, https://substackcdn.com/image/fetch/$s_!F6Z2!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c3715f0-de7d-4178-a057-2ea57691c721_829x611.png 848w, https://substackcdn.com/image/fetch/$s_!F6Z2!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c3715f0-de7d-4178-a057-2ea57691c721_829x611.png 1272w, https://substackcdn.com/image/fetch/$s_!F6Z2!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c3715f0-de7d-4178-a057-2ea57691c721_829x611.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!F6Z2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c3715f0-de7d-4178-a057-2ea57691c721_829x611.png" width="829" height="611" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2c3715f0-de7d-4178-a057-2ea57691c721_829x611.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:611,&quot;width&quot;:829,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Happy birthday, Jerlean!&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Happy birthday, Jerlean!" title="Happy birthday, Jerlean!" srcset="https://substackcdn.com/image/fetch/$s_!F6Z2!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c3715f0-de7d-4178-a057-2ea57691c721_829x611.png 424w, https://substackcdn.com/image/fetch/$s_!F6Z2!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c3715f0-de7d-4178-a057-2ea57691c721_829x611.png 848w, https://substackcdn.com/image/fetch/$s_!F6Z2!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c3715f0-de7d-4178-a057-2ea57691c721_829x611.png 1272w, https://substackcdn.com/image/fetch/$s_!F6Z2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c3715f0-de7d-4178-a057-2ea57691c721_829x611.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Next year, I bet we'll have to do TikTok searches for OSINT...</figcaption></figure></div><p>It's an ad with no textual references to Jerlean, but you can glean all of the data from the photo. If you notice the post's location, you'll see that this was posted in <strong>New York-New York</strong>.</p><h3>Spammy Email Domain</h3><blockquote><p>On 11 August, what was the primary email domain from which spam was reported as coming from 185.129.62.62 and 107.189.28.253 (two bot IPs)?</p></blockquote><p>To figure out the domains associated with the IP addresses, we looked up the addresses in a <a href="https://www.stopforumspam.com/ipcheck/185.129.62.62">forum spam database</a>. The first IP address had a fair bit of activity on August 11.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!_HRr!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F708c8840-412e-4527-84eb-cdc7938397c7_1194x877.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!_HRr!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F708c8840-412e-4527-84eb-cdc7938397c7_1194x877.png 424w, https://substackcdn.com/image/fetch/$s_!_HRr!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F708c8840-412e-4527-84eb-cdc7938397c7_1194x877.png 848w, https://substackcdn.com/image/fetch/$s_!_HRr!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F708c8840-412e-4527-84eb-cdc7938397c7_1194x877.png 1272w, https://substackcdn.com/image/fetch/$s_!_HRr!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F708c8840-412e-4527-84eb-cdc7938397c7_1194x877.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!_HRr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F708c8840-412e-4527-84eb-cdc7938397c7_1194x877.png" width="1194" height="877" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/708c8840-412e-4527-84eb-cdc7938397c7_1194x877.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:877,&quot;width&quot;:1194,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Forum spam results for the bot IPs&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Forum spam results for the bot IPs" title="Forum spam results for the bot IPs" srcset="https://substackcdn.com/image/fetch/$s_!_HRr!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F708c8840-412e-4527-84eb-cdc7938397c7_1194x877.png 424w, https://substackcdn.com/image/fetch/$s_!_HRr!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F708c8840-412e-4527-84eb-cdc7938397c7_1194x877.png 848w, https://substackcdn.com/image/fetch/$s_!_HRr!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F708c8840-412e-4527-84eb-cdc7938397c7_1194x877.png 1272w, https://substackcdn.com/image/fetch/$s_!_HRr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F708c8840-412e-4527-84eb-cdc7938397c7_1194x877.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Interestingly enough, the other IP didn't have as much useful information.</figcaption></figure></div><p>If you look at the emails sent on that date, you'll notice that the most common domain seems to be <code>hiroyuki4010.yoshito33.inwebmail.fun</code>.</p><h3>Wedding in Costa Rica</h3><blockquote><p>Wanting to remain anonymous online, discreetly named 'Phonenumber' from Costa Rica has a friend who works for Facebook. When did his friend get married?</p></blockquote><p>Since we were searching for a person and his friends, we turned to Facebook. By querying for people named <code>Phonenumber</code>, you'll find an account that's based in Costa Rica.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!cVKV!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11c8edb6-db46-4dd8-a89e-9c4ca635e8c6_1034x780.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!cVKV!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11c8edb6-db46-4dd8-a89e-9c4ca635e8c6_1034x780.png 424w, https://substackcdn.com/image/fetch/$s_!cVKV!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11c8edb6-db46-4dd8-a89e-9c4ca635e8c6_1034x780.png 848w, https://substackcdn.com/image/fetch/$s_!cVKV!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11c8edb6-db46-4dd8-a89e-9c4ca635e8c6_1034x780.png 1272w, https://substackcdn.com/image/fetch/$s_!cVKV!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11c8edb6-db46-4dd8-a89e-9c4ca635e8c6_1034x780.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!cVKV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11c8edb6-db46-4dd8-a89e-9c4ca635e8c6_1034x780.png" width="1034" height="780" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/11c8edb6-db46-4dd8-a89e-9c4ca635e8c6_1034x780.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:780,&quot;width&quot;:1034,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Phonenumber's Facebook page&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Phonenumber's Facebook page" title="Phonenumber's Facebook page" srcset="https://substackcdn.com/image/fetch/$s_!cVKV!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11c8edb6-db46-4dd8-a89e-9c4ca635e8c6_1034x780.png 424w, https://substackcdn.com/image/fetch/$s_!cVKV!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11c8edb6-db46-4dd8-a89e-9c4ca635e8c6_1034x780.png 848w, https://substackcdn.com/image/fetch/$s_!cVKV!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11c8edb6-db46-4dd8-a89e-9c4ca635e8c6_1034x780.png 1272w, https://substackcdn.com/image/fetch/$s_!cVKV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11c8edb6-db46-4dd8-a89e-9c4ca635e8c6_1034x780.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Phonenumber's Facebook page</figcaption></figure></div><p>Next, we look through this person's friends list to see if there are any friends who work at Facebook. There happen to be two people. One of them isn't in a relationship, but the other person is married. If you check out this person's "about" page, you'll see the date when he got married.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!nDgC!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc782273e-74ed-40d2-81f3-e9f8c295f04a_1428x1122.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!nDgC!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc782273e-74ed-40d2-81f3-e9f8c295f04a_1428x1122.png 424w, https://substackcdn.com/image/fetch/$s_!nDgC!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc782273e-74ed-40d2-81f3-e9f8c295f04a_1428x1122.png 848w, https://substackcdn.com/image/fetch/$s_!nDgC!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc782273e-74ed-40d2-81f3-e9f8c295f04a_1428x1122.png 1272w, https://substackcdn.com/image/fetch/$s_!nDgC!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc782273e-74ed-40d2-81f3-e9f8c295f04a_1428x1122.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!nDgC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc782273e-74ed-40d2-81f3-e9f8c295f04a_1428x1122.png" width="1428" height="1122" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c782273e-74ed-40d2-81f3-e9f8c295f04a_1428x1122.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1122,&quot;width&quot;:1428,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Phonenumber's friend&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Phonenumber's friend" title="Phonenumber's friend" srcset="https://substackcdn.com/image/fetch/$s_!nDgC!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc782273e-74ed-40d2-81f3-e9f8c295f04a_1428x1122.png 424w, https://substackcdn.com/image/fetch/$s_!nDgC!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc782273e-74ed-40d2-81f3-e9f8c295f04a_1428x1122.png 848w, https://substackcdn.com/image/fetch/$s_!nDgC!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc782273e-74ed-40d2-81f3-e9f8c295f04a_1428x1122.png 1272w, https://substackcdn.com/image/fetch/$s_!nDgC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc782273e-74ed-40d2-81f3-e9f8c295f04a_1428x1122.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Phonenumber's friend. You can see that he works at Facebook and exposes his wedding day.</figcaption></figure></div><h3>Missing Person Report</h3><blockquote><p>You're investigating a missing person who went missing following a party in 2019. While working through case notes you've come across the following NTIyMyBTb3V0aCBCcmFlc3dvb2QgQm91bGV2YXJkLCBIb3VzdG9u What date was the pool party?</p></blockquote><p>The payload <code>NTIyMyBTb3V0aCBCcmFlc3dvb2QgQm91bGV2YXJkLCBIb3VzdG9u</code> attached to the CTF question is base64 encoded. If you decode it, you end up with an address in Houston, Texas. Googling the address combined with "party" and "2019" will yield a single search result in the form of a Pastebin: <a href="https://pastebin.com/BNwRBAX4">https://pastebin.com/BNwRBAX4</a></p><p>The paste contains an email detailing plans for a pool party that will happen "this Saturday." The email was sent on April 18, 2019, so you can infer that the pool party itself was held on <strong>April 20, 2019</strong>.</p><h3>Party Co-host</h3><p>This is a follow-up to the previous question.</p><blockquote><p>There are two hosts of the party, one is Vanessa. What is the last name of the other host?</p></blockquote><p>If you re-read the email from the Pastebin, you'll notice a few bits of information:</p><ol><li><p>The party was held in Houston, Texas.</p></li><li><p>The email addresses and names of the recipients are public.</p></li><li><p>The hosts are named Vanessa and Meghana.</p></li></ol><p>Searching for the hosts directly on Facebook doesn't yield too many results. However, by looking up some of the email recipients (especially those with uncommon names), you'll eventually find people based in Texas. Looking through their friends list will allow you to find Vanessa. Looking through Vanessa's friends list will allow you to find Meghana.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!WVXb!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f2ea7e8-576d-4eae-8fe1-bab1a2b8fa58_1064x920.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!WVXb!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f2ea7e8-576d-4eae-8fe1-bab1a2b8fa58_1064x920.png 424w, https://substackcdn.com/image/fetch/$s_!WVXb!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f2ea7e8-576d-4eae-8fe1-bab1a2b8fa58_1064x920.png 848w, https://substackcdn.com/image/fetch/$s_!WVXb!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f2ea7e8-576d-4eae-8fe1-bab1a2b8fa58_1064x920.png 1272w, https://substackcdn.com/image/fetch/$s_!WVXb!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f2ea7e8-576d-4eae-8fe1-bab1a2b8fa58_1064x920.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!WVXb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f2ea7e8-576d-4eae-8fe1-bab1a2b8fa58_1064x920.png" width="1064" height="920" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0f2ea7e8-576d-4eae-8fe1-bab1a2b8fa58_1064x920.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:920,&quot;width&quot;:1064,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Meghana's Facebook profile&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Meghana's Facebook profile" title="Meghana's Facebook profile" srcset="https://substackcdn.com/image/fetch/$s_!WVXb!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f2ea7e8-576d-4eae-8fe1-bab1a2b8fa58_1064x920.png 424w, https://substackcdn.com/image/fetch/$s_!WVXb!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f2ea7e8-576d-4eae-8fe1-bab1a2b8fa58_1064x920.png 848w, https://substackcdn.com/image/fetch/$s_!WVXb!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f2ea7e8-576d-4eae-8fe1-bab1a2b8fa58_1064x920.png 1272w, https://substackcdn.com/image/fetch/$s_!WVXb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f2ea7e8-576d-4eae-8fe1-bab1a2b8fa58_1064x920.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Meghana's Facebook profile. You can find her via Vanessa's profile (or most of the other email recipients).</figcaption></figure></div><p>As a reminder, these are real people. Please respect their privacy.</p><h3>Maiden Name</h3><blockquote><p>Callum lives in Scarborough, Toronto and works with kids. What's his wife's maiden name?</p></blockquote><p>Googling up Callum with his location and profession will lead to his LinkedIn page and reveal his last name. Looking up his full name and location on Facebook will lead to his Facebook page, which also contains the profile of his wife.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!OQYr!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fffc2ff8a-6298-48a7-8025-81d23da6f029_1036x1106.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!OQYr!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fffc2ff8a-6298-48a7-8025-81d23da6f029_1036x1106.png 424w, https://substackcdn.com/image/fetch/$s_!OQYr!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fffc2ff8a-6298-48a7-8025-81d23da6f029_1036x1106.png 848w, https://substackcdn.com/image/fetch/$s_!OQYr!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fffc2ff8a-6298-48a7-8025-81d23da6f029_1036x1106.png 1272w, https://substackcdn.com/image/fetch/$s_!OQYr!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fffc2ff8a-6298-48a7-8025-81d23da6f029_1036x1106.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!OQYr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fffc2ff8a-6298-48a7-8025-81d23da6f029_1036x1106.png" width="1036" height="1106" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ffc2ff8a-6298-48a7-8025-81d23da6f029_1036x1106.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1106,&quot;width&quot;:1036,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Callum's Facebook profile&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Callum's Facebook profile" title="Callum's Facebook profile" srcset="https://substackcdn.com/image/fetch/$s_!OQYr!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fffc2ff8a-6298-48a7-8025-81d23da6f029_1036x1106.png 424w, https://substackcdn.com/image/fetch/$s_!OQYr!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fffc2ff8a-6298-48a7-8025-81d23da6f029_1036x1106.png 848w, https://substackcdn.com/image/fetch/$s_!OQYr!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fffc2ff8a-6298-48a7-8025-81d23da6f029_1036x1106.png 1272w, https://substackcdn.com/image/fetch/$s_!OQYr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fffc2ff8a-6298-48a7-8025-81d23da6f029_1036x1106.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Callum's Facebook profile. Although his wife changed her last name, you can infer her maiden name from the URL.</figcaption></figure></div><p>However, his wife changed her last name, and her maiden name isn't in her profile. But those who are observant will notice that the Facebook URL does not update unless manually changed. Callum's wife's URL contains her maiden name.</p><h3>Password Breach</h3><p>This is a follow-up to the previous question.</p><blockquote><p>Callum's password has been breached in connection with his primary email. What is it?</p></blockquote><p>Despite finding Callum's social media profiles, we weren't able to find his email address. As a result, we enumerated potential emails. (Using Gmail to autocomplete was helpful in filtering out potential and valid emails.) It turns out that his email used the common <code>firstname.lastname@gmail.com</code> format.</p><p>Then, Googling the email address along with terms like "password" led to a Pastebin that contained a password dump for emails. Callum's password was included in the paste: <a href="https://pastebin.com/1LeMmy4X">https://pastebin.com/1LeMmy4X</a></p><h3>Open Source</h3><p>The next few challenges are all based on CryptoRama, a fictional company.</p><blockquote><p>Hi, I'm Eva Hesington. Remember me from last year? I am the founder of CryptoRama. Thanks to your support we have been able to scale the business a lot. I cannot thank the open source community enough. Using Open source tools and platforms, our business has grown and our tech department is now running strong. We could not have done it without these Open Source tools and community. You can visit our website to find out more.</p></blockquote><p>This one had us stumped for a while, as Cryptorama was an actual company. We went down a few rabbit holes to no avail before querying Cryptorama with Eva Hesington's name included. That led to a single search result to a different Cryptorama: <a href="https://cryptorama.cloud/">https://cryptorama.cloud/</a></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!TMMu!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8706a50c-1c46-4ea3-b754-0bddf1026c12_1946x1620.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!TMMu!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8706a50c-1c46-4ea3-b754-0bddf1026c12_1946x1620.png 424w, https://substackcdn.com/image/fetch/$s_!TMMu!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8706a50c-1c46-4ea3-b754-0bddf1026c12_1946x1620.png 848w, https://substackcdn.com/image/fetch/$s_!TMMu!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8706a50c-1c46-4ea3-b754-0bddf1026c12_1946x1620.png 1272w, https://substackcdn.com/image/fetch/$s_!TMMu!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8706a50c-1c46-4ea3-b754-0bddf1026c12_1946x1620.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!TMMu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8706a50c-1c46-4ea3-b754-0bddf1026c12_1946x1620.png" width="1946" height="1620" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8706a50c-1c46-4ea3-b754-0bddf1026c12_1946x1620.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1620,&quot;width&quot;:1946,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;CryptoRama website&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="CryptoRama website" title="CryptoRama website" srcset="https://substackcdn.com/image/fetch/$s_!TMMu!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8706a50c-1c46-4ea3-b754-0bddf1026c12_1946x1620.png 424w, https://substackcdn.com/image/fetch/$s_!TMMu!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8706a50c-1c46-4ea3-b754-0bddf1026c12_1946x1620.png 848w, https://substackcdn.com/image/fetch/$s_!TMMu!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8706a50c-1c46-4ea3-b754-0bddf1026c12_1946x1620.png 1272w, https://substackcdn.com/image/fetch/$s_!TMMu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8706a50c-1c46-4ea3-b754-0bddf1026c12_1946x1620.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">This question wasn't about open-source tools. Rather it was a pun on "opening the source."</figcaption></figure></div><p>If you checked the source of the website, you'd find the flag. It's embedded in a comment within <code>main.min.js</code>.</p><h3>Secret Sharing</h3><blockquote><p>We at CryptoRama are very concerned about sharing sensitive information with the outside world and even on the inside. We use secret sharing services. But looks like someone has been manipulating our secrets application and hindering our progress. Can you please check?</p></blockquote><p>The challenge mentions a secret sharing service but does not share any more details. So we need to find what service it's referring to. By looking at the <a href="https://crt.sh/?q=cryptorama.cloud">certificate transparency logs</a> for the CryptoRama website, we that there are a few valid subdomains. One of them is <a href="https://secrets.cryptorama.cloud/">https://secrets.cryptorama.cloud/</a>.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!fbDF!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc83abc5e-c866-4832-85fe-01e106fea3b4_1894x872.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!fbDF!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc83abc5e-c866-4832-85fe-01e106fea3b4_1894x872.png 424w, https://substackcdn.com/image/fetch/$s_!fbDF!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc83abc5e-c866-4832-85fe-01e106fea3b4_1894x872.png 848w, https://substackcdn.com/image/fetch/$s_!fbDF!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc83abc5e-c866-4832-85fe-01e106fea3b4_1894x872.png 1272w, https://substackcdn.com/image/fetch/$s_!fbDF!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc83abc5e-c866-4832-85fe-01e106fea3b4_1894x872.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!fbDF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc83abc5e-c866-4832-85fe-01e106fea3b4_1894x872.png" width="1894" height="872" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c83abc5e-c866-4832-85fe-01e106fea3b4_1894x872.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:872,&quot;width&quot;:1894,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;SnapPass&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="SnapPass" title="SnapPass" srcset="https://substackcdn.com/image/fetch/$s_!fbDF!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc83abc5e-c866-4832-85fe-01e106fea3b4_1894x872.png 424w, https://substackcdn.com/image/fetch/$s_!fbDF!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc83abc5e-c866-4832-85fe-01e106fea3b4_1894x872.png 848w, https://substackcdn.com/image/fetch/$s_!fbDF!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc83abc5e-c866-4832-85fe-01e106fea3b4_1894x872.png 1272w, https://substackcdn.com/image/fetch/$s_!fbDF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc83abc5e-c866-4832-85fe-01e106fea3b4_1894x872.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">The secrets subdomain hosts an instance of SnapPass.</figcaption></figure></div><p>When examining the website, we see that it's running <a href="https://github.com/pinterest/snappass">SnapPass</a>, a secret-sharing app maintained by Pinterest. Users can write a secret to the app, and the app will generate a URL to view the secret. After the secret is viewed once, it will disappear forever.</p><p>There don't seem to be any CVEs associated with SnapPass, so perhaps the site is running a patched version with broken crypto. When looking among the forks of the repo, we see that there's <a href="https://github.com/CryptoRamaLtd/snappass">a fork that's created by CryptoRama</a>. And it also has a <a href="https://github.com/pinterest/snappass/commit/aeeedf3b77aaa568a695a87d51eda97821ef39af">patch that changes the URL generation</a>. Here's a summary of the patch:</p><ol><li><p>The encryption key is now the base64 encoded version of a hardcoded secret <code>6ardCD6XQ49FLrxY6fd7pB3DeeNmzn8Y</code>. With the base64 encoding, the string will be <code>NmFyZENENlhRNDlGTHJ4WTZmZDdwQjNEZWVObXpuOFk=</code>.</p></li><li><p>The secret URL has a prefix of <code>RV</code> (from the Redis prefix).</p></li><li><p>The secret URL additionally takes in the current timestamp.</p></li></ol><p>Overall, the format of the secret URL looks like this:</p><p>Although we have an algorithm to generate the secret URLs, it still takes two parameters: a UUID and the timestamp. For both, it's unfeasible to guess or brute force. Therefore, we need another way to make use of the URLs. Our next step is to find a source for the UUIDs and timestamps.</p><p>Looking around CryptoRama's Github profile, we find that it has a second repository called <a href="https://github.com/CryptoRamaLtd/Progress-Tracker">Progress Tracker</a>. Every minute or so, the repo updates with a new commit that changes a hash in <code>README.md</code>.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!f3hB!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feaf75803-54de-4009-84b1-8bda2ddf2f09_1854x574.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!f3hB!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feaf75803-54de-4009-84b1-8bda2ddf2f09_1854x574.png 424w, https://substackcdn.com/image/fetch/$s_!f3hB!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feaf75803-54de-4009-84b1-8bda2ddf2f09_1854x574.png 848w, https://substackcdn.com/image/fetch/$s_!f3hB!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feaf75803-54de-4009-84b1-8bda2ddf2f09_1854x574.png 1272w, https://substackcdn.com/image/fetch/$s_!f3hB!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feaf75803-54de-4009-84b1-8bda2ddf2f09_1854x574.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!f3hB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feaf75803-54de-4009-84b1-8bda2ddf2f09_1854x574.png" width="1854" height="574" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/eaf75803-54de-4009-84b1-8bda2ddf2f09_1854x574.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:574,&quot;width&quot;:1854,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Progress tracker commit&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Progress tracker commit" title="Progress tracker commit" srcset="https://substackcdn.com/image/fetch/$s_!f3hB!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feaf75803-54de-4009-84b1-8bda2ddf2f09_1854x574.png 424w, https://substackcdn.com/image/fetch/$s_!f3hB!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feaf75803-54de-4009-84b1-8bda2ddf2f09_1854x574.png 848w, https://substackcdn.com/image/fetch/$s_!f3hB!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feaf75803-54de-4009-84b1-8bda2ddf2f09_1854x574.png 1272w, https://substackcdn.com/image/fetch/$s_!f3hB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feaf75803-54de-4009-84b1-8bda2ddf2f09_1854x574.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Every minute or so, the repo gets a commit that updates the hash.</figcaption></figure></div><p>Notice that the hash in the file is the same format as a UUID. Also notice that every commit has an associated timestamp. If we take those two pieces of data, we have enough information to generate a URL in the SnapPass instance. From trial and error, it seems like the URL expects the timestamp to be of minute precision. If we plug in the converted timestamp and the hash, we get a valid URL.</p><p>Every commit in the repository creates a secret that contains the flag. Since it's a one-time use URL, that's why the repository keeps adding new secrets every minute.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!csba!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35394c38-db50-4fe6-9d91-cf80c291d508_1598x950.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!csba!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35394c38-db50-4fe6-9d91-cf80c291d508_1598x950.png 424w, https://substackcdn.com/image/fetch/$s_!csba!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35394c38-db50-4fe6-9d91-cf80c291d508_1598x950.png 848w, https://substackcdn.com/image/fetch/$s_!csba!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35394c38-db50-4fe6-9d91-cf80c291d508_1598x950.png 1272w, https://substackcdn.com/image/fetch/$s_!csba!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35394c38-db50-4fe6-9d91-cf80c291d508_1598x950.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!csba!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35394c38-db50-4fe6-9d91-cf80c291d508_1598x950.png" width="1598" height="950" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/35394c38-db50-4fe6-9d91-cf80c291d508_1598x950.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:950,&quot;width&quot;:1598,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;SnapPass flag location&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="SnapPass flag location" title="SnapPass flag location" srcset="https://substackcdn.com/image/fetch/$s_!csba!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35394c38-db50-4fe6-9d91-cf80c291d508_1598x950.png 424w, https://substackcdn.com/image/fetch/$s_!csba!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35394c38-db50-4fe6-9d91-cf80c291d508_1598x950.png 848w, https://substackcdn.com/image/fetch/$s_!csba!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35394c38-db50-4fe6-9d91-cf80c291d508_1598x950.png 1272w, https://substackcdn.com/image/fetch/$s_!csba!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35394c38-db50-4fe6-9d91-cf80c291d508_1598x950.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">The secret containing the flag. A new one is generated every minute since each secret can only be read once.</figcaption></figure></div><h3>Public Server Backup</h3><blockquote><p>We lost access to one of our servers. Thankfully we had backups. All you have to do is find a piece (backup) of our server and make it whole by attaching it to another server. If you do this, you will have attained nirvana! Start looking at our website again.</p></blockquote><p>Going back to the Cryptorama website, we notice the <a href="https://evahesington-resources.s3.us-west-1.amazonaws.com/images/find/me/on/gitlab/about-2.jpg">picture of Eva</a>. It has a very interesting URL:</p><p>Searching for her name on Gitlab yields an account with a single repository containing her personal website. However, more interesting is a file called <code>account.txt</code> that <a href="https://gitlab.com/eva.hesington.1213/my-personal-website/-/blob/main/account.txt">contains details of her AWS account ID</a> and mentions an EC2 instance.</p><p>Since we've learned that she has an EC2 machine and we know her AWS account ID, the next step would be to see if there's any way to find details of her EC2 instance.</p><p>AWS allows you to snapshot EC2 instances onto EBS, and it's possible to have those snapshots be public. Since we know the account ID, we have the ability to find all of the public snapshots for the account. To do so, we enumerate through the AWS regions and use the command line to print out public EBS snapshots:</p><p>Most of the regions yield nothing, but in <code>us-west-1</code>, there's a single public snapshot:</p><p>We want to inspect the contents of the snapshot. In order to do so, we need to copy the snapshot over to our own account and then create our own EC2 instance that's based on the snapshot.</p><p>Once the image is in your account, you can create an EC2 instance, SSH into the machine, and view the flag.</p><h3>Asset Management</h3><blockquote><p>Our junior developer Henry Lopez cannot find his assets. Can you help him please? His credentials are given below: Username: henry.lopez Password: sHTA$H@&amp;sBjPG5</p></blockquote><p>It seems like Cryptorama has an assets server. When we looked at the certificate transparency logs, we saw that <a href="https://assets.cryptorama.cloud/">https://assets.cryptorama.cloud/</a> was a valid subdomain. Logging in with Henry's credentials leads us to the asset management page.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!4UBw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F576a9fe3-4f4d-445c-9d1b-323bf7a6cfa1_1658x812.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!4UBw!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F576a9fe3-4f4d-445c-9d1b-323bf7a6cfa1_1658x812.png 424w, https://substackcdn.com/image/fetch/$s_!4UBw!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F576a9fe3-4f4d-445c-9d1b-323bf7a6cfa1_1658x812.png 848w, https://substackcdn.com/image/fetch/$s_!4UBw!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F576a9fe3-4f4d-445c-9d1b-323bf7a6cfa1_1658x812.png 1272w, https://substackcdn.com/image/fetch/$s_!4UBw!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F576a9fe3-4f4d-445c-9d1b-323bf7a6cfa1_1658x812.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!4UBw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F576a9fe3-4f4d-445c-9d1b-323bf7a6cfa1_1658x812.png" width="1658" height="812" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/576a9fe3-4f4d-445c-9d1b-323bf7a6cfa1_1658x812.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:812,&quot;width&quot;:1658,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!4UBw!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F576a9fe3-4f4d-445c-9d1b-323bf7a6cfa1_1658x812.png 424w, https://substackcdn.com/image/fetch/$s_!4UBw!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F576a9fe3-4f4d-445c-9d1b-323bf7a6cfa1_1658x812.png 848w, https://substackcdn.com/image/fetch/$s_!4UBw!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F576a9fe3-4f4d-445c-9d1b-323bf7a6cfa1_1658x812.png 1272w, https://substackcdn.com/image/fetch/$s_!4UBw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F576a9fe3-4f4d-445c-9d1b-323bf7a6cfa1_1658x812.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">That's an awfully specific version of an awfully specific app...</figcaption></figure></div><p>From poking around the app, we learn that there's very little data to be found. We also see that the site is running v5.4.3 of <a href="https://snipeitapp.com/">Snipe-IT</a>. If you search for CVEs that are present in the running version of the app, you'll find <a href="https://nvd.nist.gov/vuln/detail/CVE-2022-1511">CVE-2022-1511</a>. It's an access control bug that was fixed in the following patch of Snipe-IT.</p><p>Because of the bug, users without proper permissions can access restricted resources. The resources don't show up as links in the app's sidebar, but they can just go to the URL directly. The <a href="https://huntr.dev/bounties/4a1723e9-5bc4-4c4b-bceb-1c45964cc71d/">proof of concept</a> shows a normal user visiting the <code>/hardware/requested</code> endpoint, even though there are no permissions. By doing the same and visiting <a href="https://assets.cryptorama.cloud/hardware/requested">https://assets.cryptorama.cloud/hardware/requested</a>, we can find the flag.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!62m_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5df1165d-3736-4a17-a7c9-33c7c305fe2f_1862x1164.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!62m_!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5df1165d-3736-4a17-a7c9-33c7c305fe2f_1862x1164.png 424w, https://substackcdn.com/image/fetch/$s_!62m_!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5df1165d-3736-4a17-a7c9-33c7c305fe2f_1862x1164.png 848w, https://substackcdn.com/image/fetch/$s_!62m_!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5df1165d-3736-4a17-a7c9-33c7c305fe2f_1862x1164.png 1272w, https://substackcdn.com/image/fetch/$s_!62m_!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5df1165d-3736-4a17-a7c9-33c7c305fe2f_1862x1164.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!62m_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5df1165d-3736-4a17-a7c9-33c7c305fe2f_1862x1164.png" width="1862" height="1164" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5df1165d-3736-4a17-a7c9-33c7c305fe2f_1862x1164.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1164,&quot;width&quot;:1862,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!62m_!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5df1165d-3736-4a17-a7c9-33c7c305fe2f_1862x1164.png 424w, https://substackcdn.com/image/fetch/$s_!62m_!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5df1165d-3736-4a17-a7c9-33c7c305fe2f_1862x1164.png 848w, https://substackcdn.com/image/fetch/$s_!62m_!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5df1165d-3736-4a17-a7c9-33c7c305fe2f_1862x1164.png 1272w, https://substackcdn.com/image/fetch/$s_!62m_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5df1165d-3736-4a17-a7c9-33c7c305fe2f_1862x1164.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">We should not have permission to view this page.</figcaption></figure></div><h3>Control Panel RCE</h3><blockquote><p>Now that Henry has his assets, time to try out an application he created. <a href="https://control-panel.cryptorama.cloud/">https://control-panel.cryptorama.cloud/</a></p></blockquote><p>If you visit the website, you'll find a pretty unassuming app. It contains two buttons, one that shows the current working directory, and one that prints the current timestamp.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!k55i!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c7e5f17-4cfb-43a9-b0f9-9f993e87a9f7_1212x896.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!k55i!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c7e5f17-4cfb-43a9-b0f9-9f993e87a9f7_1212x896.png 424w, https://substackcdn.com/image/fetch/$s_!k55i!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c7e5f17-4cfb-43a9-b0f9-9f993e87a9f7_1212x896.png 848w, https://substackcdn.com/image/fetch/$s_!k55i!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c7e5f17-4cfb-43a9-b0f9-9f993e87a9f7_1212x896.png 1272w, https://substackcdn.com/image/fetch/$s_!k55i!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c7e5f17-4cfb-43a9-b0f9-9f993e87a9f7_1212x896.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!k55i!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c7e5f17-4cfb-43a9-b0f9-9f993e87a9f7_1212x896.png" width="1212" height="896" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8c7e5f17-4cfb-43a9-b0f9-9f993e87a9f7_1212x896.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:896,&quot;width&quot;:1212,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!k55i!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c7e5f17-4cfb-43a9-b0f9-9f993e87a9f7_1212x896.png 424w, https://substackcdn.com/image/fetch/$s_!k55i!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c7e5f17-4cfb-43a9-b0f9-9f993e87a9f7_1212x896.png 848w, https://substackcdn.com/image/fetch/$s_!k55i!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c7e5f17-4cfb-43a9-b0f9-9f993e87a9f7_1212x896.png 1272w, https://substackcdn.com/image/fetch/$s_!k55i!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c7e5f17-4cfb-43a9-b0f9-9f993e87a9f7_1212x896.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">CTF veterans could smell the RCE from a mile away...</figcaption></figure></div><p>If you inspect the network requests that happen from clicking the buttons, you'll notice that there's a request to <code>/cmd</code> that with form data. The payload has a single key, <code>filename</code> , and the value is either <code>first</code> or <code>second</code> depending on which button you clicked.</p><p>We then try to break the form by sending a request without the <code>filename</code> key. It causes the request to fail, because of a <code>BadRequestKeyError</code>. From looking at the ensuing HTML, we learn that...</p><ul><li><p>It's running a development build of Flask (since there's a stack trace).</p></li><li><p>The <code>/cmd</code> endpoint requires a value for <code>filename</code>.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!tB_d!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94d2293f-3bc6-41c2-801c-41cc8ecb44d0_2070x1046.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!tB_d!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94d2293f-3bc6-41c2-801c-41cc8ecb44d0_2070x1046.png 424w, https://substackcdn.com/image/fetch/$s_!tB_d!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94d2293f-3bc6-41c2-801c-41cc8ecb44d0_2070x1046.png 848w, https://substackcdn.com/image/fetch/$s_!tB_d!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94d2293f-3bc6-41c2-801c-41cc8ecb44d0_2070x1046.png 1272w, https://substackcdn.com/image/fetch/$s_!tB_d!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94d2293f-3bc6-41c2-801c-41cc8ecb44d0_2070x1046.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!tB_d!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94d2293f-3bc6-41c2-801c-41cc8ecb44d0_2070x1046.png" width="2000" height="1011" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/94d2293f-3bc6-41c2-801c-41cc8ecb44d0_2070x1046.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1011,&quot;width&quot;:2000,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!tB_d!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94d2293f-3bc6-41c2-801c-41cc8ecb44d0_2070x1046.png 424w, https://substackcdn.com/image/fetch/$s_!tB_d!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94d2293f-3bc6-41c2-801c-41cc8ecb44d0_2070x1046.png 848w, https://substackcdn.com/image/fetch/$s_!tB_d!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94d2293f-3bc6-41c2-801c-41cc8ecb44d0_2070x1046.png 1272w, https://substackcdn.com/image/fetch/$s_!tB_d!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94d2293f-3bc6-41c2-801c-41cc8ecb44d0_2070x1046.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">If you don't include a filename in the form, you'll cause an error in the server. That reveals details about the backend implementation.</figcaption></figure></div><p>Scrolling down the stack trace, you'll find a snippet of the actual application code.</p><p>From reading the code, it seems to be...</p><ol><li><p>Reading the value at <code>filename</code>.</p></li><li><p>Constructing a URL based on that value.</p></li><li><p>Sending an HTTP request to get the contents of that URL.</p></li><li><p>Running the contents of the HTTP request via <code>eval</code>.</p></li><li><p>Sending the return value of the <code>eval</code> as part of the HTTP response.</p></li></ol><p>Though the snippet only covers the logic for local files, we suspected that there must be similar logic for remote files. We have no control of the local file content, but if we hosted our own files and had the server download those, we could in theory do arbitrary code execution.</p><p>The fastest way I think of to host files on the public Internet was to run a simple HTTP server and expose it via <code>ngrok</code>. So I created a directory with some test files and spun up an ngrok tunnel.</p><p>Then if you include the entire URL of your remote file as the value in the <code>filename</code> key, the server will execute the arbitrary code that you wrote. Listing the contents of the directory showed that there was a file called <code>flag.txt</code>. Then you could command the server to print out the contents of the flag.</p><h3>Doug's Golfing Experience</h3><blockquote><p>Can you locate this field on the outskirts of London in the image attached below. Once you do, what date did Doug leave a review for this place?</p></blockquote><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!OKhf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff5766f7e-a212-4359-9ec6-ea6b1a17c406_1200x1600.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!OKhf!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff5766f7e-a212-4359-9ec6-ea6b1a17c406_1200x1600.jpeg 424w, https://substackcdn.com/image/fetch/$s_!OKhf!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff5766f7e-a212-4359-9ec6-ea6b1a17c406_1200x1600.jpeg 848w, https://substackcdn.com/image/fetch/$s_!OKhf!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff5766f7e-a212-4359-9ec6-ea6b1a17c406_1200x1600.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!OKhf!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff5766f7e-a212-4359-9ec6-ea6b1a17c406_1200x1600.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!OKhf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff5766f7e-a212-4359-9ec6-ea6b1a17c406_1200x1600.jpeg" width="1200" height="1600" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f5766f7e-a212-4359-9ec6-ea6b1a17c406_1200x1600.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1600,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!OKhf!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff5766f7e-a212-4359-9ec6-ea6b1a17c406_1200x1600.jpeg 424w, https://substackcdn.com/image/fetch/$s_!OKhf!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff5766f7e-a212-4359-9ec6-ea6b1a17c406_1200x1600.jpeg 848w, https://substackcdn.com/image/fetch/$s_!OKhf!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff5766f7e-a212-4359-9ec6-ea6b1a17c406_1200x1600.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!OKhf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff5766f7e-a212-4359-9ec6-ea6b1a17c406_1200x1600.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">We were given this image at the start of the challenge.</figcaption></figure></div><p>This picture seems to have been taken from a plane. The field is also quite distinct, which makes it easy to confirm whether you've found the correct location.</p><p>If you've ever flown in a plane before, you'll notice that the picture was taken at a relatively low altitude. A low altitude means that the plane is either landing or departing, which also implies that the plane is close to the airport. The field itself appears to be a golf course. If you search for golf courses near London airports on Google Maps, you'll eventually find a place called <a href="https://hounslowgolfpark.com/">Hounslow Golf Park</a> next to Heathrow Airport.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!1L6v!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F718a6b06-bbc8-4b6c-9c28-e5aa5080c8d0_2192x1258.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!1L6v!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F718a6b06-bbc8-4b6c-9c28-e5aa5080c8d0_2192x1258.png 424w, https://substackcdn.com/image/fetch/$s_!1L6v!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F718a6b06-bbc8-4b6c-9c28-e5aa5080c8d0_2192x1258.png 848w, https://substackcdn.com/image/fetch/$s_!1L6v!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F718a6b06-bbc8-4b6c-9c28-e5aa5080c8d0_2192x1258.png 1272w, https://substackcdn.com/image/fetch/$s_!1L6v!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F718a6b06-bbc8-4b6c-9c28-e5aa5080c8d0_2192x1258.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!1L6v!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F718a6b06-bbc8-4b6c-9c28-e5aa5080c8d0_2192x1258.png" width="2000" height="1148" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/718a6b06-bbc8-4b6c-9c28-e5aa5080c8d0_2192x1258.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1148,&quot;width&quot;:2000,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Google Maps search near Heathrow Airport&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Google Maps search near Heathrow Airport" title="Google Maps search near Heathrow Airport" srcset="https://substackcdn.com/image/fetch/$s_!1L6v!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F718a6b06-bbc8-4b6c-9c28-e5aa5080c8d0_2192x1258.png 424w, https://substackcdn.com/image/fetch/$s_!1L6v!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F718a6b06-bbc8-4b6c-9c28-e5aa5080c8d0_2192x1258.png 848w, https://substackcdn.com/image/fetch/$s_!1L6v!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F718a6b06-bbc8-4b6c-9c28-e5aa5080c8d0_2192x1258.png 1272w, https://substackcdn.com/image/fetch/$s_!1L6v!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F718a6b06-bbc8-4b6c-9c28-e5aa5080c8d0_2192x1258.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Searching for "golf" near Heathrow airport will uncover Hounslow Golf Park.</figcaption></figure></div><p>Taking a look at the golf park's website confirms that it's the same field from the photo. Scrolling through the reviews, you'll find a review from Doug that was posted on <strong>July 16th</strong>.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!qzYf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6387011e-c2f5-401f-bf41-d81bc3ae9bbe_2172x1286.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!qzYf!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6387011e-c2f5-401f-bf41-d81bc3ae9bbe_2172x1286.png 424w, https://substackcdn.com/image/fetch/$s_!qzYf!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6387011e-c2f5-401f-bf41-d81bc3ae9bbe_2172x1286.png 848w, https://substackcdn.com/image/fetch/$s_!qzYf!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6387011e-c2f5-401f-bf41-d81bc3ae9bbe_2172x1286.png 1272w, https://substackcdn.com/image/fetch/$s_!qzYf!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6387011e-c2f5-401f-bf41-d81bc3ae9bbe_2172x1286.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!qzYf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6387011e-c2f5-401f-bf41-d81bc3ae9bbe_2172x1286.png" width="2000" height="1184" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6387011e-c2f5-401f-bf41-d81bc3ae9bbe_2172x1286.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1184,&quot;width&quot;:2000,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Hounslow Golf Park's website&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Hounslow Golf Park's website" title="Hounslow Golf Park's website" srcset="https://substackcdn.com/image/fetch/$s_!qzYf!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6387011e-c2f5-401f-bf41-d81bc3ae9bbe_2172x1286.png 424w, https://substackcdn.com/image/fetch/$s_!qzYf!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6387011e-c2f5-401f-bf41-d81bc3ae9bbe_2172x1286.png 848w, https://substackcdn.com/image/fetch/$s_!qzYf!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6387011e-c2f5-401f-bf41-d81bc3ae9bbe_2172x1286.png 1272w, https://substackcdn.com/image/fetch/$s_!qzYf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6387011e-c2f5-401f-bf41-d81bc3ae9bbe_2172x1286.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Scrolling through the golf park's website will confirm that it was in the original picture.</figcaption></figure></div><h2>Meet the Team</h2><p>Behind every CTF, there are names and faces that made it all a reality. Thanks to the organizers at Recon Village for creating the challenges in this CTF. It's also important to remember that solving this CTF was a team effort. Here are your alligator hunters:</p><ul><li><p>Chris Rodriguez</p></li><li><p><a href="https://www.linkedin.com/in/christianjosephjohnson/">Christian Johnson</a></p></li><li><p><a href="https://www.linkedin.com/in/jeremykrach/">Jeremy Krach</a></p></li><li><p><a href="https://x.com/liudotblog">Andrew Liu</a> (me)</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!eiQI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff8dbcaa-149e-4deb-b214-60994ce35d03_1462x1178.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!eiQI!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff8dbcaa-149e-4deb-b214-60994ce35d03_1462x1178.png 424w, https://substackcdn.com/image/fetch/$s_!eiQI!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff8dbcaa-149e-4deb-b214-60994ce35d03_1462x1178.png 848w, https://substackcdn.com/image/fetch/$s_!eiQI!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff8dbcaa-149e-4deb-b214-60994ce35d03_1462x1178.png 1272w, https://substackcdn.com/image/fetch/$s_!eiQI!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff8dbcaa-149e-4deb-b214-60994ce35d03_1462x1178.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!eiQI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff8dbcaa-149e-4deb-b214-60994ce35d03_1462x1178.png" width="1462" height="1178" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ff8dbcaa-149e-4deb-b214-60994ce35d03_1462x1178.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1178,&quot;width&quot;:1462,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Defcon collage&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Defcon collage" title="Defcon collage" srcset="https://substackcdn.com/image/fetch/$s_!eiQI!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff8dbcaa-149e-4deb-b214-60994ce35d03_1462x1178.png 424w, https://substackcdn.com/image/fetch/$s_!eiQI!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff8dbcaa-149e-4deb-b214-60994ce35d03_1462x1178.png 848w, https://substackcdn.com/image/fetch/$s_!eiQI!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff8dbcaa-149e-4deb-b214-60994ce35d03_1462x1178.png 1272w, https://substackcdn.com/image/fetch/$s_!eiQI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff8dbcaa-149e-4deb-b214-60994ce35d03_1462x1178.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Clockwise, starting from the top left: Christian and Chris at dinner; Andrew and Jeremy breaking out of restraints at the Rogues Village; the origin of the alligator hunters; Jeremy and Chris after Defcon's closing ceremony.</figcaption></figure></div><p>Hope you enjoyed reading this write-up! If you have any questions or feedback, feel free to reach out and share your thoughts.</p>]]></content:encoded></item><item><title><![CDATA[Tough questions you must ask before joining any startup]]></title><description><![CDATA[Looking to join a startup? Avoid buyer's remorse by asking these fundamental startup-centric questions.]]></description><link>https://www.liu.blog/p/startup-questions</link><guid isPermaLink="false">https://www.liu.blog/p/startup-questions</guid><dc:creator><![CDATA[Andrew Liu]]></dc:creator><pubDate>Wed, 01 Jun 2022 02:22:24 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/529f21b7-dc6c-4dc8-9231-348938ec8ab6_2000x1333.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!E525!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b0e705d-ebd6-4c83-b957-f794636f0de4_2000x1333.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!E525!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b0e705d-ebd6-4c83-b957-f794636f0de4_2000x1333.jpeg 424w, https://substackcdn.com/image/fetch/$s_!E525!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b0e705d-ebd6-4c83-b957-f794636f0de4_2000x1333.jpeg 848w, https://substackcdn.com/image/fetch/$s_!E525!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b0e705d-ebd6-4c83-b957-f794636f0de4_2000x1333.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!E525!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b0e705d-ebd6-4c83-b957-f794636f0de4_2000x1333.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!E525!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b0e705d-ebd6-4c83-b957-f794636f0de4_2000x1333.jpeg" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8b0e705d-ebd6-4c83-b957-f794636f0de4_2000x1333.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!E525!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b0e705d-ebd6-4c83-b957-f794636f0de4_2000x1333.jpeg 424w, https://substackcdn.com/image/fetch/$s_!E525!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b0e705d-ebd6-4c83-b957-f794636f0de4_2000x1333.jpeg 848w, https://substackcdn.com/image/fetch/$s_!E525!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b0e705d-ebd6-4c83-b957-f794636f0de4_2000x1333.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!E525!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b0e705d-ebd6-4c83-b957-f794636f0de4_2000x1333.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a><figcaption class="image-caption">Photo by <a href="https://unsplash.com/@bernardhermant?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit">Bernard Hermant</a> / <a href="https://unsplash.com/?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit">Unsplash</a></figcaption></figure></div><p>So you're looking to join a startup. That's great! Startups can offer the most fulfilling years of your career.</p><p>At the same time, you need to be careful. It's worlds apart from working at a large, traditional company. Victory isn't assured, and you incur significantly more risk. I'm not trying to peddle some disaster scenario. In a relatively short period, the recent market downturn has caused a <a href="https://www.theverge.com/2022/5/23/23138602/klarna-bnpl-service-lays-off-10-percent-workers-economy-falters-video-messages">fair</a> <a href="https://techcrunch.com/2022/04/19/better-com-conducts-third-round-of-layoffs-in-five-months/">share</a> of <a href="https://techcrunch.com/2022/04/26/robinhood-to-lay-off-9-of-full-time-employees/">massive</a> <a href="https://fortune.com/2022/05/26/bolt-layoffs-employees-vent-frustrations-startup-axes-jobs/">layoffs</a> and <a href="https://techcrunch.com/2022/04/05/fast-shuts-doors-after-slow-growth-high-burn-precluded-fundraising-options/">company failures</a>.</p><blockquote><p>Only when the tide goes out do you discover who's been swimming naked.</p></blockquote><p>Despite those layoffs, good companies will still survive and thrive in the long run. So <a href="https://andrew.cloud/blog/leaving-google/">whether or not to join a startup</a> isn't the issue. What matters is that you make an informed decision. I've compiled a collection of questions I think everybody should ask before joining any startup.</p><h2>When starting out</h2><ul><li><p>What are you building? How far along are you? How long have you been doing it?</p></li><li><p>How do you (plan to) make money? Who are your customers?</p></li><li><p>Who are your investors? What were the terms of your funding?</p></li><li><p>Who are the founders? Do they have any sort of track record?</p></li></ul><p>Your goal when talking to a new startup is to understand the basic context. That means understanding the business model and whether the work will be interesting. Understanding the startup's age and progress will give you some insight into its velocity, which I'd argue is the most important trait of the company.</p><p>This is also the opportunity to gather some light, anecdotal intel about the company. Understanding who invested in the company can give you some signal about the rough quality of the company. Typically, top-tier VCs will not invest in obvious duds. Knowing a founder's track record can also be useful. For example, Domm Holland, the former CEO of Fast, left his previous startup with a <a href="https://www.npr.org/2022/02/17/1081201040/domm-holland-fast-stripe">trail of legal issues</a> behind him. Employees who joined the company before it failed would have noticed several red flags if they looked into the issue.</p><h2>When interviewing</h2><ul><li><p>Who will I be working with? Are they good?</p></li><li><p>How did you find this company? Why did you join?</p></li><li><p>How did the company compare to your expectations?</p></li><li><p>What <strong>don't</strong> you like about your job?</p></li></ul><p>Interviews go both ways. Someone may be interviewing you, but you're also assessing your interviewer. During an interview, you're talking to potential teammates. Do your due diligence and assess whether these are people you'd enjoy working with.</p><p>I recommend knowing whether your hypothetical teammates are competent, sane, and happy with their jobs. It'll foreshadow whether you'll remain sane and happy with your future job.</p><h2>Before getting an offer</h2><ul><li><p>What's your burn rate? What will be your burn rate in 6 months?</p></li><li><p>How much runway do you have?</p></li><li><p>What's your revenue? (Current numbers, NOT projected.)</p></li><li><p>When do you expect to become profitable?</p></li></ul><p>At this point, assuming interviews have gone well, you're looking to understand a company's financial fundamentals. Do not accept hand-wavy answers for any of these questions. <strong>Every company needs to know basic math.</strong></p><p>The burn rate of a company is roughly how much it spends, while its runway represents how long it'll be before the company runs out of money. In my opinion, a healthy company should have <strong>at least 2 years of runway</strong>. Otherwise, it may risk having to accept unfavorable terms in its next funding round (or just failing outright). There was recently a <a href="https://s3.documentcloud.org/documents/22036831/adaptingtoenduremay2022.pdf">leaked presentation</a> from Sequoia about adapting to the future, given the current state of the economy. The days of "growth at all cost" or blind hyper-growth have fallen out of favor. Startups having solid fundamentals will matter a lot more moving forward.</p><h2>After getting an offer</h2><ul><li><p>How many outstanding shares are there?</p></li><li><p>What's the strike price (or fair market value) per share? What were the historical strike prices?</p></li><li><p>What's the preferred price per share?</p></li><li><p>How does the company plan to liquidate its shares?</p></li><li><p>Do you have early exercise?</p></li><li><p>What's the exercise window if I leave?</p></li></ul><p>If you're working at a startup, you're likely being paid in stock options. So you pay money to buy shares of a company and bet that the price of those shares will go up. That's not easy to measure, so you must make sure you understand <a href="https://andrew.cloud/blog/equity/">how equity compensation works</a>.</p><p>Working with stock options can have tax implications, so you may have to make a strategy even if a company is doing well. Early exercise can reduce your taxes (at the expense of upfront cash). If you don't want to exercise any options yet, be sure to know when those options expire. It's usually 90 days after you leave a company, but it can vary. When I was at Scale, if you worked there for at least two years, they had a clause that extended that exercise window to five years after your last day.</p><h2>Talking to the CEO</h2><ul><li><p>What's the biggest existential threat to your company?</p></li><li><p>Who controls the company's board seats? What conditions would cause the board to fire you?</p></li><li><p>What's the worst-case scenario that you project happening to the business? What's your contingency plan in such a case?</p></li><li><p>What's your vision for the company? Under what conditions would you sacrifice that vision?</p></li></ul><p>Before you join a startup, you should have at least one conversation with the CEO. And it's not the time to make small talk. <strong>You must ask the tough questions.</strong> This is the person who's steering the ship, and the person who's probably thought the most about the company's destiny. Like with the questions about company financials, if you get hand-wavy answers, run away. You do not want to be working for this person.</p><p>The question about the worst-case scenario is partially a test to see how well-prepared the CEO is. Leaders should be ready for pretty dire situations. Sometimes these situations can require hard decisions. If a company's burn rate becomes too high, make sure the CEO has considered <a href="https://techcrunch.com/2022/05/19/yc-advises-founders-to-plan-for-the-worst/">doing a layoff to cut costs</a>. If runway becomes a problem, the CEO should be willing to take a down round to keep the company alive. Is this a person who will make unpopular decisions for the company's best interest, or is this someone who engages in wishful thinking? It's your job to find out.</p><h2>Talking to former employees</h2><ul><li><p>How long did you work at the company?</p></li><li><p>Why did you leave? What could have made you stay?</p></li><li><p>What were some good things about the company?</p></li></ul><p>To avoid "drinking the Kool-Aid," I recommend talking to at least one person who has left the startup. You get an example where things didn't work out, and you can talk to someone with no incentive for you to join the company. It's an opportunity to hear an opposing viewpoint and uncover red flags.</p><p>Be sure to understand how much the former employee actually knows about the company and whether this person was fired. (People may not always be upfront about that information.) Ironically, if this is a person you <em>wouldn't</em> work with, a company firing that person may be a green flag.</p><div><hr></div><p><em>Thanks for reading! Please share this if you have friends who are looking at startups.</em></p>]]></content:encoded></item><item><title><![CDATA[Your priorities are meaningless (unless you stack rank them)]]></title><description><![CDATA[If you think everything's important, that means that nothing is important. No two things in life can be equal.]]></description><link>https://www.liu.blog/p/rank-your-priorities</link><guid isPermaLink="false">https://www.liu.blog/p/rank-your-priorities</guid><dc:creator><![CDATA[Andrew Liu]]></dc:creator><pubDate>Thu, 24 Feb 2022 01:13:23 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/be4fafbd-7be5-454e-963c-53e410f4102e_2000x1500.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><div class="image-link image2" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!uKXI!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f6b626a-3db8-4ec7-b39b-9771dd0796f4_2000x1500.jpeg 424w, https://substackcdn.com/image/fetch/$s_!uKXI!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f6b626a-3db8-4ec7-b39b-9771dd0796f4_2000x1500.jpeg 848w, https://substackcdn.com/image/fetch/$s_!uKXI!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f6b626a-3db8-4ec7-b39b-9771dd0796f4_2000x1500.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!uKXI!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f6b626a-3db8-4ec7-b39b-9771dd0796f4_2000x1500.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!uKXI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f6b626a-3db8-4ec7-b39b-9771dd0796f4_2000x1500.jpeg" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7f6b626a-3db8-4ec7-b39b-9771dd0796f4_2000x1500.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!uKXI!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f6b626a-3db8-4ec7-b39b-9771dd0796f4_2000x1500.jpeg 424w, https://substackcdn.com/image/fetch/$s_!uKXI!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f6b626a-3db8-4ec7-b39b-9771dd0796f4_2000x1500.jpeg 848w, https://substackcdn.com/image/fetch/$s_!uKXI!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f6b626a-3db8-4ec7-b39b-9771dd0796f4_2000x1500.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!uKXI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f6b626a-3db8-4ec7-b39b-9771dd0796f4_2000x1500.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></div><figcaption class="image-caption">Photo by <a href="https://unsplash.com/@brett_jordan?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit">Brett Jordan</a> / <a href="https://unsplash.com/?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit">Unsplash</a></figcaption></figure></div><p>As far as I can tell, every issue tracker and to-do list app known to man supports some feature that lets you prioritize your tasks.</p><p>You typically tag everything as high, medium, or low priority. Other apps may refer to them as "P0's" or "P1's," though they all use the same bucketing system. Sounds good on paper. I enjoy understanding my priorities just as much as the next person does. But what happens in practice? Personally, I experience a two-part problem.</p><ol><li><p>Everything gets labeled as a high priority.</p></li><li><p>You get confused about what's actually important.</p></li></ol><p>Dividing your priorities into buckets can backfire. If everything has a high priority, the system's meaningless. It's like giving each task a participation trophy.</p><p>Having real priorities means that no two things are equally important. By prioritizing one thing, you must explicitly deprioritize something else.</p><h2>Simple ordering solves this easily</h2><p>"But everything <em>is</em> important!" you might rebut in protest. I totally agree. Multiple things can be important, but that doesn't mean they're equally important. You can plan to buy both milk and eggs, but if the grocery store were rationing supplies, you'd eventually pick one over the other.</p><p>Here's what I recommend doing instead:</p><ul><li><p>Stack rank everything in order of their <strong>relative</strong> priority.</p></li><li><p>No two items can be equally ranked.</p></li><li><p>You're done. It's that simple. Start completing those tasks!</p></li></ul><p>Ranking tasks in an ordered list works so well because humans can intuitively sort items once we've given them some measurable values. Once you ban equal priorities, you're suddenly forced to make real decisions.</p><p>For those who still feel the need to divide tasks into buckets, you should still rank everything first. After ranking everything, then draw cut-off boundaries between your "high priority" and "medium priority" tasks. That way, you gain some notion of absolute importance without forgetting your relative prioritization. Though it's just a cherry on top. Stack ranking is enough.</p>]]></content:encoded></item></channel></rss>