<?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: Rizky Haksono</title>
    <description>The latest articles on Forem by Rizky Haksono (@rizkyhaksono).</description>
    <link>https://forem.com/rizkyhaksono</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%2F954509%2Fd4164f00-f870-4e71-80bb-de8d88c93740.jpeg</url>
      <title>Forem: Rizky Haksono</title>
      <link>https://forem.com/rizkyhaksono</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/rizkyhaksono"/>
    <language>en</language>
    <item>
      <title>Why Men Can't Cry?</title>
      <dc:creator>Rizky Haksono</dc:creator>
      <pubDate>Fri, 04 Apr 2025 08:26:49 +0000</pubDate>
      <link>https://forem.com/rizkyhaksono/why-men-cant-cry-491d</link>
      <guid>https://forem.com/rizkyhaksono/why-men-cant-cry-491d</guid>
      <description>&lt;p&gt;For centuries, society has conditioned men to believe that crying is a sign of weakness. From childhood, boys are often told to "man up," "be strong," or "stop crying like a girl." These messages create a deep-rooted belief that expressing emotions, particularly through tears, is unacceptable for men. But why is this the case? And what are the consequences of suppressing emotions?&lt;/p&gt;

&lt;p&gt;The things that men shouldn't cry is ingrained in many cultures worldwide. This belief stems from traditional ideas of masculinity, which equate strength with emotional stoicism. Boys are raised to believe that vulnerability makes them less masculine, leading them to suppress their feelings from a young age. This conditioning is reinforced by media, literature, and even family expectations.&lt;/p&gt;

&lt;p&gt;The stigma around male vulnerability has significant consequences. Men who feel they cannot express their emotions may experience:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Mental Health Struggles: Suppressing emotions can lead to anxiety, depression, and increased stress levels.&lt;/li&gt;
&lt;li&gt;Difficulty in Relationships: Emotional unavailability can create barriers in personal and romantic relationships.&lt;/li&gt;
&lt;li&gt;Unhealthy Coping Mechanisms: Many men turn to alcohol, aggression, or isolation as a way to cope with repressed emotions.&lt;/li&gt;
&lt;li&gt;Higher Suicide Rates: Studies show that men are less likely to seek help for emotional distress, leading to higher suicide rates compared to women.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;It’s time to challenge the outdated belief that men can’t cry. Society must create a safe space for men to express their emotions without fear of judgment. Here’s how we can help:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Normalize Crying: Public figures and role models should speak openly about their emotions to break the stigma.&lt;/li&gt;
&lt;li&gt;Encourage Open Conversations: Friends and family should support emotional honesty in men.&lt;/li&gt;
&lt;li&gt;Provide Mental Health Support: Therapy and counseling should be promoted as a strength, not a weakness.&lt;/li&gt;
&lt;li&gt;Reframe Masculinity: True strength lies in emotional intelligence, self-awareness, and the ability to express feelings.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Just let me know, if you are not okay. Write an anonymous message through my "contact me", so I can be there for you.&lt;/p&gt;

&lt;p&gt;It's okay to be not okay..&lt;/p&gt;

</description>
      <category>mentalhealth</category>
    </item>
    <item>
      <title>Here’s how to manage your own time efficiently</title>
      <dc:creator>Rizky Haksono</dc:creator>
      <pubDate>Mon, 02 Dec 2024 17:22:26 +0000</pubDate>
      <link>https://forem.com/rizkyhaksono/heres-how-to-manage-your-own-time-efficiently-4158</link>
      <guid>https://forem.com/rizkyhaksono/heres-how-to-manage-your-own-time-efficiently-4158</guid>
      <description>&lt;p&gt;Time is a precious resource—one that’s easy to squander but impossible to replenish. Learning to manage your time efficiently can lead to increased productivity, reduced stress, and more opportunities to achieve your goals. Here’s a practical guide to mastering time management and making the most of your day.&lt;/p&gt;

&lt;h2&gt;
  
  
  Set Clear Goals
&lt;/h2&gt;

&lt;p&gt;Before diving into tasks, it’s essential to know where you’re headed. Whether personal or professional, set SMART goals—Specific, Measurable, Achievable, Relevant, and Time-bound. Clear goals provide direction and keep distractions at bay.&lt;/p&gt;

&lt;h2&gt;
  
  
  Prioritize Your Tasks
&lt;/h2&gt;

&lt;p&gt;Use the Eisenhower Matrix to categorize tasks:&lt;/p&gt;

&lt;p&gt;Urgent and Important: Do these first.&lt;br&gt;
Important but Not Urgent: Schedule these for later.&lt;br&gt;
Urgent but Not Important: Delegate if possible.&lt;br&gt;
Neither Urgent nor Important: Eliminate them.&lt;br&gt;
This approach helps focus your energy on what truly matters.&lt;/p&gt;

&lt;h2&gt;
  
  
  Plan Your Day Start each day with a solid plan:
&lt;/h2&gt;

&lt;p&gt;Create a to-do list.&lt;br&gt;
Allocate specific times for each task.&lt;br&gt;
Use time-blocking techniques to schedule tasks into your calendar.&lt;br&gt;
Planning prevents decision fatigue and keeps your day structured.&lt;/p&gt;

&lt;h2&gt;
  
  
  Avoid Multitasking
&lt;/h2&gt;

&lt;p&gt;Contrary to popular belief, multitasking often reduces efficiency and leads to mistakes. Focus on one task at a time to ensure quality and complete it faster.&lt;/p&gt;

&lt;h2&gt;
  
  
  Minimize Distractions
&lt;/h2&gt;

&lt;p&gt;Identify and eliminate distractions:&lt;/p&gt;

&lt;p&gt;Turn off unnecessary notifications.&lt;br&gt;
Use apps like Focus@Will or Forest to maintain focus.&lt;br&gt;
Set boundaries with colleagues or family during work hours.&lt;br&gt;
Creating a dedicated workspace can also help maintain concentration.&lt;/p&gt;

&lt;h2&gt;
  
  
  Take Breaks
&lt;/h2&gt;

&lt;p&gt;Productivity doesn’t mean working non-stop. Use techniques like the Pomodoro Technique: work for 25 minutes, then take a 5-minute break. Regular breaks refresh your mind and prevent burnout.&lt;/p&gt;

&lt;h2&gt;
  
  
  Learn to Say No
&lt;/h2&gt;

&lt;p&gt;Your time is valuable. Politely decline requests or commitments that don’t align with your goals. Saying no ensures you stay focused on priorities.&lt;/p&gt;

&lt;h2&gt;
  
  
  Use Technology Wisely
&lt;/h2&gt;

&lt;p&gt;Leverage tools to boost efficiency:&lt;/p&gt;

&lt;p&gt;Trello or Asana for task management.&lt;br&gt;
Google Calendar for scheduling.&lt;br&gt;
Notion for note-taking and organizing ideas.&lt;br&gt;
These tools simplify managing tasks and deadlines.&lt;/p&gt;

&lt;h2&gt;
  
  
  Reflect and Adjust
&lt;/h2&gt;

&lt;p&gt;At the end of each day or week, evaluate your progress:&lt;/p&gt;

&lt;p&gt;What worked well?&lt;br&gt;
What could be improved?&lt;br&gt;
Are you spending time on your priorities?&lt;br&gt;
Adjust your strategy as needed to improve continuously.&lt;/p&gt;

&lt;h2&gt;
  
  
  Practice Self-Care
&lt;/h2&gt;

&lt;p&gt;Efficient time management isn’t just about tasks—it’s about maintaining balance. Ensure you’re:&lt;/p&gt;

&lt;p&gt;Getting enough sleep.&lt;br&gt;
Exercising regularly.&lt;br&gt;
Spending time with loved ones.&lt;br&gt;
A well-rounded life fosters energy and focus.&lt;/p&gt;

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

&lt;p&gt;Efficient time management isn’t about working harder—it’s about working smarter. By setting clear goals, planning strategically, and maintaining balance, you can take control of your time and achieve more with less stress. Start implementing these tips today, and watch your productivity soar!&lt;/p&gt;

</description>
      <category>management</category>
      <category>discuss</category>
    </item>
    <item>
      <title>Quick look of Elysia.js, new gen of Backend!</title>
      <dc:creator>Rizky Haksono</dc:creator>
      <pubDate>Mon, 02 Dec 2024 17:19:42 +0000</pubDate>
      <link>https://forem.com/rizkyhaksono/quick-look-of-elysiajs-new-gen-of-backend-4555</link>
      <guid>https://forem.com/rizkyhaksono/quick-look-of-elysiajs-new-gen-of-backend-4555</guid>
      <description>&lt;p&gt;Elysia.js is TypeScript with End-to-End Type Safety, type integrity, and exceptional developer experience. Supercharged by Bun.&lt;/p&gt;

&lt;p&gt;To create a new project using this command&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;bun create elysia app
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Once done, you should see the folder name app in your directory.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cd app
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Start a development server by:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;bun dev
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Navigate to localhost:3000 should greet you with "Hello Elysia".&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>backend</category>
      <category>typescript</category>
      <category>restapi</category>
    </item>
    <item>
      <title>What is docker? And how is it works?</title>
      <dc:creator>Rizky Haksono</dc:creator>
      <pubDate>Mon, 02 Dec 2024 17:17:23 +0000</pubDate>
      <link>https://forem.com/rizkyhaksono/what-is-docker-and-how-is-it-works-282a</link>
      <guid>https://forem.com/rizkyhaksono/what-is-docker-and-how-is-it-works-282a</guid>
      <description>&lt;h2&gt;
  
  
  What is Docker? And How Does It Work?
&lt;/h2&gt;

&lt;p&gt;Docker has become a cornerstone of modern software development, revolutionizing how applications are built, shipped, and deployed. But what exactly is Docker, and how does it work? This blog will demystify Docker and explain its role in simplifying development workflows.&lt;/p&gt;

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

&lt;p&gt;Docker is an open-source platform that enables developers to automate the deployment of applications inside lightweight, portable containers. These containers bundle everything an application needs to run, including code, libraries, dependencies, and runtime, ensuring consistency across different environments.&lt;/p&gt;

&lt;p&gt;Key Features of Docker:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Portability: Run the same container on your laptop, testing server, or production environment.&lt;/li&gt;
&lt;li&gt;Isolation: Containers run in isolated environments, preventing conflicts between applications.&lt;/li&gt;
&lt;li&gt;Efficiency: Containers share the host system's kernel, making them lightweight and faster than virtual machines.&lt;/li&gt;
&lt;li&gt;Scalability: Easily scale your application by spinning up multiple containers.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Install Docker using the apt repository
&lt;/h2&gt;

&lt;p&gt;Before you install Docker Engine for the first time on a new host machine, you need to set up the Docker apt repository. Afterward, you can install and update Docker from the repository.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Set up Docker's apt repository.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;apt-get update
&lt;span class="nb"&gt;sudo &lt;/span&gt;apt-get &lt;span class="nb"&gt;install &lt;/span&gt;ca-certificates curl
&lt;span class="nb"&gt;sudo install&lt;/span&gt; &lt;span class="nt"&gt;-m&lt;/span&gt; 0755 &lt;span class="nt"&gt;-d&lt;/span&gt; /etc/apt/keyrings
&lt;span class="nb"&gt;sudo &lt;/span&gt;curl &lt;span class="nt"&gt;-fsSL&lt;/span&gt; https://download.docker.com/linux/ubuntu/gpg &lt;span class="nt"&gt;-o&lt;/span&gt; /etc/apt/keyrings/docker.asc
&lt;span class="nb"&gt;sudo chmod &lt;/span&gt;a+r /etc/apt/keyrings/docker.asc

- Add the repository to Apt sources:
&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="s2"&gt;"deb [arch=&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;dpkg &lt;span class="nt"&gt;--print-architecture&lt;/span&gt;&lt;span class="si"&gt;)&lt;/span&gt;&lt;span class="s2"&gt; signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu &lt;/span&gt;&lt;span class="se"&gt;\&lt;/span&gt;&lt;span class="s2"&gt;
  &lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;.&lt;/span&gt; /etc/os-release &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$VERSION_CODENAME&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="si"&gt;)&lt;/span&gt;&lt;span class="s2"&gt; stable"&lt;/span&gt; | &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nb"&gt;sudo tee&lt;/span&gt; /etc/apt/sources.list.d/docker.list &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; /dev/null
&lt;span class="nb"&gt;sudo &lt;/span&gt;apt-get update
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Install the Docker packages.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;apt-get &lt;span class="nb"&gt;install &lt;/span&gt;docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Install Portainer CE with Docker on Linux
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Deployment
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker volume create portainer_data
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Then, download and install the Portainer Server container:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker run &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="nt"&gt;-p&lt;/span&gt; 8000:8000 &lt;span class="nt"&gt;-p&lt;/span&gt; 9443:9443 &lt;span class="nt"&gt;--name&lt;/span&gt; portainer &lt;span class="nt"&gt;--restart&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;always &lt;span class="nt"&gt;-v&lt;/span&gt; /var/run/docker.sock:/var/run/docker.sock &lt;span class="nt"&gt;-v&lt;/span&gt; portainer_data:/data portainer/portainer-ce:2.21.4
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Portainer Server has now been installed. You can check to see whether the Portainer Server container has started by running docker ps:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;root@server:~# docker ps
CONTAINER ID   IMAGE                          COMMAND                  CREATED       STATUS      PORTS                                                                                  NAMES             
de5b28eb2fa9   portainer/portainer-ce:2.21.4  &lt;span class="s2"&gt;"/portainer"&lt;/span&gt;             2 weeks ago   Up 9 days   0.0.0.0:8000-&amp;gt;8000/tcp, :::8000-&amp;gt;8000/tcp, 0.0.0.0:9443-&amp;gt;9443/tcp, :::9443-&amp;gt;9443/tcp   portainer
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now that the installation is complete, you can log into your Portainer Server instance by opening a web browser and going to:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;https://localhost:9443
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>docker</category>
      <category>devops</category>
      <category>containers</category>
    </item>
    <item>
      <title>SSR vs ISR vs CSR in Next.js: Understanding the Key Rendering Strategies</title>
      <dc:creator>Rizky Haksono</dc:creator>
      <pubDate>Mon, 02 Dec 2024 17:16:31 +0000</pubDate>
      <link>https://forem.com/rizkyhaksono/ssr-vs-isr-vs-csr-in-nextjs-3d2k</link>
      <guid>https://forem.com/rizkyhaksono/ssr-vs-isr-vs-csr-in-nextjs-3d2k</guid>
      <description>&lt;p&gt;When building web applications with Next.js, understanding its rendering strategies is crucial for optimizing performance and user experience. This blog will dive into Server-Side Rendering (SSR), Incremental Static Regeneration (ISR), and Client-Side Rendering (CSR), their use cases, and how to implement them.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is SSR (Server-Side Rendering)?
&lt;/h2&gt;

&lt;p&gt;Server-Side Rendering in Next.js involves generating the HTML for a page on the server for every request. This ensures that users always receive the latest data when they visit the page.&lt;/p&gt;

&lt;p&gt;Key Features of SSR:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fresh data: HTML is generated dynamically for every request.&lt;/li&gt;
&lt;li&gt;SEO-friendly: Since the content is pre-rendered on the server, search engines can easily index it.&lt;/li&gt;
&lt;li&gt;Increased server load: Rendering on each request can increase server processing time.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  How to Implement SSR in Next.js:
&lt;/h3&gt;

&lt;p&gt;Use the getServerSideProps function to fetch data at request time:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;getServerSideProps&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;context&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;res&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://api.example.com/data&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;data&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;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="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;props&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;data&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt; &lt;span class="c1"&gt;// Will be passed to the page component as props&lt;/span&gt;
  &lt;span class="p"&gt;};&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;default&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;Page&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="nx"&gt;data&lt;/span&gt; &lt;span class="p"&gt;})&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;div&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;title&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/div&amp;gt;&lt;/span&gt;&lt;span class="err"&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 is ISR (Incremental Static Regeneration)?
&lt;/h2&gt;

&lt;p&gt;Incremental Static Regeneration allows you to update static pages after the build process, without rebuilding the entire site. This is a powerful feature for pages that don’t require real-time updates but need occasional content refresh.&lt;/p&gt;

&lt;p&gt;Key Features of ISR:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Static performance with flexibility: Combines the speed of static pages with the ability to update content.&lt;/li&gt;
&lt;li&gt;Efficient caching: Pages are regenerated in the background while users see the cached version.&lt;/li&gt;
&lt;li&gt;Best for dynamic content: Ideal for blogs, e-commerce product pages, or any page updated at regular intervals.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;How to Implement ISR in Next.js:&lt;br&gt;
Use the getStaticProps function with the revalidate option:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;getStaticProps&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;res&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://api.example.com/data&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;data&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;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="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;props&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;data&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt; &lt;span class="c1"&gt;// Will be passed to the page component as props&lt;/span&gt;
    &lt;span class="na"&gt;revalidate&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="c1"&gt;// Regenerate the page every 10 seconds&lt;/span&gt;
  &lt;span class="p"&gt;};&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;default&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;Page&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="nx"&gt;data&lt;/span&gt; &lt;span class="p"&gt;})&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;div&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;title&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/div&amp;gt;&lt;/span&gt;&lt;span class="err"&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 is CSR (Client-Side Rendering)?
&lt;/h2&gt;

&lt;p&gt;Client-Side Rendering relies on JavaScript to fetch and render content in the browser after the initial page load. This approach is common in single-page applications (SPAs).&lt;/p&gt;

&lt;p&gt;Key Features of CSR:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Dynamic interactions: Great for highly interactive applications.&lt;/li&gt;
&lt;li&gt;SEO challenges: Content is rendered after the initial load, which can make it harder for search engines to index.&lt;/li&gt;
&lt;li&gt;Fast initial load: Initial HTML is light, as it contains minimal content.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;How to Implement CSR in Next.js:&lt;br&gt;
Fetch data using React’s useEffect hook or a data-fetching library like SWR:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;useEffect&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;useState&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;react&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;default&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;Page&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="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;setData&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;useState&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

  &lt;span class="nf"&gt;useEffect&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="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://api.example.com/data&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="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="p"&gt;)&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="nf"&gt;then&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nf"&gt;setData&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;data&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="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;data&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;div&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="nx"&gt;Loading&lt;/span&gt;&lt;span class="p"&gt;...&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/div&amp;gt;&lt;/span&gt;&lt;span class="err"&gt;;
&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;div&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;title&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/div&amp;gt;&lt;/span&gt;&lt;span class="err"&gt;;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Comparison Table: SSR vs ISR vs CSR
&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;SSR&lt;/th&gt;
&lt;th&gt;ISR&lt;/th&gt;
&lt;th&gt;CSR&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Rendering&lt;/td&gt;
&lt;td&gt;Server-side, per request&lt;/td&gt;
&lt;td&gt;Static, with periodic updates&lt;/td&gt;
&lt;td&gt;Client-side, in browser&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Performance&lt;/td&gt;
&lt;td&gt;Slower, depends on server&lt;/td&gt;
&lt;td&gt;Fast, cached static pages&lt;/td&gt;
&lt;td&gt;Fast initial load&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SEO&lt;/td&gt;
&lt;td&gt;Excellent&lt;/td&gt;
&lt;td&gt;Excellent&lt;/td&gt;
&lt;td&gt;Challenging&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Use Cases&lt;/td&gt;
&lt;td&gt;Real-time data, user-specific pages&lt;/td&gt;
&lt;td&gt;Content-heavy sites, blogs&lt;/td&gt;
&lt;td&gt;SPAs, interactive apps&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  When to Use Each Rendering Strategy?
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;Use SSR when:&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;You need real-time data updates.&lt;/li&gt;
&lt;li&gt;SEO is a priority for frequently changing content.&lt;/li&gt;
&lt;li&gt;Pages are personalized for each user.&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;Use ISR when:&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;Your data changes periodically.&lt;/li&gt;
&lt;li&gt;You want to serve static pages but keep them updated.&lt;/li&gt;
&lt;li&gt;Scalability and performance are important.&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;Use CSR when:&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;Your app requires heavy interactivity.&lt;/li&gt;
&lt;li&gt;SEO is not a priority.&lt;/li&gt;
&lt;li&gt;You’re building SPAs with minimal server-side dependencies.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;Next.js provides a versatile toolkit with SSR, ISR, and CSR, allowing developers to build tailored experiences. By understanding the strengths and weaknesses of each, you can choose the best strategy for your application’s needs. Whether it's a high-performance blog, a real-time dashboard, or an interactive SPA, Next.js has you covered.&lt;/p&gt;

&lt;p&gt;Which rendering strategy do you use in your projects? Let us know in the comments!&lt;/p&gt;

</description>
      <category>nextjs</category>
      <category>typescript</category>
      <category>webdev</category>
      <category>programming</category>
    </item>
    <item>
      <title>SDLC Method: What is SDLC?</title>
      <dc:creator>Rizky Haksono</dc:creator>
      <pubDate>Tue, 03 Sep 2024 04:15:25 +0000</pubDate>
      <link>https://forem.com/rizkyhaksono/metode-sdlc-dalam-pengembangan-software-3oa1</link>
      <guid>https://forem.com/rizkyhaksono/metode-sdlc-dalam-pengembangan-software-3oa1</guid>
      <description>&lt;p&gt;The Software Development Life Cycle (SDLC) is a process for creating and modifying systems, including models and methodologies used to develop software engineering systems. SDLC methods are designed to assist you in product development. There are various types of SDLC methods, but here we will focus on just four. Below are the four SDLC methods for software development:&lt;/p&gt;

&lt;p&gt;Source: &lt;a href="https://www.dicoding.com/blog/metode-sdlc" rel="noopener noreferrer"&gt;https://www.dicoding.com/blog/metode-sdlc&lt;/a&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%2Fzwjnyb9i1iblpcc3c3fl.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%2Fzwjnyb9i1iblpcc3c3fl.png" alt="Image description" width="721" height="462"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The First SDLC Method: Waterfall
&lt;/h2&gt;

&lt;p&gt;The Waterfall method emphasizes sequential and systematic phases. It is called "waterfall" because the process flows in one direction "downward" like a waterfall. This method must be followed sequentially according to the specified phases.&lt;/p&gt;

&lt;p&gt;Here are the development phases in the Waterfall method:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Requirement Gathering and Analysis&lt;br&gt;
Collecting and analyzing complete requirements to define what the program should achieve. Information can be gathered through interviews, discussions, or surveys.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Design&lt;br&gt;
Designing the software as a blueprint before creating the code. System designs can be made using flowcharts, mind maps, or Entity Relationship Diagrams (ERDs).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Implementation&lt;br&gt;
This phase involves converting the previously created designs into code. The output at this stage is individual modules that need to be integrated in the next step.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Integration &amp;amp; Testing&lt;br&gt;
Combining the modules created earlier and testing the software to ensure it matches the design and intended functions.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Verification&lt;br&gt;
In this phase, users or clients directly test the system to confirm whether it meets the agreed-upon requirements.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Operation &amp;amp; Maintenance&lt;br&gt;
This is the final phase, where the completed system is deployed and maintained. Maintenance includes fixing errors that were not detected in earlier stages.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Every method has its own advantages and disadvantages.&lt;/p&gt;

&lt;h3&gt;
  
  
  Advantages of the Waterfall method:
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;The structured process allows for well-scheduled and easily manageable work. Suitable for systems with low complexity (predictable).&lt;/li&gt;
&lt;li&gt;Each process is distinct, preventing overlap.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Disadvantages of the Waterfall method:
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;The development time is relatively longer since each phase must be completed before moving on to the next.&lt;/li&gt;
&lt;li&gt;Higher costs due to the extended development time.&lt;/li&gt;
&lt;li&gt;This model is less suitable for complex projects.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Prototype
&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%2F0d2o82z5rhw310ck4oke.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%2F0d2o82z5rhw310ck4oke.png" alt="Image description" width="800" height="205"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The next SDLC method is the Prototype model. This method allows users to get an initial visualization of the software being developed, as well as conduct early testing before the software is finalized.&lt;/p&gt;

&lt;p&gt;The Prototype method aims to develop a model into a final software product. It accelerates system development and reduces costs. This method involves several stages in software development:&lt;/p&gt;

&lt;p&gt;Stages of software development using the Prototype method:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Requirement Analysis&lt;br&gt;
At this stage, developers identify the software and system requirements to be created.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Creating the Prototype&lt;br&gt;
Designing a temporary model that focuses on the program flow for the user.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Prototype Evaluation&lt;br&gt;
Evaluating whether the prototype aligns with expectations.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;System Coding&lt;br&gt;
If the prototype is approved, it is translated into the appropriate programming language.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;System Testing&lt;br&gt;
Once the software is ready, it undergoes testing, usually with techniques such as White Box Testing or Black Box Testing.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;System Evaluation&lt;br&gt;
Users evaluate whether the software meets their expectations. If yes, proceed to the next step; if not, repeat the coding and testing phases.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Using the System&lt;br&gt;
The software that has been tested and approved is ready for use.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>webdev</category>
      <category>softwaredevelopment</category>
    </item>
    <item>
      <title>MBKM Batch 6: A Journey of Growth and Learning in the Tech Industry</title>
      <dc:creator>Rizky Haksono</dc:creator>
      <pubDate>Mon, 02 Sep 2024 10:25:18 +0000</pubDate>
      <link>https://forem.com/rizkyhaksono/my-journey-in-bigioid-as-full-stack-developer-3ijc</link>
      <guid>https://forem.com/rizkyhaksono/my-journey-in-bigioid-as-full-stack-developer-3ijc</guid>
      <description>&lt;p&gt;Participating in MBKM Batch 6 has opened up numerous opportunities for me to gain valuable experience across various industries, especially in technology. I had the privilege of interning as a full-stack developer at PT. Bejana Investidata Globalindo in 2024. During this six-month internship, I focused on developing robust and scalable base code for their systems while taking on diverse and exciting challenges.&lt;/p&gt;

&lt;h2&gt;
  
  
  Diving into Full-Stack Development
&lt;/h2&gt;

&lt;p&gt;Being a full-stack developer isn't easy, especially without a strong foundation in the industry. In my first month, I was tasked with building an application using WebSocket for real-time communication. This application not only facilitated seamless interactions but also ensured data storage using PostgreSQL.&lt;/p&gt;

&lt;h2&gt;
  
  
  Exploring .NET and Debugging Challenges
&lt;/h2&gt;

&lt;p&gt;My curiosity drove me to explore unfamiliar technologies. For instance, the company had a project built on .NET. It was my first time debugging in this environment, and I was assigned to fix a bug in the eCRF Project by Biofarma, specifically related to patient status. This experience significantly enhanced my debugging skills and broadened my technical expertise.&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%2Fmo3pb85k4hwzjpf2cpdp.jpeg" 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%2Fmo3pb85k4hwzjpf2cpdp.jpeg" alt="Image description" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Developing Features with React and Spring Boot
&lt;/h2&gt;

&lt;p&gt;In April, I worked on a project involving data export functionality using React and Spring Boot (Java). Learning Spring Boot was particularly intriguing as its verbose syntax demands careful attention to detail. Despite the complexity, I successfully implemented the feature within three days, which was a rewarding accomplishment.&lt;/p&gt;

&lt;h2&gt;
  
  
  Continuous Learning and Logic Challenges
&lt;/h2&gt;

&lt;p&gt;Every Thursday, I attended knowledge-sharing sessions and practiced LeetCode challenges to improve my problem-solving skills.&lt;/p&gt;

&lt;p&gt;In May, I was assigned to the Info Pangan Jakarta Admin and User Project, where I learned best practices for writing clean and efficient code. This project helped me refine my skills in structuring folders and organizing code effectively.&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%2Fla0071zd369voglk1655.jpeg" 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%2Fla0071zd369voglk1655.jpeg" alt="Image description" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Self Reward
&lt;/h2&gt;

&lt;p&gt;Every weekend, my friends and I hang out somewhere in Jogja City to unwind and recharge after a busy week. We explore various spots, from cozy cafés to vibrant street markets, indulging in local delicacies and enjoying the lively atmosphere.&lt;/p&gt;

&lt;p&gt;Sometimes, we visit iconic landmarks like Malioboro Street or relax at serene places like Kidul Mountain. On other days, we might take short trips to nearby cities to catch a breathtaking sunset.&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%2Fwhufzabhqg5cx7maa5af.jpeg" 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%2Fwhufzabhqg5cx7maa5af.jpeg" alt="Image description" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Celebrating Success
&lt;/h2&gt;

&lt;p&gt;On June 21, 2024, we celebrated BIGIO's Anniversary with a joyful gathering and delicious nasi kuning. It was a memorable moment to unwind and connect with the team.&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%2Fr6uw0hzrqil42t0abn7v.jpeg" 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%2Fr6uw0hzrqil42t0abn7v.jpeg" alt="Image description" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Reflection
&lt;/h2&gt;

&lt;p&gt;My six-month journey with PT. Bejana Investidata Globalindo was filled with opportunities to explore new technologies, solve real-world problems, and grow as a developer. This internship not only sharpened my technical skills but also enriched my understanding of collaboration and project management.&lt;/p&gt;

&lt;p&gt;I am grateful for this invaluable experience and excited about what lies ahead in my career.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>internship</category>
      <category>development</category>
      <category>developer</category>
    </item>
  </channel>
</rss>
