<?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: Ngawang Tenzin</title>
    <description>The latest articles on Forem by Ngawang Tenzin (@cbms26).</description>
    <link>https://forem.com/cbms26</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%2F3081552%2F0cc60a78-1179-4eb1-970a-5c49fa56b0dc.png</url>
      <title>Forem: Ngawang Tenzin</title>
      <link>https://forem.com/cbms26</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/cbms26"/>
    <language>en</language>
    <item>
      <title>What I actually learned using Gemma 4 for ASL recognition (spoiler: D kept showing up as 1)</title>
      <dc:creator>Ngawang Tenzin</dc:creator>
      <pubDate>Sun, 17 May 2026 10:55:47 +0000</pubDate>
      <link>https://forem.com/cbms26/what-i-actually-learned-using-gemma-4-for-asl-recognition-spoiler-d-kept-showing-up-as-1-1ek4</link>
      <guid>https://forem.com/cbms26/what-i-actually-learned-using-gemma-4-for-asl-recognition-spoiler-d-kept-showing-up-as-1-1ek4</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/google-gemma-2026-05-06"&gt;Gemma 4 Challenge: Write About Gemma 4&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I built an ASL hand sign interpreter using Gemma 4 locally. Not because I had a perfect plan, I just wanted to see if a general-purpose vision model could recognise hand signs with just a good prompt. No fine-tuning, no special dataset.&lt;/p&gt;

&lt;p&gt;In short, it took way more iteration than I expected.&lt;/p&gt;

&lt;h3&gt;
  
  
  You have to keep going back and fixing the prompt
&lt;/h3&gt;

&lt;p&gt;My first prompt was simple, just "identify the ASL letter in this image." The model kept getting confused between similar-looking signs. A and S look nothing alike if you know what to look for, but Gemma 4 didn't know what to look for.&lt;/p&gt;

&lt;p&gt;So I had to go back, look up what actually makes each letter different, and write it out explicitly. Things like:&lt;/p&gt;

&lt;p&gt;"A vs S: In A the thumb is BESIDE the index finger. In S the thumb is folded OVER the knuckles."&lt;/p&gt;

&lt;p&gt;Every time I noticed a pattern of wrong answers, I'd add another rule. It became this back-and-forth loop, run test, see what fails, go back to the prompt, try again. That's just the reality of working with a model on a specific task it wasn't trained for.&lt;/p&gt;

&lt;h3&gt;
  
  
  The D -&amp;gt; 1 thing
&lt;/h3&gt;

&lt;p&gt;At some point I ran my auto-sorter and it created a folder called 1 inside my test dataset. Turns out Gemma 4 looked at a D sign and decided it was the number 1.&lt;/p&gt;

&lt;p&gt;Not entirely wrong. D does have one straight finger pointing up. But it was a good reminder that the model doesn't know the context unless you tell it. I had to add "you are identifying ASL alphabet letters only, A through Z, not numbers" to stop it wandering off.&lt;/p&gt;

&lt;h3&gt;
  
  
  Which model size and why
&lt;/h3&gt;

&lt;p&gt;I tried thinking through E2B vs E4B vs 31B Dense before picking.&lt;/p&gt;

&lt;p&gt;E2B was too confident in wrong answers - it wouldn't flag uncertainty, just return the wrong letter with high confidence. Not useful.&lt;/p&gt;

&lt;p&gt;31B Dense is probably better at this but it won't run on a normal laptop. Defeats the local-first point.&lt;/p&gt;

&lt;p&gt;E4B was the right call. Small enough to run locally, but it actually understands "I'm not sure about this one" - it'll return medium or low confidence instead of just guessing. That matters more than people think.&lt;/p&gt;

&lt;h3&gt;
  
  
  Honest results
&lt;/h3&gt;

&lt;p&gt;After all the iteration, batch tested on 66 images:&lt;/p&gt;

&lt;p&gt;Overall: 59.1%&lt;br&gt;
Letters that hit 100%: B, D, E, F, G, H, K, R, T, U, X, Y, Z&lt;br&gt;
Worst: I, O, P at 0%, V at 22%&lt;br&gt;
Not perfect. But this is a general model, no training, just prompting. And I know exactly which letters to focus on next time I run the loop again - .&lt;/p&gt;

&lt;h3&gt;
  
  
  What I took away
&lt;/h3&gt;

&lt;p&gt;You don't need a specialised model for everything. Sometimes a good prompt and a few iterations gets you further than you expect. But "a few iterations" is doing a lot of work in that sentence. Tt's genuinely trial and error, and you have to be okay with that.&lt;/p&gt;

&lt;p&gt;Also, always check what folders your auto-sorter is creating - haha.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>gemmachallenge</category>
      <category>gemma</category>
    </item>
    <item>
      <title>I built a real-time ASL interpreter for the Gemma4 challenge, no cloud needed</title>
      <dc:creator>Ngawang Tenzin</dc:creator>
      <pubDate>Sun, 17 May 2026 10:46:23 +0000</pubDate>
      <link>https://forem.com/cbms26/i-built-a-real-time-asl-interpreter-for-the-gemma4-challenge-no-cloud-needed-5gdj</link>
      <guid>https://forem.com/cbms26/i-built-a-real-time-asl-interpreter-for-the-gemma4-challenge-no-cloud-needed-5gdj</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/google-gemma-2026-05-06"&gt;Gemma 4 Challenge: Build with Gemma 4&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;A real-time &lt;strong&gt;American Sign Language (ASL) alphabet interpreter&lt;/strong&gt; that runs 100% on your own machine - no api key, no cloud, no subscription. Hold up your hand showing a sign-lan in front of your webcam, hit capture, and Gemma4 tells you which letter it thinks it sees, how confident it is, and what it notice about your hand position.&lt;/p&gt;

&lt;p&gt;The pipeline design is: &lt;br&gt;
Webcam -&amp;gt; MediaPipe (hand detection + cropping only) -&amp;gt; Gemma4 does the hard work (i.e., ASL recognition) -&amp;gt; Result&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Repo + setup:&lt;/strong&gt; &lt;em&gt;[&lt;a href="https://github.com/cbms26/asl-interpreter" rel="noopener noreferrer"&gt;https://github.com/cbms26/asl-interpreter&lt;/a&gt;]&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why this, and why Gemma4:e4b
&lt;/h2&gt;

&lt;p&gt;Most ASL recognition tools out there either need a cloud API or have rely on a dedicated sign-language model pre-trained specifically on ASL datasets. Both approaches have real trade-offs; one cloud APIs mean your hand gestures are going to some server, and secondly, a purpose-built model means you're stuck with whatever letters it was trained on.&lt;br&gt;
I wanted to see how well a general purpose vision model like Gemma4 could&lt;br&gt;
handle ASL recognition just by being given a good specific-description of what each letter looks like. No fine-tuning, no dataset, just programmatic prompting. And everything had to run locally because privacy matters (esp. when your webcam is in use).&lt;/p&gt;

&lt;p&gt;I went with &lt;strong&gt;gemma4:e4b&lt;/strong&gt; specifically. E2B was too small to handle the&lt;br&gt;
subtle differences between similar letters. The 31B Dense model is great&lt;br&gt;
but won't run on most people's laptops. E4B hit the sweet spot — capable&lt;br&gt;
enough to reason about fine hand shapes, light enough to run locally.&lt;/p&gt;

&lt;h2&gt;
  
  
  The one design decision worth explaining
&lt;/h2&gt;

&lt;p&gt;The obvious approach is sending the raw webcam frame to Gemma 4 and asking&lt;br&gt;
it to identify the sign. That works, but accuracy is noticeably worse&lt;br&gt;
because the model splits its attention between the hand, the background,&lt;br&gt;
the face, the lighting, and everything else in frame.&lt;/p&gt;

&lt;p&gt;The fix was adding &lt;strong&gt;MediaPipe&lt;/strong&gt; as a pre-processing step. It runs in the&lt;br&gt;
browser at ~15fps, detects the hand, and crops a tight (512×512) square&lt;br&gt;
around it. That cropped image, hand only, nothing else - is what Gemma4&lt;br&gt;
actually sees.&lt;br&gt;
MediaPipe handles &lt;em&gt;where the hand is&lt;/em&gt;. Gemma 4 handles &lt;em&gt;what letter it is&lt;/em&gt;. Separating those two jobs made the biggest accuracy difference of anything I tried.&lt;/p&gt;

&lt;h2&gt;
  
  
  Prompt engineering did real work here
&lt;/h2&gt;

&lt;p&gt;Gemma 4 had no ASL training. To make up for that, I wrote precise specific-descriptions of all 26 letters and explicit disambiguation rules for the pairs the model kept getting confused:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"A vs S: In A the thumb is BESIDE the index finger. In S the thumb is&lt;br&gt;
folded OVER the knuckles."&lt;/em&gt;&lt;br&gt;
&lt;em&gt;"M vs N vs T: All involve fingers folded over the thumb.&lt;br&gt;
M = 3 fingers, N = 2 fingers, T = thumb between index and middle."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Writing those out forced me to actually understand the signs properly.&lt;br&gt;
And it worked - the confused-pair accuracy improved significantly once&lt;br&gt;
the model had explicit rules to fall back on. No fine-tuning needed.&lt;/p&gt;

&lt;h2&gt;
  
  
  How I measured it (not just vibes)
&lt;/h2&gt;

&lt;p&gt;I didn't just demo the app and call it done. I built a proper evaluation&lt;br&gt;
pipeline:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Extract frames from an ASL tutorial video&lt;/li&gt;
&lt;li&gt;Let Gemma 4 auto-sort them into &lt;code&gt;test_signs/&amp;lt;LETTER&amp;gt;/&lt;/code&gt; folders&lt;/li&gt;
&lt;li&gt;Run &lt;code&gt;batch_tester.py&lt;/code&gt; to measure per-letter accuracy with ground truth&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Every interaction — webcam captures, batch runs, model sorts — gets&lt;br&gt;
appended to a timestamped CSV log. The webcam UI also has a thumbs-up/thumbs-down feedback button. If the model is wrong, you pick the correct letter from an A-Z picker so the log captures &lt;em&gt;what&lt;/em&gt; it got wrong, not just &lt;em&gt;that&lt;/em&gt; it got it wrong.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Results so far:&lt;/strong&gt;&lt;br&gt;
folder 1 got created due to model thinking letter D sign as 1 - interesting&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%2F522qrzv1p5xzqv4m3ti0.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%2F522qrzv1p5xzqv4m3ti0.png" alt="Baseline accuracy report from batch_tester.py" width="492" height="770"&gt;&lt;/a&gt;&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%2Fje53rb95ugz0hxa2l8pv.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%2Fje53rb95ugz0hxa2l8pv.png" alt="worst performing letters" width="488" height="163"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Summary report:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Total images:  66&lt;/li&gt;
&lt;li&gt;Overall:       59.1%&lt;/li&gt;
&lt;li&gt;Best letters:  B, D, E, F, G, H, K, R, T, U, X, Y, Z -&amp;gt; 100%&lt;/li&gt;
&lt;li&gt;Worst letters: I (0%), O (0%), P (0%), V (22%)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;During live webcam testing, the built-in feedback captured 15 sessions - 3 correct (thumbs up) and 12 incorrect (thumbs down with the actual letter logged). Common webcam misidentifications included O predicted instead of A, C, or E, and blank/low-confidence responses on letters like D and F.&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%2Frb3ek6t08bvr2fzbcz22.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%2Frb3ek6t08bvr2fzbcz22.png" alt="Live webcam feedback_log.csv" width="603" height="392"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What surprised me
&lt;/h2&gt;

&lt;p&gt;The hardest letters aren't the ones I expected. J and Z both involve&lt;br&gt;
motion in real ASL - J traces an arc, Z traces a Z shape in the air.&lt;br&gt;
In a still image they look almost identical to I and A. Gemma 4 actually&lt;br&gt;
handles this well by flagging them as &lt;code&gt;low&lt;/code&gt; confidence rather than&lt;br&gt;
guessing confidently wrong. That's the honest answer. &lt;br&gt;
Clean input also mattered more than prompt length. The biggest accuracy jump came from cropping with MediaPipe and clear background, not from making the prompt more detailed. &lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;Short demo walkthrough - &lt;a href="https://youtu.be/jDNOOyWUUOc" rel="noopener noreferrer"&gt;Goes to YouTube&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;It was really fun to take on this challenge.&lt;/em&gt; &lt;strong&gt;Thank you DEV community!&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>gemmachallenge</category>
      <category>gemma</category>
      <category>opensource</category>
    </item>
    <item>
      <title>How I Built a Retro Terminal Panel in React</title>
      <dc:creator>Ngawang Tenzin</dc:creator>
      <pubDate>Sat, 06 Sep 2025 06:31:32 +0000</pubDate>
      <link>https://forem.com/cbms26/how-i-built-a-retro-terminal-panel-in-react-1gjp</link>
      <guid>https://forem.com/cbms26/how-i-built-a-retro-terminal-panel-in-react-1gjp</guid>
      <description>&lt;p&gt;After sharing my portfolio project on DEV, a fellow community member commented asking how I built the retro terminal panel. So, I decided to break down the logic and share the details here!&lt;/p&gt;

&lt;p&gt;The goal was to show a series of commands and outputs, just like a real terminal, and animate them. I also wanted a blinking cursor and a “reset” effect after all lines are shown.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The State&lt;/strong&gt;&lt;br&gt;
I used React’s useState to keep track of the lines currently displayed in the terminal:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const [terminalLines, setTerminalLines] = useState([] as string[]);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;The Commands&lt;/strong&gt;&lt;br&gt;
I defined the commands and outputs as an array:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const terminalCommands = [
  '&amp;gt; whoami',
  'ngawang_tenzin',
  '&amp;gt; cat skills.txt',
  'React.js | Node.js | Python | TypeScript',
  '&amp;gt; ls projects/',
  'barma-sorig-web-app/ | quiz-mobile-app/ | portfolio-website/',
  '&amp;gt; status',
  'AVAILABLE FOR HIRE',
  '&amp;gt; echo "Let\'s build something amazing!"',
  "Let's build something amazing!"
];
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;The Animation Logic&lt;/strong&gt;&lt;br&gt;
I used useEffect to set up an interval that adds one line at a time to the terminal. Here’s the core logic:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;useEffect(() =&amp;gt; {
  let terminalInterval: ReturnType&amp;lt;typeof setInterval&amp;gt; | undefined;
  let lineIndex = 0;
  if (isRetroMode) {
    terminalInterval = setInterval(() =&amp;gt; {
      if (lineIndex &amp;lt; terminalCommands.length &amp;amp;&amp;amp; terminalCommands[lineIndex]) {
        setTerminalLines(prev =&amp;gt; {
          const newLines = prev.slice();
          newLines.push(terminalCommands[lineIndex]);
          return newLines;
        });
        lineIndex++;
      } else {
        setTimeout(() =&amp;gt; {
          setTerminalLines([]);
          lineIndex = 0;
        }, 3000);
      }
    }, 800);
  } else {
    setTerminalLines([]);
  }
  return () =&amp;gt; {
    if (terminalInterval) clearInterval(terminalInterval);
  };
}, [isRetroMode]);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Every 800ms, a new line is added.&lt;/li&gt;
&lt;li&gt;When all lines are shown, it waits 3 seconds, then resets the terminal.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;The Styling&lt;/strong&gt;&lt;br&gt;
I used CSS to get the neon green text, dark background, and blinking cursor. Here’s a snippet:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.terminal-line.command {
  color: #00ff41;
}
.terminal-line.output {
  color: #cccccc;
  margin-left: 1rem;
}
.terminal-cursor {
  color: #00ff41;
  animation: blink 1s infinite;
}
@keyframes blink {
  0%, 50% { opacity: 1; }
  51%, 100% { opacity: 0; }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Result&lt;/strong&gt;&lt;br&gt;
The result is a dynamic, animated terminal panel that brings a retro vibe to my portfolio. It’s all handled with React state and effects, making it easy to customize and integrate with the rest of my site.&lt;/p&gt;

</description>
      <category>react</category>
      <category>typescript</category>
      <category>css</category>
      <category>design</category>
    </item>
    <item>
      <title>[Boost]</title>
      <dc:creator>Ngawang Tenzin</dc:creator>
      <pubDate>Fri, 05 Sep 2025 11:00:20 +0000</pubDate>
      <link>https://forem.com/cbms26/-451b</link>
      <guid>https://forem.com/cbms26/-451b</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/cbms26/my-portfolio-journey-v0-to-v1-feedback-welcome-gbc" class="crayons-story__hidden-navigation-link"&gt;My Portfolio Journey: v0 to v1 – Feedback Welcome!&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="/cbms26" 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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3081552%2F0cc60a78-1179-4eb1-970a-5c49fa56b0dc.png" alt="cbms26 profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/cbms26" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Ngawang Tenzin
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Ngawang Tenzin
                
              
              &lt;div id="story-author-preview-content-2821614" 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="/cbms26" 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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3081552%2F0cc60a78-1179-4eb1-970a-5c49fa56b0dc.png" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Ngawang Tenzin&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/cbms26/my-portfolio-journey-v0-to-v1-feedback-welcome-gbc" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Sep 5 '25&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/cbms26/my-portfolio-journey-v0-to-v1-feedback-welcome-gbc" id="article-link-2821614"&gt;
          My Portfolio Journey: v0 to v1 – Feedback Welcome!
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/beginners"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;beginners&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/react"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;react&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/typescript"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;typescript&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/aws"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;aws&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/cbms26/my-portfolio-journey-v0-to-v1-feedback-welcome-gbc" 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/exploding-head-daceb38d627e6ae9b730f36a1e390fca556a4289d5a41abb2c35068ad3e2c4b5.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/multi-unicorn-b44d6f8c23cdd00964192bedc38af3e82463978aa611b4365bd33a0f1f4f3e97.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;6&lt;span class="hidden s:inline"&gt; reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/cbms26/my-portfolio-journey-v0-to-v1-feedback-welcome-gbc#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              Comments


              9&lt;span class="hidden s:inline"&gt; comments&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;span class="bm-initial"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
      <category>beginners</category>
      <category>react</category>
      <category>typescript</category>
      <category>aws</category>
    </item>
    <item>
      <title>My Portfolio Journey: v0 to v1 – Feedback Welcome!</title>
      <dc:creator>Ngawang Tenzin</dc:creator>
      <pubDate>Fri, 05 Sep 2025 10:55:53 +0000</pubDate>
      <link>https://forem.com/cbms26/my-portfolio-journey-v0-to-v1-feedback-welcome-gbc</link>
      <guid>https://forem.com/cbms26/my-portfolio-journey-v0-to-v1-feedback-welcome-gbc</guid>
      <description>&lt;p&gt;Hi DEV Community!&lt;br&gt;
I’m excited to share my personal portfolio project and its evolution from v0 to v1. I’d love your feedback, suggestions, and thoughts to help me improve further!&lt;/p&gt;

&lt;p&gt;🔗 Portfolio Links&lt;br&gt;
v0: [&lt;a href="https://cbms26.github.io/portfolio-v0/" rel="noopener noreferrer"&gt;https://cbms26.github.io/portfolio-v0/&lt;/a&gt;]&lt;br&gt;
v1: [&lt;a href="https://cbms26.github.io/portfolio-v1/" rel="noopener noreferrer"&gt;https://cbms26.github.io/portfolio-v1/&lt;/a&gt;]&lt;/p&gt;

&lt;p&gt;✨ What’s New in v1?&lt;br&gt;
Retro/Professional theme toggle&lt;br&gt;
Scroll indicator with “Reached End” message&lt;br&gt;
Centered, clickable action buttons&lt;br&gt;
Custom retro footer&lt;br&gt;
Retro specs overlay on profile image (with glitter effect!)&lt;br&gt;
Improved UI/UX and responsive design&lt;/p&gt;

&lt;p&gt;🛠️ Tech Stack&lt;br&gt;
React (Vite + Typescript) - used for the first time&lt;br&gt;
CSS (custom themes for retro)&lt;/p&gt;

&lt;p&gt;💬 Feedback Wanted!&lt;br&gt;
What do you think about the design and user experience?&lt;br&gt;
Any suggestions for new features or improvements?&lt;br&gt;
How’s the performance and accessibility?&lt;br&gt;
Which style would you prefer?&lt;/p&gt;

&lt;p&gt;🙏 Thank You!&lt;br&gt;
Your feedback means a lot and will help me grow as a developer.&lt;br&gt;
Drop your comments below or connect with me!&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>react</category>
      <category>typescript</category>
      <category>aws</category>
    </item>
    <item>
      <title>CSS Art: My Home Office Setup</title>
      <dc:creator>Ngawang Tenzin</dc:creator>
      <pubDate>Sat, 26 Jul 2025 22:27:11 +0000</pubDate>
      <link>https://forem.com/cbms26/css-art-my-home-office-setup-3fp6</link>
      <guid>https://forem.com/cbms26/css-art-my-home-office-setup-3fp6</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for &lt;a href="https://dev.to/challenges/frontend/axero"&gt;Frontend Challenge: Office Edition sponsored by Axero, CSS Art: Office Culture&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Inspiration
&lt;/h2&gt;

&lt;p&gt;This CSS art piece represents my actual (or somewhat :3) home office setup! Since I haven't worked in a traditional office culture yet, I decided to recreate my personal workspace - the place where I code, learn, and build projects. The interactive door concept came from the idea that behind every developer's door is their personal sanctuary, their command center where magic happens. &lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&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%2Ffxc04tq28xspq47lebcw.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%2Ffxc04tq28xspq47lebcw.png" alt="CSS Art Office" width="800" height="390"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://cbms26.github.io/dev-front-end-challenge-css-art-office-culture/" rel="noopener noreferrer"&gt;Live Demo&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  How it works:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Click the door knob&lt;/strong&gt; to enter my home office&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Realistic setup&lt;/strong&gt;: Gaming chair, dual monitor configuration (portrait + landscape), laptop on cooling stand, speakers, and my beloved lavender plant&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Personal touch&lt;/strong&gt;: Everything positioned exactly like my real workspace&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Interactive experience&lt;/strong&gt;: Smooth door fade-out reveals the complete setup&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Journey
&lt;/h2&gt;

&lt;p&gt;This project was both a technical challenge and a personal documentation of my coding space!&lt;/p&gt;

&lt;h3&gt;
  
  
  Personal Connection
&lt;/h3&gt;

&lt;p&gt;This isn't just CSS art - it's a digital twin of where I actually spend my days learning web development. The dual monitor setup helps me code efficiently, the gaming chair keeps me comfortable during long study sessions, and that little lavender plant makes the space feel more alive.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why This Setup:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Dual monitors&lt;/strong&gt;: Portrait monitor for code, landscape for documentation/browser&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Gaming chair&lt;/strong&gt;: Because comfort matters during long coding sessions&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Laptop + cooling stand&lt;/strong&gt;: My trusty development machine&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Lavender plant&lt;/strong&gt;: Adds some life and calm to the workspace (and smells amazing!)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Speakers&lt;/strong&gt;: For those coding playlists that keep me focused&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Technical Highlights:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Pure CSS Art&lt;/strong&gt;: No images - everything built with CSS shapes, gradients, and clever positioning&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Realistic proportions&lt;/strong&gt;: Spent time getting the monitor sizes and desk dimensions right&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Z-index mastery&lt;/strong&gt;: The chair sits behind everything (&lt;code&gt;z-index: -1&lt;/code&gt;) to show the "entering the room" perspective&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Interactive door&lt;/strong&gt;: Smooth transitions make the experience feel natural&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;5-star chair base&lt;/strong&gt;: Detailed gaming chair with proper legs using &lt;code&gt;box-shadow&lt;/code&gt; technique&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  CSS Techniques I'm Proud Of:
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Complex Chair Design
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.chair-base&lt;/span&gt;&lt;span class="nd"&gt;::after&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;content&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;''&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;width&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;3px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;height&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;25px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;background-color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;#333&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;position&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;absolute&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;left&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;50%&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;top&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;15px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;transform&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;translateX&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;-50%&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nl"&gt;border-radius&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;2px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;box-shadow&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="m"&gt;25px&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt; &lt;span class="m"&gt;#333&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="m"&gt;-25px&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt; &lt;span class="m"&gt;#333&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="m"&gt;12px&lt;/span&gt; &lt;span class="m"&gt;22px&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt; &lt;span class="m"&gt;#333&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="m"&gt;-12px&lt;/span&gt; &lt;span class="m"&gt;22px&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt; &lt;span class="m"&gt;#333&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;
  
  
  Mounting Arm for monitors
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.monitor-arm&lt;/span&gt;&lt;span class="nd"&gt;::before&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;content&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;''&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;width&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;250px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;height&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;8px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;background-color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;#666&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;position&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;absolute&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;top&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;30px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;left&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;-121px&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;
  
  
  What I Learned???
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;How to layer elements with z-index for realistic depth&lt;/li&gt;
&lt;li&gt;Creating complex shapes with pseudo-elements&lt;/li&gt;
&lt;li&gt;The importance of getting proportions right for believability&lt;/li&gt;
&lt;li&gt;How personal touches (like the plant) make technical art more engaging&lt;/li&gt;
&lt;li&gt;Advanced positioning techniques for creating perspective&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  License
&lt;/h2&gt;

&lt;p&gt;This project is open source and available under MIT License.&lt;/p&gt;

</description>
      <category>frontendchallenge</category>
      <category>devchallenge</category>
      <category>css</category>
      <category>learning</category>
    </item>
    <item>
      <title>Tangerine Hub: A Modern Office Intranet with Glassmorphism Design</title>
      <dc:creator>Ngawang Tenzin</dc:creator>
      <pubDate>Mon, 21 Jul 2025 04:50:56 +0000</pubDate>
      <link>https://forem.com/cbms26/tangerine-hub-a-modern-office-intranet-with-glassmorphism-design-34e3</link>
      <guid>https://forem.com/cbms26/tangerine-hub-a-modern-office-intranet-with-glassmorphism-design-34e3</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for &lt;a href="https://dev.to/challenges/frontend/axero"&gt;Frontend Challenge: Office Edition sponsored by Axero, Holistic Webdev: Office Space&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;I created a modern office intranet homepage that serves as a central hub for employees. The design features a clean, professional layout with a dashboard-style interface that includes company announcements, learning events, performance metrics, and team spotlights. The goal was to build an engaging workspace that helps employees stay connected and productive.&lt;/p&gt;

&lt;p&gt;The intranet includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Dynamic hero section with live clock and weather widgets&lt;/li&gt;
&lt;li&gt;Six-card dashboard grid with essential workplace information&lt;/li&gt;
&lt;li&gt;Sidebar with recent activity timeline and team member highlights&lt;/li&gt;
&lt;li&gt;Breadcrumb navigation for clear user orientation&lt;/li&gt;
&lt;li&gt;Quick action buttons for common tasks&lt;/li&gt;
&lt;li&gt;Responsive design that works on all devices&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Live Demo:&lt;/strong&gt; &lt;a href="https://cbms26.github.io/dev-front-end-challenge-office-space-/" rel="noopener noreferrer"&gt;https://cbms26.github.io/dev-front-end-challenge-office-space-/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Source Code:&lt;/strong&gt; &lt;a href="https://github.com/cbms26/dev-front-end-challenge-office-space-" rel="noopener noreferrer"&gt;https://github.com/cbms26/dev-front-end-challenge-office-space-&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Journey
&lt;/h2&gt;

&lt;p&gt;This project taught me the importance of balancing information density with visual breathing room. I started with a content-heavy layout but learned that professional enterprise applications need generous white space to maintain readability and user focus.&lt;/p&gt;

&lt;p&gt;Key design decisions I'm proud of:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Glassmorphism effects&lt;/strong&gt; - Used backdrop filters and transparent overlays to create depth while maintaining the clean aesthetic&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Container width constraints&lt;/strong&gt; - Added a max-width of 1400px with centered content to prevent the layout from becoming too wide on large screens&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Color strategy&lt;/strong&gt; - Built the entire design around an orange theme (#ff6b35, #f7931e) that feels energetic yet professional&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Responsive grid system&lt;/strong&gt; - Created a flexible dashboard that gracefully adapts from 3 columns to single column on mobile devices&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Navigation breadcrumbs&lt;/strong&gt; - Implemented clear navigation paths to help users understand their location within the intranet structure&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The biggest challenge was finding the right balance between displaying lots of workplace information without overwhelming users. Through iterative spacing improvements, I learned that good design is often about what you don't show as much as what you do.&lt;/p&gt;

&lt;p&gt;Technical highlights include CSS Grid for the dashboard layout, flexbox for component alignment, and smooth hover transitions that provide visual feedback without being distracting.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>frontendchallenge</category>
      <category>css</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Degrees Don’t Define Understanding</title>
      <dc:creator>Ngawang Tenzin</dc:creator>
      <pubDate>Fri, 25 Apr 2025 01:17:02 +0000</pubDate>
      <link>https://forem.com/cbms26/degrees-dont-define-understanding-4763</link>
      <guid>https://forem.com/cbms26/degrees-dont-define-understanding-4763</guid>
      <description>&lt;h2&gt;
  
  
  My Brief Realization
&lt;/h2&gt;

&lt;p&gt;I finished my Bachelor’s back in 2020. Now, in just a few weeks, I’ll be done with my master’s too. &lt;/p&gt;

&lt;p&gt;But honestly? Even with all these qualifications, I still feel like I &lt;em&gt;don't really&lt;/em&gt; know what I've learned or how to apply most of it. 'Yes, I did multiple projects, both individual and as team', but my brain's been stuffed with so much sub-information that it's hard to even tell what truly stuck.&lt;/p&gt;

&lt;p&gt;Somewhere along the way though, I realized one thing.&lt;br&gt;
What I genuinely enjoyed wasn't tied to any subject or course; it was just &lt;strong&gt;coding&lt;/strong&gt;. Not frontend, backend, game dev, or AI in particular; just the &lt;em&gt;joy of coding&lt;/em&gt; itself.&lt;br&gt;
I just wanted to build to understand how things actually work behind the scenes like in apps, systems or software. That curiosity still drives me and that's what made me feel alive.&lt;/p&gt;

&lt;p&gt;But here's the part that bugs me now;&lt;br&gt;
&lt;strong&gt;Why can't it be simple to just code and learn?&lt;/strong&gt;&lt;br&gt;
There are like hundreds of languages out there. Every single one has its own weird syntax, its own rules. I get that each one was made for a reason; different needs, different platforms, different eras, and they all have their purpose.&lt;br&gt;
But sometimes, it feels like all that complexity just pushes people away from the core joy of coding. Like, what if there was one universal language?&lt;/p&gt;

&lt;p&gt;Maybe one day, when quantum computers finally work as we dream, and the so-called "God equation" gets solved; we will also reach a point where there's one universal coding language. One way to build and create without worrying about all the syntaxes, just pure logic and pure creativity.&lt;/p&gt;

&lt;p&gt;Anyways, I don’t have it all figured out yet.&lt;br&gt;
But I know this much: I still want to code. I still want to learn how things work. And maybe that’s enough for now.&lt;/p&gt;

&lt;p&gt;Currently, I’m diving into the command line, shell scripting, and Linux systems — just trying to get closer to how things really run behind the scenes.&lt;br&gt;
It’s not flashy, but it feels real. Feels right.&lt;/p&gt;

</description>
      <category>realization</category>
      <category>joyofcoding</category>
      <category>programming</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
