<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Delean Mafra</title>
    <description>The latest articles on Forem by Delean Mafra (@deleanmafra).</description>
    <link>https://forem.com/deleanmafra</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%2F3586279%2F6c346172-5323-4f0b-b786-b4250c5364ea.png</url>
      <title>Forem: Delean Mafra</title>
      <link>https://forem.com/deleanmafra</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/deleanmafra"/>
    <language>en</language>
    <item>
      <title>🚀 Extension Project III: from spreadsheet chaos to a web app</title>
      <dc:creator>Delean Mafra</dc:creator>
      <pubDate>Sun, 04 Jan 2026 19:37:09 +0000</pubDate>
      <link>https://forem.com/deleanmafra/extension-project-iii-from-spreadsheet-chaos-to-a-web-app-3a1e</link>
      <guid>https://forem.com/deleanmafra/extension-project-iii-from-spreadsheet-chaos-to-a-web-app-3a1e</guid>
      <description>&lt;p&gt;So here’s the deal: this semester I jumped into a real-world challenge with a partner company. Their entire financial and inventory management was stuck in spreadsheets. Manual entries, repetitive calculations, errors everywhere, zero visibility for decision-making. Basically… a nightmare.&lt;/p&gt;

&lt;p&gt;And I thought: seriously, in 2025 we’re still doing this?&lt;br&gt;
Time to fix it.&lt;/p&gt;

&lt;p&gt;What I built&lt;br&gt;
A Python + Flask web app that merges finance and inventory in one place.&lt;br&gt;
No more copy-pasting numbers. Everything’s automated, reliable, and visualized in dashboards that actually make sense.&lt;/p&gt;

&lt;p&gt;Key features&lt;br&gt;
Simple interface for income and expense entries&lt;/p&gt;

&lt;p&gt;Customizable categories and payment methods&lt;/p&gt;

&lt;p&gt;Automatic integration: purchases → expenses, sales → income&lt;/p&gt;

&lt;p&gt;Dashboards with 5 core visualizations&lt;/p&gt;

&lt;p&gt;Lightweight JSON persistence + client-validated prototypes&lt;/p&gt;

&lt;p&gt;Real impact&lt;br&gt;
Hours saved from manual data entry&lt;/p&gt;

&lt;p&gt;Fewer errors, more trust in the numbers&lt;/p&gt;

&lt;p&gt;Instant visibility of cash flow and spending patterns&lt;/p&gt;

&lt;p&gt;Direct support for day-to-day decisions&lt;/p&gt;

&lt;p&gt;Tech stack&lt;br&gt;
Python, Flask, Jinja2, Bootstrap, Chart.js..&lt;br&gt;
Nothing fancy — just tools that work.&lt;/p&gt;

&lt;p&gt;📂 Repo: &lt;a href="https://github.com/Delean-Mafra/pex3" rel="noopener noreferrer"&gt;https://github.com/Delean-Mafra/pex3&lt;/a&gt;&lt;br&gt;
📄 Full report: &lt;a href="https://delean-mafra.github.io/pex3" rel="noopener noreferrer"&gt;https://delean-mafra.github.io/pex3&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🎯 The takeaway&lt;br&gt;
This wasn’t just about coding. It was about proving that tech can turn clunky processes into something agile and strategic.&lt;br&gt;
Spreadsheets are fine… until they’re not.&lt;/p&gt;

</description>
      <category>automation</category>
      <category>python</category>
      <category>showdev</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Codewars: the challenge platform that transforms practice into mastery for developers</title>
      <dc:creator>Delean Mafra</dc:creator>
      <pubDate>Sun, 14 Dec 2025 23:15:44 +0000</pubDate>
      <link>https://forem.com/deleanmafra/codewars-the-challenge-platform-that-transforms-practice-into-mastery-for-developers-51gi</link>
      <guid>https://forem.com/deleanmafra/codewars-the-challenge-platform-that-transforms-practice-into-mastery-for-developers-51gi</guid>
      <description>&lt;h1&gt;
  
  
  Why Use Codewars
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;Codewars&lt;/strong&gt; is a community-created challenge-based programming practice platform (kata) designed to help developers improve their skills through hands-on exercises, instant feedback, and solution review. The platform supports over 50 languages, allows training with automated browser tests, and encourages continuous improvement through difficulty levels and a progression system.&lt;/p&gt;

&lt;h2&gt;
  
  
  What it is and how it works
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Kata and Dojo&lt;/strong&gt;&lt;br&gt;
The exercises in Codewars are called &lt;em&gt;kata&lt;/em&gt;: small problems focusing on specific techniques (algorithms, data structures, string manipulation, etc.). When solving a kata, you receive immediate feedback through automated tests, can submit multiple approaches, and compare solutions from other users to learn alternatives and optimizations.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Levels and Progression&lt;/strong&gt;&lt;br&gt;
Each kata has a level (e.g., 8 kyu to 1 kyu) indicating complexity. Solving challenges earns experience points (XP) and improves your ranking and honor in the community, creating a cycle of motivation to tackle increasingly difficult problems.&lt;/p&gt;

&lt;h2&gt;
  
  
  Main Features
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Online editor with integrated tests&lt;/strong&gt;: write and run code directly in the browser; TDD tests validate your solution as you develop.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Multi-language support&lt;/strong&gt;: choose from dozens of languages ​​to practice or learn new syntaxes and paradigms.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Collections and paths&lt;/strong&gt;: sets of kata organized by theme or level (e.g., collections for beginners) that guide learning sequentially.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Community discussions and solutions&lt;/strong&gt;: after solving (or skipping) a kata, you can view and comment on solutions from other developers, which is excellent for learning alternative patterns and techniques.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Ranking, honor, and profile&lt;/strong&gt;: social metrics that show your progress, comparing you to other members and highlighting contributions and elegant solutions.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Community-based kata creation&lt;/strong&gt;: users can propose new challenges, keeping the platform updated and diverse.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Benefits for developers
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Practical and repetitive learning&lt;/strong&gt;: solving kata reinforces algorithmic thinking patterns and improves the speed of logical reasoning. Case studies and user reports show that regular practice accelerates the resolution of real-world problems.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Exposure to multiple approaches&lt;/strong&gt;: comparing solutions allows you to learn idiomatic techniques for each language and optimizations that don't appear in theoretical courses.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Preparation for technical interviews&lt;/strong&gt;: many kata simulate typical interview problems, making Codewars a useful tool for those seeking technical positions.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Community and informal mentoring&lt;/strong&gt;: comments, discussions, and reviews function as a peer-to-peer mentoring environment, useful for both beginners and experienced professionals.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How to get started and best practices
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Create an account and choose a language&lt;/strong&gt;. Start with one you already know to focus on logic, or choose a new one to learn through practice.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Start with low-level kata&lt;/strong&gt; and gradually advance; use collections to follow a structured path.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Read solutions from other users&lt;/strong&gt; after solving a kata to absorb patterns and more elegant alternatives.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Rewrite your solutions&lt;/strong&gt; applying learned improvements; repetition and refactoring consolidate learning.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Contribute by creating kata&lt;/strong&gt; when you are comfortable—this strengthens the community and challenges your ability to formulate clear problems.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Codewars is a practical and social tool for developing programming skills through short challenges, automatic feedback, and interaction with an active community. It is useful for both beginners and professionals who want to keep practicing, learn new languages, or prepare for technical interviews.&lt;/p&gt;

&lt;p&gt;Link: &lt;a href="http://www.codewars.com/r/DnrkrQ/" rel="noopener noreferrer"&gt;http://www.codewars.com/r/DnrkrQ/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>programming</category>
      <category>productivity</category>
      <category>devlive</category>
      <category>softwareengineering</category>
    </item>
    <item>
      <title>The Silent Productivity Killer in Your Coding Workflow (And How I Finally Fixed It)</title>
      <dc:creator>Delean Mafra</dc:creator>
      <pubDate>Fri, 12 Dec 2025 01:49:08 +0000</pubDate>
      <link>https://forem.com/deleanmafra/the-silent-productivity-killer-in-your-coding-workflow-and-how-i-finally-fixed-it-5fd3</link>
      <guid>https://forem.com/deleanmafra/the-silent-productivity-killer-in-your-coding-workflow-and-how-i-finally-fixed-it-5fd3</guid>
      <description>&lt;p&gt;Every developer has that one thing in their workflow that quietly drains hours without us noticing. For some people, it’s context switching. For others, it’s debugging rabbit holes.&lt;/p&gt;

&lt;p&gt;For me? It was something embarrassingly simple: re‑reading the same code over and over because I didn’t trust my own structure.&lt;/p&gt;

&lt;p&gt;I’d jump between files, scroll endlessly, rewrite functions that already existed, and constantly ask myself: “Wait… didn’t I solve this already?”&lt;/p&gt;

&lt;p&gt;Turns out, I wasn’t suffering from lack of skill, I was suffering from lack of architecture discipline.&lt;/p&gt;

&lt;p&gt;So I tried something new: a tiny rule that changed everything.&lt;/p&gt;

&lt;p&gt;✅ The Rule&lt;br&gt;
Before writing a single line of code, I force myself to answer one question:&lt;/p&gt;

&lt;p&gt;“Where does this logic live?”&lt;/p&gt;

&lt;p&gt;Not “how do I implement it”, not “what library should I use”, but simply:&lt;/p&gt;

&lt;p&gt;Where does this belong in the system?&lt;/p&gt;

&lt;p&gt;And suddenly:&lt;/p&gt;

&lt;p&gt;My files stopped growing into monsters&lt;/p&gt;

&lt;p&gt;My functions became smaller and more intentional&lt;/p&gt;

&lt;p&gt;My debugging time dropped dramatically&lt;/p&gt;

&lt;p&gt;My future self stopped hating me&lt;/p&gt;

&lt;p&gt;It’s wild how much clarity you gain when you treat architecture as a first step, not a cleanup phase.&lt;/p&gt;

&lt;p&gt;✅ The Result&lt;br&gt;
I write less code, but ship more features. I spend less time debugging, and more time thinking. And the best part: I finally trust my own codebase again.&lt;/p&gt;

&lt;p&gt;When I first started programming, I thought the challenge was just memorizing syntax and frameworks. I quickly realized the real challenge, and the real skill, was solving problems, not just writing code.&lt;/p&gt;

&lt;p&gt;Here’s how my perspective shifted over time:&lt;/p&gt;

&lt;p&gt;Error Messages Became Teachers&lt;br&gt;
Every runtime exception wasn’t a failure, it was a clue. Instead of getting frustrated I started asking: What exactly is the program trying to tell me? That changed everything.&lt;/p&gt;

&lt;p&gt;Thinking Before Typing Saved Time&lt;br&gt;
Writing code without planning is like building a house without a blueprint. Sketching the logic first, even in comments, reduced bugs and made refactors easier.&lt;/p&gt;

&lt;p&gt;Debugging Taught Patience and Precision&lt;br&gt;
Debugging isn’t about brute force. It’s about isolation, hypothesizing and verifying. This mindset helped me outside coding too — in databases and backend logic.&lt;/p&gt;

&lt;p&gt;Explanation Clarifies Understanding&lt;br&gt;
Writing comments, explaining code to others (or even myself), and blog posts helped me think clearer. Teaching is the best test of understanding.&lt;/p&gt;

&lt;p&gt;What I learned is simple:&lt;/p&gt;

&lt;p&gt;Programming isn’t about knowing everything, it’s about solving problems with logic, clarity and persistence.&lt;/p&gt;

&lt;p&gt;And that’s a skill you carry to every project, system, or language you touch.&lt;/p&gt;

&lt;p&gt;If you’ve been feeling that silent productivity drain, try asking yourself that one question before you start typing.&lt;/p&gt;

&lt;p&gt;Your future self will thank you — and your git history will look a lot less chaotic.&lt;/p&gt;

</description>
      <category>programming</category>
      <category>productivity</category>
      <category>devlive</category>
      <category>softwareengineering</category>
    </item>
  </channel>
</rss>
