<?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: Mahamudul Hasan</title>
    <description>The latest articles on DEV Community by Mahamudul Hasan (@mahamudul_hasan_e716e8fa1).</description>
    <link>https://dev.to/mahamudul_hasan_e716e8fa1</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%2F3208583%2F9337a998-3ac1-4f3b-abf3-60225ad7d9da.png</url>
      <title>DEV Community: Mahamudul Hasan</title>
      <link>https://dev.to/mahamudul_hasan_e716e8fa1</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/mahamudul_hasan_e716e8fa1"/>
    <language>en</language>
    <item>
      <title>My Two Cents: Reflections on 30 Days of Daily Coding</title>
      <dc:creator>Mahamudul Hasan</dc:creator>
      <pubDate>Mon, 26 May 2025 07:00:20 +0000</pubDate>
      <link>https://dev.to/mahamudul_hasan_e716e8fa1/my-two-cents-reflections-on-30-days-of-daily-coding-224e</link>
      <guid>https://dev.to/mahamudul_hasan_e716e8fa1/my-two-cents-reflections-on-30-days-of-daily-coding-224e</guid>
      <description>&lt;p&gt;&lt;strong&gt;On the 17th of April, 2025&lt;/strong&gt;, I made a decision that has, in many ways, redefined how I look at growth, commitment, and software development.&lt;/p&gt;

&lt;p&gt;I promised myself one thing: &lt;strong&gt;Code every single day for 365 days.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;No exceptions. No rest days. No room for excuses.&lt;/p&gt;

&lt;p&gt;It’s been more than 30 days since I made that promise. And I’ve kept it.&lt;/p&gt;

&lt;p&gt;This post is an attempt to capture everything I’ve done, built, experienced, and most importantly, learned so far. It’s not just a highlight reel; it’s a reflection — raw, honest, and completely me.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Beginning: Getting Warmed Up
&lt;/h2&gt;

&lt;p&gt;As of writing this article, I’m building &lt;strong&gt;Nebula&lt;/strong&gt; — my full-stack note-taking application. But the journey didn’t start with Nebula. That came later. At the start, I focused on smaller projects — simple ideas that I could build quickly to get back into the rhythm of writing code daily.&lt;/p&gt;

&lt;p&gt;The first couple of days were interesting. I built a &lt;strong&gt;random quote generator&lt;/strong&gt; and a basic &lt;strong&gt;clone of Coolors.co&lt;/strong&gt; — a color palette generator. These were built with plain HTML, CSS, and vanilla JavaScript. And while I did enjoy the simplicity, something felt missing. As I moved through these early projects, I found myself constantly thinking:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“I really wish I was using React and Tailwind.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That longing became more obvious when I started mimicking Tailwind classes manually in CSS. I was literally writing class names like &lt;code&gt;.flex-items-center&lt;/code&gt; and assigning those to HTML elements. That’s when I realized just how much I had grown used to and fond of the superpowers of React and Tailwind. I missed the component-based architecture, the state management, the flexibility, and the expressive syntax that made building UI in React so much more intuitive and efficient.&lt;/p&gt;

&lt;p&gt;So even though those first few projects served their purpose, they made one thing abundantly clear: going back to vanilla JS felt like writing with my non-dominant hand.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Shift: A Taste of Real Projects
&lt;/h2&gt;

&lt;p&gt;Things started to get more interesting around &lt;strong&gt;Day 3&lt;/strong&gt; when I built a &lt;strong&gt;markdown previewer&lt;/strong&gt;. I used &lt;code&gt;marked.js&lt;/code&gt; for the heavy lifting, and while I didn’t write every line of logic myself, I enjoyed building the interface and controlling how the rendered markdown looked and felt. It was the first time during this journey that I worked on something that felt a little less trivial and a little more “real.”&lt;/p&gt;

&lt;p&gt;Then came &lt;strong&gt;Skye&lt;/strong&gt; — a weather app I had been meaning to build for a long time. I had always put it off. So when I finally sat down and started working on it around &lt;strong&gt;Day 4&lt;/strong&gt;, I felt a mix of satisfaction and relief. I used the &lt;strong&gt;Open Meteo API&lt;/strong&gt; to fetch live weather data and spent a few days building, refining, and polishing the app. It wasn’t massive, but it was fulfilling.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Dip: Not Every Day Is Fun
&lt;/h2&gt;

&lt;p&gt;And then there was &lt;strong&gt;Taskly&lt;/strong&gt;. (Very creative name, I know.)&lt;/p&gt;

&lt;p&gt;I started this basic task management app on &lt;strong&gt;Day 8&lt;/strong&gt;. The idea sounded exciting at first, but as I got into it, the excitement faded quickly. I realized pretty early that I just wasn’t enjoying it. It felt repetitive, uninspired — even boring. But I built it anyway.&lt;/p&gt;

&lt;p&gt;That was the lesson: &lt;strong&gt;you won’t be head-over-heels in love with every single project you build.&lt;/strong&gt; And that’s okay. What matters is showing up. The streak matters more than the thrill. Some days you build out of joy, some days out of discipline. Day 8 was the latter.&lt;/p&gt;




&lt;h2&gt;
  
  
  Nebula: My Most Loved Project So Far
&lt;/h2&gt;

&lt;p&gt;On &lt;strong&gt;Day 9&lt;/strong&gt;, everything changed.&lt;/p&gt;

&lt;p&gt;That’s the day I started building &lt;strong&gt;Nebula&lt;/strong&gt; — a full-stack note-taking app that quickly became the most meaningful project in this entire journey.&lt;/p&gt;

&lt;p&gt;The name &lt;em&gt;Nebula&lt;/em&gt; is inspired by my love for the universe. I’ve always been drawn to space, astronomy, and the cosmos. &lt;strong&gt;Carl Sagan&lt;/strong&gt; and &lt;strong&gt;Neil deGrasse Tyson&lt;/strong&gt; have been two of my biggest inspirations when it comes to science communication.&lt;/p&gt;

&lt;p&gt;Nebula wasn’t just another side project. I had a clear vision — I wanted it to be something substantial, something I could be proud of. I envisioned Nebula as a polished, full-stack application that could not only be a personal tool for me but also serve as a standout piece for my portfolio. I wanted it to be meaningful, to have a purpose beyond just coding for the sake of coding.&lt;/p&gt;

&lt;p&gt;I’ve always used tools like OneNote for my university notes, but I’ve never truly enjoyed them. I wanted something that felt lighter, faster, and more tailored to how I work. So I built it. Nebula became both my &lt;strong&gt;passion project&lt;/strong&gt; and my &lt;strong&gt;productivity tool&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Cost of Caring
&lt;/h2&gt;

&lt;p&gt;What I didn’t realize when I started building Nebula is just how deep the rabbit hole would go.&lt;/p&gt;

&lt;p&gt;The more serious I got about the app’s quality, the more effort and time it demanded. There were nights when I genuinely felt stressed while implementing a new feature. Not because it was impossible — but because I wanted it to be &lt;strong&gt;good&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;This reinforced something I already knew — the triangle of &lt;strong&gt;cost&lt;/strong&gt;, &lt;strong&gt;quality&lt;/strong&gt;, and &lt;strong&gt;time&lt;/strong&gt;. You can’t maximize all three. If you want high quality and you’re not willing to compromise on that (which I wasn’t), you’ll end up paying in terms of &lt;strong&gt;time&lt;/strong&gt; and, in my case, &lt;strong&gt;mental cost&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;I found myself staying up late, obsessing over bugs and UI tweaks. My brain would tell me to sleep, but my fingers wouldn’t leave the keyboard. My soul kept whispering:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Just finish this one last thing…”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That contradiction — being mentally exhausted but still driven to keep going — was something I had never experienced so intensely before. It made me question something:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Was I actually stressed, or was I just weird?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The very thing that was stressing me — working through bugs, improving performance — was the same thing that kept me hooked. It made me realize that “stress” in development doesn’t always come from burnout. Sometimes, it comes from &lt;strong&gt;caring a little too much&lt;/strong&gt; about getting something right.&lt;/p&gt;




&lt;h2&gt;
  
  
  Hard Lessons
&lt;/h2&gt;

&lt;p&gt;Nebula taught me more than just technical skills. It forced me to confront the lessons my software engineering degree had already introduced, but in a way that felt real.&lt;/p&gt;

&lt;p&gt;One of the biggest ones was &lt;strong&gt;planning&lt;/strong&gt;. Or rather — &lt;strong&gt;under-planning&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;I thought I had planned Nebula just enough to avoid overthinking. I didn’t want to fall into the trap of analysis paralysis. But it turned out I should’ve planned more. My components started to grow too large. My logic wasn’t as decoupled as I’d hoped. I ended up with modular code — but not modular enough. There was clearly another level of separation and architecture I could have reached.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Technical debt&lt;/strong&gt; crept in slowly. And then all at once. That exponential growth is no joke.&lt;/p&gt;

&lt;p&gt;Now I understand that you can’t always know when you’ve planned “enough.” There’s no obvious line between useful planning and overthinking. But when the debt does creep in — the most important thing is to acknowledge it. &lt;strong&gt;Document it. Refactor with intention.&lt;/strong&gt; Avoid the temptation to pretend everything is fine.&lt;/p&gt;




&lt;h2&gt;
  
  
  Docs, Performance, and the AI Debate
&lt;/h2&gt;

&lt;p&gt;Another major takeaway was how critical &lt;strong&gt;documentation&lt;/strong&gt; is. Not just your own — but third-party libraries too.&lt;/p&gt;

&lt;p&gt;Reading &lt;strong&gt;TipTap’s docs&lt;/strong&gt; helped me fix a nasty performance issue in Nebula. The editor was re-rendering on every single transaction, which caused the frame rate to drop to 25fps — it was painful to use. But after some digging, I found a hook that let me optimize the editor’s behavior. Problem solved. Performance jumped.&lt;/p&gt;

&lt;p&gt;I also learned how valuable &lt;strong&gt;de-bouncing&lt;/strong&gt; is when working with events and state updates. Little things like this — things that don’t sound exciting — they’re the &lt;strong&gt;backbone of a responsive and smooth user experience&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;And yes, I’ll admit it: &lt;strong&gt;I used AI&lt;/strong&gt; throughout this journey. I used it to generate snippets, suggest improvements, and catch bugs, and most importantly, &lt;strong&gt;learn new things&lt;/strong&gt;. It saved me time on repetitive tasks — like writing query selectors or reformatting logic.&lt;/p&gt;

&lt;p&gt;But I never let it write code I didn’t understand. That, to me, is where the line is. &lt;strong&gt;AI is a tool — not a developer.&lt;/strong&gt; And we should treat it that way. Let it speed you up, but never let it disconnect you from your own code.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Thing I Regret Most
&lt;/h2&gt;

&lt;p&gt;I didn’t comment my code.&lt;/p&gt;

&lt;p&gt;Not enough, at least.&lt;/p&gt;

&lt;p&gt;I knew what I was doing was wrong. I knew future-me would probably be lost in some of those files. But in the moment, I kept telling myself:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“The code is self-explanatory.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Yeah… maybe. Maybe not.&lt;/p&gt;

&lt;p&gt;I hope I’ll be able to understand what I’ve written when I revisit this app months from now.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Road Ahead
&lt;/h2&gt;

&lt;p&gt;Nebula is mostly complete now. There are a few more features I want to add, and some UI polish I’d like to finish. But it’s usable. It’s functional. And more importantly — &lt;strong&gt;it’s mine&lt;/strong&gt;. I built it with care, frustration, joy, and a lot of caffeine.&lt;/p&gt;

&lt;p&gt;It’s something I can proudly show on my resume, share with others, and use for myself. That’s all I wanted when I started. And now, I’m almost there.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Note: This article was originally shared on LinkedIn as part of a personal challenge to code daily for 365 days.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>react</category>
      <category>development</category>
    </item>
  </channel>
</rss>
