<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: naibei caleb</title>
    <description>The latest articles on DEV Community by naibei caleb (@naibei_caleb_01e47eb5148b).</description>
    <link>https://dev.to/naibei_caleb_01e47eb5148b</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%2F3818827%2Fcd022c83-fab7-45c3-845a-07870f374bcb.png</url>
      <title>DEV Community: naibei caleb</title>
      <link>https://dev.to/naibei_caleb_01e47eb5148b</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/naibei_caleb_01e47eb5148b"/>
    <language>en</language>
    <item>
      <title>How to Publishing and Embedding Power BI Reports on the Web with IFrames</title>
      <dc:creator>naibei caleb</dc:creator>
      <pubDate>Mon, 06 Apr 2026 00:30:50 +0000</pubDate>
      <link>https://dev.to/naibei_caleb_01e47eb5148b/how-to-publishing-and-embedding-power-bi-reports-on-the-web-with-iframes-b70</link>
      <guid>https://dev.to/naibei_caleb_01e47eb5148b/how-to-publishing-and-embedding-power-bi-reports-on-the-web-with-iframes-b70</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;After a succesfull cleaning, analysing and making of report in Power BI, the next step to some Users Is to Embed it to a website or a blog.&lt;br&gt;
In this guide I will walk you through how I :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Created working space in Power BI.&lt;/li&gt;
&lt;li&gt;Upload and Published Report&lt;/li&gt;
&lt;li&gt;Generate and Embeded Code With IFrame&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;IFrames involves generating a shareable link or code from the Power BI service and placing that code into the HTML of your website.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Step 1: Creating a Workspace in Power BI Service
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;A workspace is used to store and manage reports, dashboards, and datasets.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Follow these steps:
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Go to Power BI Service: &lt;a href="https://app.powerbi.com" rel="noopener noreferrer"&gt;https://app.powerbi.com&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Sign in with your account&lt;/li&gt;
&lt;li&gt;From the left panel, select &lt;strong&gt;Workspaces&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;New Workspace&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Enter a name (e.g., &lt;em&gt;Electronics Sales Workspace&lt;/em&gt;)
Click &lt;strong&gt;Save&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&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%2F4nmxikoudjwvtoe1auu8.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%2F4nmxikoudjwvtoe1auu8.png" alt=" " width="800" height="393"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 2: Upload and Publish the Report
&lt;/h2&gt;

&lt;p&gt;After the workspace is created, upload your Power BI report file.&lt;/p&gt;

&lt;h3&gt;
  
  
  Steps On Power BI:
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Click &lt;strong&gt;Publish&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Select your &lt;strong&gt;workspace&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&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%2F6kmd7a6ar2mnn7jg3ijq.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%2F6kmd7a6ar2mnn7jg3ijq.png" alt=" " width="800" height="423"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 3: Understand Embedding Options
&lt;/h2&gt;

&lt;p&gt;Power BI provides two main ways to embed reports:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Publish to Web (Public Embed)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Accessible without login&lt;/li&gt;
&lt;li&gt;Suitable for public dashboards&lt;/li&gt;
&lt;li&gt;Generates a public link&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. Secure Embed
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Requires authentication&lt;/li&gt;
&lt;li&gt;Suitable for private or organizational use&lt;/li&gt;
&lt;li&gt;Keeps data protected&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If “Publish to Web” is disabled, use Secure Embed.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;After Selecting The Prefered one You Proceed to embed the report, generate an iframe code from Power BI.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Steps:
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Open your report in Power BI Service&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;File&lt;/strong&gt; then &lt;strong&gt;Embed report&lt;/strong&gt; then &lt;strong&gt;Website or portal&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Copy the generated IFrame code&lt;/li&gt;
&lt;/ol&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%2Fvcb5jh8g9ovh3spu1hyg.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%2Fvcb5jh8g9ovh3spu1hyg.png" alt=" " width="800" height="381"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 4: Embed the Report in an HTML Page
&lt;/h2&gt;

&lt;p&gt;Create an HTML file and paste the embed code inside it.&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%2F17azstt40gypz4o0zwh7.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%2F17azstt40gypz4o0zwh7.png" alt=" " width="800" height="404"&gt;&lt;/a&gt;&lt;em&gt;HTML page displaying the dashboard&lt;/em&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Here are Common Issues You Might Come Accross and Solutions
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Issue 1: Report Not Displaying
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Cause: Using a secure embed link without authentication&lt;/li&gt;
&lt;li&gt;Solution: Log in or use “Publish to Web” if available&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Issue 2: Map Visual Not Working
&lt;/h3&gt;

&lt;p&gt;Cause: Map visuals disabled in settings&lt;br&gt;
Solution:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Go to &lt;strong&gt;File&lt;/strong&gt; then &lt;strong&gt;Options&lt;/strong&gt; then &lt;strong&gt;Global&lt;/strong&gt; then &lt;strong&gt;Security&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Enable map visuals&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Issue 3: Incorrect Calculations
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Cause: Improper DAX or data modeling&lt;/li&gt;
&lt;li&gt;Solution: Use row-level calculations&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Issue 4: Slicers Not Working
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Cause: Using fields from the fact table&lt;/li&gt;
&lt;li&gt;Solution: Use dimension tables (e.g., Customers, Products)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
    &lt;iframe src="https://www.youtube.com/embed/9uaKbFT6uHM"&gt;
  &lt;/iframe&gt;

&lt;/h2&gt;

&lt;h2&gt;
  
  
  Best Practices
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Use a star schema for data modeling&lt;/li&gt;
&lt;li&gt;Create measures using DAX instead of raw columns&lt;/li&gt;
&lt;li&gt;Use consistent naming for visuals&lt;/li&gt;
&lt;li&gt;Keep the dashboard layout clean and aligned&lt;/li&gt;
&lt;li&gt;Use slicers from dimension tables only&lt;/li&gt;
&lt;/ol&gt;




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

&lt;p&gt;Power BI reports Can Be Published and Embeded in Websites using IFrame while following the above steps.&lt;/p&gt;

&lt;p&gt;Understanding all the stapes and possible solutions for issues that you might come accross Helps in Smooth Implementation.&lt;/p&gt;

</description>
      <category>datascience</category>
      <category>powerplatform</category>
    </item>
    <item>
      <title>Linux Fundamentals Every Beginner Data Engineer Should Know</title>
      <dc:creator>naibei caleb</dc:creator>
      <pubDate>Tue, 31 Mar 2026 19:59:39 +0000</pubDate>
      <link>https://dev.to/naibei_caleb_01e47eb5148b/linux-fundamentals-every-beginner-data-engineer-should-know-2o1c</link>
      <guid>https://dev.to/naibei_caleb_01e47eb5148b/linux-fundamentals-every-beginner-data-engineer-should-know-2o1c</guid>
      <description>&lt;h2&gt;
  
  
  Intoduction
&lt;/h2&gt;

&lt;p&gt;In this post, I'm going to share with you on how I handled my first Data Engineering assignment.&lt;br&gt;
It covers important Linux fundamentals that every beginner Data Engineer should know. These included &lt;strong&gt;navigating directories, creating files and folders, performing file operations, managing permissions, and reviewing command history&lt;/strong&gt;.&lt;/p&gt;

&lt;blockquote&gt;
&lt;h2&gt;
  
  
  nothing complex, just a beginner's work
&lt;/h2&gt;
&lt;h2&gt;
  
  
  What is Linux?
&lt;/h2&gt;

&lt;p&gt;Linux is a free, open-source operating system (OS) based on Unix, designed for stability, security, and flexibility&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;click the thumbnail to open a youtube video for more info about linux&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://youtu.be/xRX6ZI_P-LA?si=l47BCOpx_JmAiH5W" rel="noopener noreferrer"&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%2Ffgetv47dw9j0d0b0m9t5.jpg" alt=" " width="800" height="450"&gt;&lt;/a&gt;
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Why Linux important to Data Engineer
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;Data Engineers often work with remote servers, cloud virtual machines, ETL pipelines, and automation scripts. Linux provides the environment where many of these tools and processes run efficiently.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Understanding Linux helps in:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Managing files and directories&lt;/li&gt;
&lt;li&gt;Running scripts and automation tasks&lt;/li&gt;
&lt;li&gt;Working with remote servers&lt;/li&gt;
&lt;li&gt;Organizing datasets&lt;/li&gt;
&lt;li&gt;Securing data files with permissions&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Here is how I performed the assignment covering key Linux fundamentals
&lt;/h2&gt;

&lt;p&gt;I learned how to navigate directories, create files/folders, perform file operations, manage permissions, and review command &lt;code&gt;history&lt;/code&gt;.&lt;/p&gt;




&lt;h3&gt;
  
  
  Login Verification
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;First, I logged into the Ubuntu server to confirm I could access my assigned account. The screenshot below shows a successful login and my current working directory&lt;/p&gt;
&lt;/blockquote&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%2Fufqetcqw32fk13bl8f5z.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%2Fufqetcqw32fk13bl8f5z.png" alt=" " width="800" height="486"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;I used the following commands&lt;/em&gt;&lt;br&gt;
&lt;code&gt;root&lt;/code&gt; is the username&lt;br&gt;
&lt;code&gt;143.110.224.135&lt;/code&gt; is the server IP address&lt;br&gt;
&lt;code&gt;-p&lt;/code&gt; 22 specifies the SSH port&lt;br&gt;
&lt;code&gt;whoami&lt;/code&gt; username of the currently logged-in user(&lt;em&gt;it's screenshot found in the pdf folder at the end&lt;/em&gt;)&lt;br&gt;
&lt;code&gt;pwd&lt;/code&gt; I used it to shows the exact directory I was currently working in (&lt;em&gt;it's screenshot found in the pdf folder at the end&lt;/em&gt;)&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  Folder &amp;amp; File Structure
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;After logging in, I created my main project directory using my name, and added subfolders for raw_data, processed_data, logs, and scripts.&lt;/p&gt;
&lt;/blockquote&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%2F8c7zqv7drvep378xspur.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%2F8c7zqv7drvep378xspur.png" alt=" " width="762" height="322"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Using &lt;code&gt;mkdir&lt;/code&gt; I created "Caleb_data_engineering" as my folder name and &lt;code&gt;mkdir raw_data processed_data logs scripts&lt;/code&gt; to create Subfolders&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The screenshot below shows the directory structure using the &lt;code&gt;ls -R&lt;/code&gt; command, I used it to list all files and folders I had created&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%2Felw6tt5owp1pgay1gnri.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%2Felw6tt5owp1pgay1gnri.png" alt=" " width="658" height="352"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The Subfolder Created stored:&lt;br&gt;
&lt;code&gt;raw_data&lt;/code&gt;  stores original data&lt;br&gt;
&lt;code&gt;processed_data&lt;/code&gt; stores cleaned/modified data&lt;br&gt;
&lt;code&gt;logs&lt;/code&gt;  stores log files&lt;br&gt;
&lt;code&gt;scripts&lt;/code&gt;  stores shell scripts&lt;/p&gt;
&lt;/blockquote&gt;




&lt;p&gt;&lt;code&gt;nano&lt;/code&gt; I used it to open and edit files directly from the command line.(terminal-based text editor)&lt;/p&gt;

&lt;h3&gt;
  
  
  Raw and Processed Data Files
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;I created sample CSV files to simulate real data: stock_data.csv in raw_data and cleaned_stock_data.csv in processed_data.&lt;/p&gt;
&lt;/blockquote&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%2F39x8m9el04d7q9rl4bew.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%2F39x8m9el04d7q9rl4bew.png" alt=" " width="800" height="664"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;These screenshots show the contents of each file.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;raw data&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%2F424q2frmilfb2wryso5i.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%2F424q2frmilfb2wryso5i.png" alt=" " width="800" height="245"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;processed data&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%2Fprs6iuy7vt3qzyzevzns.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%2Fprs6iuy7vt3qzyzevzns.png" alt=" " width="800" height="228"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  Scripts and Logs
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;I also created a simple script and a log file to track operations.&lt;br&gt;
This screenshot shows the process_stock.sh script and the corresponding log file in action.&lt;/p&gt;
&lt;/blockquote&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%2Fjv0isuaevoc1wxqyizj6.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%2Fjv0isuaevoc1wxqyizj6.png" alt=" " width="800" height="591"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;I used command &lt;code&gt;touch&lt;/code&gt; create empty files in each subfolder&lt;/em&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  Permissions and Navigation
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;To practice Linux permissions, I restricted access to my main folder and made the script executable.&lt;br&gt;
I also practiced navigating directories and listing hidden files.&lt;/p&gt;
&lt;/blockquote&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%2Fqo5u3p02uypybkkthhq7.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%2Fqo5u3p02uypybkkthhq7.png" alt=" " width="800" height="845"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;At the end, I ran the &lt;code&gt;history&lt;/code&gt; command to review all the commands I had executed during the assignment. As shown in the screenshot below &lt;/p&gt;
&lt;/blockquote&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%2Fmkvb33witchz2u7h9uru.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%2Fmkvb33witchz2u7h9uru.png" alt=" " width="800" height="826"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  More commands Used in my assignment
&lt;/h2&gt;

&lt;p&gt;For file operations, I used &lt;code&gt;cp&lt;/code&gt; to create a backup file, &lt;code&gt;mv&lt;/code&gt; to move and rename files, and &lt;code&gt;rm&lt;/code&gt; to delete unnecessary files and keep the workspace organized.&lt;/p&gt;

&lt;p&gt;For permissions, I used &lt;code&gt;chmod&lt;/code&gt; to control access to my files and folders:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;chmod 700 ~/Caleb_data_engineering&lt;/code&gt; was used to restrict access to my main project folder so that only the owner could access it.&lt;br&gt;
In Linux permission terms, &lt;code&gt;700&lt;/code&gt; means:&lt;br&gt;
7 = read, write, and execute for the owner&lt;br&gt;
0 = no access for group&lt;br&gt;
0 = no access for others&lt;br&gt;
&lt;code&gt;chmod 600&lt;/code&gt; was used on important files such as the raw data file, cleaned data file, and log file.&lt;br&gt;
This ensures that only the owner can read and write the file.&lt;br&gt;
In this case:&lt;br&gt;
6 = read and write for the owner&lt;br&gt;
0 = no access for group&lt;br&gt;
0 = no access for others&lt;/p&gt;

&lt;p&gt;I also used &lt;code&gt;chmod +x&lt;/code&gt; to make my shell script executable, allowing it to run directly from the terminal.&lt;/p&gt;

&lt;p&gt;To confirm that the permission changes were applied correctly, I used ls -l, which displays file permissions and ownership details.&lt;/p&gt;

&lt;p&gt;I then ran &lt;code&gt;./process_stock.sh&lt;/code&gt; to execute my script, &lt;code&gt;ls -la&lt;/code&gt; to list all files including hidden ones, and &lt;code&gt;!!&lt;/code&gt; to re-run the previous command.&lt;/p&gt;

&lt;h2&gt;
  
  
  Supporting Evidence
&lt;/h2&gt;

&lt;p&gt;To keep this article concise, I placed the full assignment screenshots in a separate PDF document hosted on GitHub.&lt;br&gt;
&lt;a href="https://github.com/user-attachments/files/26388413/Caleb_data_engineering_assignment_screenshot.pdf" rel="noopener noreferrer"&gt;Caleb_data_engineering_assignment_screenshot.pdf&lt;/a&gt;&lt;/p&gt;




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

&lt;blockquote&gt;
&lt;p&gt;This assignment gave me practical exposure to essential Linux fundamentals for beginner Data Engineers.&lt;br&gt;&lt;br&gt;
By creating and organizing files, performing file operations, managing permissions, navigating directories, and reviewing command &lt;code&gt;history&lt;/code&gt;, I strengthened my confidence in using the Linux terminal.&lt;br&gt;&lt;br&gt;
Mastering these basic skills is an important first step toward efficiently managing data workflows on remote servers.&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>dataengineering</category>
      <category>linux</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Understanding Data Modeling in Power BI: Joins, Relationships, and Schemas Explained.</title>
      <dc:creator>naibei caleb</dc:creator>
      <pubDate>Tue, 31 Mar 2026 18:59:29 +0000</pubDate>
      <link>https://dev.to/naibei_caleb_01e47eb5148b/understanding-data-modeling-in-power-bi-joins-relationships-and-schemas-explained-33ja</link>
      <guid>https://dev.to/naibei_caleb_01e47eb5148b/understanding-data-modeling-in-power-bi-joins-relationships-and-schemas-explained-33ja</guid>
      <description>&lt;h2&gt;
  
  
  1. Introduction
&lt;/h2&gt;

&lt;p&gt;Over the past few days at LuxDevHQ, I’ve been learning Power BI as part of my data engineering journey. In class, we covered how data flows at a high level—but I kept feeling like I understood it… without really understanding it.&lt;/p&gt;

&lt;p&gt;So I decided to slow down and build a model myself from scratch.&lt;/p&gt;

&lt;p&gt;That’s when I realized something:&lt;/p&gt;

&lt;p&gt;Data modeling isn’t just a step—it’s the part that decides whether everything else works or breaks.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;This article isn’t a perfect guide. It’s more of a reflection of what started making sense to me after actually trying, failing, and fixing things.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  2. Shaping Data
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;What Joins Actually Mean to Me Now&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;At first, joins just felt like definitions I had to memorize. But when I started using them in Power Query, they became more practical.&lt;/p&gt;

&lt;p&gt;When I use &lt;strong&gt;Merge Queries&lt;/strong&gt;, I’m basically deciding:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Which data do I trust enough to keep?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  INNER JOIN
&lt;/h3&gt;

&lt;p&gt;I use this when I only want “clean matches.”&lt;/p&gt;

&lt;p&gt;When I tried this on my Sales and Product tables, I noticed something:&lt;br&gt;&lt;br&gt;
Some sales just disappeared.&lt;/p&gt;

&lt;p&gt;At first, I thought I broke something—but then it hit me:&lt;br&gt;&lt;br&gt;
Those records didn’t have matching Product IDs.&lt;/p&gt;

&lt;p&gt;So INNER JOIN isn’t just merging—it’s also filtering out bad or incomplete data.&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%2F3dumg5jvp2c19i6fzbkp.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%2F3dumg5jvp2c19i6fzbkp.png" alt=" " width="459" height="506"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Visualizing how INNER JOIN only keeps matching records between tables.&lt;/em&gt;&lt;/p&gt;


&lt;h3&gt;
  
  
  LEFT OUTER JOIN (My Default)
&lt;/h3&gt;

&lt;p&gt;This is the one I keep coming back to.&lt;/p&gt;

&lt;p&gt;It lets me say:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Keep everything I started with, and just add what matches.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;When I used this with Customers and Orders, I could still see customers who never bought anything—which actually felt important.&lt;/p&gt;


&lt;h3&gt;
  
  
  LEFT ANTI JOIN (Unexpected Favorite)
&lt;/h3&gt;

&lt;p&gt;I didn’t expect to like this one, but it turned out to be super useful.&lt;/p&gt;

&lt;p&gt;It shows what’s &lt;em&gt;missing&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;That helped me find:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Products that were never sold
&lt;/li&gt;
&lt;li&gt;Records that didn’t match anything
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It felt less like analysis and more like &lt;strong&gt;debugging my data&lt;/strong&gt;.&lt;/p&gt;


&lt;h2&gt;
  
  
  3. Relationships: The Part That Confused Me Most
&lt;/h2&gt;

&lt;p&gt;Joins made sense after a while—but relationships took longer.&lt;/p&gt;

&lt;p&gt;At first, I kept thinking:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Didn’t I already combine these tables?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;But then I realized:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Relationships don’t combine data—they control how tables talk to each other.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That shift in thinking helped a lot.&lt;/p&gt;


&lt;h3&gt;
  
  
  One-to-Many (1:M)
&lt;/h3&gt;

&lt;p&gt;This is the structure I now try to aim for.&lt;/p&gt;

&lt;p&gt;One Product → Many Sales  &lt;/p&gt;

&lt;p&gt;Simple in theory—but I ran into problems when my data didn’t behave that way.&lt;/p&gt;

&lt;p&gt;That’s when I learned:&lt;br&gt;&lt;br&gt;
If this isn’t clean, everything downstream starts acting weird.&lt;/p&gt;


&lt;h3&gt;
  
  
  Filter Direction (A Small Setting That Caused Big Problems)
&lt;/h3&gt;

&lt;p&gt;I once left cross-filtering on Both… and my visuals started giving confusing results.&lt;/p&gt;

&lt;p&gt;Now I stick to:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Dimension → Fact  &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It just feels more predictable and easier to reason about.&lt;/p&gt;


&lt;h3&gt;
  
  
  Active vs Inactive Relationships
&lt;/h3&gt;

&lt;p&gt;This one only clicked when I had two date columns.&lt;/p&gt;

&lt;p&gt;I remember thinking:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Why is Power BI ignoring one of my dates?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Turns out—it wasn’t ignoring it. It just needed me to explicitly choose when to use it.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;The solid line shows the active relationship. The dotted line is inactive—this is why one of my dates wasn’t working until I explicitly used it.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&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%2Fns6m3g0asd11r5i6xc3g.gif" 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%2Fns6m3g0asd11r5i6xc3g.gif" alt=" " width="560" height="315"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  4. Fact vs Dimension: How I Simplified It in My Head
&lt;/h2&gt;

&lt;p&gt;To avoid overthinking, I started labeling tables like this:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Facts = what happened&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Dimensions = details about what happened&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That made things clearer.&lt;/p&gt;

&lt;p&gt;Sales table? → Fact&lt;br&gt;&lt;br&gt;
Product table? → Dimension  &lt;/p&gt;

&lt;p&gt;Once I saw it that way, structuring the model became less confusing.&lt;/p&gt;


&lt;h2&gt;
  
  
  5. Star Schema: The Structure That Finally Made Things Easier
&lt;/h2&gt;

&lt;p&gt;I tried different ways of organizing tables—but the one that consistently worked was the &lt;strong&gt;Star Schema&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;It just felt… cleaner.&lt;/p&gt;

&lt;p&gt;One central table (Sales), surrounded by supporting tables (Product, Customer, Date).&lt;/p&gt;

&lt;p&gt;When I used this:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;My relationships made more sense
&lt;/li&gt;
&lt;li&gt;My calculations became easier
&lt;/li&gt;
&lt;li&gt;My model looked less chaotic
&lt;/li&gt;
&lt;/ul&gt;


&lt;h3&gt;
  
  
  Snowflake Schema (Looked Nice, Felt Complicated)
&lt;/h3&gt;

&lt;p&gt;Breaking dimensions into smaller tables looked organized at first.&lt;/p&gt;

&lt;p&gt;But when I actually used it, I kept losing track of how everything connected.&lt;/p&gt;

&lt;p&gt;It felt like too many steps just to answer a simple question.&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%2Fn6qqro0mhpc8e6e9tbo9.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%2Fn6qqro0mhpc8e6e9tbo9.png" alt=" " width="800" height="396"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Compared to a star schema, this felt more complex and harder to follow when I was building my model.&lt;/em&gt;&lt;/p&gt;


&lt;h3&gt;
  
  
  Flat Table (Learned This the Hard Way)
&lt;/h3&gt;

&lt;p&gt;I tried putting everything into one big table.&lt;/p&gt;

&lt;p&gt;At first, it seemed easier—no relationships to worry about.&lt;/p&gt;

&lt;p&gt;But then:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The file got heavy
&lt;/li&gt;
&lt;li&gt;Everything slowed down
&lt;/li&gt;
&lt;li&gt;It became harder to manage
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That experiment alone convinced me why structure matters.&lt;/p&gt;


&lt;h2&gt;
  
  
  6. Mistakes That Taught Me the Most
&lt;/h2&gt;

&lt;p&gt;This is probably where I learned the most.&lt;/p&gt;
&lt;h3&gt;
  
  
  Many-to-Many Problem
&lt;/h3&gt;

&lt;p&gt;My numbers didn’t make sense. Totals were too high.&lt;/p&gt;

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

&lt;p&gt;&lt;em&gt;This kind of relationship caused my totals to be incorrect because values were being counted multiple times.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I didn’t understand why—until I realized:&lt;br&gt;&lt;br&gt;
I had duplicates on both sides.&lt;/p&gt;

&lt;p&gt;Fixing it with a bridge table felt like unlocking something.&lt;/p&gt;




&lt;h3&gt;
  
  
  Circular Relationships
&lt;/h3&gt;

&lt;p&gt;At one point, my filters were looping—and I didn’t even notice at first.&lt;/p&gt;

&lt;p&gt;The model &lt;em&gt;looked fine&lt;/em&gt;, but results were off.&lt;/p&gt;

&lt;p&gt;Fixing the direction of filters made everything clearer.&lt;/p&gt;




&lt;h3&gt;
  
  
  Multiple Dates (This One Was Subtle)
&lt;/h3&gt;

&lt;p&gt;Having Order Date and Ship Date in the same table confused me.&lt;/p&gt;

&lt;p&gt;Connecting both to the same Date table felt right—but only one worked at a time.&lt;/p&gt;

&lt;p&gt;Learning about inactive relationships helped me finally understand why.&lt;/p&gt;




&lt;h2&gt;
  
  
  7. What I’m Taking Away From This
&lt;/h2&gt;

&lt;p&gt;If there’s one thing this experience taught me, it’s this:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A dashboard isn’t powerful because of visuals—it’s powerful because of the model behind it.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Right now, my approach is simple:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Clean data in Power Query
&lt;/li&gt;
&lt;li&gt;Keep relationships clear and structured
&lt;/li&gt;
&lt;li&gt;Stick to a Star Schema whenever possible
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Final Thought
&lt;/h2&gt;

&lt;p&gt;I’m still learning—but this process made one thing clear:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Data modeling is less about memorizing concepts and more about understanding how data behaves.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And honestly, most of what I’ve learned so far didn’t come from getting it right—it came from fixing what I got wrong.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>dataengineering</category>
      <category>datascience</category>
    </item>
    <item>
      <title>How to Set Up a GitHub Profile README Using Markdown (Beginner Guide)</title>
      <dc:creator>naibei caleb</dc:creator>
      <pubDate>Sat, 28 Mar 2026 12:08:03 +0000</pubDate>
      <link>https://dev.to/naibei_caleb_01e47eb5148b/how-to-set-up-a-github-profile-readme-using-markdown-beginner-guide-4g73</link>
      <guid>https://dev.to/naibei_caleb_01e47eb5148b/how-to-set-up-a-github-profile-readme-using-markdown-beginner-guide-4g73</guid>
      <description>&lt;h2&gt;
  
  
  &lt;strong&gt;Introduction&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;If you're starting out as a data engineer or developer, having a well-structured GitHub profile is a great way to showcase your work.&lt;/p&gt;

&lt;p&gt;In this guide, I’ll walk through how to create a GitHub profile README using Markdown—step by step.&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;📌 What Is a GitHub Profile README?&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;A GitHub profile README is a special repository that displays information about you at the top of your GitHub profile.&lt;/p&gt;

&lt;p&gt;It helps you:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Introduce yourself&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Showcase your skills&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Highlight your projects&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;⚙️ Step 1: Create a Special Repository&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Go to GitHub and:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Click &lt;strong&gt;New Repository&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Set the &lt;strong&gt;repository name exactly as your username&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Make it &lt;strong&gt;Public&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Check &lt;strong&gt;“Add a README file”&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;p&gt;👉 &lt;strong&gt;Important:&lt;/strong&gt; GitHub only shows the README if the repo name matches your username.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;✍️ Step 2: Edit Your README Using Markdown&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Click on your 'README.md' file and start editing.&lt;/p&gt;

&lt;p&gt;Markdown is a simple way to format text using symbols.&lt;/p&gt;

&lt;h3&gt;
  
  
  🧱 Basic Markdown Syntax
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Headings&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%2F45w3axbwwok0ncdhz2r4.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%2F45w3axbwwok0ncdhz2r4.png" alt=" " width="272" height="174"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;List&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%2F02z3jv2ke5sp31e2qa2s.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%2F02z3jv2ke5sp31e2qa2s.png" alt=" " width="301" height="131"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Link&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%2Ft8m5pudsehtw1mzh5xti.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%2Ft8m5pudsehtw1mzh5xti.png" alt=" " width="548" height="119"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;👨‍💻 Example Profile README&lt;/strong&gt;&lt;br&gt;
Here’s a simple template you can use:&lt;/p&gt;

&lt;h2&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%2Fdviuhi12mmmim4ec8g2m.jpeg" alt=" " width="800" height="1115"&gt;
&lt;/h2&gt;

&lt;h2&gt;
  
  
  Here’s a simple template you can use:
&lt;/h2&gt;

&lt;p&gt;After editing:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Scroll down&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Commit changes&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Your profile will automatically update.
&lt;/h2&gt;

&lt;h2&gt;
  
  
  🔥 Tips for a Better Profile
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Keep it clean and simple&lt;/li&gt;
&lt;li&gt;Update it as you learn&lt;/li&gt;
&lt;li&gt;Add projects regularly&lt;/li&gt;
&lt;li&gt;Don’t try to be perfect—just be consistent&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;Setting up a GitHub profile README is one of the easiest ways to start building your online presence as a developer.&lt;/p&gt;

&lt;p&gt;As a beginner, even a simple profile can make a big difference.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>github</category>
      <category>dataengineering</category>
      <category>markdown</category>
    </item>
  </channel>
</rss>
