<?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: Adam El Kabir</title>
    <description>The latest articles on Forem by Adam El Kabir (@akab).</description>
    <link>https://forem.com/akab</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%2F3721096%2Ffb3bc69d-ef08-4d11-994b-afb83c2cffe0.jpeg</url>
      <title>Forem: Adam El Kabir</title>
      <link>https://forem.com/akab</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/akab"/>
    <language>en</language>
    <item>
      <title>System Overhaul: How I Hacked My Biology to Become a Developer</title>
      <dc:creator>Adam El Kabir</dc:creator>
      <pubDate>Wed, 04 Mar 2026 22:41:04 +0000</pubDate>
      <link>https://forem.com/akab/system-overhaul-how-i-hacked-my-biology-to-become-a-developer-55n0</link>
      <guid>https://forem.com/akab/system-overhaul-how-i-hacked-my-biology-to-become-a-developer-55n0</guid>
      <description>&lt;h1&gt;
  
  
  Hacking My Biology to Code : My Reconstruction After School Failed Me
&lt;/h1&gt;

&lt;h2&gt;
  
  
  1. The School System : A Broken Safety Net
&lt;/h2&gt;

&lt;p&gt;I’ve always been what people call a "good student." For me, the cycle was fluid, almost addictive : understand a concept, apply it, get a grade. It was a machine I excelled in, an environment where I felt safe. Academic success was my compass, promising a bright, pre-defined future.&lt;/p&gt;

&lt;p&gt;But as the years went by, biological reality shattered that momentum.&lt;/p&gt;

&lt;p&gt;My health is fragile, and my stamina is limited. These are biological parameters I cannot change. In this context, keeping up with the frantic pace imposed by the school system became a trial of strength, a daily battle that grew increasingly exhausting, both physically and mentally.&lt;/p&gt;

&lt;p&gt;By burning myself out trying to fit into a mold that ignored my limits, I hit a breaking point. I, the formerly "gifted" student who was always ahead, became a shadow of myself, completely falling behind. It took one more hospitalization-one too many—to face the brutal truth : I was treading water in a void. And at what cost?&lt;/p&gt;

&lt;h2&gt;
  
  
  2. The Reasoning: The Click
&lt;/h2&gt;

&lt;p&gt;Let’s be real: struggling sucks. But knowing my future was limited to default administrative tasks just because of my disability sucked even more. That’s not me. I need to feel alive : I need to be in the action.&lt;/p&gt;

&lt;p&gt;Spending my days behind a screen for a salary barely lower than the social aid I already receive (via the Belgian state) wasn't enough motivation. But I had to look that reality in the face. To move forward, I needed a more powerful engine. I asked myself three fundamental questions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What does success actually mean to me ?&lt;/li&gt;
&lt;li&gt;What is my true goal in this life ?&lt;/li&gt;
&lt;li&gt;Which professional field should I aim for ?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Success is a blurry concept, but my conclusion was sharp : I don't want to endure my life : I want to build it. My goal is to possess real craftsmanship and to be truly useful. I want my success to be the mirror of my efforts, filling the silence of a solitary path with the pride of creating value and the financial freedom to finally live life on my own terms.&lt;/p&gt;

&lt;p&gt;After deep research, a field I had always been intimidated by emerged : &lt;strong&gt;Programming.&lt;/strong&gt; A vast universe where the only limit isn't the body, but logic.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Handling a lack of motivation through biological optimization&lt;/span&gt;
&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;handleMentalState&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;motivation&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;knowledge&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="nx"&gt;motivation&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nx"&gt;knowledge&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;body&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="na"&gt;hydration&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;span class="na"&gt;caffeineLevel&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;span class="na"&gt;needsRest&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="p"&gt;};&lt;/span&gt;

    &lt;span class="c1"&gt;// We don't wait for motivation; we prepare the environment&lt;/span&gt;
    &lt;span class="nx"&gt;body&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;hydration&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="mi"&gt;500&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;   &lt;span class="c1"&gt;// A large glass of water&lt;/span&gt;
    &lt;span class="nx"&gt;body&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;caffeineLevel&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// That famous pure black coffee&lt;/span&gt;
    &lt;span class="nx"&gt;body&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;needsRest&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;  &lt;span class="c1"&gt;// Metabolic wake-up activated&lt;/span&gt;

    &lt;span class="c1"&gt;// Discipline takes over when motivation is at 0&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;discipline&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="na"&gt;readyToCode&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;discipline&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nx"&gt;body&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;caffeineLevel&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="na"&gt;currentTask&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Active Recall &amp;amp; Practice&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="p"&gt;};&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;I chose programming because it matches my intellectual hunger with a revenue potential that reflects the value of my logic. In a world where code is the invisible 'operating system' of everything, mastering it ensures I’ll never be obsolete. By building the systems that run the world, I’m not just looking for a job—I’m forging a universal key to my own future.&lt;/p&gt;
&lt;h2&gt;
  
  
  3. First Choice : Biting Off More Than I Could Chew ?
&lt;/h2&gt;

&lt;p&gt;Since I was starting from scratch, I chose to begin with &lt;strong&gt;Web Development.&lt;/strong&gt; It’s a field known for its accessibility and high market demand. To be honest, the visual side—"creating interfaces" never really appealed to me. But since everyone said it was the easiest path to start, I took the challenge.&lt;/p&gt;

&lt;p&gt;I wanted to prove to myself that I could master it quickly, almost like a formality... The "me" of the past had no idea what was actually coming. Behind the apparent simplicity of web pages lay a world of logic and problem-solving that would put my pragmatism to the ultimate test.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffi7q9hvhvuj09x9wwxb2.png" class="article-body-image-wrapper"&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.amazonaws.com%2Fuploads%2Farticles%2Ffi7q9hvhvuj09x9wwxb2.png" alt="A visual schema of a design system (the kind of thing that used to intimidate me)"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;A visual schema of a design system.&lt;br&gt;
&lt;em&gt;(The kind of thing that used to intimidate the past "me".)&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;
  
  
  4. The Mirage or the Target ?
&lt;/h2&gt;

&lt;p&gt;Looking at the developer profession from afar, you can easily be blinded by a kind of "modern dream." The numbers circulate, success stories abound, and for someone looking for an exit strategy, the temptation is immense.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Attraction of Numbers&lt;/strong&gt;&lt;br&gt;
On paper, the prospects are dizzying. In Belgium and France, market averages draw a trajectory few other sectors can offer without a state diploma:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Salaried:&lt;/strong&gt; Often starting around €3,500 gross/month for a junior, with the potential to cross the €6,000 mark as a senior.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Freelance:&lt;/strong&gt; With a Daily Rate (TJM) between €300 and €450 for a beginner, the math is simple.&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;A brief warning: the junior fullstack developer market is currently tight and more competitive than before. Opportunities do exist, but they are neither automatic nor guaranteed, standing out now requires concrete projects, real autonomy, and strong adaptability.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;More Than a Salary: Freedom&lt;/strong&gt;&lt;br&gt;
Beyond the money, it was the lifestyle that hooked me. I saw the promise of total geographic freedom: the ability to build my own projects (SaaS) and work from the comfort of my home. But most importantly, I realized this job offered a unique &lt;strong&gt;versatility&lt;/strong&gt; : the analytical skills I develop here are powerful levers for any future challenge.&lt;/p&gt;

&lt;p&gt;It was a promise of total autonomy, a way to bypass my physical limits by betting everything on my intellect. But to reach this dream, I first had to fix a major issue: the interface between my brain and the machine.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Custom Ergonomics: My Setup, My Rules&lt;/strong&gt;&lt;br&gt;
Using a standard keyboard was not compatible with my physical condition. Instead of waiting for external solutions, I decided to "hack" my own environment. As a long-time gamer, I’m used to optimizing keybindings to maximize performance. I simply applied that logic to my work.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Here is a brief demo:&lt;/strong&gt;&lt;br&gt;


&lt;/p&gt;
&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://imgur.com/a/controller-workflow-v5SlAyV" 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%2Fi.imgur.com%2FO1Xnf9r.jpg%3Ffbplay" height="auto" class="m-0"&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://imgur.com/a/controller-workflow-v5SlAyV" rel="noopener noreferrer" class="c-link"&gt;
            Controller workflow - Album on Imgur
          &lt;/a&gt;
        &lt;/h2&gt;
          &lt;p class="truncate-at-3"&gt;
            Discover the magic of the internet at Imgur, a community powered entertainment destination. Lift your spirits with funny jokes, trending memes, entertaining gifs, inspiring stories, viral videos, and so much more from users like ElAkab.
          &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%2Fs.imgur.com%2Fimages%2Ffavicon-32x32.png"&gt;
          imgur.com
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;





&lt;p&gt;Using &lt;a href="https://joytokey.net/en/" rel="noopener noreferrer"&gt;JoyToKey&lt;/a&gt;, I mapped my entire keyboard (the key points, at least) and my mouse onto a PS4 controller. &lt;br&gt;
The result ? I can write, scroll, and execute complex shortcuts with total fluidity. I transformed my gaming experience into surgical execution speed for code. 😎🎮&lt;/p&gt;

&lt;p&gt;Between the dream shown on social media and the reality of a screen full of errors, there was a gap. Controller in hand, I was finally ready to cross it. But one question remained : &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Why do some succeed where so many others quit ?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  5. The Plan : Hacking My Own Biology
&lt;/h2&gt;

&lt;p&gt;I understood one thing very quickly : this field is infinitely complex. It requires mastering a multitude of concepts doomed to certain obsolescence, forcing a perpetual learning cycle.&lt;/p&gt;

&lt;p&gt;To be honest, the prospect of permanent instability made me uncomfortable, but I chose to face it. I realized that to avoid quitting halfway, simple "willpower" wouldn't cut it, it runs out too fast. I had to conduct a deep investigation, not just into the gears of code, but into my own functioning. My goal became clear : &lt;br&gt;
&lt;strong&gt;optimize my cognitive system for a long-term learning marathon.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  I. Dopamine Management : Triggering Motivation
&lt;/h3&gt;

&lt;p&gt;To keep motivation constant, don't wait for it &amp;gt; protect it. I discovered my brain was saturated with "cheap dopamine": social media, passive entertainment, and poor-quality food. To fix this, I decided to regulate my sources of pleasure to retrain my brain to enjoy complex effort.&lt;/p&gt;

&lt;h3&gt;
  
  
  II. Nutrition : Brain Fuel
&lt;/h3&gt;

&lt;p&gt;We often forget the brain is the body’s most &lt;a href="https://www.scientificamerican.com/article/why-does-the-brain-need-s/" rel="noopener noreferrer"&gt;energy-hungry organ&lt;/a&gt;, consuming about 20% of our daily calories. &lt;em&gt;Apparently, thinking hard burns calories&lt;/em&gt;, but it requires high-quality fuel. I realized I was sabotaging my own cognitive abilities through malnutrition and dehydration.&lt;/p&gt;

&lt;h3&gt;
  
  
  III. Lifestyle : The Infrastructure of Cognition
&lt;/h3&gt;

&lt;p&gt;The image of the nocturnal, sedentary dev is a biological error.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Natural Light &amp;amp; Focus :&lt;/strong&gt; Exposure to sunlight in the morning regulates serotonin and melatonin. This ensures peak concentration during the day and restorative sleep at night.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Movement :&lt;/strong&gt; Sedentary habits "put the brain to sleep." Moving releases the BDNF protein, a literal fertilizer for your neurons.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Visual Disconnection :&lt;/strong&gt; Staring at a screen fatigues eye muscles. Looking into the distance (more than 6 meters) releases tension and activates creative thinking.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  IV. The Flow State: High-Performance "Zone"
&lt;/h3&gt;

&lt;p&gt;This is the phase of deep focus where the brain exploits its full potential. For a dev, it’s the Holy Grail of productivity. To activate it, I ensure a balance between challenge and skill, and I eliminate all micro-interruptions (it takes an average of 23 minutes to get back into focus after a break).&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;We all have a &lt;a href="https://en.wikipedia.org/wiki/Chronotype" rel="noopener noreferrer"&gt;Chronotype&lt;/a&gt;, a biological profile that determines our peak alertness. By aligning my schedule with my nature as a "Lion" (😎), I stopped fighting my own biology and started working with it.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0o3nje2jjsjyekjgj96v.png" class="article-body-image-wrapper"&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.amazonaws.com%2Fuploads%2Farticles%2F0o3nje2jjsjyekjgj96v.png" alt=" "&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  6. The Framework : Turning Desire into Discipline
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;The Deep Work Block (05:00 AM – 12:00 PM)&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;I start at dawn to enjoy absolute calm.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Metabolic Wake-up :&lt;/strong&gt; A large glass of water and technical reading.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Theoretical Immersion :&lt;/strong&gt; 90 minutes after waking, I take my pure black coffee and start intensive online courses. I use &lt;a href="https://en.wikipedia.org/wiki/Active_recall" rel="noopener noreferrer"&gt;Active Recall&lt;/a&gt; to ensure the info sticks.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Practical Consolidation :&lt;/strong&gt; I immediately turn theory into practice with micro-projects.&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;Side Note : I’ve recently built a tool called &lt;a href="https://dev.to/akab/echoflow--ocn"&gt;EchoFlow&lt;/a&gt;. It’s designed to help you manage your notes cleanly and features an interactive quiz mode powered by an LLM to test your knowledge. It’s probably my most complete project to date (though there's always room for growth!), and I’d love to get your feedback while it's still in beta.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;The Recovery Block (12:00 PM – 02:00 PM)&lt;/strong&gt;&lt;br&gt;
Maintenance for my cognitive system : fresh air, Vitamin D, and healthy fuel for the rest of the day.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Consolidation Block (02:00 PM – 07:00 PM): The Trial by Fire&lt;/strong&gt;&lt;br&gt;
After the mental reset of my midday break, I transition into building. This is where theory meets reality. I pour my heart into creating tools that aren't just functional, but useful and visually striking—fueling the personal satisfaction that keeps me going.&lt;/p&gt;

&lt;p&gt;As I’ve progressed, I’ve started using AI to "scout the terrain" for increasingly ambitious projects. However, I’ve made one rule absolute: no copy-pasting. I refuse "pre-chewed" code. I choose to get my hands dirty, wrestling with every bug and architectural choice to ensure these habits are permanently hardwired into my brain.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Decompression Block (07:00 PM – 09:00 PM): The Well-Deserved Rest&lt;/strong&gt;&lt;br&gt;
After a day of intense immersion, it is crucial to signal to the brain that the "effort phase" is over. This is the moment when the "background compilation" of everything I’ve learned begins.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Nutrition &amp;amp; Downtime : I eat a balanced meal, staying consistent with my high-quality fuel logic. Watching a show allows me a moment of total disconnection. This psychological reward is necessary to sustain this pace in the long run.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Pre-sleep Ritual : I limit the number of episodes to protect my rest time. Before bed, I finish with a short, calm reading session. This helps me step away from screens, soothe the nervous system, and prepare for high-quality sleep.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;Note : This rhythm works for me because it accounts for my unique history and specific needs. If you find yourself in a similar situation, I encourage you to use the principles I’ve established as a blueprint to build your own framework—one that respects your personal chronotype, your motivation levels, and your overall goals.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Verdict: So... Are we there yet?
&lt;/h2&gt;

&lt;p&gt;After two years of deep immersion, I’ll be honest : I don’t feel fully "ready" yet. Perhaps it’s the infamous &lt;a href="https://en.wikipedia.org/wiki/Impostor_syndrome" rel="noopener noreferrer"&gt;Imposter Syndrome&lt;/a&gt; creeping in, and if it is, I’ll do what I’ve always done : &lt;strong&gt;work on myself until I break through.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Otherwise, I plan to drown that doubt in a flood of new skills and increasingly complex, targeted projects. I don't see this as a weakness, but as methodical preparation. Coding is an endurance sport. If I don’t reach the finish line tomorrow, or next week, one thing remains certain : I will get there.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;For those developers curious about what I’ve managed to build over these past two years, feel free to dive into &lt;a href="https://github.com/ElAkab" rel="noopener noreferrer"&gt;my GitHub&lt;/a&gt;. If you have any advice or feedback, I’m all ears—in fact, I’m counting on you to be tough with me 🤥. I’m here to learn, so don't hold back !&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;What I earned&lt;/strong&gt;&lt;br&gt;
This journey has transformed me far beyond syntax and lines of code. Today, I stand on foundations that no one can take away :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Digital Architecture&lt;/strong&gt;: I finally grasp the invisible gears of the web, moving from simple consumption to structural understanding.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Design &amp;amp; Aesthetics&lt;/strong&gt;: My eye has evolved. I no longer just make code "work" : I bridge the gap between back-end logic and a seamless user interface.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Human-Machine Symbiosis&lt;/strong&gt;: I’ve learned to think in algorithms and speak the machine's language as if it were my own.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Biological Engineering&lt;/strong&gt;: I discovered how to discipline my mind, transforming a fragile health condition into a high-precision energy management system.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Conclusion: From Shadow to Architect
&lt;/h2&gt;

&lt;p&gt;Today, I am no longer a shadow of my former self, nor am I that struggling student who blindly trusted a pre-defined path to lead the way. &lt;br&gt;
&lt;u&gt;I have stopped waiting for permission to move forward.&lt;/u&gt;&lt;/p&gt;

&lt;p&gt;I navigated this transition &lt;strong&gt;entirely on my own&lt;/strong&gt;. It was a silent, solitary battle where the hardest part wasn't the code itself, but &lt;strong&gt;maintaining conviction when no one else understood the vision&lt;/strong&gt;. I had to be my own mentor, my own cheerleader, and my own anchor. Instead of breaking me, the judgment and the pressure taught me to rely on myself even more.&lt;/p&gt;

&lt;p&gt;This journey has transformed me into someone I can finally respect, not out of vanity, but because of the quiet confidence that comes from total self-reliance. I now know that while I don't have all the answers, I have mastered the art of finding them. I’ve moved from being a passive observer to someone who understands the modern world’s mechanics and is capable of building something meaningful from nothing but logic.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;I am proud of my journey and, above all, of what I am now capable of understanding, solving, and creating. The "gifted" kid isn't back—someone much stronger has taken his place.&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>productivity</category>
      <category>psychology</category>
    </item>
    <item>
      <title>Echoflow (🧠 + 📝 + 🤖)</title>
      <dc:creator>Adam El Kabir</dc:creator>
      <pubDate>Sun, 08 Feb 2026 15:36:32 +0000</pubDate>
      <link>https://forem.com/akab/echoflow--ocn</link>
      <guid>https://forem.com/akab/echoflow--ocn</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/github-2026-01-21"&gt;GitHub Copilot CLI Challenge&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Echoflow - Active Recall Powered by AI
&lt;/h1&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Taking notes is good. Being tested on them intelligently is even better.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  A Personal Introduction (first post)
&lt;/h2&gt;

&lt;p&gt;Hi ! I'm Adam, a young self-taught student who has spent months deliberately avoiding AI coding tools.&lt;/p&gt;

&lt;p&gt;Why ? Because I wanted to "earn" my skills first to understand what I was building without shortcuts, to struggle through bugs, and to truly grasp the fundamentals. I was convinced that using AI would somehow make me... less of a developer.&lt;/p&gt;

&lt;p&gt;But then this GitHub community challenge came along, and I thought :&lt;br&gt;
&lt;em&gt;"Maybe I just needed an excuse 😅"&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;So here we are. &lt;strong&gt;Echoflow&lt;/strong&gt; is my first real project built almost entirely with &lt;strong&gt;GitHub Copilot CLI&lt;/strong&gt;, and honestly ? It's been transformative. Not because it wrote perfect code, but because it let me stay in the &lt;strong&gt;flow&lt;/strong&gt;—thinking, iterating, and building without constantly context-switching.&lt;/p&gt;




&lt;h2&gt;
  
  
  What is Echoflow?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Echoflow&lt;/strong&gt; is an AI-powered &lt;strong&gt;Active Recall&lt;/strong&gt; tool designed to solve a problem I face constantly :&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;I write tons of notes... and i read them.. That's it.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The idea is simple : instead of passively rereading notes, &lt;strong&gt;Echoflow&lt;/strong&gt; uses AI to quiz you on what you've written. It's like having a study buddy who remembers everything you learned and asks you the right questions at the right time.&lt;/p&gt;

&lt;h3&gt;
  
  
  Core Features
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;📝 &lt;strong&gt;Markdown-powered note-taking&lt;/strong&gt; (because plain text is so 2010)&lt;/li&gt;
&lt;li&gt;🤖 &lt;strong&gt;AI-generated questions&lt;/strong&gt; based on your notes (powered by OpenRouter)&lt;/li&gt;
&lt;li&gt;💬 &lt;strong&gt;Conversational quizzing&lt;/strong&gt; - chat with AI to deepen understanding&lt;/li&gt;
&lt;li&gt;📊 &lt;strong&gt;Progress tracking&lt;/strong&gt; - AI analyzes your strengths and weaknesses (not perfectly implemented yet)&lt;/li&gt;
&lt;li&gt;🎨 &lt;strong&gt;Dark mode UI&lt;/strong&gt; - because your eyes deserve better&lt;/li&gt;
&lt;li&gt;🔒 &lt;strong&gt;Privacy-first&lt;/strong&gt; - your notes stay yours (Supabase RLS)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Here's a demo
&lt;/h3&gt;

&lt;p&gt;The app is pretty intuitive. &lt;br&gt;
After authenticating, you'll find some pre-filled categories: :&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdquagvkra40192z44nki.png" class="article-body-image-wrapper"&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.amazonaws.com%2Fuploads%2Farticles%2Fdquagvkra40192z44nki.png" alt=" " width="800" height="404"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Inside each category, you'll find some pre-filled dedicated notes (you can access it by clicking on category) :&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvr9waa20hto6ty6l9rnt.png" class="article-body-image-wrapper"&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.amazonaws.com%2Fuploads%2Farticles%2Fvr9waa20hto6ty6l9rnt.png" alt=" " width="800" height="403"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you are in a hurry (or feel confortable with yours notes), you can directly quiz yourself by clicking de "Quiz" button. A modal chat will appear with a relevant question about your note :&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fswyf010r2555by6gxglx.png" class="article-body-image-wrapper"&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.amazonaws.com%2Fuploads%2Farticles%2Fswyf010r2555by6gxglx.png" alt=" " width="800" height="522"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The app is now more feature-rich than ever ! It includes full CRUD operations for both categories and notes, along with powerful tools like the multi-select mode for targeted LLM quizzing with a contextual feedback loop ensuring the LLM references its previous conclusions to maintain consistency across conversations. I invite you to explore the project yourself, you can find a deep dive into the mechanics and capabilities on the "Learn More" and "Features" pages (available before authentication).&lt;/p&gt;

&lt;h3&gt;
  
  
  Try It Out (password for demo account : &lt;code&gt;N7!qA3@Zp#L9mE$R&lt;/code&gt;)
&lt;/h3&gt;

&lt;p&gt;You can try it out &lt;a href="https://echoflow-phi.vercel.app" rel="noopener noreferrer"&gt;here&lt;/a&gt; without signing up. Just click &lt;em&gt;"Demo Account"&lt;/em&gt; with the &lt;em&gt;provided password&lt;/em&gt; and start creating notes and quizzing yourself (using the single or multiple-selection feature).&lt;/p&gt;

&lt;h3&gt;
  
  
  Why Active Recall?
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://www.bcu.ac.uk/exams-and-revision/best-ways-to-revise/active-recall" rel="noopener noreferrer"&gt;Active recall&lt;/a&gt; is one of the most effective learning techniques backed by cognitive science. Instead of rereading notes (which feels productive but isn't), you actively retrieve information from memory. &lt;strong&gt;Echoflow&lt;/strong&gt; automates this process with AI.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Process: From Idea to Deployment
&lt;/h2&gt;

&lt;h3&gt;
  
  
  The BMade Method
&lt;/h3&gt;

&lt;p&gt;I started with the &lt;a href="https://github.com/bmad-code-org/BMAD-METHOD" rel="noopener noreferrer"&gt;BMade methodology&lt;/a&gt;, which breaks down the development process into three phases :&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Brainstorm&lt;/strong&gt; - Define the problem, target audience, and core features.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Map&lt;/strong&gt; - Design the architecture, tech stack, and data flow.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Make&lt;/strong&gt; - Implement the features iteratively, testing and refining as you go.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;GitHub Copilot CLI &lt;strong&gt;strictly followed this plan&lt;/strong&gt;—no feature creep, no random refactors. Just the PRD, executed step by step.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Tech Stack
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;┌─────────────────────────────────────┐
│      🌐 Data Acquisition (Input)    │
│  ├─ Next.js Web Application         │
│  └─ Markdown/Rich-text Editor       │
└─────────────────────────────────────┘
                  │
                  ▼
┌─────────────────────────────────────┐
│        🔐 Auth &amp;amp; Persistence        │
│  ├─ Supabase (PostgreSQL + Auth)    │
│  ├─ Row Level Security (RLS)        │
│  └─ Vector Storage            │
└─────────────────────────────────────┘
                  │
                  ▼
┌─────────────────────────────────────┐
│       🤖 AI Logic (Echoflow)        │
│  ├─ OpenRouter API Gateway          │
│  ├─ Prompt Engineering (Context)    │
│  └─ Streaming Responses (SSE)       │
└─────────────────────────────────────┘
                  │
                  ▼
┌─────────────────────────────────────┐
│     🎓 Active Recall (Output)       │
│  ├─ Dynamic Quiz Interface          │
│  ├─ Smart Search Tags (JSON)        │
│  └─ Token/Energy Quota Tracking     │ &amp;lt;- I haven't implemented this yet.
└─────────────────────────────────────┘
                  │
                  ▼
┌─────────────────────────────────────┐
│        ☁️ Infrastructure            │
│  ├─ Vercel (Edge Functions)         │
│  └─ Monorepo (Next.js + Scripts)    │
└─────────────────────────────────────┘
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It creates me a &lt;code&gt;prd.md&lt;/code&gt; file :&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F92m3awyqit4nhlnz3klc.png" class="article-body-image-wrapper"&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.amazonaws.com%2Fuploads%2Farticles%2F92m3awyqit4nhlnz3klc.png" alt=" " width="800" height="409"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And a &lt;code&gt;architecture.md&lt;/code&gt; file :&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzxav5d10wfr0d0kbvbx8.png" class="article-body-image-wrapper"&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.amazonaws.com%2Fuploads%2Farticles%2Fzxav5d10wfr0d0kbvbx8.png" alt=" " width="800" height="407"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  The "Orchestrator" Strategy: Controlling the AI Flow
&lt;/h3&gt;

&lt;p&gt;To ensure &lt;em&gt;Echoflow&lt;/em&gt; remained consistent, scalable, and professional, I didn't just "chat" with the AI — I engineered its environment.&lt;/p&gt;

&lt;p&gt;I implemented a strict instruction framework via the &lt;code&gt;.github/copilot-instructions.md&lt;/code&gt; file. This file acts as the project's &lt;strong&gt;source of truth&lt;/strong&gt; and enforces the following:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Strict Tech Stack Enforcement&lt;/strong&gt; — Ensures the project follows the chosen stack (Next.js 15 App Router, Tailwind CSS 4.0, and pnpm).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Architectural Integrity&lt;/strong&gt; — Defaults to Server Components where appropriate and enforces Zod validation for API routes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The BMade Workflow&lt;/strong&gt; — Integrates the BMade methodology into the AI prompts to preserve a "think-before-code" approach.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Commit Discipline&lt;/strong&gt; — Ensures each change is well-documented and traceable.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkpubbaxim1vr4q1g44qd.png" class="article-body-image-wrapper"&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.amazonaws.com%2Fuploads%2Farticles%2Fkpubbaxim1vr4q1g44qd.png" alt=" " width="800" height="409"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  MCP: Context7 Integration for Real-Time Documentation
&lt;/h2&gt;

&lt;p&gt;I've also set up the &lt;a href="https://context7.com" rel="noopener noreferrer"&gt;Context7&lt;/a&gt; MCP (Model Context Protocol) with the &lt;code&gt;/mcp&lt;/code&gt; command. Context7 injects real-time, version-specific documentation into the AI's context whenever I mention a library or framework. This provides several benefits:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Real-time documentation access&lt;/strong&gt; — the AI can fetch official docs for 60,000+ libraries instantly.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reduced hallucinations&lt;/strong&gt; — Context7 supplies the exact API syntax for the target version, avoiding outdated or incorrect guidance.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Version-accurate examples&lt;/strong&gt; — it returns code examples that match the versions I'm using (e.g., Next.js 14+), preventing deprecated patterns.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Smoother workflow&lt;/strong&gt; — no manual copy/paste: the AI retrieves the relevant documentation automatically when prompted (for example with &lt;code&gt;use context7&lt;/code&gt;).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz1ac00pkprh31prdzx60.png" class="article-body-image-wrapper"&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.amazonaws.com%2Fuploads%2Farticles%2Fz1ac00pkprh31prdzx60.png" alt=" " width="749" height="67"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;By defining the rules of the game before the first line of code was written, I turned the AI from a simple assistant into a specialized senior engineer tailored for &lt;em&gt;Echoflow&lt;/em&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  SKILL.md: A Living Document of AI Feedback Analysis
&lt;/h2&gt;

&lt;p&gt;I rencently learned about the concept of a &lt;a href="https://skills.sh" rel="noopener noreferrer"&gt;SKILL.md&lt;/a&gt; file from &lt;a href="https://www.mintlify.com/docs/ai/skillmd" rel="noopener noreferrer"&gt;this insightful thread&lt;/a&gt;. The idea is to have a dedicated file where I analyze the AI's feedback on my code, identify patterns in its suggestions, and reflect on how to improve my prompts and code structure.&lt;/p&gt;

&lt;p&gt;I've always wanted to try this.. so i installed some relevant skills :&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdntb3epd4frg6s4072kr.png" class="article-body-image-wrapper"&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.amazonaws.com%2Fuploads%2Farticles%2Fdntb3epd4frg6s4072kr.png" alt=" " width="737" height="367"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  A Humble Disclaimer
&lt;/h2&gt;

&lt;p&gt;I'm a &lt;strong&gt;learner&lt;/strong&gt;. This is my first real full-stack project, and I'm sure there are "creative architectural choices" in here that would make senior devs cringe 😅&lt;/p&gt;

&lt;p&gt;Some things I'm still figuring out:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Could my database schema be better normalized ? Maybe.&lt;/li&gt;
&lt;li&gt;Could my analysis of AI feedback be more sophisticated ? &lt;em&gt;Definitely&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;Are there edge cases I haven't considered ? &lt;em&gt;Absolutely&lt;/em&gt;..&lt;/li&gt;
&lt;li&gt;Is security airtight ? Probably not enough (but I did implement RLS and follow best practices 🤞).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I probably made some "questionable" decisions in the codebase. But for a first try, I'm pretty proud of the result and the process I went through. The goal was to learn, experiment, and create something useful, not to create a perfect codebase.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;If you find bugs or have suggestions, I'm all ears—teaching me is teaching the next generation of devs (but teach me first please).&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  The Power of "Vibe-Coding"
&lt;/h2&gt;

&lt;p&gt;Here's what I learned: &lt;strong&gt;GitHub Copilot CLI enables 100% "vibe-coding"&lt;/strong&gt; when used correctly.&lt;/p&gt;

&lt;h3&gt;
  
  
  What does that mean?
&lt;/h3&gt;

&lt;p&gt;Instead of:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Thinking of a feature&lt;/li&gt;
&lt;li&gt;Opening an editor&lt;/li&gt;
&lt;li&gt;Writing code&lt;/li&gt;
&lt;li&gt;Switching to terminal to test&lt;/li&gt;
&lt;li&gt;Switching back to fix bugs&lt;/li&gt;
&lt;li&gt;Repeat 47 times&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I could just :&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Think of a feature&lt;/li&gt;
&lt;li&gt;Describe it to Copilot CLI&lt;/li&gt;
&lt;li&gt;Watch it implement, test, and iterate&lt;/li&gt;
&lt;li&gt;Stay in the &lt;strong&gt;flow&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;p&gt;To be honest, I did fix a few bugs manually. Sometimes, hopping into the code editor often with a quick assist from Copilot Chat was faster than explaining the context to the CLI. While I had to switch contexts a few times, the overall time lost was negligible compared to the massive speed boost the CLI provided.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  The "Flow State" Advantage
&lt;/h3&gt;

&lt;p&gt;When you stay in the terminal:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;No context switching between IDE and browser&lt;/li&gt;
&lt;li&gt;No manual file navigation&lt;/li&gt;
&lt;li&gt;No "where was I?" moments&lt;/li&gt;
&lt;li&gt;Just pure &lt;strong&gt;creation mode&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It's like pair programming with someone who never gets tired, never judges your questions, and always has the docs ready (but you still have to understand the docs yourself).&lt;/p&gt;




&lt;h2&gt;
  
  
  By the Numbers (GitHub Copilot CLI analysis by the &lt;code&gt;DEVELOPMENT_LOG.md&lt;/code&gt;)
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Development Time&lt;/strong&gt;: ~12 hours (spread over 5 days + 1 last to finalize)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Lines of Code&lt;/strong&gt;: ~5,000 (TypeScript + SQL)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Copilot CLI Features Used&lt;/strong&gt;: 30+&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Coffee Consumed&lt;/strong&gt;: ☕☕☕ ... (too many)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Stack Overflow Visits&lt;/strong&gt;: 2 (down from ~50 per project)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;"Aha!" Moments&lt;/strong&gt;: Countless&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Feature&lt;/th&gt;
&lt;th&gt;Status&lt;/th&gt;
&lt;th&gt;Notes&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;🔐 Authentication (Google OAuth)&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;Supabase Auth with RLS&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;📝 Note Management (CRUD)&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;Markdown support + syntax highlighting&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🗂️ Category Organization&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;Color-coded, filterable&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🤖 Single-Note Quizzing&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;AI asks questions, you answer&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🎯 Multi-Note Quizzing&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;AI quizzes across multiple notes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;💬 Conversational AI&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;Chat-based learning&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;📊 Progress Tracking&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;AI analyzes analysis/weaknesses&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🎨 Dark Mode UI&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;Glassmorphism design&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🌊 Streaming Responses&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;Progressive AI rendering&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🔒 Demo Account&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;Try without signing up&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  Technical Highlights
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. AI Model Rotation System
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// For freemium accounts (default) : Automatically tries free models until one succeeds&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;FREE_MODELS&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;meta-llama/llama-3.2-3b-instruct:free&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;z-ai/glm-4.5-air:free&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;stepfun/step-3.5-flash:free&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;meta-llama/llama-3.3-70b-instruct:free&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;qwen/qwen-3-235b-a22b:free&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;mistralai/mistral-small-3.1-24b:free&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;google/gemma-3-4b-instruct:free&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;];&lt;/span&gt;

&lt;span class="c1"&gt;// For premium accounts (even for the "Demo-account")&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;PREMIUM_MODELS&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;openai/gpt-4o-mini:paid&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="c1"&gt;// generally this one is used&lt;/span&gt;
    &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;mistralai/mistral-7b-instruct:paid&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;];&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  2. Streaming SSE Implementation
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Progressive AI response rendering&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;stream&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;ReadableStream&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
    &lt;span class="nf"&gt;start&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;controller&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="nx"&gt;reader&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;read&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="nf"&gt;then&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;push&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="nx"&gt;done&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;value&lt;/span&gt; &lt;span class="p"&gt;})&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;done&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;controller&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;close&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
            &lt;span class="nx"&gt;controller&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;enqueue&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;value&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
            &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;reader&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;read&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="nf"&gt;then&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;push&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="p"&gt;});&lt;/span&gt;
    &lt;span class="p"&gt;},&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  3. Row Level Security (RLS)
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="c1"&gt;-- Users can only see their own notes&lt;/span&gt;
&lt;span class="k"&gt;CREATE&lt;/span&gt; &lt;span class="n"&gt;POLICY&lt;/span&gt; &lt;span class="nv"&gt;"Users can view own notes"&lt;/span&gt;
  &lt;span class="k"&gt;ON&lt;/span&gt; &lt;span class="n"&gt;notes&lt;/span&gt; &lt;span class="k"&gt;FOR&lt;/span&gt; &lt;span class="k"&gt;SELECT&lt;/span&gt;
  &lt;span class="k"&gt;USING&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;auth&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;uid&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;user_id&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  4. JSONB Feedback Storage
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Flexible AI feedback structure example&lt;/span&gt;
&lt;span class="nx"&gt;ai_feedback&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;analysis&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;The user struggles with recall of key concepts, but shows strength in understanding relationships between ideas.&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="nx"&gt;weaknesses&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Really stupid at X topic.&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="nx"&gt;conclusion&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;I need to review X topic more often, maybe with a different approach.&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  What I Learned
&lt;/h2&gt;

&lt;h3&gt;
  
  
  About AI Coding Tools
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;They don't make you "lazy"—they make you &lt;strong&gt;productive&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;The quality of output depends on the quality of input (prompt engineering matters)&lt;/li&gt;
&lt;li&gt;Staying in the terminal is &lt;strong&gt;way&lt;/strong&gt; more efficient than I expected&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I've also learned &lt;em&gt;how to prompt correctly&lt;/em&gt; ! With the right context, the CLI enables 100% vibe-coding.&lt;/p&gt;

&lt;p&gt;For a skilled developer (or an aspiring one), the real limit isn’t how fast you can type but how clearly you can communicate your intent.&lt;/p&gt;

&lt;p&gt;Here's an example of a part prompt i used with :&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxhvo37ryahk52fw3np1h.png" class="article-body-image-wrapper"&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.amazonaws.com%2Fuploads%2Farticles%2Fxhvo37ryahk52fw3np1h.png" alt=" " width="800" height="327"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We can't see well in this screen but my method is :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Explain the idea (or issues) precisely&lt;/li&gt;
&lt;li&gt;Share the relevant file using the "@" symbol&lt;/li&gt;
&lt;li&gt;Add details if needed (like links) 
&lt;em&gt;Yeah i'm not professional 😅 but that was my "prompt cycle".&lt;/em&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;But it's important to have a good understanding of the underlying code and architecture. It's not about blindly accepting AI suggestions, but about guiding the AI with clear prompts and making informed decisions based on its output.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  About programming in general
&lt;/h3&gt;

&lt;p&gt;This challenge was a deep dive back into the frontend ecosystem. After focusing heavily on Backend architecture during my studies, this project was the perfect opportunity to bridge the gap and sharpen my &lt;strong&gt;React&lt;/strong&gt; skills.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Modern Stack Discovery : It was my first time getting my hands dirty with &lt;strong&gt;Next.js 15&lt;/strong&gt; and &lt;strong&gt;shadcn ui&lt;/strong&gt;. The speed of iteration and the "developer experience" they provide are truly game-changing for a solo builder.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Infrastructure &amp;amp; Auth: Integrating &lt;strong&gt;Supabase&lt;/strong&gt; felt seamless, though setting up &lt;strong&gt;Google OAuth&lt;/strong&gt; provided a rewarding challenge in managing secure authentication flows.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;AI Orchestration: Finally using &lt;strong&gt;OpenRouter&lt;/strong&gt; provided the model flexibility I’ve always wanted. I had to learn &lt;a href="https://en.wikipedia.org/wiki/Prompt_engineering" rel="noopener noreferrer"&gt;Prompt Engineering&lt;/a&gt; on the fly—it was fascinating to see how subtle tweaks in instructions could drastically shift the AI's behavior (you can see my logic in &lt;code&gt;api/ai/generate-questions/route.ts&lt;/code&gt;). There is something almost artistic about controlling AI output through code, and it made me deeply appreciate the importance of clear, structured communication with LLMs.&lt;br&gt;
&lt;em&gt;I can already see the immense potential for creating highly customized AI interactions in the future.&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  What's Next?
&lt;/h2&gt;

&lt;p&gt;After a long break, I will continue improving &lt;strong&gt;Echoflow&lt;/strong&gt; based on user feedback, and I plan to add more features based on the best practices to learn faster and more effectively with AI.&lt;/p&gt;




&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;h2&gt;
  
  
  The ultimate irony : I spent my time learning development, only to build a tool that helps me learn even more 🤔😎..
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Made with 💙 (and lots of ☕) by Adam&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;em&gt;Powered by GitHub Copilot CLI 😉&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/ElAkab" rel="noopener noreferrer"&gt;https://github.com/ElAkab&lt;/a&gt;&lt;br&gt;
&lt;a href="https://twitter.com/El_Akab" rel="noopener noreferrer"&gt;https://twitter.com/El_Akab&lt;/a&gt;&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>githubchallenge</category>
      <category>cli</category>
      <category>githubcopilot</category>
    </item>
  </channel>
</rss>
