<?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: ally heev</title>
    <description>The latest articles on Forem by ally heev (@ally_heev_a2677bbdadf870a).</description>
    <link>https://forem.com/ally_heev_a2677bbdadf870a</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%2F3652322%2Fe0150b6c-79d6-4ddb-a055-ee6ea5ee7021.png</url>
      <title>Forem: ally heev</title>
      <link>https://forem.com/ally_heev_a2677bbdadf870a</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/ally_heev_a2677bbdadf870a"/>
    <language>en</language>
    <item>
      <title>kuzu is dead. Now what?</title>
      <dc:creator>ally heev</dc:creator>
      <pubDate>Mon, 02 Mar 2026 03:47:47 +0000</pubDate>
      <link>https://forem.com/ally_heev_a2677bbdadf870a/kuzu-is-dead-now-what-2jhg</link>
      <guid>https://forem.com/ally_heev_a2677bbdadf870a/kuzu-is-dead-now-what-2jhg</guid>
      <description>&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
    &lt;div class="c-embed__content"&gt;
        &lt;div class="c-embed__cover"&gt;
          &lt;a href="https://blog.ladybugdb.com/post/ladybug-spreading-its-wings/" class="c-link align-middle" rel="noopener noreferrer"&gt;
            &lt;img alt="" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fblog.ladybugdb.com%2Fimg%2Fladybug-so-far%2Fhero.png" height="640" class="m-0" width="640"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="c-embed__body"&gt;
        &lt;h2 class="fs-xl lh-tight"&gt;
          &lt;a href="https://blog.ladybugdb.com/post/ladybug-spreading-its-wings/" rel="noopener noreferrer" class="c-link"&gt;
            Ladybug: Spreading its Wings
          &lt;/a&gt;
        &lt;/h2&gt;
          &lt;p class="truncate-at-3"&gt;
            Kuzu was archived in October 2025. Explore the major new features in LadybugDB 0.15 and find out why you should migrate today.
          &lt;/p&gt;
        &lt;div class="color-secondary fs-s flex items-center"&gt;
            &lt;img alt="favicon" class="c-embed__favicon m-0 mr-2 radius-0" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fblog.ladybugdb.com%2Ffavicon.ico" width="64" height="64"&gt;
          blog.ladybugdb.com
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;


</description>
    </item>
    <item>
      <title>My journey to Linux Kernel Mentorship Fall 2025</title>
      <dc:creator>ally heev</dc:creator>
      <pubDate>Tue, 09 Dec 2025 08:09:02 +0000</pubDate>
      <link>https://forem.com/ally_heev_a2677bbdadf870a/my-journey-to-linux-kernel-mentorship-fall-2025-lp9</link>
      <guid>https://forem.com/ally_heev_a2677bbdadf870a/my-journey-to-linux-kernel-mentorship-fall-2025-lp9</guid>
      <description>&lt;h3&gt;
  
  
  💡 Chapter 1: Origin Story
&lt;/h3&gt;

&lt;p&gt;My path to the Linux Kernel started, fittingly, with breaking things. As a kid, I enjoyed tinkering with Windows—treating CCleaner like a religious ritual and constantly optimizing drivers. However, the true turning point came when I attempted to flash a custom ROM on my first Android phone.&lt;/p&gt;

&lt;p&gt;I successfully executed a &lt;strong&gt;soft-brick&lt;/strong&gt; within a month.&lt;/p&gt;

&lt;p&gt;Stuck in my college hostel with a shiny, non-functional paperweight, I spent days debugging on XDA forums. That desperate effort to revive my phone is how I first encountered &lt;strong&gt;Linux&lt;/strong&gt;. When I finally cracked the solution, the feeling of regaining control over the hardware was immense. I was hooked on the power of the OS layer.&lt;/p&gt;

&lt;p&gt;Later, GSoC introduced me to the ownership and intensity of Open Source development. It was then I realized the Linux Kernel—the core of most servers and mobile devices—was also open source. My long-term goal became clear: &lt;strong&gt;to contribute to the Linux Kernel and earn my name in the source tree.&lt;/strong&gt; This LFX mentorship was the first serious step toward that ambition.&lt;/p&gt;




&lt;h3&gt;
  
  
  🎒 Chapter 2: The Kernel Development Toolkit
&lt;/h3&gt;

&lt;p&gt;Kernel development requires rigorous discipline and specialized tools. It’s a vast domain, so having a good, consolidated set of resources is critical.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Crucial Advice:&lt;/strong&gt; I highly recommend going through &lt;strong&gt;2 or 3 blogs&lt;/strong&gt; rather than fixating on just one. Everyone has a slightly different journey, and you might find a workflow or approach that suits you better in another write-up.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h4&gt;
  
  
  ⭐ The Ultimate Resource Index
&lt;/h4&gt;

&lt;p&gt;I want to specifically highlight the &lt;strong&gt;Kernel Pocket Index&lt;/strong&gt;. This resource is an exhaustive aggregation of everything related to Linux kernel development and should be supported by maintainers. I feel it is one of the best places to start.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://hackmd.io/@0xff07/kernel-pocket-index#/" rel="noopener noreferrer"&gt;https://hackmd.io/@0xff07/kernel-pocket-index#/&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  📚 Learning and Documentation
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Foundation:&lt;/strong&gt; The &lt;a href="https://trainingportal.linuxfoundation.org/learn/course/a-beginners-guide-to-linux-kernel-development-lfd103" rel="noopener noreferrer"&gt;LFD103 course&lt;/a&gt; is a mandatory and excellent starting point. Go through it thoroughly.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Context:&lt;/strong&gt; Review previous mentee &lt;a href="https://wiki.linuxfoundation.org/lkmp/lkmp_mentee_blogs" rel="noopener noreferrer"&gt;blogs&lt;/a&gt; and mentorship session recordings on YouTube.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Subsystem Focus:&lt;/strong&gt; The kernel is huge. Start by studying specific subsystems you plan to contribute to. Use the &lt;a href="https://makelinux.github.io/kernel/map/" rel="noopener noreferrer"&gt;Kernel Map&lt;/a&gt; for reference.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Books:&lt;/strong&gt; The list &lt;a href="https://hackerbikepacker.com/linux-books" rel="noopener noreferrer"&gt;here&lt;/a&gt; is useful. I suggest using &lt;em&gt;The Linux Programming Interface&lt;/em&gt; as a reference for specific concepts, as reading it cover-to-cover is incredibly exhaustive and often repetitive.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  ⚙️ Essential Kernel Tooling
&lt;/h4&gt;

&lt;p&gt;The kernel community relies on the email-based patch submission workflow. These tools streamline that process:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Tool/Resource&lt;/th&gt;
&lt;th&gt;Purpose and Value&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Git &amp;amp; Advanced Features&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;If you need advanced Git features, check out the &lt;a href="https://www.youtube.com/watch?v=aolI_Rz0ZqY" rel="noopener noreferrer"&gt;So You Think You Know Git&lt;/a&gt; series.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;b4&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;Highly recommended.&lt;/strong&gt; This tool automates &lt;code&gt;format-patch&lt;/code&gt;, mailing list submission, and &lt;code&gt;checkpatch&lt;/code&gt;, significantly reducing patch submission time. (&lt;a href="https://www.marcusfolkesson.se/blog/use-b4-for-kernel-contributions/" rel="noopener noreferrer"&gt;How to use b4&lt;/a&gt;).&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;git send-email&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;The core mailing list function. &lt;a href="https://git-send-email.io/" rel="noopener noreferrer"&gt;Setup instructions&lt;/a&gt;.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;kworkflow&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;An end-to-end workflow tool for building, testing, and patching. (&lt;a href="https://kworkflow.org/tutorials/setup.html" rel="noopener noreferrer"&gt;Tutorial here&lt;/a&gt;).&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Krepair&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Generates the minimal &lt;code&gt;.config&lt;/code&gt; needed to test your patches, saving compilation time. (&lt;a href="https://www.youtube.com/watch?v=mOusQXEHQvY" rel="noopener noreferrer"&gt;Video&lt;/a&gt;).&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;virtme-ng&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;A wrapper around QEMU for quickly testing your patches in an emulated environment. (&lt;a href="https://blog.marliere.net/posts/9/" rel="noopener noreferrer"&gt;Blog post&lt;/a&gt;).&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;cscope &amp;amp; kbuild&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;For code navigation and understanding the build system. (&lt;a href="https://www.youtube.com/watch?v=zBXGZyuTy4Q" rel="noopener noreferrer"&gt;cscope video&lt;/a&gt;, &lt;a href="https://www.youtube.com/watch?v=qzLXmIOuiCs" rel="noopener noreferrer"&gt;kbuild video&lt;/a&gt;).&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h4&gt;
  
  
  🐛 Debugging and Testing
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Bug Reporting:&lt;/strong&gt; Learn to use &lt;a href="https://hackerbikepacker.com/syzbot" rel="noopener noreferrer"&gt;syzbot&lt;/a&gt; reports for finding and reproducing bugs. &lt;a href="https://www.youtube.com/watch?v=KKeucpfAuuA" rel="noopener noreferrer"&gt;git bisect&lt;/a&gt; for bisecting bug to a commit(sysbot does this for you)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Analysis:&lt;/strong&gt; Static and dynamic analysis tools are vital (&lt;a href="https://www.linuxfoundation.org/webinars/static-analysis-tools" rel="noopener noreferrer"&gt;Static webinar&lt;/a&gt;, &lt;a href="https://www.linuxfoundation.org/webinars/dynamic-program-analysis-for-fun-and-profit" rel="noopener noreferrer"&gt;Dynamic webinar&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Kernel Tests:&lt;/strong&gt; Get familiar with running kernel tests (&lt;a href="https://www.youtube.com/watch?v=mpO_iDEMqWQ" rel="noopener noreferrer"&gt;video 1&lt;/a&gt;, &lt;a href="https://www.youtube.com/watch?v=LQUGxewY1GI" rel="noopener noreferrer"&gt;video 2&lt;/a&gt;, &lt;a href="https://www.youtube.com/watch?v=i0xrfn5PSsM" rel="noopener noreferrer"&gt;video 3&lt;/a&gt;).&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  ➕ Additional Useful Information
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://sourceware.org/systemtap/" rel="noopener noreferrer"&gt;Systemtap&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://hackerbikepacker.com/kernel-build-tricks" rel="noopener noreferrer"&gt;Kernel Build Tricks&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Tracing: &lt;a href="https://www.kernel.org/doc/html/latest/trace/tracepoints.html" rel="noopener noreferrer"&gt;tracepoints&lt;/a&gt;, and &lt;a href="https://www.kernel.org/doc/html/latest/trace/events.html" rel="noopener noreferrer"&gt;events&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  🛣️ Chapter 3: The Mentorship Journey and Lessons
&lt;/h3&gt;

&lt;p&gt;I was accepted on Sept 6th after completing 12 informative prerequisites. They were an excellent crash course in kernel development workflow.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;NOTE:&lt;/strong&gt; If you are applying to full-time, be realistic about the time commitment. You need 30-40 hours a week. Juggling a hectic day job and mentorship is challenging.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;My initial, optimistic plan was to complete all work before the holiday season (Nov-Dec), when maintainer review speeds drop off. Reality quickly set in; I was occupied until mid-October and focused primarily on tools and bug reproduction initially.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TIP:&lt;/strong&gt; Get your patches reviewed early. The process is lengthy, and reviewers are busy. Early submission means early feedback and a better chance of merging on time. Also, constantly check mailing lists for the &lt;strong&gt;latest&lt;/strong&gt; &lt;a href="https://lore.kernel.org/all/?q=TODO" rel="noopener noreferrer"&gt;(K)TODOs&lt;/a&gt;, as older ones might not be valid now.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h4&gt;
  
  
  The First Patch: Overcoming Intimidation
&lt;/h4&gt;

&lt;p&gt;I initially set a goal to work on a minor bug just to test the waters and get familiar with the mailing list review process. I picked a documentation &lt;a href="https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=d0ef999061213a45188bb03d2b185158bfa22909" rel="noopener noreferrer"&gt;bug&lt;/a&gt; (a broken link), and it successfully went through with minimal comments on formatting. The initial stress of patch formatting and sending was high, but it quickly became routine.&lt;/p&gt;

&lt;h4&gt;
  
  
  The Core Task: Checkpatch and Consensus
&lt;/h4&gt;

&lt;p&gt;After realizing I was often beaten to simpler bugs, I prioritized a checkpatch &lt;a href="https://lore.kernel.org/all/8a4c0b43-cf63-400d-b33d-d9c447b7e0b9@suswa.mountain/" rel="noopener noreferrer"&gt;TODO&lt;/a&gt;. The goal was to introduce a check for uninitialized variables using the &lt;code&gt;__free&lt;/code&gt; attribute, which prevents undefined behavior when memory is freed upon scope exit.&lt;/p&gt;

&lt;p&gt;The task required me to learn Perl quickly, which was a struggle. When I finally sent the patch, it involved extensive discussion and multiple reviewers. I even witnessed &lt;strong&gt;disagreements between maintainers&lt;/strong&gt; on the correct technical implementation. This wasn't a roadblock, but a vital lesson: kernel development is a deeply collaborative, consensus-driven engineering effort. I had to go through several versions, and even temporary reverts, for what seemed like a straightforward fix.&lt;/p&gt;

&lt;p&gt;By the first week of December, the main patch, along with supplementary patches fixing existing instances, was successfully merged into &lt;code&gt;linux-next&lt;/code&gt;.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;NOTE:&lt;/strong&gt; Using AI for code generation is strictly prohibited and can lead to dismissal from the Mentorship. Always ask your mentors before doing so.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Despite having an open-source background, this experience was uniquely challenging and motivating. It solidified my confidence in contributing to massive codebases.&lt;/p&gt;

&lt;h3&gt;
  
  
  🎯 Chapter 4: Looking Ahead
&lt;/h3&gt;

&lt;p&gt;I am currently working on filesystems TODOs and delving into &lt;em&gt;The Linux Programming Interface&lt;/em&gt;—because once you start going deep, it's hard to stop.&lt;/p&gt;

&lt;p&gt;My eventual ambition is to become a maintainer for one or two subsystems (preferably &lt;em&gt;fs&lt;/em&gt;) in the Linux Kernel.&lt;/p&gt;




&lt;h3&gt;
  
  
  My Contributions
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Commits:&lt;/strong&gt; &lt;a href="https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/log/?qt=author&amp;amp;q=allyheev%40gmail.com" rel="noopener noreferrer"&gt;https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/log/?qt=author&amp;amp;q=allyheev%40gmail.com&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Lore (Mailing List):&lt;/strong&gt; &lt;a href="https://lore.kernel.org/all/?q=f%3Aallyheev%40gmail.com" rel="noopener noreferrer"&gt;https://lore.kernel.org/all/?q=f%3Aallyheev%40gmail.com&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Kmax:&lt;/strong&gt; &lt;a href="https://github.com/paulgazz/kmax/pull/301" rel="noopener noreferrer"&gt;https://github.com/paulgazz/kmax/pull/301&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>devjournal</category>
      <category>learning</category>
      <category>career</category>
      <category>linux</category>
    </item>
  </channel>
</rss>
