<?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: Apoorv</title>
    <description>The latest articles on Forem by Apoorv (@apoorvtomar).</description>
    <link>https://forem.com/apoorvtomar</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%2F60676%2F264e2636-dfb8-44ba-b1a6-237dcd5a49fa.jpg</url>
      <title>Forem: Apoorv</title>
      <link>https://forem.com/apoorvtomar</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/apoorvtomar"/>
    <language>en</language>
    <item>
      <title>The Virtual Office – CSS Art Inspired by Workplace Culture</title>
      <dc:creator>Apoorv</dc:creator>
      <pubDate>Tue, 22 Jul 2025 03:29:08 +0000</pubDate>
      <link>https://forem.com/apoorvtomar/the-virtual-office-css-art-inspired-by-workplace-culture-2dg9</link>
      <guid>https://forem.com/apoorvtomar/the-virtual-office-css-art-inspired-by-workplace-culture-2dg9</guid>
      <description>&lt;h2&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;/h2&gt;

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

&lt;p&gt;I wanted to create a modern, interactive office dashboard that captures the essence of a digital workplace. The design is inspired by real-world office portals, focusing on employee updates, HR resources, task management, and a clean, professional look. The goal was to blend utility with a visually appealing, CSS-driven layout that feels both productive and welcoming.&lt;/p&gt;

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

&lt;p&gt;Link to deployed code: &lt;a href="https://apoorvtomar2222.github.io/company-portal/" rel="noopener noreferrer"&gt;https://apoorvtomar2222.github.io/company-portal/&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%2F58i8u0guzy6gp3zr4qkb.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%2F58i8u0guzy6gp3zr4qkb.png" alt="Company Tool" width="800" height="406"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;(&lt;a href="https://via.placeholder.com/900x500?text=Office+Portal+Demo" rel="noopener noreferrer"&gt;https://via.placeholder.com/900x500?text=Office+Portal+Demo&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Live Demo:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
You can run the project locally by cloning the repo and running:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install
&lt;/span&gt;npm run dev
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Repo Link: &lt;a href="https://github.com/apoorvtomar2222/company-portal" rel="noopener noreferrer"&gt;https://github.com/apoorvtomar2222/company-portal&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;This project was built with React and CSS, focusing on a three-column layout:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Left Sidebar:&lt;/strong&gt; Collapsible quick actions for tasks, calendar, and widgets.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Center:&lt;/strong&gt; Company updates (like employee changes, Google Sheet edits, new tasks) and a sample widget (bar chart for open tickets, pending tasks, meetings).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Right Sidebar:&lt;/strong&gt; A responsive calendar (with today highlighted), a styled task list with filters, and HR resources.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;What I learned:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How to create a fully responsive, modern dashboard layout with pure CSS and React.&lt;/li&gt;
&lt;li&gt;How to build a simple calendar from scratch using JavaScript date logic and CSS grid.&lt;/li&gt;
&lt;li&gt;The importance of small UI details (collapsible sidebar, task cards, color coding) for a professional look.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Proud of:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The clean, office-inspired design that adapts to all screen sizes.&lt;/li&gt;
&lt;li&gt;The interactive sidebar and visually clear task/calendar sections.&lt;/li&gt;
&lt;li&gt;The use of only CSS and React (no UI libraries) for all layout and art.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Next steps:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Add more interactivity (drag-and-drop widgets, real data integration).&lt;/li&gt;
&lt;li&gt;Polish the calendar with month navigation.&lt;/li&gt;
&lt;li&gt;Add more CSS art elements (e.g., office-themed icons, avatars).&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;strong&gt;Team Submission:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Solo project by &lt;a class="mentioned-user" href="https://dev.to/apoorvtomar"&gt;@apoorvtomar&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;License:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Feel free to use or adapt this code for your own projects!&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Thank you for the challenge and inspiration!&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>frontendchallenge</category>
      <category>devchallenge</category>
      <category>css</category>
    </item>
    <item>
      <title>Protecting Yourself from Modern Scams: A Guide for 2025</title>
      <dc:creator>Apoorv</dc:creator>
      <pubDate>Wed, 02 Oct 2024 14:03:01 +0000</pubDate>
      <link>https://forem.com/apoorvtomar/protecting-yourself-from-modern-scams-a-guide-for-2025-2jcf</link>
      <guid>https://forem.com/apoorvtomar/protecting-yourself-from-modern-scams-a-guide-for-2025-2jcf</guid>
      <description>&lt;h3&gt;
  
  
  Be prepared for upcoming years, by educating yourself with scams trending in the market.
&lt;/h3&gt;

&lt;p&gt;As the year ends, financial concerns often come to the forefront of many of our minds. One significant trend is the increasing reliance on digital payments. From large businesses to small shopkeepers, nearly everyone is moving away from cash and accepting online payments.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F8328%2F0%2AsVwwPl5_s8PJBYwy" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F8328%2F0%2AsVwwPl5_s8PJBYwy" alt="Photo by [rc.xyz NFT gallery](https://unsplash.com/@moneyphotos?utm_source=medium&amp;amp;utm_medium=referral) on [Unsplash](https://unsplash.com?utm_source=medium&amp;amp;utm_medium=referral)"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;While companies are taking substantial measures to ensure user safety, hackers and scammers continuously evolve their techniques. It’s no longer enough for companies to protect us; we, as end users, must also stay vigilant and educate ourselves to avoid falling victim to scams.&lt;/p&gt;

&lt;p&gt;In this article, I’ll walk you through some of the most prevalent scams in today’s world and offer practical tips on how to protect yourself.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Table of Content&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;· 1. Deepfake Scams&lt;br&gt;
 ∘ Types of Deepfake Scams:&lt;br&gt;
 ∘ How to Protect Yourself:&lt;br&gt;
· 2. WhatsApp Scams&lt;br&gt;
 ∘ Common WhatsApp Scams:&lt;br&gt;
· 3. Job Scams&lt;br&gt;
 ∘ How Job Scams Work:&lt;br&gt;
 ∘ How to Protect Yourself:&lt;br&gt;
· 4. Customs Duty Scams&lt;br&gt;
 ∘ How to Protect Yourself:&lt;br&gt;
· 5. Lottery and Prize Scams&lt;br&gt;
 ∘ How to Protect Yourself:&lt;br&gt;
· 6. The ‘Email from a Prince’ Scam&lt;br&gt;
 ∘ How to Protect Yourself:&lt;br&gt;
· Conclusion: Stay Aware, Stay Safe&lt;br&gt;
· About The Author&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Deepfake Scams
&lt;/h2&gt;

&lt;p&gt;Deepfake technology is now being used by scammers to impersonate individuals through manipulated videos or audio. This type of scam is particularly concerning because we are naturally inclined to trust what we see and hear.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F7680%2F0%2AYUK9yODuGGa3mtBe" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F7680%2F0%2AYUK9yODuGGa3mtBe" alt="Photo by [julien Tromeur](https://unsplash.com/@julientromeur?utm_source=medium&amp;amp;utm_medium=referral) on [Unsplash](https://unsplash.com?utm_source=medium&amp;amp;utm_medium=referral)"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Imagine receiving a video call from someone you know, only for it to be a fraudster using deepfake technology to mimic their appearance and voice.&lt;/p&gt;

&lt;h3&gt;
  
  
  Types of Deepfake Scams:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Fake Video Calls&lt;/strong&gt;: Scammers impersonate friends or family members in video calls, asking for sensitive information or money.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Fake Audio Calls&lt;/strong&gt;: Scammers mimic someone’s voice over the phone to deceive you.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  How to Protect Yourself:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Pause and Verify&lt;/strong&gt;: If someone asks for money or sensitive documents, take a moment. Even if it seems like someone you trust, contact them through another method (e.g., phone or in person) to confirm their identity.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Be Skeptical&lt;/strong&gt;: If a request feels unusual, trust your instincts and verify the authenticity.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  2. WhatsApp Scams
&lt;/h2&gt;

&lt;p&gt;As WhatsApp has become an integral part of daily communication, scammers have found ways to exploit its widespread use.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F11232%2F0%2AbvyuaggT-MVYuscA" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F11232%2F0%2AbvyuaggT-MVYuscA" alt="Photo by [Benjamin Dada](https://unsplash.com/@dadaben_?utm_source=medium&amp;amp;utm_medium=referral) on [Unsplash](https://unsplash.com?utm_source=medium&amp;amp;utm_medium=referral)"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Common WhatsApp Scams:
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Case 1: Fake Money Transfer Requests&lt;/strong&gt;&lt;br&gt;
You receive a message from someone claiming to know a family member or friend. They explain that they need to transfer money to your loved one but can’t reach them. After gaining your trust, they send a fake payment screenshot and ask you to return an “overpayment.” Without checking your account, you may fall into the trap of transferring real money.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Case 2: Authority Impersonation&lt;/strong&gt;&lt;br&gt;
You may receive a call from someone posing as a high-ranking police officer or government official. They claim either you or someone you know is involved in illegal activity and demand information or money. The scammers will press for urgency, hoping to scare you into compliance.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How to Protect Yourself:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Always Verify&lt;/strong&gt;: If someone claims to need a money transfer, always double-check with the person involved before taking any action.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Don’t Be Intimidated:&lt;/strong&gt; If an “official” calls you, remember that legitimate authorities follow proper procedures and won’t demand sensitive information or money over the phone.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Check Bank Accounts:&lt;/strong&gt; Before sending money, always check your bank account for any deposits to ensure the amount you received is real.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  3. Job Scams
&lt;/h2&gt;

&lt;p&gt;With the job market being competitive, scammers prey on individuals searching for employment. These scams often involve fake recruitment agencies promising high-paying jobs in exchange for a fee.&lt;/p&gt;

&lt;h3&gt;
  
  
  How Job Scams Work:
&lt;/h3&gt;

&lt;p&gt;Scammers approach job seekers with lucrative offers, but they require payment upfront for interviews, applications, or processing fees. Desperate for a job, many candidates fall into this trap.&lt;/p&gt;

&lt;h3&gt;
  
  
  How to Protect Yourself:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Deal Directly with Companies:&lt;/strong&gt; Always apply for jobs directly through company websites or established channels. If third-party agencies are involved, be cautious of any fees.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;No Payment Before Employment:&lt;/strong&gt; Legitimate job offers do not require payment before you start. If someone asks for money upfront, it’s likely a scam.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;4. Customs Duty Scams&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;In this scam, you receive a call from someone claiming to be from customs, informing you of a package in your name. They may say that the package contains illegal items or that you need to pay a customs fee to release it. Often, the scammer targets individuals who regularly receive international packages.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F14720%2F0%2ASELdRs8N94iktM5J" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F14720%2F0%2ASELdRs8N94iktM5J" alt="Photo by [Rocker Sta](https://unsplash.com/@starocker?utm_source=medium&amp;amp;utm_medium=referral) on [Unsplash](https://unsplash.com?utm_source=medium&amp;amp;utm_medium=referral)"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  How to Protect Yourself:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Ignore Unfamiliar Claims:&lt;/strong&gt; If you didn’t order anything, it’s likely a scam. Official customs notifications will come through proper channels, not random calls.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Verify with Authorities&lt;/strong&gt;: If you’re ever unsure, contact customs or law enforcement directly to verify the claim.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  5. Lottery and Prize Scams
&lt;/h2&gt;

&lt;p&gt;Lottery and prize scams are one of the most common forms of fraud. You receive an email or message claiming you’ve won a prize, but you need to pay taxes or fees to claim it.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F11232%2F0%2AVn5shek8E3BdZ6WY" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F11232%2F0%2AVn5shek8E3BdZ6WY" alt="Photo by [Alexander Grey](https://unsplash.com/@sharonmccutcheon?utm_source=medium&amp;amp;utm_medium=referral) on [Unsplash](https://unsplash.com?utm_source=medium&amp;amp;utm_medium=referral)"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  How to Protect Yourself:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;No Free Lunch:&lt;/strong&gt; Legitimate lotteries don’t ask winners to pay fees upfront. If you’re asked to pay for a prize, it’s a scam.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Stay Skeptical&lt;/strong&gt;: Always question unexpected windfalls — if it sounds too good to be true, it probably is.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  6. The ‘Email from a Prince’ Scam
&lt;/h2&gt;

&lt;p&gt;This is a classic scam that has been circulating for years. You may receive an email from someone claiming to be a dying prince or wealthy individual who wants to transfer their fortune to you in exchange for a small “processing fee.” While these scams are often laughable, they still trap unsuspecting victims.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F6048%2F0%2ARyUb0XU71BS-lZLD" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F6048%2F0%2ARyUb0XU71BS-lZLD" alt="Photo by [Sarah Penney](https://unsplash.com/@sarahspcreates?utm_source=medium&amp;amp;utm_medium=referral) on [Unsplash](https://unsplash.com?utm_source=medium&amp;amp;utm_medium=referral)"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  How to Protect Yourself:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Ignore: Delete these emails and don’t engage. No one is giving away fortunes to random people over email.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Conclusion: Stay Aware, Stay Safe
&lt;/h2&gt;

&lt;p&gt;The digital age offers many conveniences, but it also opens the door to sophisticated scams. Scammers thrive on exploiting trust, urgency, and fear. By staying vigilant and educating yourself, you can protect your finances and personal information.&lt;/p&gt;

&lt;p&gt;If you ever find yourself in a suspicious situation, take a step back, breathe, and verify the facts. Don’t be afraid to consult with others before taking any action. Awareness is your best defense, and by staying informed, you can outsmart even the most cunning scammers.&lt;/p&gt;




&lt;h2&gt;
  
  
  About The Author
&lt;/h2&gt;

&lt;p&gt;Apoorv is a seasoned software developer. You can connect on &lt;strong&gt;&lt;a href="https://www.mindroast.com/social" rel="noopener noreferrer"&gt;social networks&lt;/a&gt;&lt;/strong&gt;.&lt;br&gt;
Subscribe to Apoorv’s &lt;a href="https://www.mindroast.com/newsletter" rel="noopener noreferrer"&gt;newsletter&lt;/a&gt; for the latest curated content.&lt;/p&gt;

</description>
      <category>scams</category>
      <category>deepfake</category>
      <category>ai</category>
      <category>whatsapp</category>
    </item>
    <item>
      <title>React Prop Drilling: Should You Use It?</title>
      <dc:creator>Apoorv</dc:creator>
      <pubDate>Sat, 24 Aug 2024 12:21:31 +0000</pubDate>
      <link>https://forem.com/apoorvtomar/react-prop-drilling-should-you-use-it-5f81</link>
      <guid>https://forem.com/apoorvtomar/react-prop-drilling-should-you-use-it-5f81</guid>
      <description>&lt;p&gt;&lt;em&gt;Different State Management Strategy.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;React Prop Drilling is drilling of the data, from the parent component to the child component. This is passing the data which should be accessible throughout the levels.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--GyOFmozY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/10368/0%2AqZSM-ZQn-eFaEwFs" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--GyOFmozY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/10368/0%2AqZSM-ZQn-eFaEwFs" alt="Photo by [Mimi Thian](https://unsplash.com/@mimithian?utm_source=medium&amp;amp;utm_medium=referral) on [Unsplash](https://unsplash.com?utm_source=medium&amp;amp;utm_medium=referral)" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The data is conducted to the child component, which either displays or fetches data using different protocols. We do a lot of caching to avoid re-rendering of the react component, but if our application is complex and deeply nested. The rerending will occur whenever the props get updated.&lt;/p&gt;

&lt;p&gt;Let’s understand about prop drilling, but try to&lt;/p&gt;

&lt;p&gt;For instance, if you have a component hierarchy like this:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ParentComponent
  ├── IntermediateComponent1
  │     └── IntermediateComponent2
  │           └── TargetComponent
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;If ParentComponent has some data that TargetComponent needs, prop drilling involves passing that data from ParentComponent through IntermediateComponent1 and IntermediateComponent2 before it finally reaches TargetComponent. Each intermediary component receives the data as props and passes it down to the next level.&lt;/p&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;function App() {&lt;br&gt;
  const [user, setUser] = useState({ name: "John Doe" });

&lt;p&gt;return (&lt;br&gt;
    &amp;lt;div&amp;gt;&lt;br&gt;
      &amp;lt;Parent user={user} /&amp;gt;&lt;br&gt;
    &amp;lt;/div&amp;gt;&lt;br&gt;
  );&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;function ParentComponent({ user }) {&lt;br&gt;
  return (&lt;br&gt;
    &amp;lt;div&amp;gt;&lt;br&gt;
      &amp;lt;Child user={user} /&amp;gt;&lt;br&gt;
    &amp;lt;/div&amp;gt;&lt;br&gt;
  );&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;function Child({ user }) {&lt;br&gt;
  return (&lt;br&gt;
    &amp;lt;div&amp;gt;&lt;br&gt;
      &amp;lt;Grandchild user={user} /&amp;gt;&lt;br&gt;
    &amp;lt;/div&amp;gt;&lt;br&gt;
  );&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;function Grandchild({ user }) {&lt;br&gt;
  return &amp;lt;div&amp;gt;Hello, {user.name}!&amp;lt;/div&amp;gt;;&lt;br&gt;
}&lt;br&gt;
&lt;/p&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h2&gt;
&lt;br&gt;
  &lt;br&gt;
  &lt;br&gt;
  Prop Drilling: Good or Bad?&lt;br&gt;
&lt;/h2&gt;

&lt;p&gt;The answer to this isn’t a simple Yes/No, it totally depends upon your use case. There are various factures like context and scale of your application.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Small Project: For smaller project which are mainly basic websites, like portfolio, basic product page there is fine to use prop drilling. There is no point of setting up the entire state management tool like mobx or Redux for such applications.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;State Management introduced unnecessary complexity to the project, but this can be easily be avoided using prop drilling.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Use of prop drilling in React.
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;*&lt;em&gt;Data Sharing&lt;br&gt;
*&lt;/em&gt; Prop drilling is commonly used when a deeply nested child component needs access to data or functions from a parent component. For example, if a parent component holds the application’s state or a function that updates the state, and a child component needs to access or modify that state, prop drilling is a way to make that data or function accessible.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;*&lt;em&gt;Explicit Data Flow&lt;br&gt;
*&lt;/em&gt; One of the key benefits of prop drilling is that it maintains a clear and explicit data flow within the application. By passing props through each component, it’s always obvious where data is coming from and how it is being passed down, which can simplify debugging and understanding the code.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;*&lt;em&gt;Simplicity in Small Applications&lt;br&gt;
*&lt;/em&gt; In smaller applications or when the component hierarchy is relatively shallow, prop drilling is a straightforward solution that doesn’t require additional tools or libraries. It allows developers to manage state and pass data without introducing complexity.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Alternative to prop drilling in React.
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. React Context API
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;What It Is:&lt;/strong&gt; A built-in feature in React that allows you to share data across the component tree without having to pass props down manually at every level.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;When to Use:&lt;/strong&gt; Suitable for sharing global data like themes, user authentication status, or locale settings.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;You can use the Context API to avoid passing props through every level of the component tree. Context allows you to create a global state that can be accessed by any component, bypassing the need to pass props manually through each level.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Pros:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Reduces the need for prop drilling.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Simplifies data sharing across multiple components.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Cons:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Can introduce hidden dependencies, making components less reusable.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Overuse can make debugging more complex.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. State Management Libraries (e.g., Redux, MobX)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;What They Are:&lt;/strong&gt; External libraries that provide a structured way to manage and share application state.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;When to Use:&lt;/strong&gt; Ideal for large-scale applications where state management is complex and requires a predictable structure.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Pros:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Centralizes state management.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Facilitates debugging and testing.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Supports time-travel debugging and other advanced features.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Cons:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Adds additional complexity and learning curve.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;May be overkill for simple applications.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3. Custom Hooks
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;What They Are:&lt;/strong&gt; Reusable functions in React that encapsulate stateful logic, allowing you to share logic between components easily.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;When to Use:&lt;/strong&gt; Useful for sharing logic and stateful behavior without prop drilling.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Pros:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Promotes code reuse and cleanliness.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Keeps components concise and focused.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Cons:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;May not be suitable for all data sharing scenarios.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Requires understanding of React Hooks API.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  4. Composition and Higher-Order Components
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;What They Are:&lt;/strong&gt; Patterns that allow you to enhance components by wrapping them with additional functionality.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;When to Use:&lt;/strong&gt; Useful for injecting props and behavior into components without modifying their structure.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Pros:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Encourages reusable and composable code.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Can eliminate some cases of prop drilling.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Cons:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Can make the component tree more complex.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;May be harder to trace data flow compared to explicit prop passing.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Disadvantages of props&lt;/strong&gt; drilling &lt;strong&gt;in&lt;/strong&gt; React
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Code Readability:&lt;/strong&gt; Prop drilling can make components harder to understand because you have to trace the prop through multiple layers of the component tree.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Maintenance:&lt;/strong&gt; As your application grows, managing and refactoring such code becomes difficult. Changing the prop structure can become cumbersome if many components are involved.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Performance:&lt;/strong&gt; Unnecessary re-renders can occur if props change at a higher level and are passed down multiple layers, even if only the deeply nested component needs the data.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Scalability Issues:&lt;/strong&gt; As applications grow and component trees become deeper, prop drilling can become cumbersome and difficult to manage. It can lead to verbose code and make maintenance challenging.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Redundant Props:&lt;/strong&gt; Intermediate components are forced to receive and pass down props they don’t use, leading to unnecessary coupling and potential confusion.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Maintenance Difficulty:&lt;/strong&gt; Updating or refactoring components can become error-prone since changes in the data structure may require updates across multiple layers of components.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

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

&lt;p&gt;Hopefully you must understand about the prop drilling in React, a technique for passing data through multiple layers of components. While prop drilling works well for small applications with simple component structures, it can become cumbersome and difficult to manage as applications grow.&lt;/p&gt;

&lt;p&gt;Challenges include decreased code readability, maintenance difficulties, and performance issues due to unnecessary re-renders. To overcome these limitations, alternatives like the React Context API, state management libraries (e.g., Redux, MobX), and custom hooks are suggested, though they come with their own complexities.&lt;/p&gt;

&lt;p&gt;In essence, while prop drilling is useful in certain scenarios, it’s important to consider more scalable solutions as your project grows.&lt;/p&gt;




&lt;h2&gt;
  
  
  About The Author
&lt;/h2&gt;

&lt;p&gt;Apoorv is a seasoned software developer. You can connect on **&lt;a href="https://www.mindroast.com/social" rel="noopener noreferrer"&gt;social networks&lt;/a&gt;.&lt;br&gt;
Subscribe to Apoorv’s &lt;a href="https://www.mindroast.com/newsletter" rel="noopener noreferrer"&gt;newsletter&lt;/a&gt; for the latest curated content.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>coding</category>
      <category>react</category>
    </item>
    <item>
      <title>What the Heck is Platform Engineering?</title>
      <dc:creator>Apoorv</dc:creator>
      <pubDate>Wed, 31 Jul 2024 15:25:33 +0000</pubDate>
      <link>https://forem.com/apoorvtomar/what-the-heck-is-platform-engineering-3cpo</link>
      <guid>https://forem.com/apoorvtomar/what-the-heck-is-platform-engineering-3cpo</guid>
      <description>&lt;p&gt;Platform engineering is a discipline within software engineering that focuses on designing, building, and maintaining a foundational platform or infrastructure that supports application development, deployment, and operation.&lt;/p&gt;

&lt;p&gt;It’s about building tools, workflows, and infrastructure that streamline the development process, allowing developers to focus on building features rather than worrying about underlying complexities.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F10944%2F0%2AjmHk8QX7TTy_4b6s" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F10944%2F0%2AjmHk8QX7TTy_4b6s" alt="Photo by [ThisisEngineering](https://unsplash.com/@thisisengineering?utm_source=medium&amp;amp;utm_medium=referral) on [Unsplash](https://unsplash.com?utm_source=medium&amp;amp;utm_medium=referral)"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Platform engineering can be considered as making a smooth highway for your developers so that they can avoid that bumpy ride. It can help in improving the overall developer experience. This enriches the overall development experience as it minimises the overall cumbersome task that is repetitive in nature.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key Components of Platform Engineering.
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Internal Developer Platform (IDP):&lt;/strong&gt; This is the core product of platform engineering. It provides a self-service environment for developers to access resources, tools, and services.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Self-Service Capabilities:&lt;/strong&gt; Developers should be able to independently provision environments, deploy applications, and manage their resources without heavy reliance on platform teams.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Automation:&lt;/strong&gt; Platform engineering heavily relies on automation to streamline processes and reduce manual effort.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Developer Experience (DX):&lt;/strong&gt; A great platform enhances developer experience by providing intuitive tools and reducing friction.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Collaboration:&lt;/strong&gt; Platform engineers work closely with development teams to understand their needs and build solutions accordingly.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Infrastructure Management&lt;/strong&gt;: Managing and automating the underlying infrastructure, which can include servers, networks, storage, and cloud resources.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Developer Tools and Services&lt;/strong&gt;: Providing tools and services such as version control systems, continuous integration/continuous deployment (CI/CD) pipelines, monitoring, logging, and alerting systems.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Scalability and Reliability&lt;/strong&gt;: Ensuring that the platform can scale to meet the demands of the applications running on it and maintaining high availability and reliability.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Security and Compliance&lt;/strong&gt;: Implementing security measures and ensuring compliance with relevant regulations and standards.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Cost Optimization&lt;/strong&gt;: Managing and optimizing the cost of running the infrastructure and platform services.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Benefits of Platform Engineering
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Increased Developer Productivity:&lt;/strong&gt; By automating tasks and providing self-service options, developers can focus on building features faster.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Improved Application Quality:&lt;/strong&gt; Standardized tools and processes can lead to more consistent and reliable applications.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Faster Time to Market:&lt;/strong&gt; Streamlined development and deployment processes accelerate the delivery of new features.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Enhanced Security and Compliance:&lt;/strong&gt; Built-in security and compliance measures can be enforced through the platform.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Cost Optimization:&lt;/strong&gt; Efficient resource utilization and automation can help reduce costs.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Jobs for Platform Engineer
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F3032%2F1%2AUqsSoHlGnMJNZdFJ4aVUBw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F3032%2F1%2AUqsSoHlGnMJNZdFJ4aVUBw.png" alt="Job Posting"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F4196%2F1%2AbqiO2Ehmy7qHxwZ6y-t36g.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F4196%2F1%2AbqiO2Ehmy7qHxwZ6y-t36g.png" alt="Job Posting"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F3424%2F1%2AXUaLzivP3dFrGycLsddygg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F3424%2F1%2AXUaLzivP3dFrGycLsddygg.png" alt="Job Posting"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F4604%2F1%2Anvj645wgoRDVyhBYOwhlDQ.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F4604%2F1%2Anvj645wgoRDVyhBYOwhlDQ.png" alt="Job Posting"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  A sample job description for a platform engineer job.
&lt;/h2&gt;

&lt;p&gt;We are seeking a highly skilled and motivated Platform Engineer to design, develop, and maintain our platform infrastructure. You will work closely with development, operations, and security teams to ensure our platform is reliable, scalable, and efficient.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Key Responsibilities:&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Design, build, and maintain scalable and reliable platform infrastructure.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Implement Infrastructure as Code (IaC) using tools such as Terraform, Ansible, or CloudFormation.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Develop and maintain CI/CD pipelines to automate application deployment and scaling.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Collaborate with development teams to improve developer productivity and streamline workflows.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Monitor and optimize platform performance, ensuring high availability and reliability.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Implement and enforce security best practices across the platform.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Develop and maintain comprehensive documentation for platform infrastructure and processes.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Troubleshoot and resolve platform-related issues in a timely manner.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Stay current with industry trends and best practices, and advocate for continuous improvement.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Payscale
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Based on Payscale.com the average salary for platform engineers ranges between $119,000 and $168,000 (&lt;a href="https://www.payscale.com/research/US/Job=Platform_Developer_%2F_Engineer/Salary" rel="noopener noreferrer"&gt;PayScale&lt;/a&gt;)​.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F4164%2F1%2AfgP-WmZiR_Voyw8s-AJTUw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F4164%2F1%2AfgP-WmZiR_Voyw8s-AJTUw.png" alt="Image courtesy [https://www.payscale.com/](https://www.payscale.com/)"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Salary.com&lt;/strong&gt; states that the average base salary for a Senior Platform Engineer is approximately $132,433 per year&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F3648%2F1%2A5FWwevlG7vCsIszzAmS8PA.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F3648%2F1%2A5FWwevlG7vCsIszzAmS8PA.png" alt="Image courtesy: [https://www.salary.com/](https://www.salary.com/)"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  India
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Entry-Level:&lt;/strong&gt; ₹600,000 — ₹1,200,000 per year&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Mid-Level:&lt;/strong&gt; ₹1,200,000 — ₹2,000,000 per year&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Senior-Level:&lt;/strong&gt; ₹2,000,000 — ₹3,500,000+ per year&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  United States
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Entry-Level (0–2 years of experience):&lt;/strong&gt; $80,000 — $100,000 per year&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Mid-Level (3–5 years of experience):&lt;/strong&gt; $100,000 — $130,000 per year&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Senior-Level (6+ years of experience):&lt;/strong&gt; $130,000 — $160,000+ per year&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Although these are rough estimates, they depend mostly upon a person's skill set and the experience they gain during the tenure they worked.&lt;/p&gt;

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

&lt;p&gt;Platform engineering builds tools and infrastructure to streamline development. This enriches the overall development experience as it minimises the overall cumbersome task that is repetitive in nature.&lt;/p&gt;

&lt;p&gt;• Key components include self-service environments, automation, developer tools, and collaboration. &lt;br&gt;
• Benefits include increased developer productivity, improved application quality, faster time to market, and cost optimization. &lt;br&gt;
• Platform engineers design, build, and maintain the platform infrastructure. &lt;br&gt;
• The average salary for platform engineers in the US ranges from $80,000 to $160,000+ per year.&lt;/p&gt;

&lt;p&gt;If you think your future goals match with a platform engineer, you could opt for the same and help an organization achieve a good platform.&lt;/p&gt;




&lt;h2&gt;
  
  
  About The Author
&lt;/h2&gt;

&lt;p&gt;Apoorv Tomar is a software developer and blogs at &lt;a href="https://mindroast.com/" rel="noopener noreferrer"&gt;**Mindroast&lt;/a&gt;&lt;strong&gt;. You can connect on &lt;a href="https://www.mindroast.com/social" rel="noopener noreferrer"&gt;social networks&lt;/a&gt;. Subscribe to the &lt;a href="https://www.mindroast.com/newsletter" rel="noopener noreferrer"&gt;**newsletter&lt;/a&gt;&lt;/strong&gt; for the latest curated content.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>career</category>
      <category>programming</category>
      <category>development</category>
    </item>
    <item>
      <title>How to Identify and Mitigate Flaky Tests: Best Practices and Strategies.</title>
      <dc:creator>Apoorv</dc:creator>
      <pubDate>Tue, 09 Jul 2024 15:58:35 +0000</pubDate>
      <link>https://forem.com/apoorvtomar/how-to-identify-and-mitigate-flaky-tests-best-practices-and-strategies-1cb0</link>
      <guid>https://forem.com/apoorvtomar/how-to-identify-and-mitigate-flaky-tests-best-practices-and-strategies-1cb0</guid>
      <description>&lt;p&gt;&lt;em&gt;Enhancing Test Reliability and Efficiency in CI/CD Pipelines&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;A flaky test is a test that sometimes passes and sometimes fails without any changes to the code being tested. These tests can be particularly troublesome because they undermine the reliability of the test suite. &lt;/p&gt;

&lt;p&gt;Consider your CI/CD pipeline is configured such that only after the build is passed, only if your code passes a set of predefined test cases. &lt;/p&gt;

&lt;p&gt;In an ideal situation,  you must have set the priority for each test case and assume the latest code base to pass at least some percentage of cases. &lt;/p&gt;

&lt;p&gt;But due to the flaky test cases, which keep on failing, as they might be stale or the use case is changed your test case fails and merging the pull request becomes a nightmare. Instead of reducing the percentage of passing cases, we should consider revamping those test cases. &lt;/p&gt;

&lt;h2&gt;
  
  
  Reason for understanding Flaky Test.
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Unpredictable Test Results&lt;/strong&gt;: Flaky tests cause unpredictability by sometimes passing and other times failing, even though the code hasn’t changed. This randomness can make it difficult to trust test outcomes.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Complex Debugging&lt;/strong&gt;: Tracking down the root cause of a flaky test can be challenging because the issue may not reproduce consistently, making it hard to identify and fix.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Wasted Time and Resources&lt;/strong&gt;: Developers can spend a significant amount of time rerunning tests, investigating false positives, and debugging issues that aren’t actually related to the code’s functionality.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Impact on Continuous Integration (CI)&lt;/strong&gt;: Flaky tests can disrupt continuous integration pipelines, leading to unnecessary build failures and reducing the overall efficiency of automated testing processes.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;False Confidence or Distrust&lt;/strong&gt;: Flaky tests can either create false confidence when they pass sporadically or cause distrust in the test suite when they fail unpredictably, making it harder to rely on test results.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Ways to mitigate Flaky test cases.
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Best Practices to Mitigate&lt;/strong&gt;: To reduce flaky tests, developers can mock external dependencies, use deterministic data, ensure tests are isolated, and avoid relying on timing or order of execution.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Automated Detection&lt;/strong&gt;: Implementing automated tools that detect flaky tests by running tests multiple times and comparing results can help identify and address flakiness early in the development cycle.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Test Isolation&lt;/strong&gt;: Ensuring that each test runs in complete isolation, without relying on shared states or external factors, can significantly reduce the chances of flakiness.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Regular Maintenance&lt;/strong&gt;: Regularly reviewing and refactoring the test suite to remove or fix flaky tests helps maintain the integrity and reliability of the testing process over time.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Different strategies and tools to mitigate flaky test cases
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Jenkins, CircleCI, Travis CI&lt;/strong&gt;: Continuous Integration/Continuous Deployment (CI/CD) tools like these can be configured to rerun tests that fail, helping to identify flaky tests. They often have plugins or built-in support for handling flaky tests.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Docker&lt;/strong&gt;: Companies use Docker to create isolated environments for running tests. This ensures that tests have a consistent and clean environment each time they are executed, reducing flakiness caused by environmental differences.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Virtual Machines (VMs)&lt;/strong&gt;: Similar to Docker, VMs can be used to ensure tests run in a controlled and isolated environment, minimizing interference from other processes or dependencies.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Statistical Analysis using Machine Learning&lt;/strong&gt;: Some advanced systems use machine learning to analyze test results and identify patterns indicative of flaky tests. This can help in proactively identifying and addressing flakiness.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Code Review Policies and Version Control Hooks&lt;/strong&gt;: Implementing strict code review policies that include checks for potential sources of flakiness can prevent flaky tests from being introduced. &lt;br&gt;
Using pre-commit hooks or other version control mechanisms to run tests in a controlled manner before changes are merged can catch flaky tests early.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Strategies by some of the big organisations
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Google&lt;/strong&gt;:&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Rerun Failed Tests&lt;/strong&gt;: Google has a policy where they rerun tests that fail to determine if the failure is consistent. This helps identify flaky tests. They also have internal tools and infrastructure to manage and mitigate flakiness across their extensive test suites.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Test Isolation&lt;/strong&gt;: Google emphasizes the importance of test isolation to ensure that tests do not interfere with each other, which is critical in reducing flakiness.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Microsoft&lt;/strong&gt;:&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Test Analytics and Reporting&lt;/strong&gt;: Microsoft uses detailed test analytics and reporting tools to track flaky tests. By analyzing test results over time, they can identify patterns and pinpoint flaky tests.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Quarantining Flaky Tests&lt;/strong&gt;: Microsoft sometimes quarantines flaky tests, separating them from the main test suite until they are fixed to prevent them from affecting the overall test results.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;3. Facebook&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Detox&lt;/strong&gt;: Facebook developed an open-source library called Detox to test their mobile apps. Detox ensures that tests are run in a consistent state and environment, reducing flakiness caused by asynchronous operations and other timing issues.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Continuous Testing&lt;/strong&gt;: Facebook integrates continuous testing into their development process, using tools to automatically rerun tests and identify flaky behavior early in the development cycle.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;4. Netflix&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Chaos Engineering&lt;/strong&gt;: Netflix employs chaos engineering practices to test the resilience of their systems. By intentionally introducing failures and disruptions, they can identify flaky tests and improve the robustness of their tests and systems.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Automated Retrying&lt;/strong&gt;: Netflix uses automated retry mechanisms within their CI/CD pipelines to rerun tests that fail intermittently, helping to identify and manage flaky tests.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;5. LinkedIn&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Flaky Test Management Tools&lt;/strong&gt;: LinkedIn has developed tools specifically for managing flaky tests. These tools help track flaky tests, provide visibility into their occurrence, and prioritize their resolution.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Test Environment Standardization&lt;/strong&gt;: LinkedIn focuses on standardizing test environments to reduce variability and ensure that tests run under consistent conditions, which helps mitigate flakiness.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  About The Author
&lt;/h2&gt;

&lt;p&gt;Apoorv Tomar is a software developer and blogs at &lt;a href="https://mindroast.com/" rel="noopener noreferrer"&gt;**Mindroast&lt;/a&gt;&lt;strong&gt;. You can connect on &lt;a href="https://www.mindroast.com/social" rel="noopener noreferrer"&gt;social networks&lt;/a&gt;. Subscribe to the &lt;a href="https://www.mindroast.com/newsletter" rel="noopener noreferrer"&gt;**newsletter&lt;/a&gt;&lt;/strong&gt; for the latest curated content.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>programming</category>
      <category>coding</category>
    </item>
    <item>
      <title>Maximizing Productivity with ChatGPT: Comparing ChatGPT-3.5 and ChatGPT-4 Omni for Diverse AI Applications</title>
      <dc:creator>Apoorv</dc:creator>
      <pubDate>Sat, 15 Jun 2024 11:06:06 +0000</pubDate>
      <link>https://forem.com/apoorvtomar/maximizing-productivity-with-chatgpt-comparing-chatgpt-35-and-chatgpt-4-omni-for-diverse-ai-applications-31le</link>
      <guid>https://forem.com/apoorvtomar/maximizing-productivity-with-chatgpt-comparing-chatgpt-35-and-chatgpt-4-omni-for-diverse-ai-applications-31le</guid>
      <description>&lt;p&gt;&lt;em&gt;Explore the capabilities, use cases, and pricing of ChatGPT-3.5 and ChatGPT-4 Omni to determine the best AI solution for your business needs&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The next big revolution will be the widespread implementation of artificial intelligence (AI), with various large language models (LLMs) playing a crucial role. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2580%2F1%2ARflOzt06WxuYtr0a86Iqgg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2580%2F1%2ARflOzt06WxuYtr0a86Iqgg.png" alt="Image showcasing Chat GPT 3.5 vs Chat GPT 4 omni"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Before diving into this technological shift, it’s essential to understand the most common ChatGPT services available in the market. As the saying goes&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Artificial intelligence won't take your job, but the person using artificial Intelligence might. Best is be Aware and improve productivity.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Multimodal Capabilities
&lt;/h2&gt;

&lt;h3&gt;
  
  
  ChatGPT-3.5
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Functionality:&lt;/strong&gt; Primarily a text-based model that processes and generates text from textual inputs.&lt;/p&gt;

&lt;h3&gt;
  
  
  ChatGPT-4 Omni
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Functionality:&lt;/strong&gt; Extends beyond text to handle images, audio, and possibly other data types, offering a more versatile AI experience.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key Features and Comparisons
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2000%2F1%2Ab1Gj0nFrJSEQ1K95yCpe5Q.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2000%2F1%2Ab1Gj0nFrJSEQ1K95yCpe5Q.png" alt="Key Features and Comparisons"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  ChatGPT-3.5
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Architecture:&lt;/strong&gt; Based on the GPT-3.5 architecture, an incremental improvement over GPT-3.5, containing billions of parameters.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Capabilities:&lt;/strong&gt; Strong in natural language understanding and generation, good at handling context, generating coherent text, and performing a wide range of language tasks. It can still be prone to occasional factual inaccuracies and struggles with highly specific or complex queries.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Use Cases:&lt;/strong&gt; Suitable for general-purpose tasks such as chatbots, customer service, content creation, and basic research assistance. Often integrated into applications where cost and performance need to be balanced.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pricing:&lt;/strong&gt; Available under the ChatGPT Plus subscription at around $20 per month, with API usage priced lower compared to more advanced models, based on the number of tokens processed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;ChatGPT-4 Omni&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Architecture:&lt;/strong&gt; Builds on ChatGPT-4, extending into multimodal capabilities to handle text, images, audio, and potentially video.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Capabilities:&lt;/strong&gt; Multimodal input and output, enhanced interaction capabilities, providing a richer user experience by integrating various forms of data.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Use Cases:&lt;/strong&gt; Ideal for advanced interactive applications such as virtual assistants that process visual data, healthcare diagnostic tools, interactive learning platforms, and any domain requiring the integration of text with other data forms.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pricing:&lt;/strong&gt; Likely part of a premium subscription plan, costing more than the standard ChatGPT Plus subscription. API usage is higher due to advanced technology and multimodal capabilities.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Summary of Key Differences&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;ChatGPT-3.5:&lt;/strong&gt; Best for general-purpose applications focused on text-based tasks. Cost-effective and reliable for standard uses.&lt;br&gt;
&lt;strong&gt;ChatGPT-4 Omni:&lt;/strong&gt; Suitable for more complex and demanding tasks, offering multimodal capabilities for richer interactions and broader applicability.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Use Cases Across Professions&lt;/strong&gt;
&lt;/h2&gt;

&lt;h3&gt;
  
  
  ChatGPT-3.5
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;1. Customer Service&lt;/strong&gt;&lt;br&gt;
 — Chatbots: Automate responses to common queries, providing 24/7 support.&lt;br&gt;
 — Ticket Triage: Categorize and prioritize customer issues for efficient resolution.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Content Creation&lt;/strong&gt;&lt;br&gt;
 — Blog Writing: Generate drafts for articles, blog posts, and social media content.&lt;br&gt;
 — Copywriting: Create marketing copy for advertisements, websites, and email campaigns.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Education&lt;/strong&gt;&lt;br&gt;
 — Tutoring: Assist students with homework and provide explanations for complex topics.&lt;br&gt;
 — Content Summarization: Generate summaries of long documents or articles.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Research&lt;/strong&gt;&lt;br&gt;
 — Literature Review: Summarize papers and extract key points.&lt;br&gt;
 — Data Analysis: Provide insights and initial interpretations of datasets.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Healthcare&lt;/strong&gt;&lt;br&gt;
 — Patient Interaction: Offer initial support by answering frequently asked questions.&lt;br&gt;
 — Documentation: Assist in writing and summarizing patient records or medical reports.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6. Programming&lt;/strong&gt;&lt;br&gt;
 — Code Assistance: Provide code snippets, debugging tips, and explanations of coding concepts.&lt;br&gt;
 — Documentation: Generate technical documentation and comments for codebases.&lt;/p&gt;

&lt;h3&gt;
  
  
  ChatGPT-4 Omni
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;1. Customer Service&lt;/strong&gt;&lt;br&gt;
 — Multimodal Chatbots: Respond to inquiries using text, image, and possibly audio inputs.&lt;br&gt;
 — Visual Support: Interpret and provide feedback on customer-sent images.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Content Creation&lt;/strong&gt;&lt;br&gt;
 — Interactive Media: Develop content that combines text, images, and possibly audio.&lt;br&gt;
 — Visual Storytelling: Generate narratives with textual descriptions and visual elements.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Education&lt;/strong&gt;&lt;br&gt;
 — Interactive Learning Tools: Create materials that include images, diagrams, and text.&lt;br&gt;
 — Visual Explanations: Provide explanations that incorporate visual aids.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Research&lt;/strong&gt;&lt;br&gt;
 — Data Visualization: Generate and interpret visual data representations.&lt;br&gt;
 — Multimodal Analysis: Combine textual and visual data for comprehensive analysis.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Healthcare&lt;/strong&gt;&lt;br&gt;
 — Diagnostic Assistance: Analyze patient-provided images and symptom descriptions.&lt;br&gt;
 — Training and Education: Develop training materials with images, diagrams, and text.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6. Programming&lt;/strong&gt;&lt;br&gt;
 — Code Review: Provide feedback on code, including visual elements such as GUI designs.&lt;br&gt;
 — Technical Documentation: Generate documentation with code snippets, explanations, and visual diagrams.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Accessibility and Strategic Release&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;OpenAI aims to make advanced AI technology accessible to a broader audience by offering optimized versions like GPT-4o for free. This encourages exploration and experimentation while maintaining premium features for paid plans, which offer additional capabilities and priority access.&lt;/p&gt;

&lt;p&gt;In summary, while ChatGPT-3.5 and ChatGPT-4 Omni provide robust solutions for various applications, the choice between them depends on specific needs: text-based tasks or multimodal capabilities for more complex interactions. Understanding these distinctions helps in selecting the right tool to enhance productivity and achieve desired outcomes.&lt;/p&gt;

&lt;h2&gt;
  
  
  In Nutshell
&lt;/h2&gt;

&lt;p&gt;The implementation of artificial intelligence is set to revolutionize various industries, with large language models (LLMs) like ChatGPT playing a key role. ChatGPT-3.5 and ChatGPT-4 Omni are two notable models with distinct capabilities. ChatGPT-3.5, based on the GPT-3.5 architecture, excels in natural language understanding and generation, making it ideal for text-based tasks such as customer service chatbots, content creation, and research assistance. It offers a cost-effective solution through a $20/month subscription and lower API usage costs. In contrast, ChatGPT-4 Omni extends these capabilities to multimodal data processing, handling text, images, audio, and potentially video. &lt;/p&gt;

&lt;p&gt;This makes it suitable for more complex applications like virtual assistants, healthcare diagnostic tools, and interactive learning platforms, though it comes with higher subscription and API costs.&lt;/p&gt;

&lt;p&gt;Professionals across various fields can leverage these models to enhance productivity and efficiency. For instance, educators can use ChatGPT-3.5 for tutoring and content summarization, while ChatGPT-4 Omni can create interactive learning tools and visual explanations. &lt;/p&gt;

&lt;p&gt;In healthcare, ChatGPT-3.5 assists with patient interactions and documentation, whereas ChatGPT-4 Omni can aid in diagnostic assistance and developing training materials. &lt;/p&gt;

&lt;p&gt;OpenAI’s strategy includes offering optimized versions like GPT-4o for free to democratize AI access while maintaining advanced features and priority access for paid plans. Understanding the differences between these models helps businesses choose the right AI tool to meet their specific needs.&lt;/p&gt;




&lt;h2&gt;
  
  
  About The Author
&lt;/h2&gt;

&lt;p&gt;Apoorv Tomar is a software developer and blogs at &lt;a href="https://mindroast.com/" rel="noopener noreferrer"&gt;Mindroast&lt;/a&gt;&lt;strong&gt;. You can connect on &lt;a href="https://www.mindroast.com/social" rel="noopener noreferrer"&gt;social networks&lt;/a&gt;. Subscribe to the &lt;a href="https://www.mindroast.com/newsletter" rel="noopener noreferrer"&gt;newsletter&lt;/a&gt;&lt;/strong&gt; for the latest curated content.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>ai</category>
      <category>software</category>
      <category>coding</category>
    </item>
    <item>
      <title>Top 5 Essential Laptop/Mac Maintenance Tasks for Peak Performance</title>
      <dc:creator>Apoorv</dc:creator>
      <pubDate>Wed, 01 May 2024 15:50:22 +0000</pubDate>
      <link>https://forem.com/apoorvtomar/top-5-essential-laptopmac-maintenance-tasks-for-peak-performance-315m</link>
      <guid>https://forem.com/apoorvtomar/top-5-essential-laptopmac-maintenance-tasks-for-peak-performance-315m</guid>
      <description>&lt;p&gt;&lt;em&gt;Optimize Your Device’s Performance and Longevity with These Simple Tips&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Keeping your laptop or Mac in top condition is crucial for optimal performance and longevity. The mismanaged storage makes your system laggy and files become very difficult to search.&lt;/p&gt;

&lt;p&gt;Here are some key maintenance tasks you should regularly perform so that your files and everything are synced and you never lose your important data.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F10944%2F0%2AsfqZeD2FDx-5MlOS" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F10944%2F0%2AsfqZeD2FDx-5MlOS" alt="Photo by [Laurent Peignault](https://unsplash.com/@laurent_peignault?utm_source=medium&amp;amp;utm_medium=referral) on [Unsplash](https://unsplash.com?utm_source=medium&amp;amp;utm_medium=referral)"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;**· Stay Updated with Software Updates
  ∘ Why it's important:
  ∘ How to do it:
· Clear Out Unnecessary Files
  ∘ Why it's important:
  ∘ How to do it:
· Streamline Startup Programs
  ∘ Why it's important
  ∘ How to do it:
· Perform Regular Disk Maintenance
  ∘ Why it's important:
  ∘ How to do it:
· Backup Your Data Securely
  ∘ Why it's important
  ∘ How to do it:
· Final Thoughts**
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Ensure your operating system (e.g., Windows for PCs, macOS for Macs) and installed applications are up to date by regularly checking for and installing software updates.&lt;/p&gt;

&lt;p&gt;These updates often include critical security patches, bug fixes, and performance enhancements that can enhance your system’s stability and security.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F12000%2F0%2A4GPC6p6kZ-6K692V" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F12000%2F0%2A4GPC6p6kZ-6K692V" alt="Photo by [Zan Lazarevic](https://unsplash.com/@zanlazarevic?utm_source=medium&amp;amp;utm_medium=referral) on [Unsplash](https://unsplash.com?utm_source=medium&amp;amp;utm_medium=referral)"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Why it’s important:
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Security:&lt;/strong&gt; Software updates often address known vulnerabilities, protecting your system from malware, viruses, and other cyber threats.&lt;br&gt;
&lt;strong&gt;Stability:&lt;/strong&gt; Updates can fix bugs and glitches, improving your system's overall stability and reliability.&lt;br&gt;
&lt;strong&gt;Performance:&lt;/strong&gt; Some updates include optimizations that can enhance the performance and efficiency of your device.&lt;/p&gt;

&lt;h3&gt;
  
  
  How to do it:
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;For Windows:&lt;/strong&gt; Go to Settings &amp;gt; Update &amp;amp; Security &amp;gt; Windows Update.&lt;br&gt;
&lt;strong&gt;For macOS:&lt;/strong&gt; Go to the Apple menu &amp;gt; System Preferences &amp;gt; Software Update.&lt;/p&gt;

&lt;h2&gt;
  
  
  Clear Out Unnecessary Files
&lt;/h2&gt;

&lt;p&gt;Over time, your device’s storage can become cluttered with unnecessary files, slowing down performance. Utilize built-in disk cleanup tools or third-party software to remove temporary files, cache files, old downloads, and other unused data. However, exercise caution to avoid deleting important system files inadvertently.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F11394%2F0%2AqBxjdRI2w-kxs2JN" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F11394%2F0%2AqBxjdRI2w-kxs2JN" alt="Photo by [Pawel Czerwinski](https://unsplash.com/@pawel_czerwinski?utm_source=medium&amp;amp;utm_medium=referral) on [Unsplash](https://unsplash.com?utm_source=medium&amp;amp;utm_medium=referral)"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Why it’s important:
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Free Up Storage:&lt;/strong&gt; Removing unnecessary files frees up valuable storage space, allowing your system to operate more efficiently.&lt;br&gt;
&lt;strong&gt;Improved Performance:&lt;/strong&gt; Cluttered storage can lead to slower read/write speeds and overall system performance. Cleaning out unnecessary files can help restore optimal performance.&lt;br&gt;
&lt;strong&gt;Organization:&lt;/strong&gt; Regularly cleaning your storage helps keep your files organized and makes it easier to find what you need.&lt;/p&gt;

&lt;h3&gt;
  
  
  How to do it:
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;For Windows:&lt;/strong&gt; Use the Disk Cleanup tool or third-party software like CCleaner.&lt;br&gt;
&lt;strong&gt;For macOS:&lt;/strong&gt; Utilize the Storage Management tool or third-party apps like CleanMyMac.&lt;/p&gt;

&lt;p&gt;But above action can be done manually as well.&lt;/p&gt;

&lt;h2&gt;
  
  
  Streamline Startup Programs
&lt;/h2&gt;

&lt;p&gt;Review the list of programs set to launch automatically when you start your laptop or Mac.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F12096%2F0%2AR9DlXjnP8HCf4wX8" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F12096%2F0%2AR9DlXjnP8HCf4wX8" alt="Photo by [Mike van den Bos](https://unsplash.com/@mike_van_den_bos?utm_source=medium&amp;amp;utm_medium=referral) on [Unsplash](https://unsplash.com?utm_source=medium&amp;amp;utm_medium=referral)"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Having too many startup programs can significantly prolong boot times and consume valuable system resources. Disable or remove unnecessary startup items to improve boot-up performance and streamline system operation.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why it’s important
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Faster Boot Times:&lt;/strong&gt; Limiting startup programs reduces the number of processes running at startup, resulting in quicker boot times.&lt;br&gt;
&lt;strong&gt;Resource Management:&lt;/strong&gt; Startup programs consume system resources, including CPU and memory, which can impact overall system performance.&lt;br&gt;
&lt;strong&gt;Focus Resources:&lt;/strong&gt; By disabling unnecessary startup items, you can allocate system resources more efficiently to the programs and tasks you use most frequently.&lt;/p&gt;

&lt;h3&gt;
  
  
  How to do it:
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;For Windows:&lt;/strong&gt; Use the Task Manager to manage startup programs.&lt;br&gt;
&lt;strong&gt;For macOS:&lt;/strong&gt; Go to System Preferences &amp;gt; Users &amp;amp; Groups &amp;gt; Login Items to manage startup programs.&lt;/p&gt;

&lt;h2&gt;
  
  
  Perform Regular Disk Maintenance
&lt;/h2&gt;

&lt;p&gt;Keep your storage drive in optimal condition by regularly running disk maintenance tasks such as disk defragmentation (for traditional hard drives) or disk optimization (for SSDs). These processes help organize data on your disk, resulting in quicker file access and improved overall system responsiveness.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F12480%2F0%2AC_iJUx8hnjAh9Jo4" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F12480%2F0%2AC_iJUx8hnjAh9Jo4" alt="Photo by [Leiada Krozjhen](https://unsplash.com/@leiadakrozjhen?utm_source=medium&amp;amp;utm_medium=referral) on [Unsplash](https://unsplash.com?utm_source=medium&amp;amp;utm_medium=referral)"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Why it’s important:
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Disk Health:&lt;/strong&gt; Regular maintenance helps prevent disk fragmentation and keeps your storage drive in good health.&lt;br&gt;
&lt;strong&gt;Performance Optimization:&lt;/strong&gt; Defragmentation (for HDDs) or optimization (for SSDs) rearranges data on the disk for faster access, improving overall system performance.&lt;br&gt;
&lt;strong&gt;Longevity:&lt;/strong&gt; Maintaining your storage drive can extend its lifespan and reduce the risk of data loss due to disk errors or failures.&lt;/p&gt;

&lt;h3&gt;
  
  
  How to do it:
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;For Windows:&lt;/strong&gt; Use the built-in Disk Defragmenter tool.&lt;br&gt;
&lt;strong&gt;For macOS:&lt;/strong&gt; macOS automatically optimizes SSDs, but you can manually run First Aid in Disk Utility to repair disk errors.&lt;/p&gt;

&lt;h2&gt;
  
  
  Backup Your Data Securely
&lt;/h2&gt;

&lt;p&gt;Protect your valuable files and documents by regularly backing them up to external hard drives, cloud storage services like Google Drive or iCloud, or a combination of both.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F7998%2F0%2AB9DPiSaxMxICy1aK" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F7998%2F0%2AB9DPiSaxMxICy1aK" alt="Photo by [Markus Winkler](https://unsplash.com/@markuswinkler?utm_source=medium&amp;amp;utm_medium=referral) on [Unsplash](https://unsplash.com?utm_source=medium&amp;amp;utm_medium=referral)"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This precaution ensures that you have a copy of your data in case of hardware failure, accidental deletion, or other unforeseen events. Consider automating backups to streamline the process and ensure consistency.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why it’s important
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Data Protection:&lt;/strong&gt; Backing up your data protects against data loss due to hardware failure, theft, or other disasters.&lt;br&gt;
&lt;strong&gt;Peace of Mind:&lt;/strong&gt; Knowing that your important files are securely backed up gives you peace of mind.&lt;br&gt;
&lt;strong&gt;Easy Recovery:&lt;/strong&gt; In the event of data loss, having a backup allows for easy and quick recovery of your files and documents.&lt;/p&gt;

&lt;h3&gt;
  
  
  How to do it:
&lt;/h3&gt;

&lt;p&gt;Utilize built-in backup tools like Windows Backup and Restore or Time Machine on macOS.&lt;br&gt;
Use cloud storage services like Google Drive, iCloud, Dropbox, or OneDrive for automatic and offsite backups.&lt;/p&gt;

&lt;p&gt;By incorporating these maintenance tasks into your routine, you can optimize the performance and longevity of your laptop or Mac, ensuring a smooth and efficient computing experience.&lt;/p&gt;

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

&lt;p&gt;The above article outlines five essential maintenance tasks for optimizing the performance and longevity of laptops and Macs:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Stay Updated with Software Updates&lt;/strong&gt;: Regularly check for and install software updates for your operating system and applications to ensure security, stability, and performance enhancements.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Clear Out Unnecessary Files:&lt;/strong&gt; Remove temporary files, cache files, old downloads, and other unused data to free up storage space, improve performance, and maintain organization.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Streamline Startup Programs:&lt;/strong&gt; Review and disable unnecessary programs set to launch automatically at startup to reduce boot times and conserve system resources for essential tasks.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Perform Regular Disk Maintenance:&lt;/strong&gt; Run disk maintenance tasks such as defragmentation (for traditional hard drives) or optimization (for SSDs) to organize data, enhance file access speed, and prolong the lifespan of the storage drive.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Backup Your Data Securely:&lt;/strong&gt; Regularly backup your files and documents to external hard drives or cloud storage services to protect against data loss due to hardware failure, theft, or other unforeseen events. Automate backups for consistency and peace of mind.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;By incorporating these maintenance tasks into their routine, users can ensure a smooth and efficient computing experience while extending the lifespan of their devices.&lt;br&gt;
Moreover, many of us must be performing some activities for system improvement, and share them as well in the comments.&lt;/p&gt;




&lt;h2&gt;
  
  
  About The Author
&lt;/h2&gt;

&lt;p&gt;Apoorv Tomar is a software developer and blogs at &lt;a href="https://mindroast.com/" rel="noopener noreferrer"&gt;Mindroast&lt;/a&gt;&lt;strong&gt;. You can connect on &lt;a href="https://www.mindroast.com/social" rel="noopener noreferrer"&gt;social networks&lt;/a&gt;. Subscribe to the &lt;a href="https://www.mindroast.com/newsletter" rel="noopener noreferrer"&gt;newsletter&lt;/a&gt;&lt;/strong&gt; for the latest curated content.&lt;/p&gt;

</description>
      <category>apple</category>
      <category>windows</category>
      <category>performance</category>
    </item>
    <item>
      <title>Maximizing Payment Reliability: Harnessing the Power of Idempotency Keys in Your Stripe Integration</title>
      <dc:creator>Apoorv</dc:creator>
      <pubDate>Sat, 23 Mar 2024 13:09:13 +0000</pubDate>
      <link>https://forem.com/apoorvtomar/maximizing-payment-reliability-harnessing-the-power-of-idempotency-keys-in-your-stripe-integration-28hn</link>
      <guid>https://forem.com/apoorvtomar/maximizing-payment-reliability-harnessing-the-power-of-idempotency-keys-in-your-stripe-integration-28hn</guid>
      <description>&lt;p&gt;Stripe, renowned for its robust payment processing capabilities, prioritizes the prevention of duplicate charges to uphold customer satisfaction and trust. Utilizing a range of built-in mechanisms, Stripe empowers merchants to navigate the complexities of online transactions with confidence.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--VhHIDmVF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/3116/1%2AUkexR6Yb8QMjG4r_ugA8DQ.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--VhHIDmVF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/3116/1%2AUkexR6Yb8QMjG4r_ugA8DQ.png" alt="Stripe Payments" width="800" height="523"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;These mechanisms encompass various features and best practices, including idempotency keys, which ensure that the same request isn’t processed multiple times, thereby averting accidental duplicate charges.&lt;/p&gt;

&lt;p&gt;Furthermore, Stripe’s comprehensive suite of tools enables merchants to streamline their payment processes while minimizing the risk of errors. Through these measures, Stripe reinforces its commitment to facilitating secure and seamless transactions, fostering positive interactions between businesses and their customers in the digital realm.&lt;/p&gt;

&lt;p&gt;Stripe has built-in mechanisms to help avoid accidentally charging customers twice. These mechanisms are designed to prevent duplicate charges and ensure a smooth payment process.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;**· Idempotency Keys
  ∘ Use Idempotent Requests
  ∘ Webhook Handling
  ∘ Transaction Monitoring
  ∘ Handle Redirects Properly (for Checkout)
  ∘ Testing in the Stripe Test Environment
  ∘ Refund Mechanism
· Idempotency Keys, How does Stripe create and manage it?
  ∘ Client-Generated Keys
  ∘ Include the Idempotency Key in the Request
  ∘ Processing the Request
  ∘ Response
  ∘ Key Expiry
· About The Author**
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Here are some features and best practices that help in avoiding accidental double charges with Stripe:&lt;/p&gt;

&lt;h2&gt;
  
  
  Idempotency Keys
&lt;/h2&gt;

&lt;p&gt;Idempotency keys are unique tokens generated by clients (applications) and provided with requests sent to the Stripe API. These keys serve as a mechanism to ensure that the same request isn’t processed more than once, thus preventing accidental duplicate operations.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--el01TPFn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/15904/0%2AwKhyFIrMaa2_sNbZ" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--el01TPFn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/15904/0%2AwKhyFIrMaa2_sNbZ" alt="Photo by [Phil Hearing](https://unsplash.com/@philhearing?utm_source=medium&amp;amp;utm_medium=referral) on [Unsplash](https://unsplash.com?utm_source=medium&amp;amp;utm_medium=referral)" width="800" height="534"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When making an API request, the idempotency key is included in the HTTP headers, typically using the Idempotency-Key header. Upon receiving a request with an idempotency key, Stripe checks if it has processed a request with the same key before.&lt;/p&gt;

&lt;p&gt;If it has, Stripe returns the response from the original request without reprocessing the operation. This helps maintain consistency and reliability in the face of network issues, timeouts, or other errors that might result in duplicate requests.&lt;/p&gt;

&lt;p&gt;Idempotency keys have a time-to-live (TTL) or expiration period, ensuring that they are only valid for a certain period, after which a new key should be used. By incorporating idempotency keys into their Stripe integrations, businesses can enhance the reliability and robustness of their payment processing workflows.&lt;/p&gt;

&lt;h3&gt;
  
  
  Use Idempotent Requests
&lt;/h3&gt;

&lt;p&gt;When making API requests to create charges or perform other operations, include an idempotency key. If a request with the same key is received multiple times, Stripe ensures that the operation is only performed once.&lt;/p&gt;

&lt;h3&gt;
  
  
  Webhook Handling
&lt;/h3&gt;

&lt;p&gt;Implement webhook handlers to listen for events such as payment_intent.succeeded or checkout.session.completed. This allows your application to confirm the success of a payment and update the corresponding records.&lt;/p&gt;

&lt;h3&gt;
  
  
  Transaction Monitoring
&lt;/h3&gt;

&lt;p&gt;Keep track of the transaction status in your application and ensure that you only proceed with actions (e.g., fulfilling an order) when you receive confirmation from Stripe through webhooks that the payment was successful.&lt;/p&gt;

&lt;h3&gt;
  
  
  Handle Redirects Properly (for Checkout)
&lt;/h3&gt;

&lt;p&gt;If you are using Stripe Checkout, ensure that you handle redirects and updates properly. Make sure your application is configured to process the result of a successful payment and avoid reprocessing the payment when a customer revisits the confirmation page.&lt;/p&gt;

&lt;h3&gt;
  
  
  Testing in the Stripe Test Environment
&lt;/h3&gt;

&lt;p&gt;Use the Stripe test environment to simulate different scenarios, including successful payments, failed payments, and retries. This allows you to test your application’s behaviour without affecting real customer transactions.&lt;/p&gt;

&lt;h3&gt;
  
  
  Refund Mechanism
&lt;/h3&gt;

&lt;p&gt;In case a duplicate charge does occur, Stripe provides mechanisms to issue refunds. Your application should have a process in place to handle refund requests and communicate with customers about the resolution.&lt;/p&gt;

&lt;p&gt;By following these best practices and incorporating idempotency keys into your integration, you can significantly reduce the risk of accidentally charging customers twice.&lt;/p&gt;

&lt;p&gt;Always refer to the latest Stripe documentation for detailed information on implementing these features based on your specific use case.&lt;/p&gt;

&lt;h2&gt;
  
  
  Idempotency Keys, How does Stripe create and manage it?
&lt;/h2&gt;

&lt;p&gt;Idempotency keys are unique tokens that you provide when making requests to the Stripe API to ensure that the same request isn’t processed more than once.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--4V3WV_kf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/16000/0%2Amx4G-cBO5fky0ArC" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--4V3WV_kf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/16000/0%2Amx4G-cBO5fky0ArC" alt="Photo by [Onur Binay](https://unsplash.com/@onurbinay?utm_source=medium&amp;amp;utm_medium=referral) on [Unsplash](https://unsplash.com?utm_source=medium&amp;amp;utm_medium=referral)" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;They help prevent accidental duplicate requests and ensure that operations are idempotent, meaning that repeating the same operation multiple times has the same effect as performing it once.&lt;/p&gt;

&lt;p&gt;Here’s how Stripe handles and manages idempotency keys:&lt;/p&gt;

&lt;h3&gt;
  
  
  Client-Generated Keys
&lt;/h3&gt;

&lt;p&gt;When requesting the Stripe API, your client (your application) generates an idempotency key. This key is typically a unique identifier for the specific operation you are performing, such as creating a charge or updating a customer.&lt;/p&gt;

&lt;h3&gt;
  
  
  Include the Idempotency Key in the Request
&lt;/h3&gt;

&lt;p&gt;The idempotency key is included in the HTTP headers of the API request. You provide it using the &lt;code&gt;Idempotency-Key&lt;/code&gt; header.&lt;/p&gt;

&lt;h3&gt;
  
  
  Processing the Request
&lt;/h3&gt;

&lt;p&gt;When Stripe receives a request with an idempotency key, it checks if it has processed a request with the same key before. If it has, Stripe returns the response from the original request without reprocessing the operation.&lt;/p&gt;

&lt;h3&gt;
  
  
  Response
&lt;/h3&gt;

&lt;p&gt;If the idempotency key is new or hasn’t been used recently, Stripe processes the request as usual and returns the corresponding response.&lt;/p&gt;

&lt;h3&gt;
  
  
  Key Expiry
&lt;/h3&gt;

&lt;p&gt;Idempotency keys have a time-to-live (TTL) or expiration period. This means that after a certain period, the key may no longer be recognized as valid, and a new key should be used.&lt;/p&gt;

&lt;p&gt;Here’s an example of how to include an idempotency key in a request using cURL:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;curl https://api.stripe.com/v1/charges \
 -u sk_test_4eC39HqLyjWDarjtT1zdp7dc: \
 -d amount=2000 \
 -d currency=usd \
 -d source=tok_mastercard \
 -H “Idempotency-Key: YOUR_UNIQUE_KEY”
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;In this example, replace &lt;code&gt;YOUR_UNIQUE_KEY&lt;/code&gt; with a key generated by your application.&lt;/p&gt;

&lt;p&gt;Using idempotency keys is crucial in scenarios where network issues, timeouts, or other errors can result in a client making the same API request multiple times. It helps maintain consistency and avoids unintended side effects caused by duplicate requests.&lt;/p&gt;

&lt;p&gt;When designing your application, make sure to create and manage idempotency keys for critical operations to enhance the reliability and robustness of your Stripe integration.&lt;/p&gt;




&lt;h2&gt;
  
  
  About The Author
&lt;/h2&gt;

&lt;p&gt;Apoorv Tomar is a software developer and blogs at &lt;a href="https://mindroast.com/"&gt;**Mindroast&lt;/a&gt;&lt;strong&gt;. You can connect on &lt;a href="https://www.mindroast.com/social"&gt;social networks&lt;/a&gt;. Subscribe to the &lt;a href="https://www.mindroast.com/newsletter"&gt;**newsletter&lt;/a&gt;&lt;/strong&gt; for the latest curated content.&lt;/p&gt;

</description>
      <category>systemdesign</category>
      <category>webdev</category>
      <category>programming</category>
      <category>coding</category>
    </item>
    <item>
      <title>Battle for AI Dominance: Can Gemini Surpass Chat GPT in the Future?”</title>
      <dc:creator>Apoorv</dc:creator>
      <pubDate>Thu, 18 Jan 2024 10:19:48 +0000</pubDate>
      <link>https://forem.com/apoorvtomar/battle-for-ai-dominance-can-gemini-surpass-chat-gpt-in-the-future-9d7</link>
      <guid>https://forem.com/apoorvtomar/battle-for-ai-dominance-can-gemini-surpass-chat-gpt-in-the-future-9d7</guid>
      <description>&lt;p&gt;The Battle for AI Dominance is an ongoing and dynamic competition within the field of artificial intelligence, marked by the emergence of cutting-edge technologies and models that strive to outperform each other in various domains.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fuufx6rvg3yhq0u986oop.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fuufx6rvg3yhq0u986oop.png" alt="Gemini VS ChatGPT"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;One significant aspect of this competition is the development of powerful language models, with ChatGPT and Gemini standing out as prominent contenders.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Gemini’s:&lt;/strong&gt; This newcomer boasts several key advantages. Its multimodal capabilities allow it to handle text, images, and even audio, surpassing ChatGPT’s text-only limitations.&lt;/p&gt;

&lt;p&gt;Reinforcement learning grants it the ability to adapt and improve upon its own performance, continuously pushing the boundaries of its intelligence. Finally, Google’s vast proprietary data fuels its training, potentially giving it an edge in knowledge and understanding. The goal of google is always to bring the worlds data into reach of end user.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;ChatGPT’s&lt;/strong&gt;: While not to be underestimated, ChatGPT maintains a loyal user base and a head start in the market. &lt;br&gt;
Its user-friendly interface and impressive text generation capabilities have garnered widespread acclaim. &lt;br&gt;
OpenAI, its developer, possesses a strong reputation for innovation and is actively developing the next iteration of its model, GPT-4.&lt;/p&gt;

&lt;h2&gt;
  
  
  Gemini Model In Depth
&lt;/h2&gt;

&lt;p&gt;Actually, these Gemini AI models are being used by Google’s Bard (&lt;a href="https://bard.google.com/chat" rel="noopener noreferrer"&gt;https://bard.google.com/chat&lt;/a&gt;) depending on the task at hand:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Gemini:&lt;/strong&gt; This is Google’s newest and most advanced AI model, currently in beta. It excels at reasoning, problem-solving, and generating different creative text formats. &lt;br&gt;
You can expect Bard to use Gemini for most of our interactions today, where Bard needs to understand your prompts, answer your questions comprehensively, and engage in open-ended or challenging conversations.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;LaMDA:&lt;/strong&gt; This is the conversational AI model that formed the foundation for Bard. LaMDA shines in engaging in natural and informative dialogue, and helps me understand the nuances of human language and respond accordingly. &lt;br&gt;
You may see LaMDA’s influence in how Bard adapt its responses based on your tone and the context of our conversation.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So, while LaMDA laid the groundwork for bards capabilities, Gemini is the driving force behind my performance in most situations. I hope this clarifies!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;From the official website &lt;a href="https://deepmind.google/technologies/gemini/#introduction" rel="noopener noreferrer"&gt;Gemini Official Blog&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;“Gemini is built from the ground up for multimodality — reasoning seamlessly across text, images, video, audio, and code.”&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fhl07yc7ezdnvchc97516.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fhl07yc7ezdnvchc97516.png" alt="Google’s Bard User Interface([https://bard.google.com/chat/](https://bard.google.com/chat/))"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;They have optimized Gemini 1.0, our first version, for three different sizes:&lt;br&gt;
Currently, at the time of publishing this article, we have Gemini 1.0 available, which has mainly the following three offerings.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Gemini Ultra&lt;/strong&gt; — our largest and most capable model for highly complex tasks.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Gemini Pro&lt;/strong&gt; — our best model for scaling across a wide range of tasks.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Gemini Nano&lt;/strong&gt; — our most efficient model for on-device tasks.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fh88jdu31bkcahqjtf364.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fh88jdu31bkcahqjtf364.png" alt="Gemini Offerings"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Google AI Principles: Navigating Ethical and Innovative Frontiers in Artificial Intelligence
&lt;/h2&gt;

&lt;p&gt;Gemini’s foundation is grounded in a nuanced understanding of diverse principles within the realm of artificial intelligence. Delving into these principles not only provides insight into the intricacies of Gemini’s architecture but also serves as an invaluable guide for individuals contemplating the development of their own AI models.&lt;/p&gt;

&lt;p&gt;By comprehending the underlying principles that govern Gemini, aspiring developers gain a holistic perspective on the intricacies of advanced AI systems.&lt;/p&gt;

&lt;p&gt;This knowledge becomes a cornerstone for anyone aiming to navigate the complexities of AI model construction, facilitating informed decision-making throughout the development process.&lt;/p&gt;

&lt;p&gt;As the landscape of AI continues to evolve, a comprehensive understanding of Gemini’s principles empowers developers to stay abreast of the latest advancements, fostering innovation and contributing to the ongoing dialogue in the dynamic field of artificial intelligence&lt;/p&gt;

&lt;p&gt;**1. Be socially beneficial.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Avoid creating or reinforcing unfair bias.&lt;/li&gt;
&lt;li&gt;Be built and tested for safety.&lt;/li&gt;
&lt;li&gt;Be accountable to people.&lt;/li&gt;
&lt;li&gt;Incorporate privacy design principles.&lt;/li&gt;
&lt;li&gt;Uphold high standards of scientific excellence.&lt;/li&gt;
&lt;li&gt;Be made available for uses that accord with these principles.**&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;You can read them in detail on Google official AI &lt;a href="https://ai.google/responsibility/principles/" rel="noopener noreferrer"&gt;website&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Gemini’s Analytical Prowess: Unveiling Insights into Image Recognition and Automobile Speed Assessment
&lt;/h2&gt;

&lt;p&gt;When tasked with discerning differences between two sample images and gauging the speed capabilities of respective automobiles, the Gemini model demonstrated commendable and unbiased outcomes.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fhg3ypqoeztdbjenf5ux7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fhg3ypqoeztdbjenf5ux7.png" alt="Image Shared to Gemini for getting the difference."&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Initially, it provided insightful observations by using well-known automotive brands as illustrative examples. This highlighted Gemini’s ability to recognize and draw relevant insights from visual data, showcasing its prowess in image analysis.&lt;/p&gt;

&lt;p&gt;Subsequent refinements in the analysis shed further light on the subject, particularly emphasizing the critical role of aerodynamics. This indicates the model’s capacity to delve deeper into complex topics, uncovering nuanced details that contribute to a more comprehensive understanding of the subject matter.&lt;/p&gt;

&lt;p&gt;However, to augment the precision of the results, crucial details such as the make, model, and engine specifications of the cars were explicitly requested — an indispensable prerequisite for acquiring comprehensive and accurate data. This underlines the importance of specific input parameters, showcasing the model’s responsiveness to tailored requests and its commitment to precision.&lt;/p&gt;

&lt;p&gt;While this example effectively showcases the capabilities of the Gemini model, it also underscores the imperative need for comprehensive input to ensure optimal performance when dealing with intricate scenarios. This insight reinforces the idea that, despite the model’s proficiency, the quality of input data remains pivotal in achieving reliable and nuanced results in AI applications.&lt;/p&gt;

&lt;h2&gt;
  
  
  Gemini API: Unlocking Advanced AI Capabilities for Seamless Integration and Enhanced Performance
&lt;/h2&gt;

&lt;p&gt;Gemini presents a comprehensive API suite encompassing both public and private REST APIs, offering a versatile platform for implementing diverse solutions utilizing the model’s capabilities.&lt;/p&gt;

&lt;h3&gt;
  
  
  Public REST APIs
&lt;/h3&gt;

&lt;p&gt;Public REST APIs serve as a valuable resource for accessing market data, including real-time information on the&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;current order book&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;recent trading activity,&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;comprehensive trade history etc.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These functionalities empower developers with essential tools for monitoring and analyzing market dynamics.&lt;/p&gt;

&lt;h3&gt;
  
  
  Private REST APIs
&lt;/h3&gt;

&lt;p&gt;On the other hand, Private REST APIs extend their utility by providing advanced functionalities for managing orders and funds. Users can seamlessly execute actions such as&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;placing and canceling orders&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;reviewing their active orders&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;accessing detailed trading history and trade volume metrics.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Additionally, Private REST APIs facilitate real-time updates on available balances, enabling precise financial management within the Gemini platform.&lt;/p&gt;

&lt;p&gt;For practical application and testing, the Gemini Exchange instance under consideration offers full exchange functionality with the use of test funds. Developers can explore and experiment with the platform at &lt;a href="https://exchange.sandbox.gemini.com/" rel="noopener noreferrer"&gt;https://exchange.sandbox.gemini.com/&lt;/a&gt;, gaining hands-on experience before deploying solutions in a live environment.&lt;/p&gt;

&lt;p&gt;Comprehensive documentation for the API’s epic contract can be readily accessed at &lt;a href="https://docs.gemini.com/rest-api" rel="noopener noreferrer"&gt;https://docs.gemini.com/rest-api&lt;/a&gt;, providing developers with a detailed guide for seamless integration and utilization of the Gemini API suite.&lt;/p&gt;

&lt;h2&gt;
  
  
  About The Author
&lt;/h2&gt;

&lt;p&gt;Apoorv Tomar is a software developer and blogs at &lt;a href="https://mindroast.com/" rel="noopener noreferrer"&gt;Mindroast&lt;/a&gt;. You can connect on &lt;a href="https://www.mindroast.com/social" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt;. Subscribe to the &lt;a href="https://www.mindroast.com/newsletter" rel="noopener noreferrer"&gt;Newsletter&lt;/a&gt; for the latest curated content.&lt;/p&gt;

&lt;h2&gt;
  
  
  Reference Links:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Google’s AI Principles: &lt;a href="https://ai.google/responsibility/principles/" rel="noopener noreferrer"&gt;https://ai.google/responsibility/principles/&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Gemini Sandbox: &lt;a href="https://exchange.sandbox.gemini.com/" rel="noopener noreferrer"&gt;https://exchange.sandbox.gemini.com/&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Gemini AI APIs Docs: &lt;a href="https://docs.gemini.com/rest-api/#introduction" rel="noopener noreferrer"&gt;https://docs.gemini.com/rest-api/#introduction&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Bard Officail Chat Engine: &lt;a href="https://bard.google.com/chat" rel="noopener noreferrer"&gt;https://bard.google.com/chat&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>chatgpt</category>
      <category>bard</category>
      <category>machinelearning</category>
    </item>
    <item>
      <title>Prevent Your Website from Being Embedded on Other Sites.</title>
      <dc:creator>Apoorv</dc:creator>
      <pubDate>Mon, 25 Dec 2023 17:38:32 +0000</pubDate>
      <link>https://forem.com/apoorvtomar/prevent-your-website-from-being-embedded-on-other-sites-458</link>
      <guid>https://forem.com/apoorvtomar/prevent-your-website-from-being-embedded-on-other-sites-458</guid>
      <description>&lt;p&gt;What is Iframe?&lt;/p&gt;

&lt;p&gt;An iframe, short for "inline frame," is an HTML element that embeds another document within the current HTML document. It allows you to display content from another source (such as a webpage, video, map, etc.) within a designated area of a webpage.&lt;/p&gt;

&lt;p&gt;For instance, you can use an iframe to embed a YouTube video on your webpage by including the YouTube video's URL within the iframe tag. This way, the video will be displayed on your page, but it's being loaded from YouTube's servers.&lt;/p&gt;

&lt;p&gt;src: Specifies the URL of the content to be displayed within the iframe.&lt;br&gt;
width and height: Define the dimensions of the iframe.&lt;br&gt;
title: Provides a title for the embedded content for accessibility purposes.&lt;/p&gt;

&lt;p&gt;So in case you want to embed any website onto your website, use the above HTML code. A sample of the iframe will look like below. &lt;/p&gt;

&lt;p&gt;You can use &lt;a href="https://codepen.io/" rel="noopener noreferrer"&gt;https://codepen.io/&lt;/a&gt; for coding it along with this tutorial. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fz6ljv3bf07v19na7s7ku.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fz6ljv3bf07v19na7s7ku.png" alt="Iframe Code at CodePen"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The drawback of using iframe.&lt;/p&gt;

&lt;p&gt;iFrames come with a few drawbacks and considerations:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Security Risks: iFrames can pose security risks, especially if the content within the iframe comes from an untrusted or malicious source. Cross-site scripting (XSS) attacks can be facilitated through iframes if proper precautions aren't taken.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;SEO Issues: Search engines might have difficulty indexing content within iframes, affecting the visibility and SEO ranking of the embedded content.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Responsive Design Challenges: iFrames can sometimes present challenges in creating responsive designs for web pages. They might not automatically adjust to different screen sizes or devices.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Performance Impact: Loading content within iframes can slow down the overall performance of a web page, particularly if multiple iframes with heavy content are embedded.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Accessibility Concerns: Ensuring that content within iframes is accessible to all users, including those with disabilities, can be challenging. Screen readers might have difficulty interpreting content within iframes.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;But in the worst case SEO issues, Responsive design, performance impact and accessibility concerns can be ignored, but security risks can never be taken lightly. &lt;/p&gt;

&lt;p&gt;How do we solve the problem?&lt;/p&gt;

&lt;p&gt;The X-Frame-Options header is a security feature that helps prevent clickjacking attacks by controlling whether a web page can be embedded within an iframe. In the context of Nginx, you can set this header to control how your web pages are allowed to be framed or embedded into other websites.&lt;/p&gt;

&lt;p&gt;The following file could be found inside either of the following position&lt;/p&gt;

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

/etc/nginx/nginx.conf
        or 
/opt/homebrew/etc/nginx/nginx.conf


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

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

server {
    # Other server configurations
    location / {
        # Set X-Frame-Options to deny framing
        add_header X-Frame-Options "DENY";
        # Or alternatively, set it to same origin
        # add_header X-Frame-Options "SAMEORIGIN";
        # Additional configurations for this location
    }
}


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

&lt;/div&gt;

&lt;p&gt;DENY: This option indicates that the page cannot be displayed in a frame, regardless of the site attempting to do so.&lt;/p&gt;

&lt;p&gt;SAMEORIGIN: This option allows the page to be displayed in a frame on the same origin as the page itself. It prevents the page from being displayed in frames on other domains.&lt;/p&gt;

&lt;p&gt;ALLOW-FROM uri: This option allows the page to be displayed in a frame on a specific origin specified by the URI.&lt;/p&gt;

&lt;p&gt;After adding the above code to your reverse proxy config file, like here we are using nginx which will prevent our website from getting embedded. &lt;/p&gt;

&lt;p&gt;The iframe will look as follows. i.e. whichever website has implemented the x-frame-options will show the message "website refused to connect".&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2F5mmuv2fwhuqjhrwt5liv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2F5mmuv2fwhuqjhrwt5liv.png" alt="Iframe Code at CodePe"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here we are using &lt;a href="http://www.google.com" rel="noopener noreferrer"&gt;www.google.com&lt;/a&gt; in iframe src. Google might have done more for security, but in case you add x-frame-options to your website it will look like this. &lt;/p&gt;




&lt;p&gt;About The Author&lt;br&gt;
Apoorv Tomar is a software developer and part of Mindroast. You can connect with him on Twitter, and Telegram. Subscribe to the newsletter for the latest curated content.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>nginx</category>
      <category>cybersecurity</category>
      <category>programming</category>
    </item>
    <item>
      <title>ChatGPT vs OpenAI: A Comparative Look at AI Advancements</title>
      <dc:creator>Apoorv</dc:creator>
      <pubDate>Wed, 06 Dec 2023 04:42:29 +0000</pubDate>
      <link>https://forem.com/apoorvtomar/chatgpt-vs-openai-a-comparative-look-at-ai-advancements-1fn4</link>
      <guid>https://forem.com/apoorvtomar/chatgpt-vs-openai-a-comparative-look-at-ai-advancements-1fn4</guid>
      <description>&lt;h2&gt;
  
  
  ChatGPT vs OpenAI: A Comparative Look at AI Advancements
&lt;/h2&gt;

&lt;p&gt;In the race to redefine the future of artificial intelligence, two titans stand tall: OpenAI’s ChatGPT and Google’s Bard. These AI marvels aren’t just reshaping repetitive tasks — they’re redefining how we envision problem-solving itself.&lt;/p&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&lt;strong&gt;Table of Content&lt;br&gt;
· Renowned Perspectives: Unveiling OpenAI's ChatGPT and Google's Bard&lt;br&gt;
· Introduction&lt;br&gt;
· Unveiling the Contrast Between OpenAI's ChatGPT and Google's Bard&lt;br&gt;
  ∘ Development and Leadership&lt;br&gt;
  ∘ Performance and Limitations:&lt;br&gt;
  ∘ Accessibility and Pricing Models&lt;br&gt;
  ∘ Offerings and Evolution:&lt;br&gt;
· Final Thoughts&lt;/strong&gt;&lt;br&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h2&gt;
&lt;br&gt;
  &lt;br&gt;
  &lt;br&gt;
  Renowned Perspectives: Unveiling OpenAI’s ChatGPT and Google’s Bard&lt;br&gt;
&lt;/h2&gt;

&lt;p&gt;Sam Altman’s proclamation that “All repetitive work will be done better, cheaper, and faster by AI” sets the stage for this clash of innovation.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--tW6yuFhi--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/2376/1%2A3PlMFkJ7suiDVvkkU3XP6Q.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--tW6yuFhi--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/2376/1%2A3PlMFkJ7suiDVvkkU3XP6Q.png" alt="Sam Altman Statement (Screenshot from [**x.com](https://x.com/)**)" width="800" height="167"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;ChatGPT, born under Altman’s leadership at OpenAI, embodies a commitment to AI’s societal benefits, emphasizing ethical use and accessibility. Meanwhile, Google Bard emerged as a powerhouse, harnessing Google’s technological prowess to craft a competitive AI solution.&lt;/p&gt;

&lt;p&gt;However, in this duel of AI excellence, their paths diverge significantly. Bard flaunts robust logical prowess, excelling in mathematical problem-solving. In contrast, ChatGPT, while a maestro in language processing and generation, grapples with precision in certain specialized problem sets, spotlighting its ongoing journey toward mastery in logic and accuracy.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--C252ud8k--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/2324/1%2A8w_aAblhkDf_KIDWNLIHxQ.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--C252ud8k--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/2324/1%2A8w_aAblhkDf_KIDWNLIHxQ.png" alt="Elon Must Statement (Screenshot from [x.com](https://x.com/))" width="800" height="146"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The battleground also extends to accessibility and pricing. Bard, a free-for-all treasure trove of functionalities, beckons users seeking cost-effective AI solutions. Conversely, ChatGPT has transitioned from its earlier free iterations to a nuanced pricing model, offering advanced features in exchange for a fee, mirroring the evolution and enhancements up until its GPT-3.5 version.&lt;/p&gt;

&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Yet, both contenders continue to evolve. Bard’s forte lies in logical wizardry, while ChatGPT thrives in language domains, from content creation to automated customer service. ChatGPT’s relentless pursuit of language understanding and generation echoes its commitment to refining natural language processing — an unwavering dedication to staying at the vanguard of AI evolution.&lt;/p&gt;

&lt;p&gt;In this dynamic arena, the competition between ChatGPT and Google Bard serves as a testament to the multifaceted nature of AI. Each exhibits distinct strengths and areas for growth, united by a shared mission: leveraging AI’s prowess to elevate efficiency, accessibility, and problem-solving — a collective journey shaping the very essence of artificial intelligence.&lt;/p&gt;

&lt;p&gt;In the realm of artificial intelligence, two prominent contenders, Google’s Bard and OpenAI’s ChatGPT, have been at the forefront of transforming repetitive tasks and problem-solving. However, their approaches, functionalities, and outcomes diverge significantly, prompting a closer examination of their key aspects.&lt;/p&gt;

&lt;h2&gt;
  
  
  Unveiling the Contrast Between OpenAI’s ChatGPT and Google’s Bard
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Development and Leadership
&lt;/h3&gt;

&lt;p&gt;ChatGPT, a creation of OpenAI during Sam Altman’s tenure as CEO, stands as a testament to the organization’s commitment to advancing AI for broader societal benefits. OpenAI LP, a new capped-profit, has championed the development of AI with a focus on ethical use and accessibility.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--5BhImgEe--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/2568/1%2AUgrUCh0xD9zcdQ_yAnNFnQ.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--5BhImgEe--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/2568/1%2AUgrUCh0xD9zcdQ_yAnNFnQ.png" alt="Tabular Comparison of Bard and ChatGPT" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;On the other hand, Google Bard emerged as Google’s response to AI innovation, leveraging its resources and technological prowess to create a competitive AI system.&lt;/p&gt;

&lt;h3&gt;
  
  
  Performance and Limitations:
&lt;/h3&gt;

&lt;p&gt;One crucial aspect where Bard and ChatGPT diverge is their proficiency in handling mathematical problem-solving. While Bard showcases robust logical capabilities and accurate solutions, ChatGPT has encountered challenges in this domain. Instances of incorrect answers, particularly in specialized problem sets like those found in SSC exams, have highlighted its ongoing struggles in logic-building and accuracy.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--tNl75R7Q--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/2684/1%2AVyA8vjdD9vhzMpJn71-DTA.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--tNl75R7Q--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/2684/1%2AVyA8vjdD9vhzMpJn71-DTA.png" alt="ChatGPT Response Vs Bard Response" width="800" height="448"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This disparity in performance raises questions about the extent of AI’s problem-solving capabilities and the need for continued improvement to ensure reliable outcomes.&lt;/p&gt;

&lt;h3&gt;
  
  
  Accessibility and Pricing Models
&lt;/h3&gt;

&lt;p&gt;An essential factor influencing user adoption is the accessibility and pricing structure of these AI systems. Bard, impressively, is available for free and offers a wide array of functionalities, making it an attractive option for users seeking cost-effective AI solutions.&lt;/p&gt;

&lt;p&gt;Conversely, ChatGPT has evolved its pricing strategy over iterations. While the earlier versions were free for all users up to GPT-3.5, access to its more advanced features, notably in GPT-4 onwards, may come with a cost. This shift in pricing aligns with the enhanced capabilities and improvements in the model’s training up until early 2022.&lt;/p&gt;

&lt;h3&gt;
  
  
  Offerings and Evolution:
&lt;/h3&gt;

&lt;p&gt;Both Bard and ChatGPT continue to evolve, each offering distinct advantages and innovations. Bard’s strengths lie in its logical problem-solving and broad functionality, while ChatGPT’s strengths come from its language processing and generation capabilities, which have found applications in various domains, from content creation to customer service automation.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Np5whFrZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/4916/1%2AAYfxMIFuEdS5QLtPOY6EiQ.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Np5whFrZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/4916/1%2AAYfxMIFuEdS5QLtPOY6EiQ.png" alt="Chat GPT Offerings Vs Google’s Bard Offerings" width="800" height="448"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Furthermore, the continual updates and improvements in ChatGPT’s versions reflect the ongoing efforts to refine AI’s language understanding and generation, showcasing a commitment to staying at the forefront of natural language processing advancements.&lt;/p&gt;

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

&lt;p&gt;The enthralling rivalry between ChatGPT and Google Bard encapsulates the ever-evolving nature of AI. Each AI powerhouse presents a unique blend of strengths and areas for refinement, underlining the dynamic spectrum of possibilities within artificial intelligence.&lt;/p&gt;

&lt;p&gt;While Bard impresses with its logical wizardry and wide-ranging functionalities, ChatGPT shines in its mastery of language processing, unlocking doors across diverse domains from content creation to automated customer service.&lt;/p&gt;

&lt;p&gt;This fierce competition not only showcases their distinct trajectories but underscores a collective commitment to harnessing AI’s capabilities. Both entities share an overarching mission: to propel AI forward, enhancing efficiency, accessibility, and problem-solving — a shared vision shaping the very essence of artificial intelligence.&lt;/p&gt;

&lt;p&gt;In this era of continuous innovation, the spirited contest between ChatGPT and Google Bard serves as a testament to AI’s potential and its ongoing evolution, charting a course towards a future where AI isn’t just a tool but an indispensable partner in reshaping how we work, solve problems, and engage with technology.&lt;/p&gt;




&lt;h2&gt;
  
  
  About The Author
&lt;/h2&gt;

&lt;p&gt;Apoorv Tomar is a software developer and part of &lt;a href="https://mindroast.com/"&gt;Mindroast&lt;/a&gt;. You can connect with him on &lt;a href="https://twitter.com/TomarApoorv"&gt;Twitter&lt;/a&gt;, and &lt;a href="https://t.me/ApoorvTomar"&gt;Telegram&lt;/a&gt;. Subscribe to the &lt;a href="https://www.mindroast.com/newsletter"&gt;newsletter&lt;/a&gt; for the latest curated content.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Disclaimer: The information presented in this article is based on thorough research and personal understanding of the topic. However, it is important to note that this content should not be considered as professional advice. Readers are encouraged to verify information and seek appropriate guidance or consult with qualified experts for specific needs or concerns. The author and publisher do not assume any responsibility or liability for any actions taken by readers based on the information provided herein.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>chatgpt</category>
      <category>programming</category>
      <category>machinelearning</category>
    </item>
    <item>
      <title>Unlocking the Power of Chat GPT: A Comprehensive Guide to Prompt Engineering Excellence.</title>
      <dc:creator>Apoorv</dc:creator>
      <pubDate>Sat, 25 Nov 2023 07:21:30 +0000</pubDate>
      <link>https://forem.com/apoorvtomar/unlocking-the-power-of-chat-gpt-a-comprehensive-guide-to-prompt-engineering-excellence-10eg</link>
      <guid>https://forem.com/apoorvtomar/unlocking-the-power-of-chat-gpt-a-comprehensive-guide-to-prompt-engineering-excellence-10eg</guid>
      <description>&lt;p&gt;Prompt engineering serves as a strategic mechanism designed to elicit precise responses from natural language models such as ChatGPT and GitHub Copilot. Much like steering a conversation during a podcast, this methodology involves crafting meticulously defined prompts that direct the model’s output, coaxing it to generate responses in harmony with user expectations.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F12000%2F0%2Azi6oNdPkHQMwkhg1" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F12000%2F0%2Azi6oNdPkHQMwkhg1" alt="Photo by [Mojahid Mottakin](https://unsplash.com/@iammottakin?utm_source=medium&amp;amp;utm_medium=referral) on [Unsplash](https://unsplash.com?utm_source=medium&amp;amp;utm_medium=referral)"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In essence, prompt engineering parallels the art of posing thoughtful questions during a podcast to ignite compelling discussions. By customizing prompts, users wield the ability to shape the content and trajectory of AI-generated responses. This approach empowers individuals to extract pertinent and invaluable information from these sophisticated language models.&lt;/p&gt;

&lt;p&gt;For example, in interactions with a language model, users might utilize prompts such as “Explain the concept of prompt engineering” or “Offer insights into the significance of natural language processing.” These prompts effectively steer the model towards providing pertinent information, fostering a more focused and purpose-driven interaction.&lt;/p&gt;

&lt;h2&gt;
  
  
  Crafting Clear and Precise Prompts for AI Models
&lt;/h2&gt;

&lt;p&gt;Precision and clarity are paramount when devising prompts for ChatGPT or any generative AI model. Specificity entails furnishing meticulous instructions or queries, leaving no room for ambiguity.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F11588%2F0%2AptXafOj5vBWOZdeM" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F11588%2F0%2AptXafOj5vBWOZdeM" alt="Photo by [Ricardo Arce](https://unsplash.com/@jrarce?utm_source=medium&amp;amp;utm_medium=referral) on [Unsplash](https://unsplash.com?utm_source=medium&amp;amp;utm_medium=referral)"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Explicitness guarantees a clear definition of the desired outcome or information, thereby averting confusion or misinterpretation. Articulating precise guidelines — outlining context, desired information, or the expected response type — empowers ChatGPT to produce accurate, pertinent content tailored to your requirements.&lt;/p&gt;

&lt;p&gt;To elicit more fitting responses, experimenting with varied prompting methods proves beneficial. Modifying prompts allows the model to adapt, resulting in more suitable and nuanced replies.&lt;/p&gt;

&lt;h2&gt;
  
  
  Model Deep Diving
&lt;/h2&gt;

&lt;p&gt;Deeply familiarize yourself with the language model before delving into prompt engineering — a solid grasp of its intricacies is crucial. Understand its strengths, weaknesses, and areas of expertise, forming the bedrock for tailoring prompts that harness the model’s capabilities.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F9792%2F0%2ANCFeX90hxdyaHYwg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F9792%2F0%2ANCFeX90hxdyaHYwg" alt="Photo by [Levi Arnold](https://unsplash.com/@leviarnold?utm_source=medium&amp;amp;utm_medium=referral) on [Unsplash](https://unsplash.com?utm_source=medium&amp;amp;utm_medium=referral)"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;ChatGPT is notably adept at addressing numerous queries due to its extensive knowledge base. Yet, recognizing its boundaries and specialties is essential for leveraging its full potential.&lt;/p&gt;

&lt;p&gt;Staying current is pivotal — remain updated with the latest advancements in generative models. Engage with research papers, forums, and communities dedicated to discussing these models. The landscape continually evolves, introducing new techniques and refinements.&lt;/p&gt;

&lt;p&gt;Follow a diverse array of organizations across platforms like Twitter, YouTube, and blogs to stay informed about emerging features. Many announcements regarding new developments are disseminated across these channels.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F3764%2F1%2A6A4o6R3_tLU0zEx2miPkhA.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F3764%2F1%2A6A4o6R3_tLU0zEx2miPkhA.png" alt="Open AI Youtube Channel [https://www.youtube.com/@OpenAI](https://www.youtube.com/@OpenAI)"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Crafting Precise Objectives: A Technical Approach for Success
&lt;/h2&gt;

&lt;p&gt;Defining clear objectives when working with a generative AI model involves specifying precise tasks or goals that the model should accomplish. From a technical standpoint, these objectives could include:&lt;/p&gt;

&lt;p&gt;Task Definition: Clearly defining the tasks the model should perform, such as text generation, translation, summarization, etc. For instance, generating creative content, summarizing documents, or assisting in customer support inquiries.&lt;/p&gt;

&lt;p&gt;Hyperparameter Tuning: Identifying and optimizing the hyperparameters (learning rate, batch size, etc.) that impact the model’s performance for the defined objectives.&lt;/p&gt;

&lt;p&gt;Deployment and Integration: If applicable, outlining plans for deploying the model into applications or systems. This involves technical considerations for integrating the model, its scalability, and real-time performance.&lt;/p&gt;

&lt;h2&gt;
  
  
  Enhancing Conversations: Leveraging Context for Seamless Interactions
&lt;/h2&gt;

&lt;p&gt;Leverage context to enhance conversational flow. You can accomplish this by feeding the model its prior outputs or by explicitly embedding context within the prompt. Context aids the model in producing more cohesive and pertinent responses.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F10836%2F0%2Avh0mDdYUMJRfUE3w" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F10836%2F0%2Avh0mDdYUMJRfUE3w" alt="Photo by [charlesdeluvio](https://unsplash.com/@charlesdeluvio?utm_source=medium&amp;amp;utm_medium=referral) on [Unsplash](https://unsplash.com?utm_source=medium&amp;amp;utm_medium=referral)"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For instance, rather than a vague request like ‘make me a component for listing articles,’ provide specific instructions such as ‘create a React component that fetches data using useEffect hooks, stores it locally with the useState hook, and then displays the list using array map.’&lt;/p&gt;

&lt;p&gt;Similarly, instead of a broad directive to ‘return data,’ a more precise prompt such as ‘Please generate a comparison table highlighting the disparities between React class components and React functional components’ would yield more targeted and relevant results.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2312%2F1%2ArNr8i0XF9wqklJG4zw_vaQ.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2312%2F1%2ArNr8i0XF9wqklJG4zw_vaQ.png" alt="Chat GPT"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Strategic Problem Solving: Effective Techniques for Problem Decomposition
&lt;/h2&gt;

&lt;p&gt;Breaking down larger projects into smaller tasks facilitates graceful task completion. For instance, asking a model to construct an entire project may yield results slightly off your expectations.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F7872%2F0%2AJp-WY1ib8cQP3uX7" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F7872%2F0%2AJp-WY1ib8cQP3uX7" alt="Photo by [Brad](https://unsplash.com/@minimdesignco?utm_source=medium&amp;amp;utm_medium=referral) on [Unsplash](https://unsplash.com?utm_source=medium&amp;amp;utm_medium=referral)"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Instead, breaking tasks into components fosters concise and accurate outcomes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Consider the following strategies:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Divide and Conquer:&lt;/strong&gt; Initiate by presenting the larger problem or goal to Gen AI Models. Prompt specific queries to break down the problem into digestible components. For instance, if dealing with a complex project, request ChatGPT to outline the essential steps or subtasks needed for its completion.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Exploration of Strategies:&lt;/strong&gt; Engage in discussions about diverse strategies or approaches to address different facets of the problem. ChatGPT can offer insights into methodologies or suggest approaches based on the information provided.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Evaluation of Options:&lt;/strong&gt; Seek guidance in evaluating diverse options or solutions for each sub-component. ChatGPT can furnish pros and cons, considerations, or even simulate outcomes based on the provided information.&lt;/p&gt;

&lt;h2&gt;
  
  
  Role Based Prompt
&lt;/h2&gt;

&lt;p&gt;Role-based prompts involve providing specific contextual information or adopting a particular persona within the prompt to guide the AI’s response. This method helps direct the conversation toward a defined context or scenario, allowing for more targeted and relevant interactions.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F16384%2F0%2A2-hcIr0Z7cpuyCOS" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F16384%2F0%2A2-hcIr0Z7cpuyCOS" alt="Photo by [engin akyurt](https://unsplash.com/@enginakyurt?utm_source=medium&amp;amp;utm_medium=referral) on [Unsplash](https://unsplash.com?utm_source=medium&amp;amp;utm_medium=referral)"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For instance, by assuming the role of a customer seeking assistance or a student asking questions about a particular subject, the AI can tailor its responses accordingly, providing information or support relevant to that role.&lt;/p&gt;

&lt;p&gt;Role-based prompts help ChatGPT understand the context better, resulting in more accurate and purposeful responses within the specified role’s parameters.&lt;/p&gt;

&lt;p&gt;Customer Support Role:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;“I’m having trouble with my internet connection. Can you assist me?”&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;“As a customer, I’m looking to return a product. What are the steps involved?”&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Student Role:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;“I’m studying biology and need help understanding photosynthesis. Can you explain it?”&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;“As a student working on a history project, can you provide information about World War II?”&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Medical Professional Role:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;“I’m a doctor looking for information on the latest treatments for diabetes. Can you provide an overview?”&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;“As a healthcare professional, I’m interested in learning about the symptoms of a specific rare disease.”&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Tech Support Role:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;“I’m troubleshooting a software issue. Can you guide me through potential solutions?”&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;“As a tech expert, what are the best practices for securing a home network?”&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Chef/Cook Role:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;“I’m a chef planning a menu for a vegetarian dinner. Can you suggest some innovative recipes?”&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;“As a cook, I’m looking for tips on making the perfect pasta from scratch. Any advice?”&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Hallucination
&lt;/h2&gt;

&lt;p&gt;Hallucination refers to instances where models generate outputs that are unrealistic, inaccurate, or improbable based on the input or context provided. It’s a term frequently used to depict situations when AI models produce information that lacks coherence or accuracy.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F13440%2F0%2AJvjqO8x_cHKri-AD" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F13440%2F0%2AJvjqO8x_cHKri-AD" alt="Photo by [Magnet.me](https://unsplash.com/@magnetme?utm_source=medium&amp;amp;utm_medium=referral) on [Unsplash](https://unsplash.com?utm_source=medium&amp;amp;utm_medium=referral)"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Several factors contribute to these hallucinatory outputs:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Lack of Contextual Understanding:&lt;/strong&gt; Models might misinterpret provided context, resulting in outputs that are unrelated or nonsensical.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Overfitting:&lt;/strong&gt; At times, models memorize specific patterns in the training data, generating outputs resembling training examples but lacking coherence.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Data Biases:&lt;/strong&gt; Biases present in the training data can lead to outputs reflecting those biases, distorting the model’s representation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Limitations in Training:&lt;/strong&gt; Models may struggle to generate accurate or contextually relevant outputs if not exposed to diverse or comprehensive data.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ambiguity in Input:&lt;/strong&gt; Unclear or poorly formulated input can lead to unexpected or incorrect outputs, contributing to model hallucinations.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Thougths
&lt;/h2&gt;

&lt;p&gt;Sure, here are the key points summarized:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Prompt Engineering:&lt;/strong&gt; Crafting precise prompts guides AI models like ChatGPT to generate relevant responses aligned with user expectations.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Specificity and Clarity:&lt;/strong&gt; Detailed prompts with clear instructions enhance AI model responses, avoiding ambiguity.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Understanding the Model:&lt;/strong&gt; Deep comprehension of the language model’s capabilities is crucial for effective prompt crafting.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Leveraging Context:&lt;/strong&gt; Providing context or using previous outputs improves the model’s coherence in responses.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Breaking Down Problems:&lt;/strong&gt; Decomposing complex tasks into smaller components aids in achieving more concise results.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Recognizing Hallucination Causes:&lt;/strong&gt; Unrealistic AI outputs can stem from various factors like context misunderstanding, biases, or overfitting.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  About The Author
&lt;/h2&gt;

&lt;p&gt;Apoorv Tomar is a software developer and part of &lt;a href="https://mindroast.com/" rel="noopener noreferrer"&gt;Mindroast&lt;/a&gt;. You can connect with him on &lt;a href="https://twitter.com/TomarApoorv" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt;, and &lt;a href="https://t.me/ApoorvTomar" rel="noopener noreferrer"&gt;Telegram&lt;/a&gt;. Subscribe to the &lt;a href="https://www.mindroast.com/newsletter" rel="noopener noreferrer"&gt;newsletter&lt;/a&gt; for the latest curated content.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>chatgpt</category>
      <category>webdev</category>
      <category>programming</category>
    </item>
  </channel>
</rss>
