<?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: SARTHAK RANA</title>
    <description>The latest articles on Forem by SARTHAK RANA (@sarthak_rana).</description>
    <link>https://forem.com/sarthak_rana</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%2F3161305%2F03d669b8-3cb3-493a-a682-9d0b07a227d9.jpg</url>
      <title>Forem: SARTHAK RANA</title>
      <link>https://forem.com/sarthak_rana</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/sarthak_rana"/>
    <language>en</language>
    <item>
      <title>⚡Meet Ballerina: The Language that Makes Integration Beautiful</title>
      <dc:creator>SARTHAK RANA</dc:creator>
      <pubDate>Fri, 17 Oct 2025 07:21:42 +0000</pubDate>
      <link>https://forem.com/sarthak_rana/meet-ballerina-the-language-that-makes-integration-beautiful-33jp</link>
      <guid>https://forem.com/sarthak_rana/meet-ballerina-the-language-that-makes-integration-beautiful-33jp</guid>
      <description>&lt;p&gt;If you’ve ever struggled connecting services, managing APIs, or stitching together data pipelines, you know that integration logic can get messy fast. That’s where Ballerina comes in — a cloud-native programming language purpose-built for integration in the modern microservices world.&lt;/p&gt;




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

&lt;p&gt;Ballerina is an open-source programming language created by WSO2 and designed specifically for writing integrations as code. Unlike typical general-purpose languages, Ballerina natively understands network protocols, API definitions, and concurrent workflows — all the things integration developers wrestle with daily.&lt;/p&gt;

&lt;p&gt;Introduced in 2016 and officially released in 2022, Ballerina takes the best parts of both programming languages and low-code integration tools — offering a mix of textual coding and visual representation (via sequence diagrams and flowcharts).&lt;/p&gt;

&lt;p&gt;Think of it as the sweet spot between Java’s control and Node.js’s agility, enhanced with drag-and-drop clarity.&lt;/p&gt;




&lt;h2&gt;
  
  
  Where to Use Ballerina?
&lt;/h2&gt;

&lt;p&gt;You can use Ballerina almost anywhere integration lives:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Building microservices: Create resilient, cloud-native microservices with built-in networking.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;API orchestration: Connect REST, GraphQL, and gRPC endpoints into unified flows effortlessly.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Data transformation: Handle JSON, XML, and tabular data with type-safe, declarative queries.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Event-driven systems: Manage concurrent execution flows with built-in safety primitives.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Enterprise integrations: Replace aging ESB solutions with readable, code-first workflows.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;With its cloud-native and data-oriented design, Ballerina is built for the Internet age — perfect for developers building integrations between dynamic, distributed services.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why Use Ballerina?
&lt;/h2&gt;

&lt;p&gt;Traditional tools either oversimplify integrations through rigid drag-and-drop UIs, or overcomplicate them by forcing you to manage every socket, thread, or async callback manually.&lt;/p&gt;

&lt;p&gt;Ballerina’s beauty lies in balance — integration as code, but intuitive.&lt;/p&gt;

&lt;p&gt;Here’s what makes it standout:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Cloud Native: Network primitives are first-class citizens — writing APIs or services feels natural.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Flexibly Typed: Its structural typing supports openness, ideal for dynamic service contracts.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Data Oriented: A query language built right into the language for JSON/XML handling.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Graphical and Textual: Every program can be viewed as code or as a sequence diagram.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Concurrent by Design: Concurrency is baked in — no async headaches, just safe, efficient threads.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Maintainable &amp;amp; Reliable: Explicit error handling and strong typing make integrations robust.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Getting Started With Ballerina
&lt;/h2&gt;

&lt;p&gt;Setting up Ballerina is quick and seamless. Follow these simple steps to begin writing your first integration service.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 1. Install Ballerina
&lt;/h3&gt;

&lt;p&gt;Download the Ballerina CLI from the &lt;a href="https://ballerina.io/downloads/" rel="noopener noreferrer"&gt;official download page&lt;/a&gt;.&lt;br&gt;
Then verify your installation in the terminal:&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;



&lt;p&gt;You should see the installed version printed, confirming that Ballerina is ready to use.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 2. Create Your First Project
&lt;/h3&gt;

&lt;p&gt;Initialize a new project directory using the CLI:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;bal new hello-ballerina
cd hello-ballerina
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This command creates a workspace with the following structure:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;hello-ballerina/
├── Ballerina.toml
└── main.bal
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Here’s what each file does:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Ballerina.toml&lt;/strong&gt; – Project Configuration&lt;br&gt;
This file defines your project metadata, dependencies, and settings. Think of it like &lt;code&gt;package.json&lt;/code&gt; in Node.js or &lt;code&gt;pom.xml&lt;/code&gt; in Java.&lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight toml"&gt;&lt;code&gt;&lt;span class="nn"&gt;[project]&lt;/span&gt;
&lt;span class="py"&gt;org-name&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"your-org"&lt;/span&gt;
&lt;span class="py"&gt;name&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"hello-ballerina"&lt;/span&gt;
&lt;span class="py"&gt;version&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"0.1.0"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;2. main.bal&lt;/strong&gt; – Source Code&lt;br&gt;
This is where your integration logic lives — the runnable code&lt;/p&gt;
&lt;h3&gt;
  
  
  Step 3. Write a Simple Service
&lt;/h3&gt;

&lt;p&gt;Open the main.bal file and replace its contents with this starter HTTP service:&lt;br&gt;
&lt;/p&gt;

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

service /hello on new http:Listener(8080) {

    resource function get world() returns string {
        return "Hello, Ballerina!";
    }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Run your program:&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;



&lt;h3&gt;
  
  
  Step 4. Test Your Service
&lt;/h3&gt;

&lt;p&gt;Once running, open your browser or use curl to access:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;http://localhost:8080/hello/world
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You should see the output:&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%2F9mqpwtb24kcg4k69zw6l.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%2F9mqpwtb24kcg4k69zw6l.png" alt="Output" width="800" height="395"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 5. Explore Further
&lt;/h2&gt;

&lt;p&gt;You can edit the service logic, add routes, or connect APIs easily. Refer to the &lt;a href="https://ballerina.io/learn/" rel="noopener noreferrer"&gt;Ballerina Learn Page&lt;/a&gt; for more advanced examples and tutorials.&lt;/p&gt;




&lt;h2&gt;
  
  
  Fun Bonus: Code Meets Diagram
&lt;/h2&gt;

&lt;p&gt;One of Ballerina’s coolest features is its &lt;strong&gt;automatically generated sequence diagrams&lt;/strong&gt;. Every time you write code, Ballerina can visualize the logic as a flowchart — bridging the gap between developers and architects.&lt;/p&gt;

&lt;p&gt;No more struggling to explain integration behaviors — &lt;strong&gt;your code is your diagram&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Hello World Visualized
&lt;/h3&gt;

&lt;p&gt;Here’s how our earlier &lt;code&gt;Hello, Ballerina!&lt;/code&gt; HTTP service looks as a sequence diagram:&lt;br&gt;
&lt;/p&gt;

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

service /hello on new http:Listener(8080) {

    resource function get world() returns string {
        return "Hello, Ballerina!";
    }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Sequence Diagram:&lt;/strong&gt;&lt;/p&gt;

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

&lt;h3&gt;
  
  
  How to Generate It Yourself
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Install the Ballerina VS Code Extension&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://marketplace.visualstudio.com/items?itemName=WSO2.ballerina" rel="noopener noreferrer"&gt;VS Code Marketplace link&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Open your &lt;code&gt;.bal&lt;/code&gt; file&lt;/strong&gt; in VS Code.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;View the diagram&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;Click the &lt;strong&gt;Visualize&lt;/strong&gt; link above your service/function&lt;/li&gt;
&lt;li&gt;Or click &lt;strong&gt;Show Visualizer&lt;/strong&gt; in the editor toolbar&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You’ll see a live, interactive diagram representing the flow of your service.&lt;/p&gt;




&lt;p&gt;Ballerina isn’t just another programming language — it’s an integration revolution.&lt;/p&gt;

&lt;p&gt;It empowers developers to build scalable, cloud-friendly, and visually intuitive systems while keeping the expressiveness of typed, reliable code.&lt;/p&gt;

&lt;p&gt;Whether you build microservices, automate APIs, or craft event-driven systems, give Ballerina a spin and experience integrations done right.&lt;/p&gt;

&lt;p&gt;Explore more at &lt;a href="//ballerina.io"&gt;ballerina.io&lt;/a&gt;&lt;/p&gt;

</description>
      <category>cloud</category>
      <category>cloudnative</category>
      <category>webdev</category>
      <category>programming</category>
    </item>
    <item>
      <title>From Confusion to Clarity: My AI Agent for Intern Prep in Big Tech</title>
      <dc:creator>SARTHAK RANA</dc:creator>
      <pubDate>Sun, 15 Jun 2025 04:48:46 +0000</pubDate>
      <link>https://forem.com/sarthak_rana/from-confusion-to-clarity-my-ai-agent-for-intern-prep-in-big-tech-mep</link>
      <guid>https://forem.com/sarthak_rana/from-confusion-to-clarity-my-ai-agent-for-intern-prep-in-big-tech-mep</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/runnerh"&gt;Runner H "AI Agent Prompting" Challenge&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;Being Student Preparing for highly competitive technical internships at top tech companies like Adobe, Google, Microsoft, Amazon, and others can be overwhelming. Aspiring candidates often struggle to understand the exact skill requirements, the nuances of the interview process, and how to build a structured, personalized study plan. This leads to wasted effort on irrelevant topics, missed application windows, and high stress levels.&lt;/p&gt;

&lt;p&gt;To solve this, I built the Big Tech Intern Prep Agent, an autonomous AI workflow powered by Runner H. Starting from a single, detailed prompt, this agent researches a specific internship role at a leading tech company (e.g., Adobe Software Engineer Intern), analyzes the job requirements, studies common interview patterns, curates top study resources, and synthesizes all this into a personalized weekly study plan. It works like a smart, self-updating career coach and study planner, streamlining the entire prep journey for roles across companies.&lt;/p&gt;

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

&lt;p&gt;Prompting Runner H with a detailed goal to generate a personalized study plan for a big tech software engineering internship&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy3mbxie0eyqjb6pnlw44.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%2Fy3mbxie0eyqjb6pnlw44.png" alt="Prompting Runner H with a detailed goal to generate a personalized study plan for a big tech software engineering internship"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Runner H analyzing the official job description to extract required skills and responsibilities.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcx37q3vtfwtr92qc9mdd.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%2Fcx37q3vtfwtr92qc9mdd.png" alt="Runner H analyzing the official job description to extract required skills and responsibilities."&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The final output is a comprehensive study plan in PDF format generated bt Runner H tailored to internship requirements, generated using the provided prompt and job description.&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%2F5fukj30f7yzciyft18h2.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%2F5fukj30f7yzciyft18h2.png" alt="Study Plan"&gt;&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%2Fy617yav9yuooqjd85bpz.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%2Fy617yav9yuooqjd85bpz.png" alt="Study Plan"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  How I Used Runner H
&lt;/h2&gt;

&lt;p&gt;I used Runner H to help me prepare for this.&lt;br&gt;
Runner H’s autonomous capabilities allowed me to build this system without writing any code to interface with different websites. By giving it a single, structured prompt, the agent could:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Navigate to job of Adobe.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Parse job descriptions, required technologies (like Python, Java, C++, SDLC, etc.).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Scrape interview experiences from sites like GeeksforGeeks and Glassdoor.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Curate targeted learning paths from platforms like LeetCode, Coursera, and YouTube.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Generate a custom week-by-week study plan aligned with my goals, skill level, and schedule.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This process works not only for Adobe, but can easily be adapted for any big tech internship by simply updating the job URL and current skill level in the prompt.&lt;/p&gt;

&lt;p&gt;Here's the exact prompt I used and how Runner H leveraged its capabilities:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Objective:&lt;/strong&gt; Generate a highly targeted, comprehensive, and actionable study plan to maximize my chances of securing the &lt;strong&gt;Adobe 2025 Intern - Software Engineer (Job ID: R147746)&lt;/strong&gt; position.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Phase 1: Deep Job Description &amp;amp; Company Research (Autonomous Observation &amp;amp; Information Gathering)&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Analyze Official Job Description:&lt;/strong&gt; Navigate directly to the provided job URL: &lt;code&gt;https://careers.adobe.com/us/en/job/R147746/2025-Intern-Software-Engineer&lt;/code&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Thoroughly read and extract all required qualifications, preferred skills, core responsibilities, and technologies mentioned (e.g., Java, C++, JavaScript, Python, familiarity with SDLC, web/mobile app development).&lt;/li&gt;
&lt;li&gt;Note down any specific soft skills or cultural aspects emphasized by Adobe (e.g., collaboration, communication, problem-solving, versatility, adaptability).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Adobe Interview Process Research:&lt;/strong&gt; Research typical interview processes for Software Engineer interns at Adobe. Look for information on online assessments, technical screens, coding rounds, system design (if applicable for interns), and behavioral interviews. Identify common question types and difficulty levels. Prioritize insights from recent (2024-2025) interview experiences on platforms like Glassdoor, LeetCode discussion forums, GeeksforGeeks, and similar career blogs.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Understand Adobe's Product Areas:&lt;/strong&gt; Briefly research the Creative Cloud, Document Cloud, and Experience Cloud to understand the scope of work an intern might engage in, looking for general technology trends within these areas.&lt;br&gt;
&lt;strong&gt;Phase 2: Skill Gap Analysis &amp;amp; Resource Identification (Intelligent Filtering &amp;amp; Prioritization)&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Current Skill Assessment:&lt;/strong&gt; My current technical background is: &lt;em&gt;[YOUR CURRENT PROGRAMMING LANGUAGES, DATA STRUCTURES/ALGORITHMS KNOWLEDGE, RELEVANT COURSEWORK, PROJECT EXPERIENCE, AND ANY SPECIFIC TECHNOLOGIES YOU ARE FAMILIAR WITH HERE. e.g., 'Intermediate Python, basic Java, familiar with fundamental data structures like arrays and linked lists, completed an intro to CS course, some experience with React/web development'].&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Identify Critical Gaps:&lt;/strong&gt; Based on the detailed requirements from Phase 1 and my current skills, identify the most critical technical and soft skill gaps I need to address for this specific Adobe role.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Curate Top Resources:&lt;/strong&gt; For each identified skill gap or core requirement, find &lt;strong&gt;highly-rated and relevant online learning resources and practice platforms&lt;/strong&gt;. Prioritize comprehensive and widely recognized resources.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Core Languages (Java, C++, JavaScript, Python):&lt;/strong&gt; Find resources for strengthening proficiency in the languages mentioned in the job description that align with my current skills.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Data Structures &amp;amp; Algorithms (DSA):&lt;/strong&gt; Identify structured courses and problem sets on platforms like LeetCode (focus on Easy/Medium Adobe-tagged problems if available), HackerRank, GeeksforGeeks.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Object-Oriented Programming (OOP):&lt;/strong&gt; Find tutorials/courses specifically on OOP principles in the relevant language(s).&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Software Development Lifecycle (SDLC):&lt;/strong&gt; Identify resources explaining modern SDLC practices, agile methodologies, testing, and deployment basics for web/mobile apps.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;System Design (Basic):&lt;/strong&gt; Find beginner-friendly introductions to system design concepts, tailored for interns/junior engineers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Behavioral &amp;amp; Communication:&lt;/strong&gt; Identify resources for common behavioral interview questions, resume/project discussion tips, and general communication strategies.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Optional (Adobe-specific):&lt;/strong&gt; If relevant, find introductory resources on Adobe's specific technologies (e.g., Creative Cloud APIs, general cloud concepts, big data basics if hinted at).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Phase 3: Personalized Weekly Study Plan Generation (Structured Output &amp;amp; Time Allocation)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Generate a structured weekly study plan&lt;/strong&gt; for a duration of &lt;strong&gt;[YOUR DESIRED PREPARATION TIMELINE, e.g., '10 weeks' or '3 months'].&lt;/strong&gt; If no timeline is specified, assume a balanced 12-week preparation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Allocate Study Hours:&lt;/strong&gt; Assume a daily study commitment of &lt;strong&gt;[YOUR SPECIFIED DAILY HOURS, e.g., '2-3 hours on weekdays, 4 hours on weekends']&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;For each week, define:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Key Topics to Master:&lt;/strong&gt; (e.g., "Week 1: Arrays, Strings, Basic OOP in Python").
&lt;strong&gt;Recommended Learning Path:&lt;/strong&gt; Specific resource links from Phase 2 to use for that week's topics.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Practice Goals:&lt;/strong&gt; Concrete coding problems to solve, behavioral questions to ponder, or concepts to review (e.g., "Solve 7 LeetCode Easy/Medium problems on Arrays," "Practice explaining a recent project using STAR method").&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Mini-Project Ideas (Optional):&lt;/strong&gt; Suggest 1-2 small project ideas that reinforce weekly learning or align with Adobe's product areas (e.g., a simple web app with a basic backend, a small image processing script).&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Integrate Regular Review:&lt;/strong&gt; Include dedicated slots for spaced repetition, reviewing previously learned material, and solving mixed problem sets.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Phase 4: Interview Simulation &amp;amp; Application Strategy (Actionable Preparation &amp;amp; Final Polish)&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Mock Interview Preparation:&lt;/strong&gt; Outline a strategy for conducting mock interviews (peer-to-peer or self-simulated). Suggest how to articulate technical thought processes clearly and concisely.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Resume/Project Discussion Tips:&lt;/strong&gt; Provide advice on how to effectively discuss past projects and experiences during interviews, relating them to Adobe's values and the job description.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Behavioral Question Bank:&lt;/strong&gt; Generate a small list of common behavioral questions for Adobe or general tech internships.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Application &amp;amp; Networking Guidance:&lt;/strong&gt; Suggest steps for tailoring the resume/cover letter, and briefly mention looking for Adobe recruiters/engineers on LinkedIn for informational interviews (if time permits).&lt;br&gt;
&lt;strong&gt;Phase 5: Output &amp;amp; Presentation (Clear &amp;amp; Actionable Report)&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Present the entire study plan as a clear, well-formatted document (e.g., markdown or structured text output).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Include an initial summary of the Adobe job requirements and interview insights.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Ensure all resource links are clickable and organized by topic.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Conclude with actionable advice on tracking progress, maintaining motivation, and performing final interview preparations.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Goal:&lt;/strong&gt; Deliver a self-contained, easy-to-follow roadmap that guides me from my current skill level to being well-prepared for the Adobe Software Engineer Intern role.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;
  
  
  Use Case &amp;amp; Impact
&lt;/h2&gt;



&lt;p&gt;The Intern Prep Agent has significant real-world applications and impact for aspiring software engineers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Personalized &amp;amp; Targeted Preparation&lt;/strong&gt;: Instead of generic study plans, this agent provides a roadmap directly tailored to the Software Engineer Intern role's specific requirements and the user's current skill set. This drastically improves study efficiency.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Time-Saving &amp;amp; Overwhelm Reduction&lt;/strong&gt;: Manually researching job descriptions, interview processes, and finding relevant resources can take days, if not weeks. This agent automates that entire initial, tedious phase, allowing candidates to jump straight into focused studying. It reduces the common feeling of being overwhelmed by the sheer volume of information.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Increased Confidence &amp;amp; Effectiveness&lt;/strong&gt;: By providing a clear, week-by-week plan with curated resources, the agent instills confidence and ensures a structured approach to preparation, leading to more effective learning and better interview performance.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Accessibility&lt;/strong&gt;: It democratizes access to high-quality, personalized career preparation for competitive roles, benefiting students and career changers worldwide.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This solution truly exemplifies how Runner H can act as an intelligent, autonomous assistant, transforming a complex and time-consuming personal goal into an organized, achievable project.&lt;/p&gt;
&lt;h3&gt;
  
  
  Social Love
&lt;/h3&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1938496597199098165-793" src="https://platform.twitter.com/embed/Tweet.html?id=1938496597199098165"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1938496597199098165-793');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1938496597199098165&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;h3&gt;
  
  
  🤝 Connect with Me
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/Sarthak2845" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.linkedin.com/in/sarthak-rana-897519217/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.instagram.com/sarthakrana.py" rel="noopener noreferrer"&gt;Instagram&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>devchallenge</category>
      <category>runnerhchallenge</category>
      <category>ai</category>
      <category>machinelearning</category>
    </item>
    <item>
      <title>🕹️How I Built a 2D Endless Runner Game with Amazon Q CLI &amp; PyGame</title>
      <dc:creator>SARTHAK RANA</dc:creator>
      <pubDate>Tue, 03 Jun 2025 14:54:14 +0000</pubDate>
      <link>https://forem.com/sarthak_rana/how-i-built-a-2d-endless-runner-game-with-amazon-q-cli-pygame-5f71</link>
      <guid>https://forem.com/sarthak_rana/how-i-built-a-2d-endless-runner-game-with-amazon-q-cli-pygame-5f71</guid>
      <description>&lt;h2&gt;
  
  
  🎮 Introduction
&lt;/h2&gt;

&lt;p&gt;As part of "Build Games with Amazon Q CLI," I decided to combine my creativity and coding skills to create a fun 2D Endless Runner Game using PyGame and Amazon Q CLI.&lt;br&gt;
The result was so surprising A simple game that test our reflexes, With a player who run endlessly jumping over objects and score increasing!!&lt;br&gt;
And the best part was? I built it just by chatting with Amazon Q CLI — an AI coding assistant that helps us create working code from natural language prompts. No chaos in setting up files and all.&lt;br&gt;
Amazon Q CLI does everything for us!!&lt;/p&gt;


&lt;h2&gt;
  
  
  💡 Idea Behind the Game
&lt;/h2&gt;

&lt;p&gt;I was always fascinated by the Chrome Dino Game and how it actually works so I decided to build a game something just like it.&lt;br&gt;
I added mechanics like jumping to avoid obstacles, increasing the speed of the character after specific to increase the difficulty and make the game more surviving and adventurous.&lt;/p&gt;


&lt;h2&gt;
  
  
  🛠️ Tools &amp;amp; Tech &amp;amp; how I built it.
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Amazon Q CLI&lt;/strong&gt; – AI-powered coding assistant&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Python&lt;/strong&gt; – Programming language&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;PyGame&lt;/strong&gt; – Library to handle graphics, events, and collisions&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;VS Code&lt;/strong&gt; – Editor&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub&lt;/strong&gt; – To host the code&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pixabay/Freesound&lt;/strong&gt; – For free sound effects and background music&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Here’s a breakdown of how I used it to build my 2D endless runner game:&lt;/p&gt;
&lt;h3&gt;
  
  
  Step 1: Setting Up the Environment:
&lt;/h3&gt;

&lt;p&gt;To build my game, I used WSL (Windows Subsystem for Linux).&lt;br&gt;
To Install WSL as Ubuntu open Powershell as Administrator and run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt; wsl &lt;span class="nt"&gt;--install&lt;/span&gt; &lt;span class="nt"&gt;-d&lt;/span&gt; Ubuntu
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Step 2:🤖 Installing Amazon Q CLI
&lt;/h3&gt;

&lt;p&gt;Next I installed Amazon Q CLI I did this by following the guide&lt;/p&gt;

&lt;p&gt;📄 &lt;a href="https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/command-line-installing.html" rel="noopener noreferrer"&gt;Installing Amazon Q for command line&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 3:🚀 Starting Q Chat
&lt;/h3&gt;

&lt;p&gt;Once Installed start the session by simply running&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;q chat
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That's It! Now just give prompt to Amazon Q and our game is ready!!&lt;/p&gt;

&lt;p&gt;My prompt was&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"Help me create a simple 2D endless runner game using PyGame. I want a player character that can jump to avoid obstacles, a scrolling background or moving ground, and random obstacles appearing over time. When the player hits an obstacle, the game should end and display the final score. Also include basic scoring logic and key comments in the code."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Within minutes, Q generated a full Python script with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Player and obstacle classes&lt;/li&gt;
&lt;li&gt;Jump mechanics&lt;/li&gt;
&lt;li&gt;Game loop with score tracking&lt;/li&gt;
&lt;li&gt;Collision logic&lt;/li&gt;
&lt;li&gt;Game over condition&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The game generated by &lt;strong&gt;Amazon Q CLI&lt;/strong&gt; used &lt;strong&gt;colored rectangles&lt;/strong&gt; initially as placeholders for the player and obstacles.&lt;br&gt;
This looked so boring,so I decided to add cool asset in game to make it visually appealing and engaging along with cool sound affects.&lt;br&gt;
The sound effects which I added were&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Jump sound&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Crash sound&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Background music&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I took assests and sound from website like&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://kenney.nl/assets" rel="noopener noreferrer"&gt;Kenney.nl&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://opengameart.org/" rel="noopener noreferrer"&gt;OpenGameArt.org&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://freesound.org" rel="noopener noreferrer"&gt;Freesound.org&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://pixabay.com/sound-effects/" rel="noopener noreferrer"&gt;Pixabay Sound Effects&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;
  
  
  Here's some snapshot and gameplay of my game
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fva64tgsgfe1ysmx97jsx.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%2Fva64tgsgfe1ysmx97jsx.png" alt="Welcome Screen"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Welcome Screen&lt;/em&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%2F4pqii7qsrl40ybrkospt.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%2F4pqii7qsrl40ybrkospt.png" alt="Player jumping to avoid an obstacle"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Player jumping to avoid an obstacle.&lt;/em&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  🎥 Watch the Game in Action
&lt;/h3&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/DGjeEskBdqQ"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;h3&gt;
  
  
  🔗 GitHub Repository
&lt;/h3&gt;

&lt;p&gt;You can explore the full source code in my GitHub repo below:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;👉 &lt;a href="https://github.com/Sarthak2845/Endless-Runner-Game-using-Amazon-Q-CLI" rel="noopener noreferrer"&gt;GitHub - Endless Runner Game using PyGame &amp;amp; Amazon Q CLI&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Feel free to ⭐ star the repo or fork it to try your own version!&lt;/p&gt;




&lt;h2&gt;
  
  
  🎯 Learnings &amp;amp; Takeaways
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Amazon Q CLI&lt;/strong&gt; is really a very useful and cool tool for developers to build anything in minutes.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;I Understood how endless runner games work—jump physics, obstacle spawning, speed scaling, and collision detection.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Learned to integrate sound effects and visuals to make the game more immersive and engaging.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Gained practical experience in using PyGame for handling graphics, events, and game loops.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




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

&lt;p&gt;I was a fun building a game using &lt;strong&gt;AmazonQ CLI&lt;/strong&gt; and exploring game development.&lt;br&gt;
It showed me how we can use AI for developemt by leaving space for creativity too..&lt;br&gt;
Whether you're a beginner or experienced developer, I highly recommend giving Amazon Q CLI a try for your next creative coding idea.&lt;/p&gt;




&lt;h2&gt;
  
  
  🤝 Connect with Me
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/Sarthak2845" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.linkedin.com/in/sarthak-rana-897519217/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.instagram.com/sarthakrana.py" rel="noopener noreferrer"&gt;Instagram&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>python</category>
      <category>amazon</category>
      <category>amazonqcli</category>
    </item>
  </channel>
</rss>
