<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: 달리기</title>
    <description>The latest articles on Forem by 달리기 (@ai_finder).</description>
    <link>https://forem.com/ai_finder</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3838129%2Fc1f9df7f-2bc1-4ca4-b349-9dcf9d95b6fa.png</url>
      <title>Forem: 달리기</title>
      <link>https://forem.com/ai_finder</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/ai_finder"/>
    <language>en</language>
    <item>
      <title>I trusted the code AI wrote for me. My data was silently broken the whole time.</title>
      <dc:creator>달리기</dc:creator>
      <pubDate>Sat, 11 Apr 2026 02:09:00 +0000</pubDate>
      <link>https://forem.com/ai_finder/i-trusted-the-code-ai-wrote-for-me-my-data-was-silently-broken-the-whole-time-1ng8</link>
      <guid>https://forem.com/ai_finder/i-trusted-the-code-ai-wrote-for-me-my-data-was-silently-broken-the-whole-time-1ng8</guid>
      <description>&lt;p&gt;When you're vibe coding with AI, a pattern develops quickly.&lt;/p&gt;

&lt;p&gt;Describe the feature → get the code → run it → see no errors → move on to the next thing.&lt;/p&gt;

&lt;p&gt;It's fast. But "no errors" and "working as intended" are different things. I learned that the hard way.&lt;/p&gt;




&lt;h2&gt;
  
  
  The feature I added
&lt;/h2&gt;

&lt;p&gt;I built a post-alert tracking system into my crypto bot.&lt;/p&gt;

&lt;p&gt;After each alert fires, it was supposed to record the price at &lt;strong&gt;30 minutes, 1 hour, and 4 hours&lt;/strong&gt; later — building a dataset to answer "when is the best time to sell?"&lt;/p&gt;

&lt;p&gt;The bot ran cleanly. No errors. Data flowing into Google Sheets every day.&lt;/p&gt;




&lt;h2&gt;
  
  
  What I found
&lt;/h2&gt;

&lt;p&gt;One day I opened the spreadsheet: 30-minute column full, 1-hour and 4-hour columns nearly empty.&lt;/p&gt;

&lt;p&gt;Why didn't I catch it sooner? To verify the 4-hour entries, you'd need to fire an alert and come back four hours later. The bot looked fine, so I assumed it was working.&lt;/p&gt;

&lt;p&gt;The problem was in the code AI had written:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# The broken version
&lt;/span&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;elapsed&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;=&lt;/span&gt; &lt;span class="mi"&gt;30&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="nf"&gt;record_30min&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="k"&gt;elif&lt;/span&gt; &lt;span class="n"&gt;elapsed&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;=&lt;/span&gt; &lt;span class="mi"&gt;60&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="nf"&gt;record_60min&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="k"&gt;elif&lt;/span&gt; &lt;span class="n"&gt;elapsed&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;=&lt;/span&gt; &lt;span class="mi"&gt;240&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="nf"&gt;record_240min&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Once the 30-minute condition matched, the &lt;code&gt;elif&lt;/code&gt; branches never ran. Every alert logged 30 minutes — then silently skipped 1-hour and 4-hour entirely.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# The fix
&lt;/span&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;elapsed&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;=&lt;/span&gt; &lt;span class="mi"&gt;30&lt;/span&gt; &lt;span class="ow"&gt;and&lt;/span&gt; &lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="n"&gt;recorded_30min&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="nf"&gt;record_30min&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;elapsed&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;=&lt;/span&gt; &lt;span class="mi"&gt;60&lt;/span&gt; &lt;span class="ow"&gt;and&lt;/span&gt; &lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="n"&gt;recorded_60min&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="nf"&gt;record_60min&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;elapsed&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;=&lt;/span&gt; &lt;span class="mi"&gt;240&lt;/span&gt; &lt;span class="ow"&gt;and&lt;/span&gt; &lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="n"&gt;recorded_240min&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="nf"&gt;record_240min&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;When I write code myself, I think through the logic line by line. When AI writes it, I check if it runs — and this one ran fine. The structural issue slipped through.&lt;/p&gt;




&lt;h2&gt;
  
  
  The part that bothered me more
&lt;/h2&gt;

&lt;p&gt;If I'd run analysis on that dataset, I would have concluded: &lt;strong&gt;"always sell within 30 minutes."&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The data looked clean. No errors, no flags. I would have had no reason to question it. Wrong data → wrong conclusion → wrong strategy, all from a bug that never made a sound.&lt;/p&gt;




&lt;h2&gt;
  
  
  What changed after this
&lt;/h2&gt;

&lt;p&gt;AI-assisted coding is fast. But asking "does this work?" gets you "yes, it runs." That's not what you actually need to know.&lt;/p&gt;

&lt;p&gt;After this, I started asking a different question when reviewing AI-generated code:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"What could be wrong with this?"&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That shift caught more issues than anything else I'd tried.&lt;/p&gt;

</description>
      <category>python</category>
      <category>automation</category>
      <category>ai</category>
      <category>beginners</category>
    </item>
    <item>
      <title>I pitted Claude and Gemini against each other while building a crypto bot. Here's what I found.</title>
      <dc:creator>달리기</dc:creator>
      <pubDate>Tue, 31 Mar 2026 06:10:36 +0000</pubDate>
      <link>https://forem.com/ai_finder/i-pitted-claude-and-gemini-against-each-other-while-building-a-crypto-bot-heres-what-i-found-2e3j</link>
      <guid>https://forem.com/ai_finder/i-pitted-claude-and-gemini-against-each-other-while-building-a-crypto-bot-heres-what-i-found-2e3j</guid>
      <description>&lt;p&gt;While building a crypto notification bot, I developed a weird habit: copying the same question into both Claude and Gemini, then comparing the answers.&lt;/p&gt;

&lt;p&gt;My journal at the time: "Pasting the same questions into Gemini and Claude and watching them disagree. This is more fun than I expected."&lt;/p&gt;




&lt;h2&gt;
  
  
  Round 1: Setup time estimate
&lt;/h2&gt;

&lt;p&gt;Asked both how long Make.com automation setup would take for a beginner.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Gemini: "20 minutes"&lt;/li&gt;
&lt;li&gt;Claude: "That's quite optimistic for a first-timer. Expect 1-2 hours. Also, the free plan has a 1,000 operations/month limit — worth knowing upfront."&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Tried it myself. Claude was right.&lt;/p&gt;




&lt;h2&gt;
  
  
  Round 2: Code review
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Claude: "6.5/10. It works, but this code fails silently." (followed by a bug list)&lt;/li&gt;
&lt;li&gt;Gemini: "100 out of 100... but here are 5 things to fix."&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Gemini's praise felt good at first. After the third time, I stopped trusting it.&lt;/p&gt;




&lt;h2&gt;
  
  
  Round 3: Error fixing
&lt;/h2&gt;

&lt;p&gt;Had an error related to Gemini's API. Asked Claude — didn't work. Asked Gemini directly — solved immediately.&lt;/p&gt;

&lt;p&gt;Turns out, ask the tool about itself.&lt;/p&gt;




&lt;h2&gt;
  
  
  The moment that stuck
&lt;/h2&gt;

&lt;p&gt;Asked Claude: "What if I charge people for bot signals?"&lt;/p&gt;

&lt;p&gt;Claude: "Companies with billions in funding already do this. Selling investment signals for money can also be a legal issue. Honestly, the only realistic angle here is selling the process of building this — not the signals."&lt;/p&gt;

&lt;p&gt;Didn't want to hear it. Wasn't wrong.&lt;/p&gt;

&lt;p&gt;Journal after that: "There's this AI called Claude. More realistic than Gemini. Ended up buying it."&lt;/p&gt;




&lt;h2&gt;
  
  
  Takeaway
&lt;/h2&gt;

&lt;p&gt;It's not about which one is better. It's about knowing where to use each.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Claude: uncomfortable truths, accurate bug spotting, realistic advice&lt;/li&gt;
&lt;li&gt;Gemini: fast drafts, knows its own API best, friendly step-by-step&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Using both at the same time showed me things I couldn't see using either alone.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>llm</category>
      <category>beginners</category>
      <category>productivity</category>
    </item>
    <item>
      <title>## I started building bots because I was scared of falling behind on AI. Now I run 6 of them 24/7 on a Mac Mini.</title>
      <dc:creator>달리기</dc:creator>
      <pubDate>Tue, 24 Mar 2026 11:42:29 +0000</pubDate>
      <link>https://forem.com/ai_finder/-i-started-building-bots-because-i-was-scared-of-falling-behind-on-ai-now-i-run-6-of-them-247-2hh5</link>
      <guid>https://forem.com/ai_finder/-i-started-building-bots-because-i-was-scared-of-falling-behind-on-ai-now-i-run-6-of-them-247-2hh5</guid>
      <description>&lt;p&gt;It started with FOMO.&lt;/p&gt;

&lt;p&gt;Everyone around me was talking about using AI tools. I felt like if I didn't figure this out fast, I'd be left behind. So I thought — let me just try building something.&lt;/p&gt;

&lt;p&gt;That "something" turned out to be 6 automated bots running 24/7 on a Mac Mini M1 server.&lt;/p&gt;

&lt;p&gt;Here's what actually happened along the way.&lt;/p&gt;

&lt;h2&gt;
  
  
  The first real mistake
&lt;/h2&gt;

&lt;p&gt;I was building a crypto alert bot for Upbit. Lost a full day's worth of data because I didn't handle API errors properly. The external API changed its response format without notice — my bot silently died.&lt;/p&gt;

&lt;p&gt;Didn't notice until the next day.&lt;/p&gt;

&lt;p&gt;I've since rewritten that single bot 48 times. v48 is running now.&lt;/p&gt;

&lt;h2&gt;
  
  
  What "running 24/7" actually means
&lt;/h2&gt;

&lt;p&gt;Spoiler: it doesn't just run by itself.&lt;/p&gt;

&lt;p&gt;I discovered Supervisor — a process manager that keeps bots alive with auto-restart. Before this, bots would crash and stay dead silently.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight ini"&gt;&lt;code&gt;&lt;span class="nn"&gt;[program:upbit_bot]&lt;/span&gt;
&lt;span class="py"&gt;command&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;python3 /Users/m1dongeun/bot_upbit/upbit_v48.py&lt;/span&gt;
&lt;span class="py"&gt;autostart&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;true&lt;/span&gt;
&lt;span class="py"&gt;autorestart&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;true&lt;/span&gt;
&lt;span class="py"&gt;stderr_logfile&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;/var/log/upbit_bot.err.log&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Telegram notifications helped too. Now I know about crashes the same day — not the next morning.&lt;/p&gt;

&lt;h2&gt;
  
  
  The infrastructure stack
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Mac Mini M1&lt;/strong&gt; — always-on server&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Supervisor&lt;/strong&gt; — process manager, all 6 bots&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tailscale&lt;/strong&gt; — SSH remote access from anywhere&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Telegram&lt;/strong&gt; — real-time bot notifications&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Python&lt;/strong&gt; — everything&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What I'm running now
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Upbit pump alert bot (v48)&lt;/li&gt;
&lt;li&gt;Upbit auto-trade bot&lt;/li&gt;
&lt;li&gt;Binance trading bot&lt;/li&gt;
&lt;li&gt;News analysis bot&lt;/li&gt;
&lt;li&gt;YouTube monitoring bot&lt;/li&gt;
&lt;li&gt;Community auto-poster&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  One unexpected discovery
&lt;/h2&gt;

&lt;p&gt;I built a news analysis bot assuming news would correlate with price movements. So I actually ran the numbers — 1,056 entries, average price change in the hour after news: -0.012%.&lt;/p&gt;

&lt;p&gt;I built a whole bot around an assumption that the data didn't support.&lt;/p&gt;

&lt;h2&gt;
  
  
  Still figuring things out
&lt;/h2&gt;

&lt;p&gt;The latest thing I set up was OpenClaw — an AI agent running on the Mac Mini. Got hit by rate limits on free models, Telegram 409 conflicts from multiple instances running at once, and a launchd vs Supervisor conflict that required going directly to the Mac Mini terminal to fix.&lt;/p&gt;

&lt;p&gt;Eventually stabilized it with Anthropic API directly connected and Supervisor managing the process.&lt;/p&gt;

&lt;h2&gt;
  
  
  Is anyone else doing this solo?
&lt;/h2&gt;

&lt;p&gt;I'm not a professional developer. Everything came from building and breaking things.&lt;/p&gt;

&lt;p&gt;If you're running your own automation stack — what's the most annoying failure you've run into?&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>python</category>
      <category>automation</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
