<?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: Cynthia Teigut</title>
    <description>The latest articles on DEV Community by Cynthia Teigut (@cynthia_jelimo_3f427f1110).</description>
    <link>https://dev.to/cynthia_jelimo_3f427f1110</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%2F3709618%2F4417c5eb-a0ca-44d1-8d98-b544a8a8352c.png</url>
      <title>DEV Community: Cynthia Teigut</title>
      <link>https://dev.to/cynthia_jelimo_3f427f1110</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/cynthia_jelimo_3f427f1110"/>
    <language>en</language>
    <item>
      <title>“How Analysts Translate Messy Data, DAX, and Dashboards into Action Using Power BI”</title>
      <dc:creator>Cynthia Teigut</dc:creator>
      <pubDate>Sun, 08 Feb 2026 13:55:31 +0000</pubDate>
      <link>https://dev.to/cynthia_jelimo_3f427f1110/how-analysts-translate-messy-data-dax-and-dashboards-into-action-using-power-bi-17ok</link>
      <guid>https://dev.to/cynthia_jelimo_3f427f1110/how-analysts-translate-messy-data-dax-and-dashboards-into-action-using-power-bi-17ok</guid>
      <description>&lt;p&gt;I have recently noticed that it is very easy to carried away by the data I am analysing which makes me sometimes want to add more on the dashboard which causes overcrowded and unneccersaary information which becomes hard for people hence realised that:&lt;br&gt;
Analysts can clean a messy data,DAX and dashboards using power bi best practises rto ensure the report is not over crowded and easy to be understood.The following are ways inwhch one can minimize Messiness: &lt;/p&gt;

&lt;p&gt;Limit the number of visuals in dashboards and reports&lt;br&gt;
Using too many visuals in a single report slows report performance as each visual requires data processing and rendering. Limit widget visuals to eight per report page and grids to one per page. Limit tiles to 10 per dashboard.&lt;/p&gt;

&lt;p&gt;Limiting the number of visuals reduces the amount of data that needs to be fetched and displayed at once.&lt;/p&gt;

&lt;p&gt;Also consider using Power BI’s new card visual, capable of displaying multiple cards within a single container. This improves report performance and minimizes the number of queries fired by consolidating information into a single query.&lt;/p&gt;

&lt;p&gt;Use on-premises data gateway standard mode instead of personal mode&lt;br&gt;
The personal mode imports data into Power BI, which can cause resource limitations and performance issues (particularly with large databases). On the other hand, the standard mode retains data in its original location.&lt;/p&gt;

&lt;p&gt;As the standard mode doesn't import any data into Power BI, it is more efficient. Using this gateway minimizes data duplication, reduces memory usage, and avoids potential performance bottlenecks.&lt;/p&gt;

&lt;p&gt;Use separate gateways for Power BI service live connection and scheduled data refresh&lt;br&gt;
A Power BI service live connection (DirectQuery) maintains a real-time connection with data sources. Scheduled data refresh updates imported data at set times. Using the same gateway for both live connections and scheduled data refresh can overload it during refreshes, slowing live connections.&lt;/p&gt;

&lt;p&gt;Separating the gateways ensures that both functions can work efficiently without affecting each other.&lt;/p&gt;

&lt;p&gt;Use calculated measures and filters to limit complex measures and aggregations in data models&lt;br&gt;
Complex measures and aggregations in data models can slow down query performance. Using calculated measures, which is computed during query execution, are more efficient than calculated columns. Applying filters can also aid in this process.&lt;/p&gt;

&lt;p&gt;Push calculations to the source&lt;br&gt;
Pushing calculations to the source is recommended as it offloads the processing to the data source, optimizing query processing. Being closer to the source can increase performance speed.&lt;/p&gt;

&lt;p&gt;Use Star schema instead of the snowflake schema when possible&lt;br&gt;
The star schema is a simpler and more denormalized data model compared to the snowflake schema. The snowflake schema involves more complex queries due to multiple related tables.&lt;/p&gt;

&lt;p&gt;The star schema accelerates query execution and eases maintenance by reducing required joins. It improves query efficiency, reduces data redundancy, and simplifies report development.&lt;/p&gt;

&lt;p&gt;Use slicers sparingly&lt;br&gt;
Slicers are a great way of allowing users to navigate data, but they come at a performance cost. Each slicer generates two queries: one fetches the data and the other fetches selection details. Adding too many slicers drastically slows performance. Use the Filter pane to evaluate and remove unnecessary slicers.&lt;/p&gt;

&lt;p&gt;Host reports and data sources in the same region&lt;br&gt;
A Power BI tenant is the dedicated environment that houses an organization's data, reports, and dashboards. Microsoft operates data centers worldwide to provide and hosts its services. Each data center is in a specific region.&lt;/p&gt;

&lt;p&gt;Hosting both tenant and data source in the same region minimizes network latency. This enables quicker data transfer, query execution, and thus faster data retrieval and report rendering.&lt;/p&gt;

&lt;p&gt;Partition data and process multiple partitions in parallel for large semantic models&lt;br&gt;
Partitioning is a technique that divides large tables into smaller subsets called partitions based on specific criteria. A columnar index is a type of database index that stores and organizes data by columns rather than rows.&lt;/p&gt;

&lt;p&gt;Power BI uses columnar indexes, so longer, leaner tables perform better. The partitioning approach, where only necessary fields and tables are imported, improves data loading efficiency, and reduces resource consumption. This leads to faster report performance.&lt;/p&gt;

&lt;p&gt;Use calculation groups to reduce redundant measures&lt;br&gt;
Calculation groups allow you to define calculations (like time intelligence) once and apply them to multiple measures. This reduces the number of measures in your model and simplifies maintenance.&lt;/p&gt;

&lt;p&gt;`&lt;/p&gt;

</description>
      <category>messy</category>
      <category>dax</category>
      <category>dashboards</category>
    </item>
    <item>
      <title>Schemas and Data Modelling in Power BI</title>
      <dc:creator>Cynthia Teigut</dc:creator>
      <pubDate>Sun, 08 Feb 2026 13:04:24 +0000</pubDate>
      <link>https://dev.to/cynthia_jelimo_3f427f1110/schemas-and-data-modelling-in-power-bi-2i37</link>
      <guid>https://dev.to/cynthia_jelimo_3f427f1110/schemas-and-data-modelling-in-power-bi-2i37</guid>
      <description>&lt;p&gt;What Is a Star Schema?&lt;br&gt;
A star schema is the structure Power BI is designed to work with. Imagine one central table – the fact table, with several dimension tables radiating out from it like the points &lt;/p&gt;

&lt;p&gt;Each dimension connects directly to the fact table using a simple one-to-many relationship.&lt;/p&gt;

&lt;p&gt;Each dimension connects directly to FactSales. Customer details, product categories, store information, and date table each sit in their own denormalised table, making the model fast, tidy, and easy to understand.&lt;/p&gt;

&lt;p&gt;Your fact table contains measurable events such as SalesAmount, Quantity, and foreign keys to each dimension.&lt;/p&gt;

&lt;p&gt;The dimension tables hold descriptive details such as CustomerName, City, ProductCategory, StoreRegion, or anything you want to filter and slice by.&lt;/p&gt;

&lt;p&gt;Why Power BI loves star schemas&lt;br&gt;
Fast queries – Fewer joins mean VertiPaq can scan data efficiently.&lt;br&gt;
Better compression – Dimension tables contain repeated values, which compress extremely well.&lt;br&gt;
Predictable DAX – Filter propagation and functions like CALCULATE or time intelligence work cleanly.&lt;br&gt;
Easy for users – Even non-technical users can understand the layout in Model view.&lt;br&gt;
A well-built star schema is as close as you get to “plug and play” modelling in Power BI.&lt;/p&gt;

&lt;p&gt;Before moving on, here are two quick definitions:&lt;/p&gt;

&lt;p&gt;Normalised data: information split into multiple related tables to remove duplication.&lt;br&gt;
Denormalised data: related attributes stored together in one table to make querying faster.&lt;br&gt;
This distinction becomes important when looking at schemas.&lt;/p&gt;

&lt;p&gt;What Is a Snowflake Schema?&lt;br&gt;
A snowflake schema appears when your dimension tables are normalised where tables are broken up into several smaller tables connected across multiple levels.&lt;/p&gt;

&lt;p&gt;Dimensions branch into extra layers. Customers link to cities, cities to countries, products to categories, and so on; creating longer chains of joins for Power BI to navigate.&lt;/p&gt;

&lt;p&gt;Instead of having all product attributes in one table, details like store, product, and customer are split out into different lookup tables.&lt;/p&gt;

&lt;p&gt;This design is common in large data warehouses, where storage savings and strict data governance are priorities.&lt;/p&gt;

&lt;p&gt;Where snowflakes cause problems in Power BI&lt;br&gt;
Slower performance – VertiPaq must hop through several tables to apply a single filter.&lt;br&gt;
Harder to understand – Users often struggle to follow multi-level lookups.&lt;br&gt;
More fragile – Changes in one table require updates across several others.&lt;br&gt;
Trickier DAX – Multi-hop relationships make filter behaviour less predictable.&lt;br&gt;
Snowflakes aren’t wrong. They’re just not what Power BI performs best with.&lt;/p&gt;

&lt;p&gt;Why Star Schemas Outperform Snowflakes (VertiPaq Basics)&lt;br&gt;
VertiPaq is how Power BI stores it’s data, and controls how you access it!&lt;/p&gt;

&lt;p&gt;It stores data in compressed columns and only loads the columns needed for a query. Star schemas line up perfectly with how VertiPaq is designed:&lt;/p&gt;

&lt;p&gt;Dimension tables compress better because repeated values (e.g., ProductCategory) shrink well.&lt;br&gt;
Fact tables remain dense and efficient when dimensions are flattened.&lt;br&gt;
Fewer relationships reduce the work required for filter propagation.&lt;br&gt;
Lower cardinality improves indexing and speeds up grouping and filtering.&lt;br&gt;
Snowflake schemas do the opposite: they increase cardinality, add extra joins, and create more relationships for VertiPaq to manage.&lt;/p&gt;

</description>
      <category>shemas</category>
      <category>datamodelling</category>
      <category>powerbi</category>
    </item>
    <item>
      <title>Git BEGINNER’S MANUAL</title>
      <dc:creator>Cynthia Teigut</dc:creator>
      <pubDate>Sun, 18 Jan 2026 06:55:30 +0000</pubDate>
      <link>https://dev.to/cynthia_jelimo_3f427f1110/git-beginners-manual-1f78</link>
      <guid>https://dev.to/cynthia_jelimo_3f427f1110/git-beginners-manual-1f78</guid>
      <description>&lt;p&gt;If you’re just starting out with coding or working on projects with others, you’ve probably heard about &lt;strong&gt;Git&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Git is a tool that helps you keep track of your code&lt;/strong&gt;, see what changes were made, and work with others without accidentally messing things up. Think of it like a magical notebook that remembers every change you make and lets you go back in time whenever you need.&lt;/p&gt;

&lt;p&gt;This guide will walk you through the basics: &lt;strong&gt;tracking changes, pushing and pulling code, and understanding version control&lt;/strong&gt;—all in plain English.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;What is Version Control, Anyway?&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Before Git, managing code changes was messy. If two people edited the same file, it could be a nightmare to combine their work. That’s where &lt;strong&gt;version control&lt;/strong&gt; comes in.&lt;/p&gt;

&lt;p&gt;Version control systems (like Git) keep a &lt;strong&gt;history of your project&lt;/strong&gt;. You can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;See exactly what changed and when.&lt;/li&gt;
&lt;li&gt;Revert back if something breaks.&lt;/li&gt;
&lt;li&gt;Collaborate with others safely.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Basically, Git keeps your code organized and your sanity intact.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Git Basics: Key Terms You Should Know&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Here are a few words you’ll see all the time in Git:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Repository (repo)&lt;/strong&gt; – Your project folder tracked by Git. You can have one on your computer (local) or on GitHub (remote).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Commit&lt;/strong&gt; – A snapshot of your code at a particular moment. Think of it like saving your game progress.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Branch&lt;/strong&gt; – A parallel version of your project. You can experiment on a branch without affecting the main project.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Push&lt;/strong&gt; – Send your local changes to the online repository.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pull&lt;/strong&gt; – Grab the latest changes from the online repository to your computer.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Step 1: Setting Up Git&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Before you start using Git, you need to install it and tell it who you are:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Install Git&lt;/strong&gt;&lt;br&gt;
Download it from &lt;a href="https://git-scm.com" rel="noopener noreferrer"&gt;git-scm.com&lt;/a&gt; and follow the instructions for your computer.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Set your name and email&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;   git config &lt;span class="nt"&gt;--global&lt;/span&gt; user.name &lt;span class="s2"&gt;"Your Name"&lt;/span&gt;
   git config &lt;span class="nt"&gt;--global&lt;/span&gt; user.email &lt;span class="s2"&gt;"you@example.com"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This tells Git who made which changes.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Step 2: Starting a Git Repository&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;To start tracking your project:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd &lt;/span&gt;path/to/your/project
git init
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This creates a hidden folder where Git keeps track of everything you do.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Step 3: Tracking Your Changes&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Git keeps an eye on your files, but you have to tell it when you want to &lt;strong&gt;save a snapshot&lt;/strong&gt;:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Check what’s changed&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;   git status
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Stage files&lt;/strong&gt; – Choose which files you want to save:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;   git add filename
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Or all files at once:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;   git add &lt;span class="nb"&gt;.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Commit changes&lt;/strong&gt; – Save a snapshot:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;   git commit &lt;span class="nt"&gt;-m&lt;/span&gt; &lt;span class="s2"&gt;"A short description of what you changed"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Think of &lt;strong&gt;staging&lt;/strong&gt; as packing your bag and &lt;strong&gt;commit&lt;/strong&gt; as taking a photo before sending it off.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Step 4: Working With a Remote Repository&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;If you’re collaborating, you’ll probably use a platform like GitHub. Here’s how:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Connect your local repo to GitHub&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;   git remote add origin https://github.com/username/repo.git
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Push your changes&lt;/strong&gt; – Send your local commits to GitHub:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;   git push origin main
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Pull changes&lt;/strong&gt; – Get the latest updates from GitHub:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;   git pull origin main
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Always pull before pushing so you don’t overwrite someone else’s work.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Step 5: Viewing History and Differences&lt;/strong&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;See all commits&lt;/strong&gt;:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;  git log
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;See what changed in a file&lt;/strong&gt;:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;  git diff filename
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is like checking your project’s “time machine” to see what was done and when.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Step 6: Branching (Optional, But Handy)&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Branches let you try new ideas without messing up the main project:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Create a branch&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;  git branch new-feature
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Switch to that branch&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;  git checkout new-feature
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Merge back to main when ready&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;  git checkout main
  git merge new-feature
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Branches are like experimenting in a sandbox—you can play around safely!&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Tips for Beginners&lt;/strong&gt;
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Commit often. Small changes are easier to manage.&lt;/li&gt;
&lt;li&gt;Write meaningful commit messages. It helps you (and your teammates) understand your changes.&lt;/li&gt;
&lt;li&gt;Pull before pushing. Avoid conflicts!&lt;/li&gt;
&lt;li&gt;Use branches to try new things without breaking the main project.&lt;/li&gt;
&lt;/ol&gt;

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

&lt;p&gt;Git might seem intimidating at first, but once you get the hang of it, it’s a &lt;strong&gt;lifesaver for developers&lt;/strong&gt;. It helps you track your code, collaborate safely, and fix mistakes without panic.&lt;/p&gt;

&lt;p&gt;Start small: make commits, push and pull, and explore branches. Soon, using Git will feel like second nature.&lt;/p&gt;

</description>
      <category>git</category>
      <category>coding</category>
      <category>beginners</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
