<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>hoatrinh.dev blog</title>
    <link>https://hoatrinh.dev</link>
    <description>Notes from Hoa Trinh on building, habits, and the work behind the work.</description>
    <language>en-us</language>
    <lastBuildDate>Fri, 01 May 2026 00:00:00 GMT</lastBuildDate>
    <atom:link href="https://hoatrinh.dev/rss.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>AI made learning fun again</title>
      <link>https://hoatrinh.dev/blog/ai-made-learning-fun-again</link>
      <guid isPermaLink="true">https://hoatrinh.dev/blog/ai-made-learning-fun-again</guid>
      <pubDate>Fri, 01 May 2026 00:00:00 GMT</pubDate>
      <description>I did not get smarter overnight. AI just removed enough friction that I stopped quitting so early.</description>
      <content:encoded><![CDATA[<p>For a long time, learning new dev stuff felt like homework.</p>
<p>I could be curious enough to start, but not patient enough to stay. I would open the docs, then ten tabs, then a video, then another thread explaining the same thing in a different tone. Somewhere in that mess, the energy would drop. The thing I wanted to learn was still interesting. The process of learning it was not.</p>
<p>That changed with generative AI.</p>
<p><img src="https://images.unsplash.com/photo-1516321318423-f06f85e504b3?auto=format&fit=crop&w=1600&q=80" alt="Typing on a laptop while learning with AI"></p>
<p>Not because AI made me brilliant. It did something smaller and more useful: it removed just enough friction that I stopped quitting so early.</p>
<h2>The real problem was never information</h2>
<p>There is more learning material online than any one person could finish in a lifetime.</p>
<p>So the problem was never access. It was everything around access:</p>
<ul>
<li>too many tabs</li>
<li>too much context switching</li>
<li>too many small questions I felt silly asking</li>
<li>too much time spent trying to understand the “obvious” part before reaching the useful part</li>
</ul>
<p>That last one is the killer.</p>
<p>When you are stuck on a tiny thing, the whole learning session starts to feel expensive. Then you stop. Not because the topic is hard, but because the momentum is gone.</p>
<p>AI helped me keep the momentum.</p>
<h2>It shortened the shame loop</h2>
<p>Before AI, there was always a little embarrassment attached to asking beginner questions.</p>
<p>I knew I was supposed to already understand the thing. So instead of asking, I would try to power through with fragments from memory and half-understood docs. That usually made things worse.</p>
<p>AI made it easier to say:</p>
<ul>
<li>“Explain this like I know the basics, but not this exact detail.”</li>
<li>“What am I missing here?”</li>
<li>“Show me the simplest version first.”</li>
<li>“Why would someone choose this approach instead of that one?”</li>
</ul>
<p>That sounds small, but it matters.</p>
<p>The shorter the gap between confusion and clarification, the less likely I am to give up.</p>
<h2>It turned passive reading into active learning</h2>
<p>I learn better when I am doing something with the information, not just reading it.</p>
<p>AI helps me move from passive to active faster. I can ask it to:</p>
<ul>
<li>turn docs into a small exercise</li>
<li>quiz me on the idea</li>
<li>compare two approaches</li>
<li>generate a toy example</li>
<li>explain the tradeoff in plain language</li>
</ul>
<p>That changes the vibe completely.</p>
<p>Learning stops feeling like a lecture and starts feeling like a conversation. More importantly, it feels playable. I can explore, try something, get corrected, and try again.</p>
<p><img src="https://images.unsplash.com/photo-1550751827-4bd374c3f58b?auto=format&fit=crop&w=1600&q=80" alt="Abstract tech image suggesting AI and code"></p>
<h2>It taught me to ask better questions</h2>
<p>AI is only useful if you learn how to use it well.</p>
<p>If I ask lazy questions, I get lazy answers. If I ask for the first thing that works, I stop learning too early. So the real skill is not “use AI.” It is “steer AI.”</p>
<p>The prompts that help me most are usually like this:</p>
<ul>
<li>explain it simply first</li>
<li>then show the tradeoffs</li>
<li>then show a real example</li>
<li>then tell me what to build next</li>
</ul>
<p>That sequence keeps me honest. It prevents me from outsourcing the thinking while still letting me move faster.</p>
<h2>It still cannot replace doing the work</h2>
<p>This is the part people skip.</p>
<p>AI can help me understand faster, but it cannot make the understanding stick.</p>
<p>I only really learn when I build something, break it, and fix it myself. AI is best when it gets me to that loop sooner. It should reduce the distance between “I have a question” and “I am testing the idea.”</p>
<p>If I use it to avoid doing the work, I get a false sense of progress.</p>
<p>If I use it to get to the work faster, it becomes genuinely useful.</p>
<h2>The bigger change is emotional, not technical</h2>
<p>The most surprising thing AI did for me was not technical.</p>
<p>It made being a beginner feel less bad.</p>
<p>That matters because a lot of people do not quit learning from lack of ability. They quit because the process makes them feel slow, behind, or stupid. AI does not remove that feeling completely, but it softens it enough to keep going.</p>
<p>And once you keep going, learning gets fun again.</p>
<h2>My rule now</h2>
<p>I do not use AI to think for me.</p>
<p>I use it to:</p>
<ul>
<li>remove friction</li>
<li>ask better questions</li>
<li>stay in motion</li>
<li>get to hands-on practice sooner</li>
</ul>
<p>That is the smarter way to use it.</p>
<p>Not fear. Not hype.</p>
<p>Just a tool that makes learning feel possible again.</p>
]]></content:encoded>
    </item>
    <item>
      <title>The small habits I keep on rails</title>
      <link>https://hoatrinh.dev/blog/the-small-habits-i-keep-on-rails</link>
      <guid isPermaLink="true">https://hoatrinh.dev/blog/the-small-habits-i-keep-on-rails</guid>
      <pubDate>Mon, 27 Apr 2026 00:00:00 GMT</pubDate>
      <description>Why I wired my mornings to Todoist, and what I'd cut if I had to.</description>
      <content:encoded><![CDATA[<p>Willpower is a bad scheduler. If a habit has to be decided every
morning, I skip it about a third of the time. If it shows up as a
Todoist task at 6:10 with a due time, I do it, because the friction of
dismissing the notification is higher than the friction of doing the
thing. That is the whole trick. The habits below are not special. The
rails around them are.</p>
<h2>What I do every day</h2>
<ul>
<li>20 push ups + 20 squats + 15 leg raises + 40 mountain climbers + 30s hollow hold, at 6:10.</li>
<li>Take a multivitamin at 10:00.</li>
<li>Read one post on daily.dev.</li>
<li>30 to 60 minutes of workout / running / cycling.</li>
<li>A monkey-type round.</li>
</ul>
<p>Todoist handles the scheduling. Recurring tasks for the habit stack;
one-off tasks for anything that is not on rails yet.</p>
<h2>What I would cut first</h2>
<p>Ranked by return on the minute it costs me. If the week got crowded and
I had to start pulling things out, this is the order.</p>
<ol>
<li><strong>Keep.</strong> The 30 to 60 minute workout block. Biggest mood and energy
lift of the day, and the only one that pays back into everything
else.</li>
<li><strong>Keep.</strong> The 6:10 bodyweight stack. Tiny time cost, primes the day,
and the streak matters more than the volume.</li>
<li><strong>Keep.</strong> Multivitamin. Cheap, zero friction, no reason to touch it.</li>
<li><strong>First to cut.</strong> daily.dev. It is the most passive item on the
list, and the easiest to rationalise as &quot;input&quot; when I am really
just scrolling.</li>
<li><strong>Second to cut.</strong> monkey-type. Fun, but if my keyboard speed were
the bottleneck in my life I would already know.</li>
</ol>
<h2>When the rails break</h2>
<p>Travel, illness, late nights, a deadline that eats the evening. The
stack dies and pretending it did not makes it worse. The minimum viable
version I fall back to:</p>
<ul>
<li>One walk, any length.</li>
<li>Multivitamin.</li>
<li>Skip everything else without negotiating with myself about it.</li>
</ul>
<p>The goal on a bad day is not to run the program. It is to not break the
identity. One tiny thing keeps the &quot;I do this&quot; label intact. Zero
things starts a story about quitting.</p>
<h2>The commitment</h2>
<p>One new habit, starting with this post: one post per week, on Fridays.
This blog is day one. The rules are the same as the rest of the stack.
Todoist handles the scheduling. If I miss a Friday, the cadence header
on /blog will tell on me. That is the point.</p>
<p><img src="/blog/habits-rails-todoist-weekly-post.png" alt="Recurring Todoist task: write one blog post for hoatrinh.dev, every Friday"></p>
<h2>What success looks like</h2>
<p>Three months from now, late July, the honest metric is not whether I
hit every day. It is two things. Is the Friday post still going up. Is
the workout block still showing a streak longer than two weeks. If both
are true, the rails are working. If one breaks, the rails are wrong for
the season, not the habits.</p>
]]></content:encoded>
    </item>
  </channel>
</rss>
