<?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: Rino Di Paola</title>
    <description>The latest articles on DEV Community by Rino Di Paola (@ironrinox).</description>
    <link>https://dev.to/ironrinox</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%2F3138969%2F3155b217-88a1-4663-8731-376ca1a0cf90.jpg</url>
      <title>DEV Community: Rino Di Paola</title>
      <link>https://dev.to/ironrinox</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ironrinox"/>
    <language>en</language>
    <item>
      <title>Exploring Git by Building My Own Minimal Version Control System</title>
      <dc:creator>Rino Di Paola</dc:creator>
      <pubDate>Mon, 17 Nov 2025 19:10:06 +0000</pubDate>
      <link>https://dev.to/ironrinox/exploring-git-by-building-my-own-minimal-version-control-system-5591</link>
      <guid>https://dev.to/ironrinox/exploring-git-by-building-my-own-minimal-version-control-system-5591</guid>
      <description>&lt;p&gt;I’ve used Git every day for years, but I realized I never really knew what happens behind the scenes. How does Git track changes? What does a commit actually store? How do branches and merges work internally?&lt;/p&gt;

&lt;p&gt;To answer these questions, I decided to build my own minimal Git clone from scratch — a small, hands-on project I call GitLite.&lt;/p&gt;

&lt;p&gt;Instead of just reading about Git’s architecture, I wanted to experience it: implement the core mechanics myself, experiment with commits, branches, merges, and see exactly how Git organizes its data.&lt;/p&gt;

&lt;p&gt;GitLite supports a simplified Git workflow:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Staging files in a basic index&lt;/li&gt;
&lt;li&gt;Creating commits that capture snapshots and history&lt;/li&gt;
&lt;li&gt;Managing branches as simple pointers to commits&lt;/li&gt;
&lt;li&gt;Switching between branches&lt;/li&gt;
&lt;li&gt;Performing fast-forward merges&lt;/li&gt;
&lt;li&gt;Inspecting commit history and repository status&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The project is educational, not meant for real-world use. But building it helped me understand Git in a concrete, practical way — far beyond what tutorials or documentation can show.&lt;/p&gt;

&lt;p&gt;I also documented every step, so anyone interested can follow along and try it themselves.&lt;/p&gt;

&lt;p&gt;🧩 GitLite repository and documentation:&lt;br&gt;
&lt;a href="https://github.com/ironrinox/git-lite" rel="noopener noreferrer"&gt;https://github.com/ironrinox/git-lite&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you’ve ever wondered how Git really works, this project is a hands-on way to explore it.&lt;/p&gt;

</description>
      <category>git</category>
      <category>learning</category>
      <category>computerscience</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>How I Built a Mini C Compiler to Understand How Compilers Work</title>
      <dc:creator>Rino Di Paola</dc:creator>
      <pubDate>Mon, 13 Oct 2025 20:40:50 +0000</pubDate>
      <link>https://dev.to/ironrinox/how-i-built-a-mini-c-compiler-to-understand-how-compilers-work-1jb7</link>
      <guid>https://dev.to/ironrinox/how-i-built-a-mini-c-compiler-to-understand-how-compilers-work-1jb7</guid>
      <description>&lt;p&gt;I’ve always been fascinated by how programming languages are transformed into executable code.&lt;br&gt;&lt;br&gt;
As a software engineer, I use compilers every day — but I realized I had never really understood what happens behind the scenes.&lt;/p&gt;

&lt;p&gt;To change that, I decided to build a &lt;strong&gt;Mini C Compiler&lt;/strong&gt; from scratch, focusing on learning rather than performance or completeness.&lt;br&gt;&lt;br&gt;
The goal was simple: understand how each stage of a compiler works — from lexical analysis to parsing and interpreting — and document everything clearly.&lt;/p&gt;

&lt;p&gt;The project supports a basic subset of the C language and runs through an &lt;strong&gt;interpreter&lt;/strong&gt; to execute the code.&lt;br&gt;&lt;br&gt;
While it’s far from a production-grade compiler, it gave me a much clearer picture of how real compilers like GCC or Clang are structured internally.&lt;/p&gt;

&lt;p&gt;I tried to make the documentation as clear as possible so that anyone else interested in learning these concepts can follow the same path I did.&lt;/p&gt;

&lt;p&gt;🧩 &lt;strong&gt;Repository and documentation:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://github.com/ironrinox/mini-c-compiler" rel="noopener noreferrer"&gt;https://github.com/ironrinox/mini-c-compiler&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you’re a beginner or a curious developer looking to understand compilers in a more practical way, I hope this project can be a useful reference.&lt;/p&gt;

</description>
      <category>c</category>
      <category>learning</category>
      <category>computerscience</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
