<?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: Md. Mahmudul Hasan Mabud</title>
    <description>The latest articles on DEV Community by Md. Mahmudul Hasan Mabud (@mahmudul626).</description>
    <link>https://dev.to/mahmudul626</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3750662%2Ffd538a05-fb47-40d8-93f3-2c4455538add.jpg</url>
      <title>DEV Community: Md. Mahmudul Hasan Mabud</title>
      <link>https://dev.to/mahmudul626</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/mahmudul626"/>
    <language>en</language>
    <item>
      <title>An open-source contribution story!</title>
      <dc:creator>Md. Mahmudul Hasan Mabud</dc:creator>
      <pubDate>Tue, 22 Sep 2026 16:19:47 +0000</pubDate>
      <link>https://dev.to/mahmudul626/a-open-source-contribution-story-5bm5</link>
      <guid>https://dev.to/mahmudul626/a-open-source-contribution-story-5bm5</guid>
      <description>&lt;p&gt;Hello everybody, I'm writing today to share my Tuesday's update. I dedicate my Tuesdays to contributing to open-source projects. So I'm searching project for contribute as usual and found a interesting project called &lt;a href="https://github.com/VinayakGhai/TinyFS-UNO" rel="noopener noreferrer"&gt;TinyFS-UNO&lt;/a&gt;, &lt;code&gt;A crash-consistent, wear-aware, integrity-checked log-structured miniature filesystem for the Arduino Uno (ATmega328P) internal 1 KB EEPROM.&lt;/code&gt; Then I'm exploring it to understand, I clone it to my local machine and try to compile it. But&lt;br&gt;
when I'm running &lt;code&gt;make run&lt;/code&gt; inside the &lt;code&gt;TinyFS-UNO/tests&lt;/code&gt; directory, the build fails during the linking stage due to missing function references.&lt;/p&gt;
&lt;h3&gt;
  
  
  ERROR
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;gcc &lt;span class="nt"&gt;-Wall&lt;/span&gt; &lt;span class="nt"&gt;-Wextra&lt;/span&gt; &lt;span class="nt"&gt;-std&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;c99 &lt;span class="nt"&gt;-g&lt;/span&gt; &lt;span class="nt"&gt;-I&lt;/span&gt;../src &lt;span class="nt"&gt;-c&lt;/span&gt; ../src/tinyfs_eeprom_mock.c &lt;span class="nt"&gt;-o&lt;/span&gt; ../src/tinyfs_eeprom_mock.o
gcc &lt;span class="nt"&gt;-Wall&lt;/span&gt; &lt;span class="nt"&gt;-Wextra&lt;/span&gt; &lt;span class="nt"&gt;-std&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;c99 &lt;span class="nt"&gt;-g&lt;/span&gt; &lt;span class="nt"&gt;-I&lt;/span&gt;../src &lt;span class="nt"&gt;-c&lt;/span&gt; ../src/tinyfs_storage.c &lt;span class="nt"&gt;-o&lt;/span&gt; ../src/tinyfs_storage.o
gcc &lt;span class="nt"&gt;-Wall&lt;/span&gt; &lt;span class="nt"&gt;-Wextra&lt;/span&gt; &lt;span class="nt"&gt;-std&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;c99 &lt;span class="nt"&gt;-g&lt;/span&gt; &lt;span class="nt"&gt;-I&lt;/span&gt;../src &lt;span class="nt"&gt;-c&lt;/span&gt; ../src/tinyfs_crc.c &lt;span class="nt"&gt;-o&lt;/span&gt; ../src/tinyfs_crc.o
gcc &lt;span class="nt"&gt;-Wall&lt;/span&gt; &lt;span class="nt"&gt;-Wextra&lt;/span&gt; &lt;span class="nt"&gt;-std&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;c99 &lt;span class="nt"&gt;-g&lt;/span&gt; &lt;span class="nt"&gt;-I&lt;/span&gt;../src &lt;span class="nt"&gt;-c&lt;/span&gt; ../src/tinyfs_record.c &lt;span class="nt"&gt;-o&lt;/span&gt; ../src/tinyfs_record.o
gcc &lt;span class="nt"&gt;-Wall&lt;/span&gt; &lt;span class="nt"&gt;-Wextra&lt;/span&gt; &lt;span class="nt"&gt;-std&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;c99 &lt;span class="nt"&gt;-g&lt;/span&gt; &lt;span class="nt"&gt;-I&lt;/span&gt;../src &lt;span class="nt"&gt;-c&lt;/span&gt; ../src/tinyfs_metadata.c &lt;span class="nt"&gt;-o&lt;/span&gt; ../src/tinyfs_metadata.o
gcc &lt;span class="nt"&gt;-Wall&lt;/span&gt; &lt;span class="nt"&gt;-Wextra&lt;/span&gt; &lt;span class="nt"&gt;-std&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;c99 &lt;span class="nt"&gt;-g&lt;/span&gt; &lt;span class="nt"&gt;-I&lt;/span&gt;../src &lt;span class="nt"&gt;-c&lt;/span&gt; ../src/tinyfs_gc.c &lt;span class="nt"&gt;-o&lt;/span&gt; ../src/tinyfs_gc.o
gcc &lt;span class="nt"&gt;-Wall&lt;/span&gt; &lt;span class="nt"&gt;-Wextra&lt;/span&gt; &lt;span class="nt"&gt;-std&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;c99 &lt;span class="nt"&gt;-g&lt;/span&gt; &lt;span class="nt"&gt;-I&lt;/span&gt;../src &lt;span class="nt"&gt;-c&lt;/span&gt; ../src/tinyfs_cli.c &lt;span class="nt"&gt;-o&lt;/span&gt; ../src/tinyfs_cli.o
gcc &lt;span class="nt"&gt;-Wall&lt;/span&gt; &lt;span class="nt"&gt;-Wextra&lt;/span&gt; &lt;span class="nt"&gt;-std&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;c99 &lt;span class="nt"&gt;-g&lt;/span&gt; &lt;span class="nt"&gt;-I&lt;/span&gt;../src &lt;span class="nt"&gt;-c&lt;/span&gt; ../src/tinyfs.c &lt;span class="nt"&gt;-o&lt;/span&gt; ../src/tinyfs.o

../src/tinyfs.c: In &lt;span class="k"&gt;function&lt;/span&gt; ‘tfs_rename’:
../src/tinyfs.c:478:22: warning: implicit declaration of &lt;span class="k"&gt;function&lt;/span&gt; ‘tfs_read_file’&lt;span class="p"&gt;;&lt;/span&gt; did you mean ‘tfs_read’? &lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="nt"&gt;-Wimplicit-function-declaration&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;
  478 |     int bytes_read &lt;span class="o"&gt;=&lt;/span&gt; tfs_read_file&lt;span class="o"&gt;(&lt;/span&gt;old_filename, buffer, sizeof&lt;span class="o"&gt;(&lt;/span&gt;buffer&lt;span class="o"&gt;))&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
      |                      ^~~~~~~~~~~~~
      |                      tfs_read

../src/tinyfs.c:481:21: warning: implicit declaration of &lt;span class="k"&gt;function&lt;/span&gt; ‘tfs_write_file’&lt;span class="p"&gt;;&lt;/span&gt; did you mean ‘tfs_write’? &lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="nt"&gt;-Wimplicit-function-declaration&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;
  481 |     int write_res &lt;span class="o"&gt;=&lt;/span&gt; tfs_write_file&lt;span class="o"&gt;(&lt;/span&gt;new_filename, buffer, bytes_read&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
      |                     ^~~~~~~~~~~~~~
      |                     tfs_write

../src/tinyfs.c:484:22: warning: implicit declaration of &lt;span class="k"&gt;function&lt;/span&gt; ‘tfs_delete_file’&lt;span class="p"&gt;;&lt;/span&gt; did you mean ‘tfs_delete’? &lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="nt"&gt;-Wimplicit-function-declaration&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;
  484 |     int delete_res &lt;span class="o"&gt;=&lt;/span&gt; tfs_delete_file&lt;span class="o"&gt;(&lt;/span&gt;old_filename&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
      |                      ^~~~~~~~~~~~~~~
      |                      tfs_delete

gcc &lt;span class="nt"&gt;-Wall&lt;/span&gt; &lt;span class="nt"&gt;-Wextra&lt;/span&gt; &lt;span class="nt"&gt;-std&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;c99 &lt;span class="nt"&gt;-g&lt;/span&gt; &lt;span class="nt"&gt;-I&lt;/span&gt;../src &lt;span class="nt"&gt;-c&lt;/span&gt; test_tinyfs.c &lt;span class="nt"&gt;-o&lt;/span&gt; test_tinyfs.o
gcc &lt;span class="nt"&gt;-Wall&lt;/span&gt; &lt;span class="nt"&gt;-Wextra&lt;/span&gt; &lt;span class="nt"&gt;-std&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;c99 &lt;span class="nt"&gt;-g&lt;/span&gt; &lt;span class="nt"&gt;-I&lt;/span&gt;../src &lt;span class="nt"&gt;-o&lt;/span&gt; test_tinyfs ../src/tinyfs_eeprom_mock.o ../src/tinyfs_storage.o ../src/tinyfs_crc.o ../src/tinyfs_record.o ../src/tinyfs_metadata.o ../src/tinyfs_gc.o ../src/tinyfs_cli.o ../src/tinyfs.o test_tinyfs.o

/usr/bin/ld: ../src/tinyfs.o: &lt;span class="k"&gt;in function&lt;/span&gt; &lt;span class="sb"&gt;`&lt;/span&gt;tfs_rename&lt;span class="s1"&gt;':
/home/mahmudul/TinyFS-UNO/tests/../src/tinyfs.c:478: undefined reference to `tfs_read_file'&lt;/span&gt;
/usr/bin/ld: /home/mahmudul/TinyFS-UNO/tests/../src/tinyfs.c:481: undefined reference to &lt;span class="sb"&gt;`&lt;/span&gt;tfs_write_file&lt;span class="s1"&gt;'
/usr/bin/ld: /home/mahmudul/TinyFS-UNO/tests/../src/tinyfs.c:484: undefined reference to `tfs_delete_file'&lt;/span&gt;
collect2: error: ld returned 1 &lt;span class="nb"&gt;exit &lt;/span&gt;status
make: &lt;span class="k"&gt;***&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;Makefile:12: test_tinyfs] Error 1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;I read this message carefully and identify what happening here. Let's discuss in details.&lt;/p&gt;
&lt;h3&gt;
  
  
  PROBLEM
&lt;/h3&gt;

&lt;p&gt;Inside the &lt;code&gt;tfs_rename&lt;/code&gt; function in the &lt;code&gt;/src/tinyfs.c&lt;/code&gt; file, some undefined function are called like &lt;code&gt;tfs_read_file()&lt;/code&gt;, &lt;code&gt;tfs_write_file()&lt;/code&gt; and &lt;code&gt;tfs_delete_file()&lt;/code&gt;. Let's see some interesting thing about compiler, it's suggest me by giving message &lt;code&gt;did you mean ‘tfs_read’?&lt;/code&gt; and so on. Because in header file the function prototype are defined by &lt;code&gt;tfs_read()&lt;/code&gt;,&lt;code&gt;tfs_write()&lt;/code&gt;,&lt;code&gt;tfs_delete()&lt;/code&gt; and in source code also declared like that but in &lt;code&gt;tfs_rename()&lt;/code&gt; funtion called them including extra &lt;code&gt;_file&lt;/code&gt; so compiler do not find them and throw error.&lt;/p&gt;
&lt;h3&gt;
  
  
  WHAT I DID
&lt;/h3&gt;

&lt;p&gt;Simply I replace &lt;code&gt;tfs_read_file()&lt;/code&gt; to &lt;code&gt;tfs_read()&lt;/code&gt;, &lt;code&gt;tfs_write_file()&lt;/code&gt; to &lt;code&gt;tfs_write()&lt;/code&gt; and &lt;code&gt;tfs_delet_file()&lt;/code&gt; to &lt;code&gt;tfs_delete()&lt;/code&gt; in &lt;code&gt;tfs_rename()&lt;/code&gt; function of &lt;code&gt;tinyfs.c&lt;/code&gt; file. Then went to /tests by &lt;code&gt;cd../tests&lt;/code&gt; and again run &lt;code&gt;make run&lt;/code&gt; &lt;/p&gt;
&lt;h3&gt;
  
  
  ERROR AGAIN
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;gcc &lt;span class="nt"&gt;-Wall&lt;/span&gt; &lt;span class="nt"&gt;-Wextra&lt;/span&gt; &lt;span class="nt"&gt;-std&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;c99 &lt;span class="nt"&gt;-g&lt;/span&gt; &lt;span class="nt"&gt;-I&lt;/span&gt;../src &lt;span class="nt"&gt;-c&lt;/span&gt; ../src/tinyfs.c &lt;span class="nt"&gt;-o&lt;/span&gt; ../src/tinyfs.o
../src/tinyfs.c: In &lt;span class="k"&gt;function&lt;/span&gt; ‘tfs_rename’:
../src/tinyfs.c:478:22: error: too few arguments to &lt;span class="k"&gt;function&lt;/span&gt; ‘tfs_read’
  478 |     int bytes_read &lt;span class="o"&gt;=&lt;/span&gt; tfs_read&lt;span class="o"&gt;(&lt;/span&gt;old_filename, buffer, sizeof&lt;span class="o"&gt;(&lt;/span&gt;buffer&lt;span class="o"&gt;))&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
      |                      ^~~~~~~~
../src/tinyfs.c:214:5: note: declared here
  214 | int tfs_read&lt;span class="o"&gt;(&lt;/span&gt;const char &lt;span class="k"&gt;*&lt;/span&gt;filename, uint8_t &lt;span class="k"&gt;*&lt;/span&gt;buf, uint16_t len, uint16_t offset_bytes&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
      |     ^~~~~~~~
make: &lt;span class="k"&gt;***&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;Makefile:15: ../src/tinyfs.o] Error 1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h3&gt;
  
  
  WHAT HAPPENED
&lt;/h3&gt;

&lt;p&gt;The &lt;code&gt;tfs_read()&lt;/code&gt; function declared as 4 arguments function but in &lt;code&gt;tfs_rename()&lt;/code&gt; funtion just 3 argument passing to it.&lt;/p&gt;
&lt;h3&gt;
  
  
  SOLUTION
&lt;/h3&gt;

&lt;p&gt;Now it's require to understand what is doing this function actually. &lt;code&gt;tfs_rename&lt;/code&gt; function just open old file read from 0 index to &lt;code&gt;EOF&lt;/code&gt; and store buffer and open new file (user's given name) and save it buffer's data. and delete the old file. It's need to read file from zero index so send 0 as the offset_bytes.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight c"&gt;&lt;code&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;bytes_read&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tfs_read&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;old_filename&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;buffer&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;sizeof&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;buffer&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And now run again &lt;code&gt;make run&lt;/code&gt;, It's work!&lt;br&gt;
All tests are passed!&lt;/p&gt;

&lt;h2&gt;
  
  
  TOTAL CHANGES
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt; diff &lt;span class="nt"&gt;--git&lt;/span&gt; a/src/tinyfs.c b/src/tinyfs.c

index 9a4724b..0d65d08 100644

&lt;span class="nt"&gt;---&lt;/span&gt; a/src/tinyfs.c

+++ b/src/tinyfs.c

@@ &lt;span class="nt"&gt;-475&lt;/span&gt;,14 +475,14 @@ int tfs_rename&lt;span class="o"&gt;(&lt;/span&gt;const char &lt;span class="k"&gt;*&lt;/span&gt;old_filename, const char &lt;span class="k"&gt;*&lt;/span&gt;new_filename&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;

     &lt;span class="o"&gt;}&lt;/span&gt;



     uint8_t buffer[256]&lt;span class="p"&gt;;&lt;/span&gt;

-    int bytes_read &lt;span class="o"&gt;=&lt;/span&gt; tfs_read_file&lt;span class="o"&gt;(&lt;/span&gt;old_filename, buffer, sizeof&lt;span class="o"&gt;(&lt;/span&gt;buffer&lt;span class="o"&gt;))&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

+    int bytes_read &lt;span class="o"&gt;=&lt;/span&gt; tfs_read&lt;span class="o"&gt;(&lt;/span&gt;old_filename, buffer, sizeof&lt;span class="o"&gt;(&lt;/span&gt;buffer&lt;span class="o"&gt;)&lt;/span&gt;, 0&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

     &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;bytes_read &amp;lt; 0&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nt"&gt;-1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;



-    int write_res &lt;span class="o"&gt;=&lt;/span&gt; tfs_write_file&lt;span class="o"&gt;(&lt;/span&gt;new_filename, buffer, bytes_read&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

+    int write_res &lt;span class="o"&gt;=&lt;/span&gt; tfs_write&lt;span class="o"&gt;(&lt;/span&gt;new_filename, buffer, bytes_read&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

     &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;write_res &amp;lt; 0&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nt"&gt;-1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;



-    int delete_res &lt;span class="o"&gt;=&lt;/span&gt; tfs_delete_file&lt;span class="o"&gt;(&lt;/span&gt;old_filename&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

+    int delete_res &lt;span class="o"&gt;=&lt;/span&gt; tfs_delete&lt;span class="o"&gt;(&lt;/span&gt;old_filename&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

     &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;delete_res &amp;lt; 0&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nt"&gt;-1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;



     &lt;span class="k"&gt;return &lt;/span&gt;0&lt;span class="p"&gt;;&lt;/span&gt;

-&lt;span class="o"&gt;}&lt;/span&gt;

&lt;span class="se"&gt;\ &lt;/span&gt;No newline at end of file

+&lt;span class="o"&gt;}&lt;/span&gt; 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  PUSH AND CREATE PULL REQUEST
&lt;/h3&gt;

&lt;p&gt;I committed my changes in &lt;code&gt;fix/rename-api&lt;/code&gt; local branch and push it to my forked remote repo, went github and create a &lt;a href="https://github.com/VinayakGhai/TinyFS-UNO/pull/12" rel="noopener noreferrer"&gt;pull request&lt;/a&gt;.&lt;br&gt;
And with that today's mission I has completed.&lt;/p&gt;

&lt;p&gt;My github - &lt;a href="//github.com/mahmudul626"&gt;mahmudul626&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I want to know your story please share in the comment section.&lt;br&gt;
Happy wishes to you!&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>c</category>
    </item>
    <item>
      <title>Problem solving achievement!</title>
      <dc:creator>Md. Mahmudul Hasan Mabud</dc:creator>
      <pubDate>Wed, 02 Sep 2026 05:56:31 +0000</pubDate>
      <link>https://dev.to/mahmudul626/problem-solving-achievement-4f0l</link>
      <guid>https://dev.to/mahmudul626/problem-solving-achievement-4f0l</guid>
      <description>&lt;p&gt;Hello! Today I am writing this post because just a few minutes ago I earned HackerRank's golden badge in problem solving category. This journey started when I could only write "Hello world!" in C. Going from those basic lines to achieving 5 stars in HackerRank. That taught me how to think logically and also most important thing in CS which is DSA. Here I known first DSA is one of most required thing in CS. I am from electronics background so my field involves very low level system. I think this problem solving skill will help me a lot in my sector. One more thing that I want to share I solved every problem using C language! So yeah I am happy today for achieving this golden badge! happy learning.&lt;/p&gt;

&lt;p&gt;&lt;a href="//www.github.com/mahmudul626"&gt;Github&lt;/a&gt;, &lt;a href="//www.hackerrank.com/profile/mahmudul626"&gt;HackerRank&lt;/a&gt;&lt;/p&gt;

</description>
      <category>c</category>
      <category>challenge</category>
      <category>beginners</category>
    </item>
    <item>
      <title>syslens new update!</title>
      <dc:creator>Md. Mahmudul Hasan Mabud</dc:creator>
      <pubDate>Mon, 27 Apr 2026 13:24:55 +0000</pubDate>
      <link>https://dev.to/mahmudul626/syslens-new-update-5605</link>
      <guid>https://dev.to/mahmudul626/syslens-new-update-5605</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mahmudul626/leveling-up-syslens-adding-real-time-cpu-logic-and-hardware-health-to-my-linux-cli-monitor-11d4" class="crayons-story__hidden-navigation-link"&gt;Leveling Up SysLens: Adding Real-Time CPU Logic and Hardware Health to my Linux CLI Monitor&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="/mahmudul626" 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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3750662%2Ffd538a05-fb47-40d8-93f3-2c4455538add.jpg" alt="mahmudul626 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="/mahmudul626" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Md. Mahmudul Hasan Mabud
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Md. Mahmudul Hasan Mabud
                
                
              
              &lt;div id="story-author-preview-content-3557666" 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="/mahmudul626" 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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3750662%2Ffd538a05-fb47-40d8-93f3-2c4455538add.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;Md. Mahmudul Hasan Mabud&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/mahmudul626/leveling-up-syslens-adding-real-time-cpu-logic-and-hardware-health-to-my-linux-cli-monitor-11d4" 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/mahmudul626/leveling-up-syslens-adding-real-time-cpu-logic-and-hardware-health-to-my-linux-cli-monitor-11d4" id="article-link-3557666"&gt;
          Leveling Up SysLens: Adding Real-Time CPU Logic and Hardware Health to my Linux CLI Monitor
        &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/linux"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;linux&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/c"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;c&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&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/mahmudul626/leveling-up-syslens-adding-real-time-cpu-logic-and-hardware-health-to-my-linux-cli-monitor-11d4" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;1&lt;span class="hidden s:inline"&gt;&amp;nbsp;reaction&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/mahmudul626/leveling-up-syslens-adding-real-time-cpu-logic-and-hardware-health-to-my-linux-cli-monitor-11d4#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              1&lt;span class="hidden s:inline"&gt;&amp;nbsp;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;
            3 min read
          &lt;/small&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
    </item>
    <item>
      <title>[Boost]</title>
      <dc:creator>Md. Mahmudul Hasan Mabud</dc:creator>
      <pubDate>Mon, 09 Feb 2026 18:08:41 +0000</pubDate>
      <link>https://dev.to/mahmudul626/-362g</link>
      <guid>https://dev.to/mahmudul626/-362g</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mahmudul626/beyond-syntax-why-i-built-my-own-unix-like-shell-in-c-5903" class="crayons-story__hidden-navigation-link"&gt;Beyond Syntax: Why I Built My Own Unix-like Shell in C&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="/mahmudul626" 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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3750662%2Ffd538a05-fb47-40d8-93f3-2c4455538add.jpg" alt="mahmudul626 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="/mahmudul626" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Md. Mahmudul Hasan Mabud
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Md. Mahmudul Hasan Mabud
                
                
              
              &lt;div id="story-author-preview-content-3241640" 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="/mahmudul626" 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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3750662%2Ffd538a05-fb47-40d8-93f3-2c4455538add.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;Md. Mahmudul Hasan Mabud&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/mahmudul626/beyond-syntax-why-i-built-my-own-unix-like-shell-in-c-5903" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Feb 8&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/mahmudul626/beyond-syntax-why-i-built-my-own-unix-like-shell-in-c-5903" id="article-link-3241640"&gt;
          Beyond Syntax: Why I Built My Own Unix-like Shell in C
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/c"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;c&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/cli"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;cli&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/linux"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;linux&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/bash"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;bash&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/mahmudul626/beyond-syntax-why-i-built-my-own-unix-like-shell-in-c-5903" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;1&lt;span class="hidden s:inline"&gt;&amp;nbsp;reaction&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/mahmudul626/beyond-syntax-why-i-built-my-own-unix-like-shell-in-c-5903#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              &lt;span class="hidden s:inline"&gt;Add&amp;nbsp;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;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
      <category>c</category>
      <category>cli</category>
      <category>linux</category>
      <category>bash</category>
    </item>
  </channel>
</rss>
