<?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: M. Qasim. Farooqi ⛏️</title>
    <description>The latest articles on DEV Community by M. Qasim. Farooqi ⛏️ (@acubura).</description>
    <link>https://dev.to/acubura</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%2F3864425%2F05f5860c-b1fd-474f-afb0-3233f2fe1890.jpg</url>
      <title>DEV Community: M. Qasim. Farooqi ⛏️</title>
      <link>https://dev.to/acubura</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/acubura"/>
    <language>en</language>
    <item>
      <title>Pytalon Just Hit Its Highest GitHub Clone Record — Here's What That Means</title>
      <dc:creator>M. Qasim. Farooqi ⛏️</dc:creator>
      <pubDate>Fri, 15 May 2026 07:00:54 +0000</pubDate>
      <link>https://dev.to/acubura/pytalon-just-hit-its-highest-github-clone-record-heres-what-that-means-244f</link>
      <guid>https://dev.to/acubura/pytalon-just-hit-its-highest-github-clone-record-heres-what-that-means-244f</guid>
      <description>&lt;p&gt;When I started building Pytalon, I wasn't thinking about clone counts or traffic graphs. I was thinking about a specific kind of person — someone sitting down with Python for the first time, staring at a terminal, and feeling like the language was written for someone smarter than them.&lt;/p&gt;

&lt;p&gt;I wanted to fix that. Not with another tutorial website or a YouTube playlist, but with something conversational. Something that meets beginners where they are, speaks in plain language, and actually makes the fundamentals stick.&lt;/p&gt;

&lt;p&gt;That became Pytalon — an open-source, interactive console tutor. 93+ commits in. 12 topics covered. MIT-licensed. Built to be used, modified, and outgrown.&lt;/p&gt;

&lt;p&gt;For a long time, development was quiet. Commits piling up, features shipping, but the wider world mostly unaware. Then GitHub's traffic data started telling a different story.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmhkwomfjub7lyaxjm7vj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmhkwomfjub7lyaxjm7vj.png" alt=" " width="800" height="568"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Numbers
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Total Clones:&lt;/strong&gt; 556&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Total Unique Clones:&lt;/strong&gt; 212&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Peak Day (Clones):&lt;/strong&gt; 252&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Peak Day (Unique):&lt;/strong&gt; 101&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The peak day is the one that stopped me. 252 clones and 101 unique visitors in a single day means real developers — not bots, not crawlers — found Pytalon, decided it was worth pulling, and took it home with them.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why This Data Matters
&lt;/h2&gt;

&lt;p&gt;A clone isn't passive. It means someone found the repo, decided it was worth their local disk space, and pulled it in. Each unique clone is a real developer making an active decision.&lt;/p&gt;

&lt;p&gt;From what I can tell, developers are using Pytalon in different ways:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Learning:&lt;/strong&gt; Going through the tutor themselves as a refresher or starting point&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Building:&lt;/strong&gt; Using it as a foundation for their own projects&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Training:&lt;/strong&gt; Leveraging the structure to train or fine-tune their own assistants&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Contributing (in spirit):&lt;/strong&gt; Studying the architecture and improving on it independently&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;None of that was planned. That's just what happens when you build something genuinely useful and leave it open.&lt;/p&gt;

&lt;h2&gt;
  
  
  To the Developers Who Cloned It
&lt;/h2&gt;

&lt;p&gt;Thank you. Seriously. Pytalon is a solo project, and seeing it picked up by people across the community is the kind of thing that makes continued development feel worthwhile.&lt;/p&gt;

&lt;p&gt;I'm not stopping. More modules are coming, the interaction system is getting smarter, and the beginner experience will keep improving.&lt;/p&gt;

&lt;p&gt;If you haven't checked it out yet — it's open, it's free, and it's built to be built upon.&lt;/p&gt;

&lt;p&gt;🔗 &lt;a href="https://github.com/Vexqyn/pytalon-assistant" rel="noopener noreferrer"&gt;https://github.com/Vexqyn/pytalon-assistant&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Built under Vexqyn — Solving problems the right way.&lt;/em&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>🔥 Major preview dropping soon

• Biggest fix yet, new features, technical improvements. And yeah — that UX bug? Squashed coming soon. 

• Also: Caught a clone command bug, patched it ASAP. Sorry about that.

Stay tuned 🚀</title>
      <dc:creator>M. Qasim. Farooqi ⛏️</dc:creator>
      <pubDate>Mon, 11 May 2026 10:30:57 +0000</pubDate>
      <link>https://dev.to/acubura/major-preview-dropping-soon-biggest-fix-yet-new-features-technical-improvements-and-yeah-38h4</link>
      <guid>https://dev.to/acubura/major-preview-dropping-soon-biggest-fix-yet-new-features-technical-improvements-and-yeah-38h4</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/acubura/introducing-vexqyn-and-why-koda-is-now-pytalon-1bhi" class="crayons-story__hidden-navigation-link"&gt;Introducing Vexqyn — and why Koda is now Pytalon&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/acubura" class="crayons-avatar  crayons-avatar--l  "&gt;
            &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3864425%2F05f5860c-b1fd-474f-afb0-3233f2fe1890.jpg" alt="acubura profile" class="crayons-avatar__image" width="96" height="96"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/acubura" class="crayons-story__secondary fw-medium m:hidden"&gt;
              M. Qasim. Farooqi ⛏️
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                M. Qasim. Farooqi ⛏️
                
              
              &lt;div id="story-author-preview-content-3641291" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/acubura" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&gt;
                        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3864425%2F05f5860c-b1fd-474f-afb0-3233f2fe1890.jpg" class="crayons-avatar__image" alt="" width="96" height="96"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;M. Qasim. Farooqi ⛏️&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/acubura/introducing-vexqyn-and-why-koda-is-now-pytalon-1bhi" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;May 9&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/acubura/introducing-vexqyn-and-why-koda-is-now-pytalon-1bhi" id="article-link-3641291"&gt;
          Introducing Vexqyn — and why Koda is now Pytalon
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
            &lt;a href="https://dev.to/acubura/introducing-vexqyn-and-why-koda-is-now-pytalon-1bhi#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              Comments


              &lt;span class="hidden s:inline"&gt;Add Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            1 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
    </item>
    <item>
      <title>Introducing Vexqyn — and why Koda is now Pytalon</title>
      <dc:creator>M. Qasim. Farooqi ⛏️</dc:creator>
      <pubDate>Sat, 09 May 2026 16:59:43 +0000</pubDate>
      <link>https://dev.to/acubura/introducing-vexqyn-and-why-koda-is-now-pytalon-1bhi</link>
      <guid>https://dev.to/acubura/introducing-vexqyn-and-why-koda-is-now-pytalon-1bhi</guid>
      <description>&lt;p&gt;Two things happened this week. Let me walk through both.&lt;/p&gt;




&lt;h3&gt;
  
  
  The rebrand: Koda → Pytalon
&lt;/h3&gt;

&lt;p&gt;A few weeks ago I renamed my Python Teaching Assistant to &lt;strong&gt;Koda&lt;/strong&gt;. It felt like a solid name. Then I did deeper research.&lt;/p&gt;

&lt;p&gt;"Koda" is used &lt;em&gt;heavily&lt;/em&gt; across the world — by companies, apps, and products across many industries. That kind of name collision creates confusion, and potentially conflict. That's not something I'm willing to risk — especially for a project I want to build a genuine, trusted reputation around.&lt;/p&gt;

&lt;p&gt;So I'm rebranding again. To &lt;strong&gt;Pytalon&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Yes, I know — two rebrands in a short window isn't ideal. But catching this early is better than carrying the wrong name for years. Pytalon is distinct. It's ours. And it's the name we'll build on from here.&lt;/p&gt;




&lt;h3&gt;
  
  
  Introducing Vexqyn
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Vexqyn&lt;/strong&gt; is the GitHub organization I've created to house my open-source work.&lt;/p&gt;

&lt;p&gt;The tagline: &lt;em&gt;Solving problems the right way — with clarity, purpose, and precision.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Pytalon is Vexqyn's first major project. It's an interactive console Python tutor that teaches through conversation and real-life analogies — not dry textbooks. It's completely free, MIT licensed, and open source.&lt;/p&gt;

&lt;p&gt;The next major preview update is on the way. I appreciate the community's patience — it genuinely means a lot.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;ORG:&lt;/strong&gt; &lt;a href="https://github.com/Vexqyn" rel="noopener noreferrer"&gt;https://github.com/Vexqyn&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;GitHub Project:&lt;/strong&gt; &lt;a href="https://github.com/Vexqyn/pytalon-assistant" rel="noopener noreferrer"&gt;https://github.com/Vexqyn/pytalon-assistant&lt;/a&gt;  &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5b34094dil4oelqc3muj.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5b34094dil4oelqc3muj.jpg" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9o42guu841hnuw5wk3bn.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9o42guu841hnuw5wk3bn.jpg" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  python #opensource #buildinpublic #pytalon #vexqyn
&lt;/h1&gt;

</description>
    </item>
    <item>
      <title>Coming Soon!</title>
      <dc:creator>M. Qasim. Farooqi ⛏️</dc:creator>
      <pubDate>Mon, 04 May 2026 15:15:49 +0000</pubDate>
      <link>https://dev.to/acubura/coming-soon-3979</link>
      <guid>https://dev.to/acubura/coming-soon-3979</guid>
      <description>&lt;p&gt;Something big is brewing. I have been building the future of productivity with Koda Assistant.&lt;/p&gt;

&lt;p&gt;Coming soon. 🚀&lt;/p&gt;

&lt;p&gt;Stay tuned!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgavfy1lepl4iv27uqavv.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgavfy1lepl4iv27uqavv.jpeg" alt=" " width="662" height="368"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Day 3 Annoucement — Why User Experience Is Koda's Top Priority</title>
      <dc:creator>M. Qasim. Farooqi ⛏️</dc:creator>
      <pubDate>Fri, 01 May 2026 10:31:59 +0000</pubDate>
      <link>https://dev.to/acubura/day-3-annoucement-why-user-experience-is-kodas-top-priority-5479</link>
      <guid>https://dev.to/acubura/day-3-annoucement-why-user-experience-is-kodas-top-priority-5479</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2For5ag24c0ber7ml2tehy.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2For5ag24c0ber7ml2tehy.jpg" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I've been in the middle of a refactorization of Koda's codebase this week — and what I found wasn't just messy code.&lt;/p&gt;

&lt;p&gt;I found user experience issues.&lt;/p&gt;

&lt;p&gt;I'm not going to detail every specific one here, but discovering them during a refactor was a reminder of something important: you can build something that technically works and still fail the person using it.&lt;/p&gt;

&lt;p&gt;Koda is an open-source Python Tutor Companion. Its entire purpose is to make learning Python feel approachable — especially for beginners who are just getting started. That means the experience has to be right. Not just the logic. Not just the coverage of topics. The actual &lt;em&gt;feel&lt;/em&gt; of using it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why UX matters so much in an educational tool:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When a beginner hits friction — anything that confuses, slows, or discourages them — it doesn't just break the flow. It chips away at their confidence. And confidence is exactly what Koda is trying to build.&lt;/p&gt;

&lt;p&gt;A great tutor isn't just knowledgeable. A great tutor makes learning feel possible.&lt;/p&gt;

&lt;p&gt;So the priority from here is clear: every UX issue I found gets fixed. And going forward, the learner's experience is the first question I ask — not the last.&lt;/p&gt;

&lt;p&gt;Koda is MIT licensed, 78+ commits deep, and being built fully in public. Follow along.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/acubura/koda-assistant" rel="noopener noreferrer"&gt;https://github.com/acubura/koda-assistant&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  python #opensource #buildinpublic #ux #beginners #devjourney
&lt;/h1&gt;

</description>
    </item>
    <item>
      <title>Quick but important: this massive change is going to drop in Koda's next major preview. Stay tuned! 💫</title>
      <dc:creator>M. Qasim. Farooqi ⛏️</dc:creator>
      <pubDate>Wed, 29 Apr 2026 10:34:20 +0000</pubDate>
      <link>https://dev.to/acubura/quick-but-important-this-massive-change-is-going-to-drop-in-kodas-next-major-preview-stay-tuned-36hp</link>
      <guid>https://dev.to/acubura/quick-but-important-this-massive-change-is-going-to-drop-in-kodas-next-major-preview-stay-tuned-36hp</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/acubura/day-2-announcement-koda-is-getting-a-full-refactor-heres-why-b3l" class="crayons-story__hidden-navigation-link"&gt;Day 2 Announcement: Koda is Getting a Full Refactor — Here's Why&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/acubura" class="crayons-avatar  crayons-avatar--l  "&gt;
            &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3864425%2F05f5860c-b1fd-474f-afb0-3233f2fe1890.jpg" alt="acubura profile" class="crayons-avatar__image" width="96" height="96"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/acubura" class="crayons-story__secondary fw-medium m:hidden"&gt;
              M. Qasim. Farooqi ⛏️
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                M. Qasim. Farooqi ⛏️
                
              
              &lt;div id="story-author-preview-content-3586009" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/acubura" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&gt;
                        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3864425%2F05f5860c-b1fd-474f-afb0-3233f2fe1890.jpg" class="crayons-avatar__image" alt="" width="96" height="96"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;M. Qasim. Farooqi ⛏️&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/acubura/day-2-announcement-koda-is-getting-a-full-refactor-heres-why-b3l" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Apr 29&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/acubura/day-2-announcement-koda-is-getting-a-full-refactor-heres-why-b3l" id="article-link-3586009"&gt;
          Day 2 Announcement: Koda is Getting a Full Refactor — Here's Why
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
            &lt;a href="https://dev.to/acubura/day-2-announcement-koda-is-getting-a-full-refactor-heres-why-b3l#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              Comments


              &lt;span class="hidden s:inline"&gt;Add Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            2 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
    </item>
    <item>
      <title>Day 2 Announcement: Koda is Getting a Full Refactor — Here's Why</title>
      <dc:creator>M. Qasim. Farooqi ⛏️</dc:creator>
      <pubDate>Wed, 29 Apr 2026 10:33:55 +0000</pubDate>
      <link>https://dev.to/acubura/day-2-announcement-koda-is-getting-a-full-refactor-heres-why-b3l</link>
      <guid>https://dev.to/acubura/day-2-announcement-koda-is-getting-a-full-refactor-heres-why-b3l</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1ytycogfz5wklmgnsqgx.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1ytycogfz5wklmgnsqgx.jpg" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you've been following Koda's development, you know the project has been focused on one thing from the start: clarity. Clear explanations, clean structure, readable logic.&lt;/p&gt;

&lt;p&gt;But "good enough" isn't a philosophy I can ship long-term.&lt;/p&gt;

&lt;h3&gt;
  
  
  What's Happening
&lt;/h3&gt;

&lt;p&gt;Koda — my open-source Python tutor that teaches through conversation — is undergoing a full codebase refactorization.&lt;/p&gt;

&lt;p&gt;No feature is broken. No user-facing change. This is purely under the hood.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why Refactorize Now?
&lt;/h3&gt;

&lt;p&gt;Here's the honest answer: code readability isn't a final destination. It's a moving standard.&lt;/p&gt;

&lt;p&gt;What read clearly at 20 commits can start to feel tangled at 80. And as I plan Koda's next development phase — more modules, smarter input validation, richer flows — I need the foundation to carry that weight.&lt;/p&gt;

&lt;p&gt;Specifically, the refactor is targeting:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Naming consistency&lt;/strong&gt; — variables, functions, and modules that mean what they say&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Logic decomposition&lt;/strong&gt; — breaking long flows into smaller, traceable units&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Bug surface reduction&lt;/strong&gt; — readable code makes bugs visible, not hidden&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Contributor readability&lt;/strong&gt; — anyone who wants to contribute should be able to read the codebase without a guide&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Why Code Readability Matters (For Every Type of Dev)
&lt;/h3&gt;

&lt;p&gt;Whether you're a junior dev just getting started, a mid-level engineer maintaining a team codebase, or a solo builder working on open source — readable code protects you.&lt;/p&gt;

&lt;p&gt;It protects you when you come back to your own project after two weeks away.&lt;br&gt;
It protects your contributors when they try to understand your intent.&lt;br&gt;
It protects your users when bugs surface faster because the logic is visible.&lt;/p&gt;

&lt;h3&gt;
  
  
  How I'm Doing This Safely
&lt;/h3&gt;

&lt;p&gt;The refactor is planned, not improvised. I'm going module by module, testing at each step, and nothing ships until it's verified stable.&lt;/p&gt;

&lt;p&gt;No rushed commits. No "I'll fix that later." Each phase is deliberate.&lt;/p&gt;

&lt;p&gt;This is how open-source should be built.&lt;/p&gt;




&lt;p&gt;Koda is MIT licensed and built to help beginners learn Python through conversation rather than textbooks. Day 2 of building in public — and the work continues. 🛠️&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/acubura/koda-assistant" rel="noopener noreferrer"&gt;https://github.com/acubura/koda-assistant&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  python #opensource #refactoring #cleancode #buildinpublic #webdev
&lt;/h1&gt;

</description>
    </item>
    <item>
      <title>The brand-new journey of Python Teaching Assistant starts today, evolving into Koda — check it out on GitHub! 🚀</title>
      <dc:creator>M. Qasim. Farooqi ⛏️</dc:creator>
      <pubDate>Mon, 27 Apr 2026 14:34:14 +0000</pubDate>
      <link>https://dev.to/acubura/the-brand-new-journey-of-python-teaching-assistant-starts-today-evolving-into-koda-check-it-out-5fdk</link>
      <guid>https://dev.to/acubura/the-brand-new-journey-of-python-teaching-assistant-starts-today-evolving-into-koda-check-it-out-5fdk</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/acubura/python-teaching-assistant-is-now-koda-39c7" class="crayons-story__hidden-navigation-link"&gt;Python Teaching Assistant is Now Koda&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/acubura" class="crayons-avatar  crayons-avatar--l  "&gt;
            &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3864425%2F05f5860c-b1fd-474f-afb0-3233f2fe1890.jpg" alt="acubura profile" class="crayons-avatar__image" width="96" height="96"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/acubura" class="crayons-story__secondary fw-medium m:hidden"&gt;
              M. Qasim. Farooqi ⛏️
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                M. Qasim. Farooqi ⛏️
                
              
              &lt;div id="story-author-preview-content-3556787" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/acubura" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&gt;
                        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3864425%2F05f5860c-b1fd-474f-afb0-3233f2fe1890.jpg" class="crayons-avatar__image" alt="" width="96" height="96"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;M. Qasim. Farooqi ⛏️&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/acubura/python-teaching-assistant-is-now-koda-39c7" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Apr 27&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/acubura/python-teaching-assistant-is-now-koda-39c7" id="article-link-3556787"&gt;
          Python Teaching Assistant is Now Koda
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
            &lt;a href="https://dev.to/acubura/python-teaching-assistant-is-now-koda-39c7#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              Comments


              &lt;span class="hidden s:inline"&gt;Add Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            2 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
    </item>
    <item>
      <title>Python Teaching Assistant is Now Koda</title>
      <dc:creator>M. Qasim. Farooqi ⛏️</dc:creator>
      <pubDate>Mon, 27 Apr 2026 10:15:35 +0000</pubDate>
      <link>https://dev.to/acubura/python-teaching-assistant-is-now-koda-39c7</link>
      <guid>https://dev.to/acubura/python-teaching-assistant-is-now-koda-39c7</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Falgwgy2rri5nat58opps.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Falgwgy2rri5nat58opps.jpg" alt=" " width="800" height="1000"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Name Changed. The Vision Got Clearer.
&lt;/h2&gt;

&lt;p&gt;If you've been following my work, you might know I've been building a terminal-based Python tutor — something I'd been calling &lt;strong&gt;Python Teaching Assistant&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Today, that changes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;It's now Koda.&lt;/strong&gt; And this post is the story of why.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why Rename It at All?
&lt;/h2&gt;

&lt;p&gt;Honestly? The original name was a placeholder that stuck around too long.&lt;/p&gt;

&lt;p&gt;"Python Teaching Assistant" told you exactly what it did — but nothing about what it &lt;em&gt;felt&lt;/em&gt; like to use. And the feeling is the whole point.&lt;/p&gt;

&lt;p&gt;I'm not building a tool that executes pedagogical functions. I'm building a companion that teaches you Python the way a patient, present mentor would — through real conversation, with real-world analogies, without the intimidation of documentation or the passivity of video lectures.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Koda&lt;/strong&gt; captures that identity. The name isn't an acronym. It's a personality.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Problem I'm Actually Trying to Solve
&lt;/h2&gt;

&lt;p&gt;Digital learning platforms are content-rich and conversation-poor.&lt;/p&gt;

&lt;p&gt;You can find Python tutorials, YouTube playlists, and bootcamp syllabi without effort. What you &lt;em&gt;can't&lt;/em&gt; easily find is something that responds to &lt;strong&gt;your specific confusion&lt;/strong&gt; — right now, in the moment you're stuck.&lt;/p&gt;

&lt;p&gt;Koda is built for that gap. It lives in your terminal. It talks back. It doesn't just present information — it validates your understanding, catches your mistakes in natural language, and explains concepts through analogies you actually relate to.&lt;/p&gt;




&lt;h2&gt;
  
  
  What Koda Looks Like Right Now
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Console-based interactive tutor&lt;/strong&gt; — runs in your terminal, no browser dependency&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;12 Python topics covered&lt;/strong&gt; — including complete String and Conditionals modules&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Natural language input validation&lt;/strong&gt; — understands how you phrase things, not just what you type&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Real-life analogy system&lt;/strong&gt; — concepts are explained through scenarios from everyday life&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Open-source, MIT licensed&lt;/strong&gt; — built to be forked, extended, contributed to&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;78+ commits in&lt;/strong&gt; — this isn't a weekend project; it's a growing system&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  What's Coming
&lt;/h2&gt;

&lt;p&gt;This is Day 1 of Koda's public identity. There's a roadmap in motion — more modules, smarter conversation handling, and eventually a broader platform vision.&lt;/p&gt;

&lt;p&gt;I'll be posting build logs, design decisions, and lessons learned here as the project grows.&lt;/p&gt;

&lt;p&gt;If you want to contribute, follow along, or just watch what happens when you build a Python tutor with the conviction that &lt;em&gt;conversation is the best pedagogy&lt;/em&gt; — I'd love to have you along.&lt;/p&gt;

&lt;p&gt;The build continues.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/acubura/koda-assistant" rel="noopener noreferrer"&gt;https://github.com/acubura/koda-assistant&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>UX fixes &amp; improvements coming soon to Python Teaching Assistant. Smoother experience on the way 🛠️

Plus: huge announcements about the future of Python Teaching Assistant 🚀

Stay tuned. Let's code the future together 🐍⚡</title>
      <dc:creator>M. Qasim. Farooqi ⛏️</dc:creator>
      <pubDate>Sun, 26 Apr 2026 09:39:06 +0000</pubDate>
      <link>https://dev.to/acubura/ux-fixes-improvements-coming-soon-to-python-teaching-assistant-smoother-experience-on-the-way-1p3i</link>
      <guid>https://dev.to/acubura/ux-fixes-improvements-coming-soon-to-python-teaching-assistant-smoother-experience-on-the-way-1p3i</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/acubura/python-teaching-assistant-just-got-a-code-of-conduct-security-tools-1696" class="crayons-story__hidden-navigation-link"&gt;Python Teaching Assistant just got a Code of Conduct + Security tools&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/acubura" class="crayons-avatar  crayons-avatar--l  "&gt;
            &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3864425%2F05f5860c-b1fd-474f-afb0-3233f2fe1890.jpg" alt="acubura profile" class="crayons-avatar__image" width="96" height="96"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/acubura" class="crayons-story__secondary fw-medium m:hidden"&gt;
              M. Qasim. Farooqi ⛏️
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                M. Qasim. Farooqi ⛏️
                
              
              &lt;div id="story-author-preview-content-3542236" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/acubura" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&gt;
                        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3864425%2F05f5860c-b1fd-474f-afb0-3233f2fe1890.jpg" class="crayons-avatar__image" alt="" width="96" height="96"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;M. Qasim. Farooqi ⛏️&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/acubura/python-teaching-assistant-just-got-a-code-of-conduct-security-tools-1696" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Apr 23&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/acubura/python-teaching-assistant-just-got-a-code-of-conduct-security-tools-1696" id="article-link-3542236"&gt;
          Python Teaching Assistant just got a Code of Conduct + Security tools
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag crayons-tag--filled  " href="/t/showdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;showdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/opensource"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;opensource&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/python"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;python&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/security"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;security&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
            &lt;a href="https://dev.to/acubura/python-teaching-assistant-just-got-a-code-of-conduct-security-tools-1696#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              Comments


              &lt;span class="hidden s:inline"&gt;Add Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            1 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
    </item>
    <item>
      <title>Python Teaching Assistant just got a Code of Conduct + Security tools</title>
      <dc:creator>M. Qasim. Farooqi ⛏️</dc:creator>
      <pubDate>Thu, 23 Apr 2026 16:03:38 +0000</pubDate>
      <link>https://dev.to/acubura/python-teaching-assistant-just-got-a-code-of-conduct-security-tools-1696</link>
      <guid>https://dev.to/acubura/python-teaching-assistant-just-got-a-code-of-conduct-security-tools-1696</guid>
      <description>&lt;p&gt;Hey devs 👋&lt;/p&gt;

&lt;p&gt;I've been building the Python Teaching Assistant — an open-source, beginner-friendly console program that teaches Python through conversation and real-life analogies, not textbook walls of text.&lt;/p&gt;

&lt;p&gt;This week, two important things landed:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Code of Conduct&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;We made it official: no judgment, no gatekeeping. Whether someone's confused about indentation or submitting their first PR, they're welcome here. The CoC covers everything from respectful disagreement to how we handle reports — privately, fairly, and seriously.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Security tooling&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;→ &lt;strong&gt;Bandit&lt;/strong&gt; — runs static analysis on the Python codebase, catches security anti-patterns automatically.&lt;br&gt;
→ &lt;strong&gt;Dependency Review&lt;/strong&gt; — every pull request now gets scanned for known-vulnerable or deprecated packages.&lt;/p&gt;

&lt;p&gt;Why does a teaching project need this? Because students copy patterns. If the code they learn from has security smells, those habits travel with them. We want to model good practice, not just explain it.&lt;/p&gt;

&lt;p&gt;If you want to contribute, learn from the source, or just poke around — the repo is open and the community is genuinely kind.&lt;/p&gt;

&lt;p&gt;Drop questions in the comments — through the security setup or the CoC approach.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/acubura" rel="noopener noreferrer"&gt;https://github.com/acubura&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  python #opensource #security #webdev #beginners
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj9oa9bxpov517nj3rzx3.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj9oa9bxpov517nj3rzx3.jpg" alt=" " width="800" height="566"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>python</category>
      <category>security</category>
      <category>showdev</category>
    </item>
    <item>
      <title>To everyone who checked out Python Teaching Assistant — thank you, genuinely 🙏

Massive shoutout to each one of you. The next update is going to be better, and I'm making sure of it.

More coming soon 🐍

#Python #OpenSource #BuildInPublic</title>
      <dc:creator>M. Qasim. Farooqi ⛏️</dc:creator>
      <pubDate>Sat, 18 Apr 2026 06:03:55 +0000</pubDate>
      <link>https://dev.to/acubura/to-everyone-who-checked-out-python-teaching-assistant-thank-you-genuinely-massive-shoutout-41oo</link>
      <guid>https://dev.to/acubura/to-everyone-who-checked-out-python-teaching-assistant-thank-you-genuinely-massive-shoutout-41oo</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/acubura/python-teaching-assistant-v103-preview-is-live-437k" class="crayons-story__hidden-navigation-link"&gt;Python Teaching Assistant v1.0.3 Preview is live!&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/acubura" class="crayons-avatar  crayons-avatar--l  "&gt;
            &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3864425%2F05f5860c-b1fd-474f-afb0-3233f2fe1890.jpg" alt="acubura profile" class="crayons-avatar__image" width="96" height="96"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/acubura" class="crayons-story__secondary fw-medium m:hidden"&gt;
              M. Qasim. Farooqi ⛏️
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                M. Qasim. Farooqi ⛏️
                
              
              &lt;div id="story-author-preview-content-3504378" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/acubura" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&gt;
                        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3864425%2F05f5860c-b1fd-474f-afb0-3233f2fe1890.jpg" class="crayons-avatar__image" alt="" width="96" height="96"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;M. Qasim. Farooqi ⛏️&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/acubura/python-teaching-assistant-v103-preview-is-live-437k" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Apr 15&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/acubura/python-teaching-assistant-v103-preview-is-live-437k" id="article-link-3504378"&gt;
          Python Teaching Assistant v1.0.3 Preview is live!
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag crayons-tag--filled  " href="/t/showdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;showdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/beginners"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;beginners&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/opensource"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;opensource&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/python"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;python&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
            &lt;a href="https://dev.to/acubura/python-teaching-assistant-v103-preview-is-live-437k#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              Comments


              &lt;span class="hidden s:inline"&gt;Add Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            2 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
    </item>
  </channel>
</rss>
