<?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>DEV Community: FromZeroToShip</title>
    <description>The latest articles on DEV Community by FromZeroToShip (@fromzerotoship).</description>
    <link>https://dev.to/fromzerotoship</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4009335%2Fb545e0a8-85ee-491a-bec0-9c98be7e95ed.png</url>
      <title>DEV Community: FromZeroToShip</title>
      <link>https://dev.to/fromzerotoship</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/fromzerotoship"/>
    <language>en</language>
    <item>
      <title>#20 Your First 30 Days With AI: A Simple Plan</title>
      <dc:creator>FromZeroToShip</dc:creator>
      <pubDate>Tue, 21 Jul 2026 12:26:00 +0000</pubDate>
      <link>https://dev.to/fromzerotoship/20-your-first-30-days-with-ai-a-simple-plan-3bkj</link>
      <guid>https://dev.to/fromzerotoship/20-your-first-30-days-with-ai-a-simple-plan-3bkj</guid>
      <description>&lt;p&gt;The rules and the tool list are useful once you're moving. But the question I actually get most is smaller: &lt;em&gt;okay, so what do I do on day one?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Here's the plan I'd actually give someone standing exactly where I stood. Thirty minutes a day. No studying. Four weeks.&lt;/p&gt;

&lt;h2&gt;
  
  
  Week 1 — Just get comfortable talking to it
&lt;/h2&gt;

&lt;p&gt;Don't try to learn anything yet. Open an AI chat and talk to it about whatever's in front of you — ask it to recommend lunch, ask it an Excel question, ask it something you're a little embarrassed to ask a person. It doesn't matter what.&lt;/p&gt;

&lt;p&gt;The only goal this week is to feel, in your own hands, how far "just ask" actually reaches. That feeling — &lt;em&gt;oh, it can do that too&lt;/em&gt; — is the entire foundation. You're not building anything yet. You're finding out what's possible.&lt;/p&gt;

&lt;h2&gt;
  
  
  Week 2 — Pick one annoyance
&lt;/h2&gt;

&lt;p&gt;Choose one thing you do over and over that genuinely irritates you. Don't reach for something ambitious. The smallest, most frequent annoyance is the right one — not the biggest problem you can imagine solving.&lt;/p&gt;

&lt;p&gt;Describe it to the AI in plain words and start talking through how it might be reduced. You're not building yet, just figuring out the shape of the fix together. This is the same question that opens half the stories on this blog: what's the one repetitive thing that wastes your time every week?&lt;/p&gt;

&lt;h2&gt;
  
  
  Week 3 — Build the smallest possible version
&lt;/h2&gt;

&lt;p&gt;Take whatever you landed on in week 2 and move it into a spreadsheet. Ask the AI to write the formula. Let it automate one calculation you used to do by hand.&lt;/p&gt;

&lt;p&gt;It doesn't need to be impressive. One click producing something that used to take you ten minutes is a complete win for this week. This is exactly how a single stuck formula eventually became a real tool — it just never stopped at "one formula."&lt;/p&gt;

&lt;h2&gt;
  
  
  Week 4 — Show it to one person
&lt;/h2&gt;

&lt;p&gt;Show what you made to a single coworker. "Want to try this?"&lt;/p&gt;

&lt;p&gt;If it makes their day even slightly easier, you've already started for real. That one small reaction — someone else's relief — turns out to be the biggest fuel there is for building the next thing. Noticing other people's annoyances, not just your own, is where this whole habit actually turns into something bigger than a personal trick.&lt;/p&gt;

&lt;h2&gt;
  
  
  What to expect a month from now
&lt;/h2&gt;

&lt;p&gt;Nothing dramatic. You will not feel like a developer. You'll just have one small, working thing that didn't exist thirty days ago.&lt;/p&gt;

&lt;p&gt;That's exactly where I started too. One small thing, kept going, quietly became twenty-two.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The plan only works if you actually pick something this week — not the ideal project, just the nearest annoyance.&lt;/strong&gt; Everything else follows from that one small, unglamorous choice.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;This is part of &lt;a href="https://fromzerotoship.com" rel="noopener noreferrer"&gt;From Zero to Ship&lt;/a&gt; — the honest logbook of a non-developer who shipped 20+ working tools with AI. If this resonated, the rest of the series is there.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>ai</category>
      <category>productivity</category>
      <category>career</category>
    </item>
    <item>
      <title>#19 My Actual Tool Stack: No Coding Background Required</title>
      <dc:creator>FromZeroToShip</dc:creator>
      <pubDate>Mon, 20 Jul 2026 12:25:00 +0000</pubDate>
      <link>https://dev.to/fromzerotoship/19-my-actual-tool-stack-no-coding-background-required-4aed</link>
      <guid>https://dev.to/fromzerotoship/19-my-actual-tool-stack-no-coding-background-required-4aed</guid>
      <description>&lt;p&gt;People keep asking for a list. Fair enough — across eighteen posts, tools kept showing up one at a time, buried inside whatever story I was telling. Here they all are in one place.&lt;/p&gt;

&lt;p&gt;Nothing here is exotic. Most of it is free. None of it required a computer science background — just me, and each tool, one problem at a time.&lt;/p&gt;

&lt;h2&gt;
  
  
  The AI
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Gemini&lt;/strong&gt; was the first one I ever opened, back when a stuck spreadsheet formula forced my hand. It answered questions in plain language, which was the whole unlock at the time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Claude&lt;/strong&gt; came later, after a phone call with a stranger who'd started exactly where I had. The difference between the two wasn't small: one told me about code, the other just wrote it. If you're only picking one place to start, start by asking it questions in your own words and seeing what comes back — no special phrasing required.&lt;/p&gt;

&lt;h2&gt;
  
  
  Google Sheets
&lt;/h2&gt;

&lt;p&gt;This is where everything began. It looks like Excel, but several people can type into the same sheet at the same time, live. That single difference is what let six mismatched paper forms become one shared table.&lt;/p&gt;

&lt;p&gt;Underneath it sits &lt;strong&gt;Apps Script&lt;/strong&gt; — a small scripting layer built into the sheet itself. That's how a spreadsheet formula eventually grew into a button, and how that button eventually grew into a real screen.&lt;/p&gt;

&lt;h2&gt;
  
  
  VS Code
&lt;/h2&gt;

&lt;p&gt;Once tools needed more than a spreadsheet could hold, I needed somewhere to actually write and run code with an AI's help. VS Code was the one I picked, mostly because it didn't scare me the way a plain black terminal did. That's the moment the real building started.&lt;/p&gt;

&lt;h2&gt;
  
  
  NAS
&lt;/h2&gt;

&lt;p&gt;A NAS is just a small storage box that sits in the building and never turns off — the kind of thing offices already have for shared files. I had a hunch it could do more than store files, and that hunch turned out right. Once I got access and moved things over, everything got dramatically faster, and it became something closer to our own private server.&lt;/p&gt;

&lt;h2&gt;
  
  
  Cloudflare
&lt;/h2&gt;

&lt;p&gt;The first time a tool needed to reach past our own walls, Cloudflare is what built the door. It's free, and it handles the security side properly instead of leaving a hole open. That first outside connection changed how I thought about everything.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tailscale
&lt;/h2&gt;

&lt;p&gt;Different problem, similar shape: a private tunnel, but this one just for me. It let me reach into our systems from anywhere and fix things without driving back to the office at midnight — a detail that mattered a lot more once things started depending on staying up.&lt;/p&gt;

&lt;h2&gt;
  
  
  Open source
&lt;/h2&gt;

&lt;p&gt;Plenty of the pieces I needed, someone else had already built and given away for free. Before assuming something has to be built from scratch, it's worth checking whether it already exists. That single habit saved more time than any tool on this list.&lt;/p&gt;

&lt;h2&gt;
  
  
  What this list actually proves
&lt;/h2&gt;

&lt;p&gt;None of this is a shopping list. It's evidence of a shape: &lt;strong&gt;a small, mostly free tool, picked the moment an actual problem needed it — never bought in advance, never picked because it looked impressive.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Every tool here entered the story because something specific was broken and this was what fixed it. That order matters. Pick the annoyance first. The tool will be obvious once you're standing in front of the real problem.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;This is part of &lt;a href="https://fromzerotoship.com" rel="noopener noreferrer"&gt;From Zero to Ship&lt;/a&gt; — the honest logbook of a non-developer who shipped 20+ working tools with AI. If this resonated, the rest of the series is there.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>ai</category>
      <category>tools</category>
      <category>webdev</category>
    </item>
    <item>
      <title>#18 Six Rules I Learned From a Year of Working With AI</title>
      <dc:creator>FromZeroToShip</dc:creator>
      <pubDate>Sun, 19 Jul 2026 14:24:00 +0000</pubDate>
      <link>https://dev.to/fromzerotoship/18-six-rules-i-learned-from-a-year-of-working-with-ai-47b7</link>
      <guid>https://dev.to/fromzerotoship/18-six-rules-i-learned-from-a-year-of-working-with-ai-47b7</guid>
      <description>&lt;p&gt;Every post so far has been a story. This one is different.&lt;/p&gt;

&lt;p&gt;People have started asking me a plainer question: &lt;em&gt;okay, but how do you actually talk to it?&lt;/em&gt; Not the drama, just the method. So here it is — the six rules I actually learned, plus the real conversations behind them, mistakes included.&lt;/p&gt;

&lt;p&gt;This isn't a technique. It's closer to an attitude, hammered into shape over a year of getting things wrong.&lt;/p&gt;

&lt;h2&gt;
  
  
  The six rules
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1. Don't take "it can't be done" at face value.&lt;/strong&gt;&lt;br&gt;
AI states limits with total confidence, and sometimes it's simply wrong. Ask again. Ask differently. My biggest breakthrough came from a place AI had already declared impossible.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Ask for one thing at a time.&lt;/strong&gt;&lt;br&gt;
Stack too many requests into one prompt and everything tangles. Break it small, get one piece working, then move to the next. It feels slower. It isn't.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Make a copy before you let it touch anything.&lt;/strong&gt;&lt;br&gt;
AI breaking something that used to work is more common than you'd think. Copy first. If it goes wrong, you have somewhere to go back to.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Write down what worked.&lt;/strong&gt;&lt;br&gt;
Tell the AI the pattern that succeeded and it stops repeating the same mistake. Failures are worth keeping too — a list of dead ends is still an asset.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Keep the process simple.&lt;/strong&gt;&lt;br&gt;
The same result through a tangled process costs more every time — more time, more money, more chances to break. Simple is cheaper and faster, almost always.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6. Say "I don't know" out loud.&lt;/strong&gt;&lt;br&gt;
Don't perform expertise you don't have. "I have no idea what this is, explain from zero" gets you a better answer than pretending you followed the first one.&lt;/p&gt;

&lt;h2&gt;
  
  
  What asking actually sounded like
&lt;/h2&gt;

&lt;p&gt;No secret phrasing. Just plain description of what I wanted, admitting up front that I didn't know the technical words for any of it.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"I want this cell to turn red if it's bigger than that cell, but I don't know any code. Explain from the start."&lt;/p&gt;

&lt;p&gt;"I want one button. Press it, and the scattered rows line up by date. Is that possible?"&lt;/p&gt;

&lt;p&gt;"This screen gets slow when a lot of people use it at once. Walk me through why, and whether there's a fix."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That's the whole trick. Say what you don't know, describe what you want in ordinary words, and the AI meets you where you are.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where AI actually got it wrong
&lt;/h2&gt;

&lt;p&gt;Trust it. Just not blindly. These are real ones.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The fake limit.&lt;/strong&gt; When an internal tool I'd built slowed to a crawl under real traffic, AI told me flatly: that's just the limit of the server, nothing to be done. I couldn't accept that answer, so I kept pushing on it, night after night. The real cause was somewhere else entirely — the tool re-fetched everything from scratch on every click instead of remembering what it just loaded. Fix that one thing, and the "hardware limit" evaporated. The limit wasn't the server. It was not questioning the AI's confidence.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The outdated screen.&lt;/strong&gt; Setting up outside access for the first time, the steps AI described kept not matching what was actually on my screen. Its knowledge had a cutoff date, and the interface had moved on since. The fix was just telling it back: "here's what I'm actually seeing now" — and it adjusted from there.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The thing it deleted.&lt;/strong&gt; Early on, asking for one small fix would sometimes wipe out something else that had been working fine. That's exactly why rule three exists. Even now, with much better tools, I still make the copy first. Old habit, still worth it.&lt;/p&gt;

&lt;h2&gt;
  
  
  The one-line version
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Say what you don't know honestly — but question "it can't be done" one more time. And always make a copy before you touch anything.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Those three lines cost me the most, across an entire year, to actually learn.&lt;/p&gt;

&lt;p&gt;A month from now, none of this will feel dramatic. You'll just have one small tool sitting there that you built. That's exactly where I started too — one small thing, which quietly turned into twenty-two.&lt;/p&gt;

&lt;p&gt;Your first one is next. Go find the annoying thing.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;This is part of &lt;a href="https://fromzerotoship.com" rel="noopener noreferrer"&gt;From Zero to Ship&lt;/a&gt; — the honest logbook of a non-developer who shipped 20+ working tools with AI. If this resonated, the rest of the series is there.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>ai</category>
      <category>productivity</category>
      <category>career</category>
    </item>
    <item>
      <title>#17 None of It Was for Me: A Year of Building With AI</title>
      <dc:creator>FromZeroToShip</dc:creator>
      <pubDate>Sat, 18 Jul 2026 14:20:00 +0000</pubDate>
      <link>https://dev.to/fromzerotoship/17-none-of-it-was-for-me-a-year-of-building-with-ai-32kf</link>
      <guid>https://dev.to/fromzerotoship/17-none-of-it-was-for-me-a-year-of-building-with-ai-32kf</guid>
      <description>&lt;p&gt;I laid them all out one day. Twenty-two tools I had built over a year.&lt;/p&gt;

&lt;p&gt;Then I noticed something strange. Not one of them was for me.&lt;/p&gt;

&lt;h2&gt;
  
  
  Every tool was for someone else
&lt;/h2&gt;

&lt;p&gt;I looked down the list and it was the same story every time.&lt;/p&gt;

&lt;p&gt;There was a tool for the coworkers who counted hand-hygiene moments by hand. One for the staff member who stood out in the sun writing down license plate numbers. One for an older employee who found video editing impossible. Several for patients. Every single one was built for somebody else. The thing that struck me: I never built a tool to make my own day easier. Not one.&lt;/p&gt;

&lt;p&gt;What surprised me most was that I never planned it that way.&lt;/p&gt;

&lt;p&gt;I never once sat down and decided "I should build things for other people." That was never the goal. I just couldn't stand watching someone struggle in front of me, so I'd build something to fix it. I'd do that, then do it again, and after a year I turned around and found that all of it pointed outward. Nobody asked me to. I didn't have a plan. I guess that's just the kind of person I am. And I only learned that about myself after the twenty-two tools were already done.&lt;/p&gt;

&lt;h2&gt;
  
  
  What actually made it possible
&lt;/h2&gt;

&lt;p&gt;But when I ask what made any of this possible, the answer keeps landing in one place. It was AI.&lt;/p&gt;

&lt;p&gt;I want to be clear about this, because it's easy to get wrong. A person who didn't know what code was built twenty-two tools in a year. That didn't happen because I suddenly got smart. It happened because a tool called AI landed in my hands.&lt;/p&gt;

&lt;p&gt;And using it taught me one big thing. The world changed.&lt;/p&gt;

&lt;p&gt;Before AI, being good with a computer &lt;em&gt;was&lt;/em&gt; your ability. If you could format a clean document, if you could write a slick spreadsheet formula, that was a real skill on its own. People got jobs for it. That era is fading. Now the computer is just a tool, and AI is just a tool. What matters is how well you can drive it. Your ability to use AI is becoming, more and more, your ability itself.&lt;/p&gt;

&lt;h2&gt;
  
  
  AI holds everything; you only need a sliver
&lt;/h2&gt;

&lt;p&gt;Here is the part it took me a while to understand.&lt;/p&gt;

&lt;p&gt;AI holds an enormous amount inside it. Nearly every field of knowledge, all at once. But what I need at any given moment is one tiny sliver of that. So the real skill isn't knowing things. It's pulling out the one piece you need from that giant pile.&lt;/p&gt;

&lt;p&gt;And how you ask shapes what comes out. Ask one way and the same AI becomes a mathematician. Ask another way and it's a scientist, or a writer. For me, it became a developer. I stood the AI up as my developer, asked for what I needed, and used what came back. That was the whole trick.&lt;/p&gt;

&lt;p&gt;This blog is no different, honestly. I'm not a native English writer. These posts get written with an AI as my writing partner — I tell it my story, in my own language, and we shape it into something you can read. A non-developer who built software with AI is now telling you about it with that same AI. The way these words get made is the proof of the point they're making.&lt;/p&gt;

&lt;h2&gt;
  
  
  So here's what I tell people
&lt;/h2&gt;

&lt;p&gt;I work with staff who are nervous about all of this, and I always say the same thing.&lt;/p&gt;

&lt;p&gt;Don't try to study it like a serious subject. Just play with the AI. Ask it this, ask it that. Get the feeling of &lt;em&gt;oh, it can even do that.&lt;/em&gt; Once you have that feeling, you start asking for harder things without noticing. That's how it grows — one person, one small ask at a time.&lt;/p&gt;

&lt;p&gt;I don't think everyone needs to lead the wave. But you should at least keep up with it. I'm not out front either. I just put my feet in the moving water and walked hard enough not to be swept off.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;You don't have to be ahead of the curve. You just have to refuse to stand still.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Your turn
&lt;/h2&gt;

&lt;p&gt;Walking like that, keeping up, I looked up one day and I was here. Twenty-two tools. A year I never could have predicted. A skill I never thought belonged to people like me.&lt;/p&gt;

&lt;p&gt;This series started with a pile of paperwork I couldn't stop staring at, and it's brought me all the way to this: the quiet realization that the most useful thing I learned wasn't code at all. It was how to ask.&lt;/p&gt;

&lt;p&gt;So now I want to hand the story to you. You have your own pile of paperwork. Your own coworker struggling in front of you. Your own one tiny sliver to pull from that giant pile.&lt;/p&gt;

&lt;p&gt;Go play with it. See what it can even do. The next story is yours to build.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;This is part of &lt;a href="https://fromzerotoship.com" rel="noopener noreferrer"&gt;From Zero to Ship&lt;/a&gt; — the honest logbook of a non-developer who shipped 20+ working tools with AI. If this resonated, the rest of the series is there.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>ai</category>
      <category>career</category>
      <category>motivation</category>
    </item>
    <item>
      <title>#16 In the End, It Was Always About People</title>
      <dc:creator>FromZeroToShip</dc:creator>
      <pubDate>Fri, 17 Jul 2026 13:01:00 +0000</pubDate>
      <link>https://dev.to/fromzerotoship/16-in-the-end-it-was-always-about-people-1mo</link>
      <guid>https://dev.to/fromzerotoship/16-in-the-end-it-was-always-about-people-1mo</guid>
      <description>&lt;p&gt;One day the hospital decided to make short promo videos.&lt;/p&gt;

&lt;p&gt;Short video is everywhere now, so a lot of staff jumped in. Plenty of good clips came out of it. But not everyone could play. Some of my coworkers weren't comfortable with computers. They had the photos. They had the footage. They just didn't know how to edit any of it, so they made nothing at all.&lt;/p&gt;

&lt;p&gt;One of them was a manager in our administration office. She told me she had all the raw material, but video editing felt impossible. She wanted to try. She couldn't bring herself to start.&lt;/p&gt;

&lt;p&gt;I started building that same day. The goal was simple: a video editor anyone could use.&lt;/p&gt;

&lt;h2&gt;
  
  
  Build for the person who struggles most
&lt;/h2&gt;

&lt;p&gt;Everything I make follows one rule. It has to be easy. Comfort for the user is always priority number one.&lt;/p&gt;

&lt;p&gt;There's a reason. The people at my hospital range from barely twenty to past sixty. Younger staff grew up with screens. For older staff, a single small button can be a wall. If I want nobody left out, the tool has to work for the person who finds it hardest. Not the power user. The most unsure person in the building. That's the bar.&lt;/p&gt;

&lt;p&gt;Rebuilding the features of a paid editor like CapCut, for free, came with limits. But there were ways through. Automatic subtitles were the surprise. I bolted on a speech-recognition tool called Whisper, and it transcribed speech into text better than some famous commercial apps. It just listened and typed.&lt;/p&gt;

&lt;p&gt;Staff started editing video with no trouble. I called the tool EasyReel.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I was actually trying to build
&lt;/h2&gt;

&lt;p&gt;Here's the thing. I didn't really care about a video editor.&lt;/p&gt;

&lt;p&gt;What I wanted was to give older staff an experience. The feeling that AI lets you do the thing you'd written off for life. The thing you never dared to attempt. Not me explaining it. Them doing it, with their own hands.&lt;/p&gt;

&lt;p&gt;The coworker past sixty who gave up because she couldn't edit. The moment she finishes a video herself. I wanted to see her face in that moment. That's different from just saving someone work. It's taking a person who couldn't, and making them someone who can. Not pity. Putting the thing in their hands and saying: you can do this too.&lt;/p&gt;

&lt;h2&gt;
  
  
  Reaching the patient, not just the staff
&lt;/h2&gt;

&lt;p&gt;Then I built something that reached past the staff and touched the patients.&lt;/p&gt;

&lt;p&gt;It's a cognitive-rehab tool I called EasyBrain. Cognitive rehab means training to recover functions like memory and attention. For this, my hospital was paying for a program that cost about 40 million won — roughly USD 30,000. To me the features weren't that impressive. The price was.&lt;/p&gt;

&lt;p&gt;I couldn't just be reckless about it. To formally bill for this treatment, regulations require an officially registered program. So whatever I made could not replace the official one. I had to draw that line clearly, and I did.&lt;/p&gt;

&lt;p&gt;But I flipped the question around. What if I didn't bill at all? What if it was only a free helper, an extra tool to give patients more practice? If patients could train more without spending a single won, why wouldn't I make it?&lt;/p&gt;

&lt;p&gt;I also had an edge nobody at a software company has. I treat the patients and I build the tool. So I could try it on a real patient, watch the response, and fix it on the spot. No company can do that. The end of our work is the patient getting better. If I can help that for free, that's just the road to take.&lt;/p&gt;

&lt;h2&gt;
  
  
  Twenty-two tools, one direction
&lt;/h2&gt;

&lt;p&gt;It went like this, over and over.&lt;/p&gt;

&lt;p&gt;I gave back the hands that cropped and retouched a photo every time we made an employee ID card. I made it so a director could search one keyword instead of digging through years of paper diaries. I tracked treatment adherence so no patient slipped through without the care they were owed.&lt;/p&gt;

&lt;p&gt;Line up all twenty-two tools and they look like different programs. They weren't. They all pointed at the same place.&lt;/p&gt;

&lt;p&gt;Lighten someone's hands. Make someone able. Help someone heal. In the end, every one of them was a person.&lt;/p&gt;

&lt;p&gt;So if you're a non-developer wondering what to build first, here's the only filter that has held up for me: &lt;strong&gt;don't start with the coolest idea. Start with a specific person who's stuck, and build the smallest thing that unsticks them.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;And then, after staring at all twenty-two laid out in a row, I noticed something strange. But that's the next story.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;This is part of &lt;a href="https://fromzerotoship.com" rel="noopener noreferrer"&gt;From Zero to Ship&lt;/a&gt; — the honest logbook of a non-developer who shipped 20+ working tools with AI. If this resonated, the rest of the series is there.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>ai</category>
      <category>career</category>
      <category>a11y</category>
    </item>
    <item>
      <title>#15 Why Each Tool Got Easier to Ship: Drawing My Own Navigation</title>
      <dc:creator>FromZeroToShip</dc:creator>
      <pubDate>Thu, 16 Jul 2026 13:00:00 +0000</pubDate>
      <link>https://dev.to/fromzerotoship/15-why-each-tool-got-easier-to-ship-drawing-my-own-navigation-32lp</link>
      <guid>https://dev.to/fromzerotoship/15-why-each-tool-got-easier-to-ship-drawing-my-own-navigation-32lp</guid>
      <description>&lt;p&gt;Making new things kept getting easier. At first that surprised me. Then I looked closer, and I saw why.&lt;/p&gt;

&lt;p&gt;My first tool started from bare dirt. Putting a single screen on the page took me days. Saving data took me days. Everything was a first. But the second tool came a little faster. The third was faster still. A problem I had already solved once, I never had to solve from scratch again. I would grab something I had already built, change a few parts, and the new thing would appear quickly.&lt;/p&gt;

&lt;p&gt;The know-how was piling up. Without noticing, I had built a kind of frame inside myself. I no longer started every tool from the ground. I started on roads I had already paved.&lt;/p&gt;

&lt;h2&gt;
  
  
  Failures became data
&lt;/h2&gt;

&lt;p&gt;The same thing happened with my failures.&lt;/p&gt;

&lt;p&gt;I failed in a huge number of ways. Do it this way and it tangles. Do it that way and it slows down. Do it the other way and it collapses. The old me would have let those failures float by. I stopped letting them float. A way that didn't work, I remembered, and I never walked that road twice. A way that did work, I wrote down as a rule and handed to the AI to remember. So next time, I didn't repeat the same mistake.&lt;/p&gt;

&lt;p&gt;For a long time I had believed I never lose anything by failing. Now that belief moved up a level. My old failures got blurred into one vague word: &lt;em&gt;experience.&lt;/em&gt; Now, finding one road that doesn't work was data, all by itself. Failure stopped being a soft comfort. It stacked up as concrete material for drawing the next route.&lt;/p&gt;

&lt;h2&gt;
  
  
  I was drawing my own navigation
&lt;/h2&gt;

&lt;p&gt;Looking back, the whole thing was like building a navigation system for myself.&lt;/p&gt;

&lt;p&gt;At the start I had no map. Nothing told me which road led to the destination. So I tried this way and that way. I backed out of dead ends. I wandered down the long way around for ages. But as those wandered roads collected, one by one, a map slowly drew itself. This spot is blocked. Go that way and it's fast. This road is the safest. I came to know it in my body.&lt;/p&gt;

&lt;p&gt;Experts probably start with that map already in hand. I didn't. I had no map, so I drew it with my own feet. And because of that, the map was completely mine. It wasn't a road someone handed me. It was a road I cut while lost. So nobody knew it better than I did.&lt;/p&gt;

&lt;h2&gt;
  
  
  The loop that became second nature
&lt;/h2&gt;

&lt;p&gt;Once the map was there, every new tool followed the same simple path. It went like this:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Interest.&lt;/strong&gt; Something catches my attention. Usually a small annoyance, or a thing someone wishes worked better.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Search and learn.&lt;/strong&gt; I look it up. I find out what already exists and what other people have done.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;See a direction.&lt;/strong&gt; Out of all that, one rough direction starts to stand out.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Find a method.&lt;/strong&gt; I figure out the concrete way to get there, often by reusing good open source.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Just execute.&lt;/strong&gt; I stop weighing whether it'll work. I assume it will, and I start.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That last step changed the most. I used to think first and ask &lt;em&gt;should I try.&lt;/em&gt; Now I don't pause there. I assume it can be done, and I begin.&lt;/p&gt;

&lt;h2&gt;
  
  
  One sentence, one day, one tool
&lt;/h2&gt;

&lt;p&gt;Here is what that looked like in practice.&lt;/p&gt;

&lt;p&gt;A manager in the administration office mentioned something in passing. He had to read work documents on his phone, but ads kept popping up and made it miserable. The old me would have stalled on &lt;em&gt;maybe I'll build something.&lt;/em&gt; I didn't stall. Before deciding if it was possible, I assumed it was, and I started. It went exactly as he described.&lt;/p&gt;

&lt;p&gt;I pulled in good open source that was already out there in the world. I laid it on the map I had been drawing all along. In one day, a tool came out. It read documents fast, with no ads. I called it EasyOffice. Staff liked it. Quick, and no ads.&lt;/p&gt;

&lt;p&gt;A single sentence of conversation becoming a working tool the same day. For someone who once clawed at one tiny thing two hundred times over, that speed was unthinkable.&lt;/p&gt;

&lt;p&gt;That's the real shift, and it's the one universal thing I can hand you: &lt;strong&gt;the point of every failure isn't the lesson; it's the map underneath your next attempt.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What got clearer as it got faster
&lt;/h2&gt;

&lt;p&gt;One became two. Two became four. Before long the count passed twenty.&lt;/p&gt;

&lt;p&gt;Here's the strange part. The faster I built, the sharper one thing got. Why am I making this. Who am I making it for. The more speed I picked up, the more often I stopped in front of that question.&lt;/p&gt;

&lt;p&gt;And the answer always pointed at a person. That's where this goes next.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;This is part of &lt;a href="https://fromzerotoship.com" rel="noopener noreferrer"&gt;From Zero to Ship&lt;/a&gt; — the honest logbook of a non-developer who shipped 20+ working tools with AI. If this resonated, the rest of the series is there.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>ai</category>
      <category>learning</category>
      <category>productivity</category>
    </item>
    <item>
      <title>#14 Building an Intranet to Replace Our Scattered Group Chats</title>
      <dc:creator>FromZeroToShip</dc:creator>
      <pubDate>Wed, 15 Jul 2026 12:53:00 +0000</pubDate>
      <link>https://dev.to/fromzerotoship/14-building-an-intranet-to-replace-our-scattered-group-chats-1hf8</link>
      <guid>https://dev.to/fromzerotoship/14-building-an-intranet-to-replace-our-scattered-group-chats-1hf8</guid>
      <description>&lt;p&gt;When I moved to the planning office, the first big job that landed on me was counting.&lt;/p&gt;

&lt;p&gt;For years I had watched other people do it from the sidelines. I knew it was painful. I knew someone suffered through it every quarter. But it wasn't mine. Now it was. And the moment a problem becomes yours, you stop seeing it as background noise. You start seeing every wasted minute up close.&lt;/p&gt;

&lt;h2&gt;
  
  
  A count of 48,000
&lt;/h2&gt;

&lt;p&gt;The hospital where I work runs a daily gratitude practice. Every staff member writes a short note about something they were thankful for that day. It's a good idea. Nothing wrong with the idea.&lt;/p&gt;

&lt;p&gt;The problem was that we had to count it.&lt;/p&gt;

&lt;p&gt;Every quarter we tallied who wrote how much. About 48,000 posts piled up in a single quarter. And it wasn't just adding up a number. A person had to read each entry and confirm who wrote it, on which day, in the right form.&lt;/p&gt;

&lt;p&gt;The posts went up on Daum Cafe, a Korean community board, because we had no system of our own. So people posted however they liked. Different titles. Different formats. Different nicknames. Half the time you couldn't tell if two posts came from the same person. Before you could count anything, you had to match names to people. We burned ourselves out just figuring out who was who, before the counting even started.&lt;/p&gt;

&lt;p&gt;Three of us in the planning office spent a full week on it. Alone, it would have been three weeks. And that was only the final pass. Before us, each department's clerk counted their own people first. Add up everyone who counted and everyone who checked, and twenty to thirty people were tied up in this every quarter.&lt;/p&gt;

&lt;p&gt;What you saw was a few stacks of paper on a desk. What was actually happening was the whole hospital repeating the same work by hand, four times a year.&lt;/p&gt;

&lt;h2&gt;
  
  
  It wasn't just the count
&lt;/h2&gt;

&lt;p&gt;The deeper I looked, the more I realized the count was a symptom.&lt;/p&gt;

&lt;p&gt;We had no shared system at all. Announcements went out on Band, a Korean group app. Department chatter happened on KakaoTalk, our messaging app. The gratitude posts piled up on Daum Cafe. Whenever we needed something, we grabbed whatever consumer app was handy.&lt;/p&gt;

&lt;p&gt;For staff, this was miserable in a quiet way. KakaoTalk is where your friends and family live. It's personal. And work orders kept arriving there. You'd be lying in bed at night and a department group chat would buzz. Work and private life had bled into each other.&lt;/p&gt;

&lt;p&gt;Both halves bothered me. I wanted the count to disappear. And I wanted to pull all the scattered pieces into one place, so that a person's private life and their job could finally be clean and separate.&lt;/p&gt;

&lt;h2&gt;
  
  
  The plan formed in my head
&lt;/h2&gt;

&lt;p&gt;The fix was clearer than I expected.&lt;/p&gt;

&lt;p&gt;If every staff member had a fixed name in the system, and posts had a fixed title and format, then the moment someone wrote one, it would be logged correctly. The counting would simply vanish. The number you saw would &lt;em&gt;be&lt;/em&gt; the fact. No tallying, because there was nothing left to tally.&lt;/p&gt;

&lt;p&gt;The scattered apps were the same shape of problem. Give every kind of message one home — announcements, chat, posts — and work would stop leaking into people's personal phones.&lt;/p&gt;

&lt;p&gt;In my head, the whole thing was already drawn.&lt;/p&gt;

&lt;h2&gt;
  
  
  The biggest thing I had built
&lt;/h2&gt;

&lt;p&gt;So I decided to build it.&lt;/p&gt;

&lt;p&gt;Honestly, I'd started before the job was even handed to me. Back in mid-March, while I was still working in the therapy room, I had quietly begun building this intranet. I'd been watching these problems for a long time, itching to fix them. When the count became my responsibility, I just pushed harder.&lt;/p&gt;

&lt;p&gt;This was a different scale from anything I'd done. Everything before had been a small tool that helped with one task. This had to replace whole apps — announcements, messaging, the gratitude posts, department boards, all the scattered places at once, folded into a single hub.&lt;/p&gt;

&lt;p&gt;I poured everything I'd learned into it. I put it on a NAS, the little server box in our office. I opened a path so it could be reached from outside. And night after night, with Claude beside me, I stacked it up one piece at a time.&lt;/p&gt;

&lt;p&gt;If you take one thing from this, take this: &lt;strong&gt;you don't need to know how to build the big thing on day one. You need a problem clear enough that the shape of the solution is obvious — then you build toward that shape, one small piece at a time.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I named it EasyONE. The scattered things, pulled into one. I'd been slapping "Easy" on my tools for a while, the wish that things could be simpler. This time I added "One."&lt;/p&gt;

&lt;h2&gt;
  
  
  The launch
&lt;/h2&gt;

&lt;p&gt;On April 14th, I opened EasyONE to the staff.&lt;/p&gt;

&lt;p&gt;It was a trial run at first. I was still nervous. Everything I'd made before was used by one person, or one department. This was different. This was a screen every employee in the hospital would open every day. It was the first time I was putting something I'd built by hand in front of 660 people.&lt;/p&gt;

&lt;p&gt;And I was proud. A man who hadn't known what code was had built a system for an entire hospital and was handing it over. A solid month of work. I had the confidence that month bought me. I thought I'd prepared everything. Now the staff just had to use it.&lt;/p&gt;

&lt;p&gt;That's what I believed, right up until that afternoon.&lt;/p&gt;

&lt;p&gt;Then the afternoon came. But that's the next story.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;This is part of &lt;a href="https://fromzerotoship.com" rel="noopener noreferrer"&gt;From Zero to Ship&lt;/a&gt; — the honest logbook of a non-developer who shipped 20+ working tools with AI. If this resonated, the rest of the series is there.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>webdev</category>
      <category>ai</category>
      <category>productivity</category>
    </item>
    <item>
      <title>#13 The Day Everything Changed: Meeting a Self-Taught Builder</title>
      <dc:creator>FromZeroToShip</dc:creator>
      <pubDate>Tue, 14 Jul 2026 12:52:00 +0000</pubDate>
      <link>https://dev.to/fromzerotoship/13-the-day-everything-changed-meeting-a-self-taught-builder-3436</link>
      <guid>https://dev.to/fromzerotoship/13-the-day-everything-changed-meeting-a-self-taught-builder-3436</guid>
      <description>&lt;p&gt;For a long time, building software felt like a thing I was doing in secret.&lt;/p&gt;

&lt;p&gt;I was a physical therapist. I saw patients all day, then stayed late to build little tools that made the hospital's busywork hurt less. Nobody assigned it. Nobody could help me with it. I had no one to ask. I just kept poking at problems alone, in the gaps between my real job.&lt;/p&gt;

&lt;p&gt;Then one day, in a city called Andong, two things happened at once. Both of them changed everything.&lt;/p&gt;

&lt;h2&gt;
  
  
  Meeting the person on the other end of the phone
&lt;/h2&gt;

&lt;p&gt;There was a software founder I'd gotten to know — until then, only a voice on the phone. As it happened, he had a golf outing near my hospital, and he stopped by on the way. So there we were, sitting across a meeting table for the first time.&lt;/p&gt;

&lt;p&gt;I opened up one of my tools. It was an inventory search I'd built for the hospital — hundreds of thousands of supply items, findable in a single search. A few days earlier I had finally fought my way through setting up outside access, so the screen loaded fine, even on the meeting room WiFi. I showed him.&lt;/p&gt;

&lt;p&gt;Then he showed me his work. He ran a distribution company, and he had used AI to automate the product photos and marketing images his design team used to make one by one in Photoshop. Now anyone at the company could press a few buttons and get something good.&lt;/p&gt;

&lt;p&gt;It was a strange feeling. We were doing the exact same thing. I had put real work into the hands of ordinary staff. He had put design into the hands of ordinary staff. Different companies, different jobs, but the same idea: take something only an expert could do, and open it up to everyone.&lt;/p&gt;

&lt;h2&gt;
  
  
  The one sentence I still carry
&lt;/h2&gt;

&lt;p&gt;That day he said something that stuck with me.&lt;/p&gt;

&lt;p&gt;He told me, more or less: assume you can build almost anything. Good open source is out there for free. Don't fold before you start. Just begin as if it'll work, and as you go, it usually does.&lt;/p&gt;

&lt;p&gt;That was the first time I'd heard the words "open source." Somebody, somewhere, builds useful pieces of software and gives them away — pieces sitting there waiting to be used. Half the things I had been grinding out from scratch, alone, already existed in some form.&lt;/p&gt;

&lt;p&gt;But the part that moved me wasn't the technology. It was the attitude. &lt;em&gt;Don't fold before you start.&lt;/em&gt; That was already how I lived, in a quieter way — try it, and if it works, great; if it doesn't, I learned something. He just said it bigger and clearer than I'd ever let myself say it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Seeing how far the road could go
&lt;/h2&gt;

&lt;p&gt;Here's the thing that gave me the most courage: he wasn't a developer either.&lt;/p&gt;

&lt;p&gt;He had never learned to code. And yet this non-developer had built an entire AI research effort inside his own company. He had even built his own custom working tools. (I tried to copy that part later and gave up fast. That's fine. You don't have to copy everything.)&lt;/p&gt;

&lt;p&gt;Up to that point I'd been completely alone. No one beside me on the same path. And now I was looking at someone who had started from the same place I did and gone much, much further. So there &lt;em&gt;was&lt;/em&gt; something at the end of this road. I could get there too.&lt;/p&gt;

&lt;p&gt;If you're building something on your own and feel like the only one doing it, find one person who started where you are and went further. You don't need a mentor or a teacher. You just need proof the road leads somewhere.&lt;/p&gt;

&lt;h2&gt;
  
  
  A new desk, and a real weapon
&lt;/h2&gt;

&lt;p&gt;The same day, something else happened.&lt;/p&gt;

&lt;p&gt;A director called me in and asked if I could help out in the planning office — the part of the organization that works for the whole foundation, not just one therapy room. There was no formal transfer, no ceremony. I just started showing up there.&lt;/p&gt;

&lt;p&gt;But the meaning wasn't small. Until then, I had built everything on stolen time, after hours, as a side thing I did because I liked it. Now it was becoming work I was allowed to do out in the open. The day my tools changed, my place started to change too.&lt;/p&gt;

&lt;p&gt;So I fixed up how I worked. The founder had told me to use Claude in the terminal — that black, blinking screen — because it was more powerful. But that black screen scared me. I barely understood computers. So I found a middle path: VS Code, which looks a lot like Cursor but keeps the power. It felt familiar, and it stuck to my hands fast.&lt;/p&gt;

&lt;p&gt;That was when I finally had a real weapon. Looking back, this is where the serious building actually began. Someone who had started with nothing but a few stubborn questions now had a proper tool and a proper desk.&lt;/p&gt;

&lt;p&gt;Next came the biggest thing I'd ever attempt: pulling everything I'd scattered across the hospital into one place. But that's the next story.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;This is part of &lt;a href="https://fromzerotoship.com" rel="noopener noreferrer"&gt;From Zero to Ship&lt;/a&gt; — the honest logbook of a non-developer who shipped 20+ working tools with AI. If this resonated, the rest of the series is there.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>career</category>
      <category>ai</category>
      <category>opensource</category>
    </item>
    <item>
      <title>#12 The First Time I Opened a Door to the Outside Internet</title>
      <dc:creator>FromZeroToShip</dc:creator>
      <pubDate>Sun, 12 Jul 2026 14:00:00 +0000</pubDate>
      <link>https://dev.to/fromzerotoship/12-the-first-time-i-opened-a-door-to-the-outside-internet-1b9f</link>
      <guid>https://dev.to/fromzerotoship/12-the-first-time-i-opened-a-door-to-the-outside-internet-1b9f</guid>
      <description>&lt;p&gt;For months, all of my tools lived inside the building.&lt;/p&gt;

&lt;p&gt;They ran on a small server in the hospital, on our own internal network. You could only reach them if you were physically connected to that network — sitting at a hospital desk, on hospital Wi-Fi. To anyone on the outside, they didn't exist. No address, no door, no way in.&lt;/p&gt;

&lt;p&gt;I told myself that was the safest possible setup. Nothing ever left. Nothing could get in. And I meant it. Early on, a senior colleague had told me about a place that got hit by an attacker from the outside who locked their entire server and held it for ransom. That story stuck with me. So I'd promised, out loud, that my tools would stay inside. The door to the outside would stay shut.&lt;/p&gt;

&lt;p&gt;Then I had to open it.&lt;/p&gt;

&lt;h2&gt;
  
  
  A demo I couldn't show
&lt;/h2&gt;

&lt;p&gt;I'd arranged to meet someone in person to show them what I'd built. I wanted to bring something real, not just talk. So I picked the tool I was proudest of — an inventory and supplies tool I'd called EasyFS. It had the most data and the most hours of my life in it.&lt;/p&gt;

&lt;p&gt;We met in a hospital meeting room. I opened my laptop. And I hit a wall.&lt;/p&gt;

&lt;p&gt;The meeting room had no wired connection, so I had to use Wi-Fi. But that Wi-Fi wasn't connected to our internal network. So there I was, sitting inside the hospital, unable to reach a tool that only ran &lt;em&gt;inside&lt;/em&gt; the hospital. The data was sitting right there, in the same building, a few walls away. I couldn't touch it.&lt;/p&gt;

&lt;p&gt;The only way to reach something inside the building was to go all the way out and come back around. To show my tool, I had to make it reachable from the outside.&lt;/p&gt;

&lt;p&gt;And that meant opening the exact door I'd promised to keep shut.&lt;/p&gt;

&lt;h2&gt;
  
  
  The promise I had to break
&lt;/h2&gt;

&lt;p&gt;I was scared. Honestly scared.&lt;/p&gt;

&lt;p&gt;The ransomware story replayed in my head. If I opened the wrong door and something like that happened to us, it would be my fault. Not a vendor's, not some smart engineer's at a faraway company. Mine.&lt;/p&gt;

&lt;p&gt;So the question narrowed down to one thing: &lt;em&gt;how do I get to the outside as safely as possible?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I did what I always do. I started asking. Is this method safe? What about that one? I asked and compared and asked again. The answer I kept landing on was Cloudflare.&lt;/p&gt;

&lt;p&gt;It builds a protected tunnel so traffic can move between the outside world and your own server without exposing it directly. The more I read, the less I believed it. It was supposed to be seriously secure — and it was free. Free? I checked that a few times.&lt;/p&gt;

&lt;h2&gt;
  
  
  Following instructions that didn't match the screen
&lt;/h2&gt;

&lt;p&gt;The hard part wasn't deciding. It was the setup.&lt;/p&gt;

&lt;p&gt;I worked through it with Gemini, asking it what to click next. But the screen it described kept not matching the screen in front of me. The menu it told me to find wasn't there. The button had a different name. For a while I thought I was the one doing something wrong.&lt;/p&gt;

&lt;p&gt;Then it clicked. The AI had learned from an older version. Cloudflare had changed its interface since then, and the AI didn't know. It was confidently describing a screen that no longer existed.&lt;/p&gt;

&lt;p&gt;That's a thing worth knowing early: &lt;strong&gt;an AI can be completely sure and completely out of date at the same time — so when its instructions don't match reality, trust the screen in front of you, not the AI.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;So I felt my way through. Build the tunnel. Attach an address. I'd think I was done, and the connection would fail. I'd hunt for the mistake, fix it, get blocked again, fix it again. After a long stretch of fumbling, it finally happened: EasyFS opened from outside the hospital.&lt;/p&gt;

&lt;p&gt;For the first time, one of my tools had gone over the wall.&lt;/p&gt;

&lt;h2&gt;
  
  
  One door opens, and the work changes
&lt;/h2&gt;

&lt;p&gt;Once it worked, I realized this wasn't a one-time demo trick.&lt;/p&gt;

&lt;p&gt;If staff could reach the tool from outside, they could check supplies from their own phones, anywhere. I'd been imagining QR codes stuck on each item — scan one with your phone and that item's information pops up. That whole idea only worked if the tool was reachable from the outside. So while I was in there, I built the QR lookup too.&lt;/p&gt;

&lt;p&gt;By then it was clear I needed a real address. Not a tangle of network settings, but a proper name people could type and find. I went to one of our directors, explained why it mattered, and we bought a domain on the spot. For the first time, we had our own address on the open internet.&lt;/p&gt;

&lt;p&gt;My tools, which had lived so safely inside, had taken one step toward the outside world. And that was the moment I started taking security seriously for the first time. When nothing ever leaves the building, you don't have to think about who might be knocking. The moment you open one door, you do.&lt;/p&gt;

&lt;p&gt;A few days later, I walked through that door and met someone on the other side. But that's the next story.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;This is part of &lt;a href="https://fromzerotoship.com" rel="noopener noreferrer"&gt;From Zero to Ship&lt;/a&gt; — the honest logbook of a non-developer who shipped 20+ working tools with AI. If this resonated, the rest of the series is there.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>security</category>
      <category>devops</category>
      <category>ai</category>
    </item>
    <item>
      <title>#11 When AI Coding Tools Were Dumb (and Nights Were Fun)</title>
      <dc:creator>FromZeroToShip</dc:creator>
      <pubDate>Sat, 11 Jul 2026 14:00:00 +0000</pubDate>
      <link>https://dev.to/fromzerotoship/11-when-ai-coding-tools-were-dumb-and-nights-were-fun-pd4</link>
      <guid>https://dev.to/fromzerotoship/11-when-ai-coding-tools-were-dumb-and-nights-were-fun-pd4</guid>
      <description>&lt;p&gt;I had decided to move everything onto our own server.&lt;/p&gt;

&lt;p&gt;The hospital ran a small NAS — a box on the network that stores files and can run little programs. My plan was to lift the tools I'd been hacking together and put them there, where coworkers could actually use them. Good plan. Moving them turned out to be a slog.&lt;/p&gt;

&lt;p&gt;Around then I found Cursor. It's a code editor with an AI built into it. Before, I'd ask Gemini a question, it would hand me some code, and I'd copy that code by hand, paste it into the right place, and try to fix it. With Cursor, I connected the AI right into the editor and just told it what I wanted. &lt;em&gt;Build this. Fix that.&lt;/em&gt; It edited the code itself. People call this "vibe-coding" — making software by talking to it.&lt;/p&gt;

&lt;p&gt;It sounds like a dream. And honestly, back then, the tool was terrible.&lt;/p&gt;

&lt;h2&gt;
  
  
  Dumb, and a little mean
&lt;/h2&gt;

&lt;p&gt;Don't picture today's AI. The vibe-coding of that era wasn't just dumb. Some days it felt spiteful.&lt;/p&gt;

&lt;p&gt;Here's what it did. I'd ask it to fix one part of the screen — call it section A. It would fix A. Then it would quietly delete B, C, and D — the parts that were working fine — and leave A sitting there alone. I asked for one change. I'd come back and find that hours of work had vanished.&lt;/p&gt;

&lt;p&gt;And there was no safety net. No real undo. No autosave worth the name. Once something was gone, it was gone.&lt;/p&gt;

&lt;h2&gt;
  
  
  My stupid, beautiful workaround
&lt;/h2&gt;

&lt;p&gt;So I did the dumbest thing that worked. Before I changed anything, I copied the whole project and saved a spare. Make a copy, edit. Make another copy, edit again. If the AI nuked everything, I could fall back to the last good copy.&lt;/p&gt;

&lt;p&gt;I stacked copies on top of copies. Copy 1, copy 2, copy 3. I crept forward one square at a time, dragging a trail of backups behind me.&lt;/p&gt;

&lt;p&gt;This is the part I want you to hear, because it's the part nobody tells you: &lt;strong&gt;the embarrassing manual workaround is allowed.&lt;/strong&gt; You don't need the elegant method. You need a method that lets you keep going when the tool betrays you. Folders full of &lt;code&gt;final&lt;/code&gt;, &lt;code&gt;final_v2&lt;/code&gt;, &lt;code&gt;final_REAL&lt;/code&gt; are not a sign you're doing it wrong. They're a sign you're still moving.&lt;/p&gt;

&lt;h2&gt;
  
  
  It was painfully slow
&lt;/h2&gt;

&lt;p&gt;Moving a single program onto the NAS took days. Days.&lt;/p&gt;

&lt;p&gt;Today I'd hand the same job to a modern AI and it would be done in about ten minutes. I'm not exaggerating. The thing that now takes ten minutes once cost me several full nights of stacking copies and inching ahead.&lt;/p&gt;

&lt;p&gt;If someone had watched me, they might have thought I was wasting my time. &lt;em&gt;Why grind through that by hand?&lt;/em&gt; It's a fair question. I didn't have a good answer at the time.&lt;/p&gt;

&lt;h2&gt;
  
  
  The strange part: I had fun
&lt;/h2&gt;

&lt;p&gt;Here's what I didn't expect. I enjoyed it.&lt;/p&gt;

&lt;p&gt;Every night the program got a little better, and I could see it happen. A button that didn't work yesterday clicked today. A crooked layout snapped straight. A number that had been wrong came out right. Those tiny wins were oddly addictive. I'd look up and it was 2 a.m. Fix one square, feel good, reach for the next one.&lt;/p&gt;

&lt;p&gt;It was hard and it was fun at the same time. Those two aren't opposites. The difficulty was &lt;em&gt;why&lt;/em&gt; the small wins tasted so sweet. If it had been easy, getting a button to work wouldn't have meant anything.&lt;/p&gt;

&lt;p&gt;Looking back, the thing that kept me going wasn't some grand sense of mission. It was simpler than that. This was fun. That fun alone got me through those long nights with that dumb little tool.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why this matters if you're starting now
&lt;/h2&gt;

&lt;p&gt;It's tempting to wait for the tools to get good. They're far better now, and that's real. But the tools were never the point.&lt;/p&gt;

&lt;p&gt;The point was the small, daily proof that &lt;em&gt;I made this work.&lt;/em&gt; You can get that today with way less pain than I went through — and that should make starting easier, not scarier. The slow version still taught me everything. The fast version just lets you learn it faster.&lt;/p&gt;

&lt;p&gt;So pick something small. Let the AI break it. Save a copy first. Then fix one square and feel that little click of progress. That feeling is the engine. Protect it and you'll outlast every dumb tool and every bad night.&lt;/p&gt;

&lt;p&gt;I kept stacking copies and moving programs onto the NAS, one at a time. And then one day the phone rang — a call that would change how I worked entirely. That's the next story.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;This is part of &lt;a href="https://fromzerotoship.com" rel="noopener noreferrer"&gt;From Zero to Ship&lt;/a&gt; — the honest logbook of a non-developer who shipped 20+ working tools with AI. If this resonated, the rest of the series is there.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>ai</category>
      <category>programming</category>
      <category>career</category>
    </item>
    <item>
      <title>#10 The Week I Held My Breath: Moving to a Real Server</title>
      <dc:creator>FromZeroToShip</dc:creator>
      <pubDate>Fri, 10 Jul 2026 12:04:00 +0000</pubDate>
      <link>https://dev.to/fromzerotoship/10-the-week-i-held-my-breath-moving-to-a-real-server-5fej</link>
      <guid>https://dev.to/fromzerotoship/10-the-week-i-held-my-breath-moving-to-a-real-server-5fej</guid>
      <description>&lt;p&gt;I had decided to move my tool to a real server. The only problem was I had no idea where to begin.&lt;/p&gt;

&lt;p&gt;My tools all ran on spreadsheets back then. They worked, but one of them — a search tool I built to find supplies in our hospital storeroom — had gotten painfully slow. So I asked Gemini how to put it on our office NAS instead. (A NAS is just a storage box that sits in the building and serves files to everyone on the network.)&lt;/p&gt;

&lt;p&gt;The answer was a long list. Settings to configure, things to move, permissions to set. And to do any of it, I needed the admin account.&lt;/p&gt;

&lt;p&gt;I had never even seen that account. I worked in a therapy room. Admin access to the machine the whole hospital relied on was about as far from my world as it could get.&lt;/p&gt;

&lt;p&gt;There was only one way forward. Go ask for it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Asking for the keys
&lt;/h2&gt;

&lt;p&gt;I went to the manager in the planning office.&lt;/p&gt;

&lt;p&gt;I told him my tool was too slow, that I wanted to try moving it to the NAS, and that I'd need the admin login and password to do it. Looking back, it was a bold thing to ask. A therapy-room employee, requesting the master key to equipment the entire hospital used.&lt;/p&gt;

&lt;p&gt;He hesitated. He had good reason to.&lt;/p&gt;

&lt;p&gt;Years earlier, that same NAS had been attacked. Someone broke in from outside, locked the whole thing, and demanded money or the files would be gone for good. In the end, the hospital paid to get its data back. After living through that, of course he was nervous about someone wanting to put &lt;em&gt;more&lt;/em&gt; stuff on it. What if it gets attacked again?&lt;/p&gt;

&lt;p&gt;So I told him this: I'd build it to run only inside the hospital, only for staff. If we never opened a door to the outside world, there'd be nothing for an attacker to come through.&lt;/p&gt;

&lt;p&gt;I'll be honest — that was a reckless thing to promise. Back then I barely understood security at all. But it happened to be true in that moment, and he handed over the account.&lt;/p&gt;

&lt;h2&gt;
  
  
  A week of bracing for the worst
&lt;/h2&gt;

&lt;p&gt;What followed was a week of pure tension.&lt;/p&gt;

&lt;p&gt;I'd been told the old attack probably got in because the admin account had been left logged in. So every time I touched that account, my nerves were on edge. What if I press the wrong thing and erase the records of the entire hospital? When I finished for the day, I checked two or three times that I'd actually logged out.&lt;/p&gt;

&lt;p&gt;It felt like a stranger fumbling around inside someone else's home — and not just any home, one that had already been burgled once.&lt;/p&gt;

&lt;p&gt;The work crawled. I followed Gemini one line at a time. Configure this. Move that. When it broke, ask again. Solve one thing and the next wall appeared. I clung to it like that for a week.&lt;/p&gt;

&lt;h2&gt;
  
  
  The moment it worked
&lt;/h2&gt;

&lt;p&gt;A week later, the moment came to open the tool for the first time on the new server.&lt;/p&gt;

&lt;p&gt;I took a breath and ran it.&lt;/p&gt;

&lt;p&gt;The screen came up. Not just came up — it snapped open, instantly. I typed a search. The tool that used to make me wait and wait spat out the result the second I pressed enter. Out of hundreds of thousands of supply items, the one I wanted appeared right away, like a trick.&lt;/p&gt;

&lt;p&gt;It was absurdly fast.&lt;/p&gt;

&lt;p&gt;I sat there staring at the screen for a while. A week of clenched nerves let go all at once. It worked. It actually worked.&lt;/p&gt;

&lt;h2&gt;
  
  
  The math that broke something open
&lt;/h2&gt;

&lt;p&gt;Something opened up in me that day.&lt;/p&gt;

&lt;p&gt;There was one more worry I'd carried in. Our NAS held five terabytes total, and every employee used it for photos and documents. I figured my tool would eat up space and crowd everyone else.&lt;/p&gt;

&lt;p&gt;It turned out to be nothing. Data made of text barely takes up room. All those hundreds of thousands of supply records, added together, came to less than one megabyte. Lighter than a single photo.&lt;/p&gt;

&lt;p&gt;Faster on the server. Safe because it stayed inside the building. And it took almost no space. Once I had confirmed those three things with my own eyes, the next thought followed on its own.&lt;/p&gt;

&lt;p&gt;Then I could just move everything I've built over here.&lt;/p&gt;

&lt;p&gt;If there's one thing I'd hand to you from that week, it's this: &lt;strong&gt;proving something works once, in the smallest possible version, is what gives you permission to think bigger.&lt;/strong&gt; I didn't need a plan for all twenty tools. I needed one tool, on one server, working.&lt;/p&gt;

&lt;p&gt;Every program I'd been running on spreadsheets suddenly had a way up to the next level. That one small win — moving a single tool — turned out to be the starting line for everything that came after.&lt;/p&gt;

&lt;p&gt;Of course, back then I didn't yet know that moving the rest wouldn't be nearly as easy as I imagined. But that's the next story.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;This is part of &lt;a href="https://fromzerotoship.com" rel="noopener noreferrer"&gt;From Zero to Ship&lt;/a&gt; — the honest logbook of a non-developer who shipped 20+ working tools with AI. If this resonated, the rest of the series is there.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>devops</category>
      <category>career</category>
      <category>ai</category>
    </item>
    <item>
      <title>#9 The Treasure Room That Was Too Slow: Outgrowing My Server</title>
      <dc:creator>FromZeroToShip</dc:creator>
      <pubDate>Thu, 09 Jul 2026 12:07:00 +0000</pubDate>
      <link>https://dev.to/fromzerotoship/9-the-treasure-room-that-was-too-slow-outgrowing-my-server-1e8h</link>
      <guid>https://dev.to/fromzerotoship/9-the-treasure-room-that-was-too-slow-outgrowing-my-server-1e8h</guid>
      <description>&lt;p&gt;The thing that shook the ground under me was an inventory count.&lt;/p&gt;

&lt;p&gt;The hospital had been open for more than twenty years, and in all that time it had never done a proper inventory. No one had a real list of what the building actually held — how many of each thing, sitting where. When you're small, you get away with that. When you grow, you don't. If you don't know what you have and where, things quietly leak away. So the facilities team finally decided to do the first full count.&lt;/p&gt;

&lt;p&gt;Here's the strange part: I already knew how to do this.&lt;/p&gt;

&lt;h2&gt;
  
  
  A skill from another life
&lt;/h2&gt;

&lt;p&gt;My path into this work is a little odd. Before I came back to being a physical therapist, I spent about two years at a research institute. While I was there, I ran the entire institute's inventory count by myself. So I knew, in my body, how much labor it takes and how long it drags on.&lt;/p&gt;

&lt;p&gt;Counting the objects is the easy part. The real work comes after. You group similar things together. You give every single item its own unique code. Then you organize everything around those codes, so it can actually be found again later. Skip that design step and all your counting just becomes a pile of numbers nobody can search.&lt;/p&gt;

&lt;p&gt;That design &lt;em&gt;was&lt;/em&gt; the job. When the facilities team asked for help, the roles split naturally. I'd build a form and send it down. Each department would survey their own shelves and drawers and fill it in. Then I'd attach codes, gather it all in one place, and turn it into something anyone — managers, related departments — could search whenever they needed. I called the tool EasyFS.&lt;/p&gt;

&lt;p&gt;At first it ran beautifully.&lt;/p&gt;

&lt;h2&gt;
  
  
  Then the data piled up
&lt;/h2&gt;

&lt;p&gt;Supplies turned out to be far more numerous than I'd guessed. Every department, every room, every drawer was packed with them. The count climbed into the hundreds of thousands.&lt;/p&gt;

&lt;p&gt;And the more it climbed, the more visibly the tool slowed down. One search, and the screen would freeze for a long, awkward moment. The thing I'd built so people could find supplies fast was now making them wait.&lt;/p&gt;

&lt;p&gt;It frustrated me, and worse, I couldn't tell &lt;em&gt;why&lt;/em&gt; it was slow. At that point I knew nothing about what happens inside a program. I didn't even have the concept of "structure" in my head. I just assumed there had to be some faster way to build it, somewhere out there.&lt;/p&gt;

&lt;p&gt;So I asked Gemini. Why is this so slow? How do I make it fast?&lt;/p&gt;

&lt;p&gt;The answer became my first thread to pull. My tool was running on Apps Script — Google's scripting layer — which routes through Google's own servers. Going out to a distant server and back, every time, was always going to be slow.&lt;/p&gt;

&lt;h2&gt;
  
  
  One sentence that wouldn't sit still
&lt;/h2&gt;

&lt;p&gt;That single fact rolled around in my head in a funny way.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;It's slow because it goes through Google's servers.&lt;/em&gt; So... if I ran it on our own server, wouldn't it be fast?&lt;/p&gt;

&lt;p&gt;Writing it now, it sounds obvious. Back then I didn't even know what a server was. All I had was a vague hunch that "ours" would be faster. So I sat down and asked myself a plain question: what servers do I actually know about?&lt;/p&gt;

&lt;p&gt;The EMR server came to mind first — the system that holds the hospital's medical records. But that was off-limits. It holds patient data and it's wired tightly to outside agencies, the national insurance bodies and the rest. It is not a thing someone like me gets to poke at. One wrong move and the hospital stops.&lt;/p&gt;

&lt;p&gt;Then something completely different surfaced.&lt;/p&gt;

&lt;p&gt;The NAS.&lt;/p&gt;

&lt;p&gt;That shared storage box — a NAS, the little network drive in the office where staff dump photos and documents to share. Everyone connects to it and uses it together. So, when you think about it... isn't that kind of a server too? And if it is, couldn't I put my program on it?&lt;/p&gt;

&lt;p&gt;I had no confidence. I didn't even know whether it was a possible thing or an impossible thing. But a question, once it lands, never quite leaves — and &lt;strong&gt;the most useful move a beginner can make is to take a vague hunch seriously enough to test it, before you're sure it's allowed.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;So I decided to move EasyFS onto that NAS.&lt;/p&gt;

&lt;h2&gt;
  
  
  What this really was
&lt;/h2&gt;

&lt;p&gt;Looking back, that was the moment I stepped off the toy setups.&lt;/p&gt;

&lt;p&gt;I didn't learn it from a course. I reasoned my way there from one offhand sentence an AI gave me, plus the only servers I happened to know existed. That's it. No background, no permission, no plan — just a slow tool and a question I couldn't drop.&lt;/p&gt;

&lt;p&gt;The hunch turned out to be right, but the road there was longer and stranger than I expected. Moving a program onto a box meant for storing photos opened up a whole set of problems I didn't know existed yet. That's the next story.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;This is part of &lt;a href="https://fromzerotoship.com" rel="noopener noreferrer"&gt;From Zero to Ship&lt;/a&gt; — the honest logbook of a non-developer who shipped 20+ working tools with AI. If this resonated, the rest of the series is there.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>ai</category>
      <category>devops</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
