<?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: Mister Kay</title>
    <description>The latest articles on DEV Community by Mister Kay (@mister_kay).</description>
    <link>https://dev.to/mister_kay</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%2F3802316%2F55747994-dfad-44ab-ad82-58b558bc082e.jpeg</url>
      <title>DEV Community: Mister Kay</title>
      <link>https://dev.to/mister_kay</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/mister_kay"/>
    <language>en</language>
    <item>
      <title>Hello</title>
      <dc:creator>Mister Kay</dc:creator>
      <pubDate>Tue, 07 Apr 2026 19:53:25 +0000</pubDate>
      <link>https://dev.to/mister_kay/hello-2pdo</link>
      <guid>https://dev.to/mister_kay/hello-2pdo</guid>
      <description></description>
    </item>
    <item>
      <title>Laziness Made Me Build a Python Tool That Generates Entire Project Structures</title>
      <dc:creator>Mister Kay</dc:creator>
      <pubDate>Sun, 08 Mar 2026 15:15:18 +0000</pubDate>
      <link>https://dev.to/mister_kay/laziness-made-me-build-a-python-tool-that-generates-entire-project-structures-5e44</link>
      <guid>https://dev.to/mister_kay/laziness-made-me-build-a-python-tool-that-generates-entire-project-structures-5e44</guid>
      <description>&lt;p&gt;It’s funny how laziness is what got me into Python.&lt;/p&gt;

&lt;p&gt;Not ambition. Not some grand plan to become a software engineer. Just pure laziness.&lt;/p&gt;

&lt;p&gt;Repetitive tasks drain my brain. The kind where you keep doing the same thing over and over again. Creating folders. Creating files. Setting up project structures. It’s not hard work — it’s just annoyingly repetitive.&lt;/p&gt;

&lt;p&gt;And one day I thought:&lt;/p&gt;

&lt;p&gt;“Why not just write something that does it for me?”&lt;/p&gt;

&lt;p&gt;That single thought is what eventually led me to build a Python tool that turns a simple text tree into a full project structure on disk.&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;The Real Origin Story&lt;/p&gt;

&lt;p&gt;I’m a self-taught developer, and honestly AI played a big role in accelerating my learning.&lt;/p&gt;

&lt;p&gt;But I noticed something interesting about AI: it’s extremely smart and extremely dumb at the same time. It can generate entire architectures in seconds, but it still needs your logic to make things actually work.&lt;/p&gt;

&lt;p&gt;Around my fourth month of learning Python, I started building Telegram bots using Aiogram. Telegram was actually what pulled me into programming in the first place.&lt;/p&gt;

&lt;p&gt;But every time I started a new bot project, I kept creating the same folders: src, handlers, data, utils, config, logs. And I kept doing this every single day. Open VS Code, create folder, create file, repeat. Over and over again.&lt;/p&gt;

&lt;p&gt;If you’re building a large project, that process becomes incredibly tedious.&lt;/p&gt;

&lt;p&gt;Eventually I thought: “What if I could describe the structure once and let Python create everything for me?”&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;The Idea: A Tree That Becomes a Project&lt;/p&gt;

&lt;p&gt;The idea was simple. Instead of manually creating folders, I would write a tree structure in a text file, something like this:&lt;/p&gt;

&lt;p&gt;project/&lt;br&gt;
 src/&lt;br&gt;
  main.py&lt;br&gt;
 handlers/&lt;br&gt;
  start.py&lt;br&gt;
 data/&lt;br&gt;
  database.db&lt;/p&gt;

&lt;p&gt;Then Python would read the text and recreate that structure on disk automatically.&lt;/p&gt;

&lt;p&gt;The script just needed to read the text file, understand the hierarchy, detect folders versus files, and create them in the correct order. Simple in theory. But the fun part was building the logic.&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;Step 1 — Handling Invalid File Names&lt;/p&gt;

&lt;p&gt;Different operating systems have invalid characters for file names. So the first thing I wrote was a function to sanitize names.&lt;/p&gt;

&lt;p&gt;Windows, for example, absolutely hates certain characters. If your script tries to create a folder like data:backup, it will fail. So the function simply replaces illegal characters with underscores. Small detail, but essential.&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;Step 2 — Parsing the Tree Structure&lt;/p&gt;

&lt;p&gt;The heart of the script is the parser. It reads the tree and converts it into something Python can understand. Internally, it produces a list with each path, whether it’s a directory, and optional comments.&lt;/p&gt;

&lt;p&gt;The tricky part was figuring out how deep a folder is in the tree.&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;Step 3 — Detecting Folder Depth&lt;/p&gt;

&lt;p&gt;The trick is indentation. Each level in the tree is represented by four spaces. For example:&lt;/p&gt;

&lt;p&gt;project/&lt;br&gt;
 src/&lt;br&gt;
  main.py&lt;/p&gt;

&lt;p&gt;That means: project is at depth 0, src at depth 1, and main.py at depth 2.&lt;/p&gt;

&lt;p&gt;Once we know the depth, we can reconstruct the full path.&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;Step 4 — Tracking Folder Hierarchy with a Stack&lt;/p&gt;

&lt;p&gt;To rebuild the full path, I used a stack. Whenever we enter a folder, we push it to the stack. Then if we go back up the tree, we pop items from the stack. This ensures the current path always matches the correct hierarchy.&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;Step 5 — Previewing the Tree Before Creation&lt;/p&gt;

&lt;p&gt;Before actually creating files, I added a preview mode. It prints the structure with folders and files so you can confirm everything is correct before writing to disk.&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;Step 6 — Creating the Files and Folders&lt;/p&gt;

&lt;p&gt;Finally, the script builds the structure. Folders are created using the operating system’s folder creation methods, and files are created with simple write operations. If the tree includes a comment, the script even writes that comment inside the file automatically.&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;The Lazy Developer Evolution&lt;/p&gt;

&lt;p&gt;At this point the script worked. But there was still a problem. Every time I wanted to run it, I had to open VS Code, navigate to the helpers folder, open a terminal, and run the script manually. That’s four steps. And remember — this project was born from laziness. Four steps is unacceptable.&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;The Next Upgrade: Turning It Into a .BAT Tool&lt;/p&gt;

&lt;p&gt;So I took it one step further. I created a .bat file so I could run the script instantly from my desktop. Double-click. Boom. The project structure appears. No VS Code. No terminal. No navigation. Just click and generate.&lt;/p&gt;

&lt;p&gt;At that moment the tool finally became what I originally wanted: a tiny utility that eliminates repetitive project setup.&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;A Thought About AI and Learning&lt;/p&gt;

&lt;p&gt;While building this, I started thinking about something. Developers in the early 2000s didn’t have AI. They had Stack Overflow, documentation, and trial and error. Honestly, I respect those developers a lot. Without AI assistance, learning programming must have been a completely different battle.&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;Where I Am Now&lt;/p&gt;

&lt;p&gt;I’m still a beginner developer. But building tools like this makes programming incredibly exciting. You start with something small, then it evolves, and suddenly you’re building tools that save you hours of work.&lt;/p&gt;

&lt;p&gt;And now I’m already thinking: what am I going to build next?&lt;/p&gt;

&lt;p&gt;Final Thought&lt;/p&gt;

&lt;p&gt;Sometimes the best programming projects don’t start from ambition. They start from laziness. Because laziness forces you to ask the most powerful question in software: “Can I automate this?”&lt;/p&gt;

</description>
      <category>cli</category>
      <category>bat</category>
      <category>automation</category>
    </item>
    <item>
      <title>I’m Not a Senior Dev. I’m Building Anyway.</title>
      <dc:creator>Mister Kay</dc:creator>
      <pubDate>Mon, 02 Mar 2026 20:18:42 +0000</pubDate>
      <link>https://dev.to/mister_kay/im-not-a-senior-dev-im-building-anyway-3cjp</link>
      <guid>https://dev.to/mister_kay/im-not-a-senior-dev-im-building-anyway-3cjp</guid>
      <description>&lt;p&gt;I started learning coding in December 2024. Well, that was not my first time looking at code. The first time was in 2020 during COVID-19 when I had just started using Telegram and discovered Telegram bots.&lt;/p&gt;

&lt;p&gt;I used to chase dumb things. There was this Telegram bot that said if you refer people you get paid crypto. I was young. Don’t judge me, man. I kept referring people and still didn’t get paid. That’s when I realized these bots and everything around them were built by developers. Nothing special. So I told myself I want to learn how to do this.&lt;/p&gt;

&lt;p&gt;So I started learning Python. Back then there was no AI helping me. I learned the old school way. YouTube and hundreds of bugs. My laptop frustrated me a lot and I ran away from coding for a while. But coding kept calling me back, especially after I broke up with my girlfriend and felt like I was losing my identity. Coding showed me who I was. A critical thinker. A problem solver.&lt;/p&gt;

&lt;p&gt;In December I picked up my laptop again and started Python. Hello World. I always loved Python. I always preferred Python to any language. I don’t know why. There’s just a connection. Python forever, baby.&lt;/p&gt;

&lt;p&gt;After Hello World I learned HTML and CSS. When I started HTML I thought developing was easy. Then CSS humbled me. Something won’t center, something won’t fit, and there’s no error message telling you what went wrong. You just figure it out yourself. Respect to CSS experts. You guys are the real deal.&lt;/p&gt;

&lt;p&gt;I learned the basics of HTML, CSS, and JavaScript but I knew Python was my path. I’m fascinated by AI and LLMs. One day I want to build my own AI, personalized for me, like a life assistant. I already write small scripts to help me do things. Being lazy is a perk because it makes me build tools that make me even lazier. Somehow that works.&lt;/p&gt;

&lt;p&gt;It’s been about a year now. I’ve deployed multiple Telegram bots. I’ve built several full stack projects that are half cooked, but most of my Telegram bots are complete, hosted on a VPS, and working.&lt;/p&gt;

&lt;p&gt;Honestly I feel intimidated being here. I scroll and see senior developers using big grammar and complex ideas. I don’t understand everything yet. But I know I’m getting there. It’s just my first year and I’m moving at my own pace.&lt;/p&gt;

&lt;p&gt;Sometimes I feel like I should have started earlier. But I don’t care anymore. I still have time and I’m ready to level up. Funny enough, I became a junior developer within a year without anyone teaching me directly. AI and YouTube helped a lot. Nothing is really stopping anyone from learning a skill except procrastination. That was my biggest obstacle.&lt;/p&gt;

&lt;p&gt;Now I code every day. I remember the first time I printed Hello World. I was so happy. Then functions came. Then lists and tuples almost finished me. But now the picture is clearer. I understand workflow and architecture better. I even have my own way of structuring projects. You can look at my code and say yeah, this is my style.&lt;/p&gt;

&lt;p&gt;I hope to connect with real developers both online and offline. I want to build things with people and share ideas. I also want to start a startup someday, maybe solo, maybe with a team. We’ll see.&lt;/p&gt;

&lt;p&gt;This is my introduction. I’ll be documenting what I build and what I learn. Maybe it helps someone. Maybe it helps future me. I want to come back here in a few years, read this, smile, and say my man made it.&lt;/p&gt;

&lt;p&gt;I believe I’ll work with AI one day. I don’t know if this introduction is messy, but this is me. My mind is chaotic. I can be in the shower and suddenly get two ideas and run out to write them down before I forget.&lt;/p&gt;

&lt;p&gt;Anyway, cheers to a new chapter.&lt;/p&gt;

</description>
      <category>python</category>
      <category>juniordev</category>
      <category>telegrambots</category>
      <category>introduction</category>
    </item>
  </channel>
</rss>
