<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: GIRIDHARAN S</title>
    <description>The latest articles on DEV Community by GIRIDHARAN S (@giridharans1729).</description>
    <link>https://dev.to/giridharans1729</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%2F1701488%2Fa9b97756-85a3-47ce-85d4-edc9add5d82e.png</url>
      <title>DEV Community: GIRIDHARAN S</title>
      <link>https://dev.to/giridharans1729</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/giridharans1729"/>
    <language>en</language>
    <item>
      <title>What I've Been Building as a Full Stack Developer — 2025 Edition</title>
      <dc:creator>GIRIDHARAN S</dc:creator>
      <pubDate>Mon, 16 Mar 2026 19:10:26 +0000</pubDate>
      <link>https://dev.to/giridharans1729/what-ive-been-building-as-a-full-stack-developer-2025-edition-2p71</link>
      <guid>https://dev.to/giridharans1729/what-ive-been-building-as-a-full-stack-developer-2025-edition-2p71</guid>
      <description>&lt;p&gt;Hey devs 👋&lt;/p&gt;

&lt;p&gt;I’m &lt;strong&gt;Giridharan&lt;/strong&gt;, a &lt;strong&gt;Full Stack Developer&lt;/strong&gt; who spends most of his time building web apps with the &lt;strong&gt;MERN stack&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Recently I started working as a &lt;strong&gt;Frontend Engineer at a startup&lt;/strong&gt;, building production-scale applications and learning a lot about real-world software engineering along the way.&lt;/p&gt;

&lt;p&gt;I’ve been wanting to write publicly for a while, so I thought I’d start by sharing &lt;strong&gt;what I’ve been building recently&lt;/strong&gt; — both at work and in my personal projects.&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%2F156k3hfva3gik4s7cogc.jpg" 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%2F156k3hfva3gik4s7cogc.jpg" alt="Full Stack Developer" width="800" height="446"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  🧑‍💻 What I Work On Daily
&lt;/h1&gt;

&lt;p&gt;At the startup where I work, my role mainly focuses on building &lt;strong&gt;scalable React applications&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Most of my day involves:&lt;/p&gt;

&lt;p&gt;⚛️ Building reusable React components&lt;br&gt;
📦 Managing application state with &lt;strong&gt;Redux Toolkit &amp;amp; RTK Query&lt;/strong&gt;&lt;br&gt;
🧩 Designing &lt;strong&gt;Micro-Frontend architectures&lt;/strong&gt;&lt;br&gt;
🔗 Integrating APIs and improving application performance&lt;/p&gt;

&lt;p&gt;One of the most interesting things I work with is &lt;strong&gt;Micro-Frontend architecture&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Instead of one massive frontend application, the system is split into &lt;strong&gt;multiple independent mini-apps&lt;/strong&gt; that can be developed and deployed separately.&lt;/p&gt;

&lt;p&gt;It’s complex… but extremely powerful when done right.&lt;/p&gt;




&lt;h1&gt;
  
  
  🛠️ Things I've Built Outside Work
&lt;/h1&gt;

&lt;p&gt;Outside of work, I spend a lot of time building small tools and platforms that solve real problems.&lt;/p&gt;

&lt;p&gt;Here are a few of my projects 👇&lt;/p&gt;




&lt;h1&gt;
  
  
  🔗 Linkvio — URL Shortener Platform
&lt;/h1&gt;

&lt;p&gt;A scalable URL shortening platform designed for fast redirects and secure link management.&lt;/p&gt;

&lt;p&gt;Key features include:&lt;/p&gt;

&lt;p&gt;⚡ &lt;strong&gt;Redis caching&lt;/strong&gt; for very fast redirects&lt;br&gt;
🔐 &lt;strong&gt;Role-Based Access Control (RBAC)&lt;/strong&gt;&lt;br&gt;
🗄️ &lt;strong&gt;PostgreSQL&lt;/strong&gt; for structured link storage&lt;br&gt;
🧩 Modular Node.js backend with a clean React frontend&lt;/p&gt;

&lt;p&gt;This project taught me a lot about &lt;strong&gt;backend architecture and caching strategies&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;🌐 &lt;strong&gt;Live Demo:&lt;/strong&gt;&lt;br&gt;
👉 &lt;a href="https://linkvio.vercel.app" rel="noopener noreferrer"&gt;https://linkvio.vercel.app&lt;/a&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  📸 Imgsend — Permanent File Sharing
&lt;/h1&gt;

&lt;p&gt;Imgsend is a file sharing platform that supports:&lt;/p&gt;

&lt;p&gt;🖼 Images&lt;br&gt;
🎥 Videos&lt;br&gt;
📄 PDFs&lt;br&gt;
🔗 URLs&lt;/p&gt;

&lt;p&gt;You upload a file and get a &lt;strong&gt;permanent shareable link&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;No expiry.&lt;br&gt;
No account required to view.&lt;/p&gt;

&lt;p&gt;Think of it as a &lt;strong&gt;lightweight permanent file sharing tool&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;🌐 &lt;strong&gt;Live Demo:&lt;/strong&gt;&lt;br&gt;
👉 &lt;a href="https://imgsend.vercel.app" rel="noopener noreferrer"&gt;https://imgsend.vercel.app&lt;/a&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  📝 Blogsphere — Blogging Platform
&lt;/h1&gt;

&lt;p&gt;Blogsphere is a &lt;strong&gt;MERN-based blogging platform&lt;/strong&gt; where users can publish and share articles.&lt;/p&gt;

&lt;p&gt;Features include:&lt;/p&gt;

&lt;p&gt;🔐 JWT Authentication&lt;br&gt;
👥 Role-Based Access Control&lt;br&gt;
✍️ Rich content publishing&lt;br&gt;
📱 Responsive UI&lt;/p&gt;

&lt;p&gt;It was a great project for learning about &lt;strong&gt;authentication, authorization, and API design&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;🌐 &lt;strong&gt;Live Demo:&lt;/strong&gt;&lt;br&gt;
👉 &lt;a href="https://gblogs.vercel.app" rel="noopener noreferrer"&gt;https://gblogs.vercel.app&lt;/a&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  🤖 Product Sentiment Analysis
&lt;/h1&gt;

&lt;p&gt;This project analyzes &lt;strong&gt;product reviews using machine learning&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Users submit reviews and the system classifies them as:&lt;/p&gt;

&lt;p&gt;😀 Positive&lt;br&gt;
😐 Neutral&lt;br&gt;
😡 Negative&lt;/p&gt;

&lt;p&gt;The interesting part here was connecting &lt;strong&gt;machine learning inference with a web application UI&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;🌐 &lt;strong&gt;Project Page:&lt;/strong&gt;&lt;br&gt;
👉 &lt;a href="https://gsenti.vercel.app" rel="noopener noreferrer"&gt;https://gsenti.vercel.app&lt;/a&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  📦 My First npm Package
&lt;/h1&gt;

&lt;p&gt;I also published my first npm package:&lt;/p&gt;

&lt;h3&gt;
  
  
  📦 &lt;code&gt;@giridharans/qr-code&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;A lightweight &lt;strong&gt;QR code generator for React applications&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;It allows developers to generate QR codes with simple props like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;value&lt;/li&gt;
&lt;li&gt;size&lt;/li&gt;
&lt;li&gt;colors&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;📦 &lt;strong&gt;npm Package:&lt;/strong&gt;&lt;br&gt;
👉 &lt;a href="https://www.npmjs.com/package/@giridharans/qr-code" rel="noopener noreferrer"&gt;https://www.npmjs.com/package/@giridharans/qr-code&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Publishing my own npm package was a &lt;strong&gt;really exciting milestone&lt;/strong&gt;.&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%2Fqnduvex7ay3nn3yman2w.jpg" 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%2Fqnduvex7ay3nn3yman2w.jpg" alt=" " width="800" height="436"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  📊 By the Numbers
&lt;/h1&gt;

&lt;p&gt;So far in my developer journey:&lt;/p&gt;

&lt;p&gt;🏗 Multiple production apps deployed&lt;br&gt;
📦 1 npm package published&lt;br&gt;
⚔️ 500+ coding problems solved&lt;br&gt;
🌐 Portfolio:&lt;br&gt;
👉 &lt;a href="https://giridharans.tech" rel="noopener noreferrer"&gt;https://giridharans.tech&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🔭 Projects showcase:&lt;br&gt;
👉 &lt;a href="https://1729apps.vercel.app" rel="noopener noreferrer"&gt;https://1729apps.vercel.app&lt;/a&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  🚀 What I'm Learning Next
&lt;/h1&gt;

&lt;p&gt;Right now I'm focusing on:&lt;/p&gt;

&lt;p&gt;⚙️ System design concepts&lt;br&gt;
☁️ Cloud technologies&lt;br&gt;
🧠 Writing better scalable code&lt;/p&gt;

&lt;p&gt;And also something I’ve been delaying for too long:&lt;/p&gt;

&lt;p&gt;✍️ &lt;strong&gt;Writing more technical blogs&lt;/strong&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  🤝 Let's Connect
&lt;/h1&gt;

&lt;p&gt;If you're working with:&lt;/p&gt;

&lt;p&gt;⚛️ React&lt;br&gt;
🌐 MERN stack&lt;br&gt;
🏗 Micro-Frontend architecture&lt;/p&gt;

&lt;p&gt;I'd love to connect and learn from you.&lt;/p&gt;

&lt;p&gt;You can find my work here:&lt;/p&gt;

&lt;p&gt;🌐 Portfolio: &lt;a href="https://giridharans.tech" rel="noopener noreferrer"&gt;https://giridharans.tech&lt;/a&gt;&lt;br&gt;
🔭 Projects: &lt;a href="https://1729apps.vercel.app" rel="noopener noreferrer"&gt;https://1729apps.vercel.app&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;Thanks for reading 🙌&lt;br&gt;
More posts coming soon about &lt;strong&gt;Micro-Frontends, system design, and building real-world projects.&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>mern</category>
      <category>javascript</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Tech Update: Next.js, Resend, and Cron Atlas Power Latest Hacker News Story Aggregator</title>
      <dc:creator>GIRIDHARAN S</dc:creator>
      <pubDate>Sat, 10 Aug 2024 18:23:55 +0000</pubDate>
      <link>https://dev.to/giridharans1729/tech-update-nextjs-resend-and-cron-atlas-power-latest-hacker-news-story-aggregator-1843</link>
      <guid>https://dev.to/giridharans1729/tech-update-nextjs-resend-and-cron-atlas-power-latest-hacker-news-story-aggregator-1843</guid>
      <description>&lt;h2&gt;
  
  
  New Aggregator Tool for Hacker News Launches Using Next.js, Resend, and Cron Atlas
&lt;/h2&gt;

&lt;p&gt;In the ever-evolving world of tech, staying updated with the latest news is crucial. A new tool has emerged that combines &lt;strong&gt;Next.js&lt;/strong&gt;, &lt;strong&gt;Resend&lt;/strong&gt;, and &lt;strong&gt;Cron Atlas&lt;/strong&gt; to provide a streamlined experience for aggregating Hacker News stories. This blog post will guide you through the components of this innovative tool and how they work together.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Hacker News?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Hacker News&lt;/strong&gt; is a popular social news website focusing on computer science and entrepreneurship. It features a wide array of user-submitted stories and discussions, making it a valuable resource for tech enthusiasts.&lt;/p&gt;

&lt;h2&gt;
  
  
  Introducing the Components
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Next.js
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Next.js&lt;/strong&gt; is a powerful React framework that enables server-side rendering and static site generation. It's perfect for building fast, dynamic web applications. In this aggregator, Next.js is used to create the front-end interface, providing a seamless user experience.&lt;/p&gt;

&lt;h3&gt;
  
  
  Resend
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Resend&lt;/strong&gt; is a service designed to handle email delivery. While it may seem unrelated, it's utilized in this project to send notifications about new stories or updates. By integrating Resend, users can stay informed without constantly checking the aggregator.&lt;/p&gt;

&lt;h3&gt;
  
  
  Cron Atlas
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Cron Atlas&lt;/strong&gt; is a scheduling service that allows you to run tasks at specified intervals. In this aggregator, Cron Atlas is used to fetch the latest Hacker News stories periodically, ensuring that the content is always up-to-date.&lt;/p&gt;

&lt;h2&gt;
  
  
  How It All Comes Together
&lt;/h2&gt;

&lt;p&gt;The integration of these three components creates a robust system for aggregating and delivering Hacker News stories. Here’s a brief overview of how they interact:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Fetching Stories&lt;/strong&gt;: &lt;code&gt;Cron Atlas&lt;/code&gt; schedules regular fetches of the latest stories from the Hacker News API.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Storing Data&lt;/strong&gt;: The fetched stories are stored in a database for efficient querying and retrieval.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Displaying Stories&lt;/strong&gt;: &lt;strong&gt;Next.js&lt;/strong&gt; is used to build the front-end that displays these stories in an organized manner.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Notifications&lt;/strong&gt;: &lt;strong&gt;Resend&lt;/strong&gt; handles the delivery of notifications to users about new stories or updates.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Code Snippets
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Fetching Stories with Cron Atlas
&lt;/h3&gt;

&lt;p&gt;To set up a scheduled task with Cron Atlas, you might use a script like this:&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="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;fetch&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;node-fetch&lt;/span&gt;&lt;span class="dl"&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;db&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;./database&lt;/span&gt;&lt;span class="dl"&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;fetchHackerNewsStories&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;async &lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;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;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nf"&gt;fetch&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;https://hacker-news.firebaseio.com/v0/topstories.json?print=pretty&lt;/span&gt;&lt;span class="dl"&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;storyIds&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;json&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;stories&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nb"&gt;Promise&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;all&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;storyIds&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;slice&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="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;map&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;id&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; 
        &lt;span class="nf"&gt;fetch&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`https://hacker-news.firebaseio.com/v0/item/&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;id&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;.json?print=pretty`&lt;/span&gt;&lt;span class="p"&gt;)&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;res&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;json&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;
    &lt;span class="p"&gt;));&lt;/span&gt;
    &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;db&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;saveStories&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;stories&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;

&lt;span class="nf"&gt;fetchHackerNewsStories&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Displaying Stories with Next.js
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Here's a basic example of how you might display these stories using Next.js:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;javascript&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import { useEffect, useState } from 'react';

const HomePage = () =&amp;gt; {
    const [stories, setStories] = useState([]);

    useEffect(() =&amp;gt; {
        const fetchStories = async () =&amp;gt; {
            const response = await fetch('/api/stories');
            const data = await response.json();
            setStories(data);
        };
        fetchStories();
    }, []);

    return (
        &amp;lt;div&amp;gt;
            &amp;lt;h1&amp;gt;Top Hacker News Stories&amp;lt;/h1&amp;gt;
            &amp;lt;ul&amp;gt;
                {stories.map(story =&amp;gt; (
                    &amp;lt;li key={story.id}&amp;gt;
                        &amp;lt;a href={story.url} target="_blank" rel="noopener noreferrer"&amp;gt;{story.title}&amp;lt;/a&amp;gt;
                    &amp;lt;/li&amp;gt;
                ))}
            &amp;lt;/ul&amp;gt;
        &amp;lt;/div&amp;gt;
    );
};

export default HomePage;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;This new aggregator tool demonstrates the power of combining Next.js, Resend, and Cron Atlas to create a comprehensive and user-friendly experience for following Hacker News stories. Whether you're a developer looking to build a similar tool or just curious about the tech stack, understanding these components can provide valuable insights into modern web development.&lt;/p&gt;

&lt;p&gt;Stay tuned for more updates and innovations in the tech world! 🚀🔧📱&lt;/p&gt;

</description>
      <category>techupdates</category>
      <category>nextjs</category>
      <category>resend</category>
      <category>news</category>
    </item>
    <item>
      <title>How does ChatGPT generate human-like text?</title>
      <dc:creator>GIRIDHARAN S</dc:creator>
      <pubDate>Sat, 10 Aug 2024 18:09:48 +0000</pubDate>
      <link>https://dev.to/giridharans1729/how-does-chatgpt-generate-human-like-text-46km</link>
      <guid>https://dev.to/giridharans1729/how-does-chatgpt-generate-human-like-text-46km</guid>
      <description>&lt;p&gt;&lt;strong&gt;&lt;a href="https://chatgpt.com/" rel="noopener noreferrer"&gt;ChatGPT&lt;/a&gt;&lt;/strong&gt;, developed by &lt;strong&gt;&lt;a href="https://openai.com/" rel="noopener noreferrer"&gt;OpenAI&lt;/a&gt;&lt;/strong&gt;, is a cutting-edge language model that has made a significant impact in the field of natural language processing. It uses deep learning algorithms to generate human-like text based on the input it receives, making it an excellent tool for chatbots, content creation, and other applications that require natural language processing. In this post, we will explore the workings of ChatGPT to understand how it generates human-like text.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Core of ChatGPT :
&lt;/h2&gt;

&lt;p&gt;The backbone of ChatGPT is a transformer-based neural network that has been trained on a massive amount of text data. This training allows the model to understand the patterns and relationships between words in a sentence and how they can be used to generate new text that is coherent and meaningful. The transformer-based architecture is a novel approach to machine learning that enables the model to learn and make predictions based on the context of the input. This makes it ideal for language models that need to generate text that is relevant to the context of a conversation.&lt;/p&gt;

&lt;h2&gt;
  
  
  How ChatGPT Generates Text :
&lt;/h2&gt;

&lt;p&gt;ChatGPT uses an autoregressive language modeling approach to generate text. When you provide input to ChatGPT, the model first encodes the input into a vector representation. This representation is then used to generate a probability distribution over the next word in the sequence. The model selects the most likely next word and generates a new vector representation based on the new input. This process is repeated until the desired length of text has been developed.&lt;/p&gt;

&lt;p&gt;One of the key strengths of ChatGPT is its ability to handle context. The model has been trained to understand the context of a conversation and can generate text that is relevant to the current topic. This allows it to respond to questions and generate text that is relevant to the context of the conversation. This makes it an excellent tool for chatbots, as it can understand the user's intention and respond accordingly.&lt;/p&gt;

&lt;h2&gt;
  
  
  Scalability and Fine-tuning :
&lt;/h2&gt;

&lt;p&gt;Another critical aspect of ChatGPT is its scalability. The model can be fine-tuned for specific use cases by training it on specific data sets. This allows it to generate text that is more tailored to the needs of the application. For example, if ChatGPT is being used in a customer service chatbot, it can be fine-tuned on data that is relevant to customer service queries to generate more accurate and relevant responses. This fine-tuning process can be done by using transfer learning, where the model is trained on a smaller data set, leveraging the knowledge it gained from its training on the larger data set.&lt;/p&gt;

&lt;h2&gt;
  
  
  Real-world Applications :
&lt;/h2&gt;

&lt;p&gt;ChatGPT has a wide range of real-world applications, from content creation to customer service. It can be used to generate news articles, creative writing, and even poetry. In customer service, ChatGPT can be used as a chatbot to respond to customer queries, freeing up human agents to handle more complex issues. Additionally, ChatGPT can be used in language translation, as it has the ability to understand the context of a conversation and translate text accordingly.&lt;/p&gt;

&lt;p&gt;In summary, ChatGPT's ability to generate human-like text and understand context makes it a versatile tool with endless potential applications. Its deep learning algorithms and transformer-based architecture allow it to generate coherent and meaningful text, making it an exciting development in the field of natural language processing. Whether it's being used in customer service, content creation, or language translation, ChatGPT has the potential to revolutionize the way we interact with machines.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion :
&lt;/h2&gt;

&lt;p&gt;In conclusion, this blog has explored the workings of ChatGPT, a cutting-edge language model developed by OpenAI. We have seen that the model is based on a transformer-based neural network that has been trained on massive amounts of text data, allowing it to generate human-like text based on the context of a conversation. Its scalability and fine-tuning capabilities make it a valuable tool for a wide range of applications, from customer service to content creation. With its ability to understand the context and generate coherent and meaningful text, ChatGPT has the potential to revolutionize the way we interact with machines and will play a crucial role in the development of AI-powered applications.&lt;/p&gt;

&lt;p&gt;**disclaimer: **This post is also written using ChatGPT.&lt;/p&gt;

</description>
      <category>chatgpt</category>
      <category>openai</category>
      <category>ai</category>
      <category>llms</category>
    </item>
    <item>
      <title>Asynchronous programming in Javascript</title>
      <dc:creator>GIRIDHARAN S</dc:creator>
      <pubDate>Sat, 10 Aug 2024 17:29:56 +0000</pubDate>
      <link>https://dev.to/giridharans1729/asynchronous-programming-in-javascript-50ek</link>
      <guid>https://dev.to/giridharans1729/asynchronous-programming-in-javascript-50ek</guid>
      <description>&lt;p&gt;JavaScript, being a single-threaded language, can only process one task at a time. This can result in long wait times for complex tasks, as the script will be blocked from executing any other tasks until it has been completed. To tackle this, JavaScript offers asynchronous programming, which allows the script to continue executing other tasks while it waits for an asynchronous task to complete. In this blog, we’ll explore the basics of asynchronous programming in JavaScript and how it can be achieved through the use of callback functions, promises, and async/await.&lt;/p&gt;

&lt;h2&gt;
  
  
  Callback Functions
&lt;/h2&gt;

&lt;p&gt;A callback function is a function that is passed as an argument to another function and is executed after the main function has been completed. Callbacks are used in asynchronous programming to wait for a task to complete before executing the next step.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;For example, consider the following code:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;function slowTask(callback) {
  setTimeout(() =&amp;gt; {
    console.log("Slow task completed.");
    callback();
  }, 1000);
}

function runProgram() {
  console.log("Program started.");
  slowTask(() =&amp;gt; {
    console.log("Callback function executed.");
  });
  console.log("Program ended.");
}

runProgram();
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In this example, the &lt;code&gt;slowTask&lt;/code&gt; function takes a callback as an argument. The &lt;code&gt;slowTask&lt;/code&gt; function uses &lt;code&gt;setTimeout&lt;/code&gt; to delay the execution of a task for one second. The &lt;code&gt;runProgram&lt;/code&gt; function calls &lt;code&gt;slowTask&lt;/code&gt; and passes a callback function as an argument. The &lt;code&gt;runProgram&lt;/code&gt; function also logs "Program started" and "Program ended". When the &lt;code&gt;slowTask&lt;/code&gt; function has been completed, it logs "Slow task completed" and executes the callback function, which logs "Callback function executed".&lt;br&gt;
The output will be:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Program started.
Program ended.
Slow task completed.
Callback function executed.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Promises
&lt;/h2&gt;

&lt;p&gt;Promises are a more modern approach to asynchronous programming in JavaScript. A promise represents the result of an asynchronous operation and can be in one of three states: pending, fulfilled, or rejected. A promise can be created using the Promise constructor, and its state can be determined using the then and catch methods.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;For example:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const slowTask = new Promise((resolve, reject) =&amp;gt; {
  setTimeout(() =&amp;gt; {
    resolve("Slow task completed.");
  }, 1000);
});

function runProgram() {
  console.log("Program started.");
  slowTask
    .then((result) =&amp;gt; {
      console.log(result);
    })
    .catch((error) =&amp;gt; {
      console.error(error);
    });
  console.log("Program ended.");
}

runProgram();
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In this example, &lt;code&gt;slowTask&lt;/code&gt; is a promise that is resolved after one second with the result "Slow task completed.". The &lt;code&gt;runProgram&lt;/code&gt; function calls &lt;code&gt;slowTask&lt;/code&gt; and uses the then method to log the result when the promise is fulfilled.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;The output will be:
Program started.
Program ended.
Slow task completed.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Async/Await
&lt;/h2&gt;

&lt;p&gt;Async/await is the latest and most readable way to handle asynchronous operations in JavaScript. It allows developers to write asynchronous code that looks like synchronous code, making it easier to understand and maintain. The async keyword is used to declare an asynchronous function, and the await keyword is used to wait for a promise to be resolved.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Here is an example to demonstrate the use of async/await in JavaScript:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;async function fetchData() {
  const response = await fetch("https://api.example.com/data");
  const data = await response.json();
  console.log(data);
}

fetchData();
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In this example, the &lt;code&gt;fetchData&lt;/code&gt; function is declared as asynchronous using the &lt;code&gt;async&lt;/code&gt; keyword. The function uses &lt;code&gt;fetch&lt;/code&gt; to retrieve data from an API, and &lt;code&gt;await&lt;/code&gt; is used to wait for the &lt;code&gt;fetch&lt;/code&gt; operation to complete. The resolved response is then transformed into a &lt;code&gt;JSON&lt;/code&gt; object using &lt;code&gt;response.json()&lt;/code&gt;. The await keyword is used to wait for the &lt;code&gt;JSON&lt;/code&gt; transformation to complete, and the final result is logged to the console.&lt;/p&gt;

&lt;p&gt;It's important to note that the code within an asynchronous function will be executed asynchronously, but the code outside of the function will still be executed synchronously. Also, the await keyword can only be used within an asynchronous function.&lt;/p&gt;

&lt;p&gt;In conclusion, asynchronous programming in JavaScript allows the script to continue executing other tasks while it waits for an asynchronous task to complete. Callback functions, promises, and async/await are three ways to achieve asynchronous programming in JavaScript. Callback functions are the simplest and most basic way to handle asynchronous operations, while promises offer a more modern and flexible approach. Async/await provides the most readable way to handle asynchronous operations and is the recommended method for modern JavaScript programming. Understanding asynchronous programming in JavaScript is important for creating efficient and responsive applications, and is a must-have skill for any JavaScript developer.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>node</category>
      <category>json</category>
      <category>asynchronous</category>
    </item>
  </channel>
</rss>
