<?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: KingUSD</title>
    <description>The latest articles on DEV Community by KingUSD (@kingusd).</description>
    <link>https://dev.to/kingusd</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4071718%2F789f5fe1-7351-432f-9da2-485f525ccd34.jpg</url>
      <title>DEV Community: KingUSD</title>
      <link>https://dev.to/kingusd</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/kingusd"/>
    <language>en</language>
    <item>
      <title>WTF is Jev?</title>
      <dc:creator>KingUSD</dc:creator>
      <pubDate>Fri, 18 Sep 2026 12:16:45 +0000</pubDate>
      <link>https://dev.to/kingusd/wtf-is-jev-47lf</link>
      <guid>https://dev.to/kingusd/wtf-is-jev-47lf</guid>
      <description>&lt;p&gt;Meet Jev, a new AI decision model by TypeSafe AI that drops text generation entirely for millisecond-speed, typed, and structured choices.&lt;/p&gt;

&lt;p&gt;The biggest bottleneck in building AI agents today isn't reasoning—it’s &lt;strong&gt;latency and structured parsing&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;When you want an LLM to act as a router or a code guardrail, you have to prompt it with 50 lines of instructions, beg it to &lt;em&gt;“only return JSON,”&lt;/em&gt; and then wait 2 to 4 seconds for it to stream back code. If a single brace is out of place, your application crashes.&lt;/p&gt;

&lt;p&gt;A new AI model called &lt;strong&gt;Jev&lt;/strong&gt; (released by TypeSafe AI) completely flips this script. &lt;/p&gt;

&lt;p&gt;Jev is a &lt;strong&gt;"System One" AI model&lt;/strong&gt;. It doesn't generate conversational text. It doesn't talk to humans. Instead, it processes data and outputs structured, typed probabilities and choices directly to code in &lt;strong&gt;70 to 500 milliseconds&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  What is a "System One" Model?
&lt;/h2&gt;

&lt;p&gt;In psychology, &lt;em&gt;System 1&lt;/em&gt; refers to brain processes that are fast, automatic, and subconscious (like catching a falling ball). &lt;em&gt;System 2&lt;/em&gt; covers slow, deliberate, and logical thinking (like solving a math problem).&lt;/p&gt;

&lt;p&gt;While reasoning models like OpenAI's &lt;code&gt;o1&lt;/code&gt; or Anthropic's &lt;code&gt;Claude Sonnet&lt;/code&gt; focus on System 2 thinking, &lt;strong&gt;Jev is pure System 1.&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;Built by a team led by former OpenAI researcher Diogo Almeida, Jev uses a custom training method called &lt;em&gt;Reinforcement Learning for Calibrated Decisions (RLCD)&lt;/em&gt;. Instead of predicting the next text token, it evaluates an input against rigid questions and outputs precise data points.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Numbers That Matter:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Latency:&lt;/strong&gt; 70ms – 500ms&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Input Price:&lt;/strong&gt; \$0.042 per 1M tokens (insanely cheap)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Output Price:&lt;/strong&gt; &lt;strong&gt;Free&lt;/strong&gt; (since it doesn't generate token strings)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Context Window:&lt;/strong&gt; 32K tokens&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  How It Works: The 3 Output Types
&lt;/h2&gt;

&lt;p&gt;Instead of prompting Jev with paragraphs, you pass it a global &lt;code&gt;state&lt;/code&gt; (can be raw text, user logs, or JSON strings) and ask it narrow, strongly-typed questions. It answers using three exact primitives:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Choice:&lt;/strong&gt; Pick exactly one item from a pre-defined string array.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Score:&lt;/strong&gt; Rate an input against an ordered scale (e.g., low, medium, high).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Noul (Boolean Probability):&lt;/strong&gt; Returns a 0 to 1 float score representing a Yes/No probability.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Because these questions are processed concurrently by the architecture, asking 1 question takes the exact same amount of time as asking 10.&lt;/p&gt;




&lt;h2&gt;
  
  
  Code Example: Building a Fast Guardrail Middleware
&lt;/h2&gt;

&lt;p&gt;Let’s see how this looks in production. Imagine you are building an AI agent platform, and you want to use Jev as an instantaneous router and safety gateway before letting a user query an expensive LLM.&lt;/p&gt;

&lt;p&gt;Here is how you handle it natively in &lt;strong&gt;Node.js&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;fetch&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;node-fetch&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;routeIncomingPrompt&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;userPrompt&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nf"&gt;fetch&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;https://typesafe.ai&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;method&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;POST&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;headers&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Authorization&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;`Bearer &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;process&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;env&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;TYPESAFE_API_KEY&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Content-Type&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;application/json&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
    &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="na"&gt;body&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;JSON&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;stringify&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
      &lt;span class="na"&gt;model&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;jev-latest&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="na"&gt;state&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;`User Input: &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;userPrompt&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="na"&gt;questions&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="na"&gt;is_injection_attack&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;noul&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
        &lt;span class="na"&gt;complexity&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;score&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;scale&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;simple&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;intermediate&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;complex&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
        &lt;span class="na"&gt;domain&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;choice&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;options&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;coding&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;creative&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;data_analysis&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
      &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;})&lt;/span&gt;
  &lt;span class="p"&gt;});&lt;/span&gt;

  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;json&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;answers&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;answers&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="c1"&gt;// 1. Instant Safety Check&lt;/span&gt;
  &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;answers&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;is_injection_attack&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;noul&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mf"&gt;0.85&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;throw&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Error&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Security Alert: Prompt injection blocked.&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;

  &lt;span class="c1"&gt;// 2. Ultra-Fast Routing Logic&lt;/span&gt;
  &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;answers&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;complexity&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;choice&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;simple&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Route to cheap/fast model (e.g., GPT-4o-mini)&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Route to deep reasoning model (e.g., Claude 3.5 Sonnet)&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  The Python Ecosystem
&lt;/h3&gt;

&lt;p&gt;If you are inside the Python stack, LangChain natively supports Jev through the &lt;code&gt;langchain-typesafe&lt;/code&gt; library using their &lt;code&gt;TypeSafeClassifier&lt;/code&gt; abstraction, making it easy to drop into existing chains.&lt;/p&gt;




&lt;h2&gt;
  
  
  Where Jev Wins (and Where It Fails)
&lt;/h2&gt;

&lt;p&gt;Jev isn't a replacement for your core LLMs. It's a completely new layer in the AI stack.&lt;/p&gt;

&lt;h3&gt;
  
  
  🟢 Perfect For:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Model Routing:&lt;/strong&gt; Deciding on the fly which model is smart enough for a task.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI Guardrails:&lt;/strong&gt; Instantly checking inputs or outputs for safety violations.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Triage &amp;amp; Classification:&lt;/strong&gt; Tagging customer support tickets or parsing log errors on the fly.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Intent Detection:&lt;/strong&gt; Replacing heavy semantic-search vector pipelines for simple intent classification.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🔴 Do Not Use For:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Writing copy or summarizing articles.&lt;/li&gt;
&lt;li&gt;Complex code generation.&lt;/li&gt;
&lt;li&gt;Contextual conversation.&lt;/li&gt;
&lt;/ul&gt;




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

&lt;p&gt;Jev represents a shift away from the "everything is a chatbot" mentality. By turning AI into deterministic, lightning-fast microservices, we can build agents that react instantly without burning through cash or forcing users to stare at loading spinners.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Are you building with Jev yet?&lt;/strong&gt; What are your thoughts on shifting toward specialized "System One" models rather than all-in-one text generators? Let me know in the comments below!&lt;/p&gt;

</description>
      <category>ai</category>
      <category>api</category>
      <category>machinelearning</category>
      <category>llm</category>
    </item>
    <item>
      <title>Building an Interactive Excel Dashboard for E-commerce Product Analysis: A Case Study of Jumia Products</title>
      <dc:creator>KingUSD</dc:creator>
      <pubDate>Fri, 11 Sep 2026 02:35:02 +0000</pubDate>
      <link>https://dev.to/kingusd/building-an-interactive-excel-dashboard-for-e-commerce-product-analysis-a-case-study-of-jumia-2o7f</link>
      <guid>https://dev.to/kingusd/building-an-interactive-excel-dashboard-for-e-commerce-product-analysis-a-case-study-of-jumia-2o7f</guid>
      <description>&lt;p&gt;&lt;strong&gt;Introduction&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Data analysis is not just about creating charts; it is about turning raw and imperfect data into useful business insights. This project focuses on building an interactive Excel dashboard to analyze Jumia product data and understand product performance. Because the dataset contained issues such as missing values, inconsistent formatting, and data quality errors, the first step was to clean and organize the information before any analysis could be done. Since sales data was not available, review counts were used as a proxy for customer engagement. This project shows how careful data preparation, categorization, and visualization can help support better decision-making in an e-commerce setting.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Data Quality Audit and Cleaing&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Before any useful analysis could begin, the dataset had to be checked carefully for errors and inconsistencies. The raw data contained issues such as missing values, negative review counts, and duplicate entries, all of which could affect the accuracy of the results. To avoid misleading conclusions, the cleaning process focused on preserving data integrity rather than simply making the dataset look tidy.&lt;/p&gt;

&lt;p&gt;One important correction was the handling of negative review counts. Since these were not meaningful values in the context of customer engagement, they were converted into positive numbers. Missing values were also treated carefully, because replacing them with zeros could have incorrectly reduced averages and distorted the analysis. In some cases, data such as price ranges was converted into a single usable value by using the midpoint, which allowed the information to remain part of the dataset without losing its meaning.&lt;/p&gt;

&lt;p&gt;Duplicate rows were also removed when they represented repeated records, but similar product names with different prices were kept if they appeared to be separate listings. This careful approach ensured that the cleaned dataset was reliable and suitable for further analysis. In short, the data cleaning step was essential because accurate insights depend on accurate input.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Data Enrichment and categorization&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;After the data was cleaned, the next step was to enrich it by creating new fields that made the dataset more useful for analysis. Raw numbers can be difficult to interpret on their own, so adding categories and calculated values helped turn the data into something more meaningful and easier to compare.&lt;/p&gt;

&lt;p&gt;Several useful transformations were made during this stage. Discount values and discount percentages were calculated to give a clearer picture of how much each product was actually reduced. Products were also grouped into categories such as low, medium, and high price levels, as well as poor, average, and excellent rating levels. Since review count was being used as a proxy for customer engagement, products with high review activity were identified separately to show which items appeared to attract more attention. In addition, flags were created for missing ratings or reviews so that incomplete data could be identified easily during analysis.&lt;/p&gt;

&lt;p&gt;This enrichment step improved the quality of the analysis because it made the data easier to interpret and compare. Instead of only looking at individual numbers, the project could now reveal broader patterns and trends across product groups.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Analysis and Key Findings&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;After the data had been cleaned and enriched, the next stage was to analyze it and look for meaningful relationships. The main purpose of this step was to understand whether factors such as discount levels or product prices had any clear effect on customer engagement and ratings. PivotTables and correlation analysis were used to compare the variables and identify possible patterns.&lt;/p&gt;

&lt;p&gt;The results showed that some common assumptions were not supported by the data. For example, higher discounts did not strongly lead to more reviews, which means that lowering prices alone does not guarantee more customer attention. There was also no strong relationship between product price and rating, suggesting that more expensive products were not necessarily rated better than cheaper ones.&lt;/p&gt;

&lt;p&gt;Another important finding was that some products had high discounts but still performed poorly in terms of engagement or ratings. This shows that discounting alone cannot solve deeper issues such as poor product quality or weak presentation. At the same time, the analysis identified a group of products with both strong engagement and high ratings, which can be seen as examples of successful listings on the platform.&lt;/p&gt;

&lt;p&gt;Overall, this step turned the project from simple data preparation into real business insight. It showed that success depends on more than price cuts and that factors like product quality, description, and presentation are likely to have a bigger impact on performance.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conclusion and Limitation&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This project shows that data analysis is most valuable when it is based on careful cleaning, thoughtful assumptions, and clear interpretation. One limitation of the study is that it did not include direct sales, revenue, or product age data. Because of this, review counts had to be used as a proxy for customer engagement rather than a direct measure of sales performance. Some values also required estimation, such as price ranges, and rating groups were created through categorization, which introduced some assumptions into the process.&lt;/p&gt;

&lt;p&gt;Another important limitation is that correlation does not mean causation. Even if two variables appear related, it does not prove that one directly causes the other. This means the findings should be interpreted carefully and not treated as absolute proof. Despite these limitations, the analysis still provided useful insights. It suggested that sellers should not depend only on discounts to attract engagement. Instead, they should focus more on product quality, listing presentation, and customer feedback.&lt;/p&gt;

&lt;p&gt;In conclusion, the project demonstrates that successful data analysis depends on more than just creating charts. The real value lies in understanding the data, cleaning it properly, and using it to support better business decisions.&lt;/p&gt;

</description>
      <category>tutorial</category>
      <category>beginners</category>
      <category>data</category>
      <category>analysis</category>
    </item>
    <item>
      <title>Getting Started with Excel for Data Analytics: From Basic to Data Cleaning</title>
      <dc:creator>KingUSD</dc:creator>
      <pubDate>Wed, 02 Sep 2026 17:14:23 +0000</pubDate>
      <link>https://dev.to/kingusd/getting-started-with-excel-for-data-analytics-from-basic-to-data-cleaning-1gkm</link>
      <guid>https://dev.to/kingusd/getting-started-with-excel-for-data-analytics-from-basic-to-data-cleaning-1gkm</guid>
      <description>&lt;p&gt;&lt;strong&gt;introduction&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Every business, no matter how small or large, runs on data. Sales figures, customer records, inventory counts, expense reports — all of it lives somewhere, and more often than not, that "somewhere" is a spreadsheet. Before businesses invest in expensive analytics platforms or hire dedicated data teams, most of their real-world data problems can be solved right inside Excel.&lt;/p&gt;

&lt;p&gt;The catch is that raw data is almost never ready to use. It's messy. It has duplicate entries, inconsistent formatting, blank cells, typos, and mismatched units. This is where data cleaning comes in — the unglamorous but absolutely essential first step of any analytics process. Analysts often say that 60–80% of the time spent on any data project goes into cleaning and preparing data before a single chart or insight is produced.&lt;/p&gt;

&lt;p&gt;This article walks through how Excel, a tool most businesses already own and already know, can be used to solve real, everyday data problems — starting from the basics and moving into practical data cleaning techniques.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why Excel Is Still Relevant for Data Analytics&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;With so many modern tools like Python, SQL, and Power BI available, it's fair to ask why Excel still matters. A few reasons:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Accessibility — nearly every business already has it installed.&lt;br&gt;
Low learning curve — formulas and functions are intuitive compared to writing code.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Visual feedback — you can see your data change in real time as you clean it.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Powerful enough — features like Power Query, PivotTables, and advanced formulas can handle surprisingly large and complex datasets.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Universal file format — CSV and XLSX files are the common language most business systems export to.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;For small and mid-sized businesses especially, Excel is often the fastest path from "raw data" to "business decision."&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Common Business Problems That Start With Messy Data&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Before diving into technique, it helps to understand why this matters. Here are real examples of business problems that trace back to poor data quality:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Duplicate customer records inflate marketing costs when the same customer is emailed twice.&lt;/li&gt;
&lt;li&gt;Inconsistent date formats ("01/02/2024" vs "Feb 1, 2024") break sales trend reports.&lt;/li&gt;
&lt;li&gt;Trailing spaces or inconsistent capitalization ("Nairobi " vs "nairobi" vs "NAIROBI") cause a location filter to miss half the relevant rows.&lt;/li&gt;
&lt;li&gt;Blank or missing values in a revenue column throw off totals and averages.&lt;/li&gt;
&lt;li&gt;Numbers stored as text silently break SUM formulas, giving a total of zero when data actually exists.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Each of these seems small in isolation, but multiplied across thousands of rows, they can quietly distort decisions — a manager might think a region is underperforming simply because half its data didn't get counted.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Part 1: The Basics — Getting Comfortable With Excel&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Before cleaning data, it helps to be fluent in a few fundamentals.&lt;br&gt;
_1. Understanding Rows, Columns, and Cells&lt;br&gt;
Every dataset in Excel is a grid: rows represent records (e.g., one customer per row), and columns represent attributes (e.g., name, email, purchase amount). Getting this mental model right is the foundation for everything else.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;2. Core Functions Worth Knowing Early&lt;br&gt;
SUM(), AVERAGE(), COUNT() — basic aggregation&lt;br&gt;
IF() — conditional logic (e.g., flag orders above a certain value)&lt;br&gt;
VLOOKUP() / XLOOKUP() — pulling matching data from another table&lt;br&gt;
COUNTIF() / SUMIF() — conditional counting and summing&lt;/em&gt;_&lt;/p&gt;

&lt;p&gt;_3. Sorting and Filtering&lt;br&gt;
Sorting reorders data (e.g., highest to lowest sales), while filtering temporarily hides rows that don't meet a condition. These two tools alone can answer a surprising number of business questions — "who are my top 10 customers this month?" — without any complex formulas.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;4. Formatting for Clarity&lt;br&gt;
Applying consistent number formats (currency, percentages, dates) isn't just cosmetic — it prevents Excel from misinterpreting values, which is often the root cause of calculation errors later.&lt;/em&gt;_&lt;/p&gt;

&lt;p&gt;*&lt;em&gt;Part 2: Data Cleaning — Where the Real Value Is&lt;br&gt;
*&lt;/em&gt;&lt;br&gt;
Once the basics are comfortable, the next skill that separates a casual Excel user from someone who can actually solve business problems is data cleaning. Below are the most common techniques, explained with the business problem each one solves.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;1. Removing Duplicates&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Problem it solves: Duplicate customer or transaction records that inflate totals or cause repeated outreach.&lt;/p&gt;

&lt;p&gt;Excel's built-in Data → Remove Duplicates tool scans selected columns and removes exact matches. For more nuanced duplicates (like "John Smith" vs "john smith "), combine this with the TRIM() and PROPER() functions first to standardize text before removing duplicates.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;2. Trimming and Cleaning Text&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Problem it solves: Inconsistent spacing and casing that breaks filters, lookups, and groupings.&lt;/p&gt;

&lt;p&gt;TRIM() removes extra spaces.&lt;br&gt;
CLEAN() removes non-printable characters (often hidden in data exported from other systems).&lt;br&gt;
UPPER(), LOWER(), PROPER() standardize capitalization.&lt;/p&gt;

&lt;p&gt;A common real-world case: a customer list exported from a CRM has "Muscat", "muscat ", and "MUSCAT" all representing the same city. Left uncleaned, a PivotTable would treat these as three separate cities.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;3. Handling Blank or Missing Values&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Problem it solves: Broken calculations and misleading averages.&lt;/p&gt;

&lt;p&gt;Use Go To Special → Blanks to quickly locate empty cells, or wrap formulas in IFERROR() / IFBLANK() logic to handle them gracefully rather than letting them silently corrupt totals. For larger datasets, Power Query can automatically detect and either fill or flag blank values in bulk.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;4. Fixing Numbers Stored as Text&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Problem it solves: Formulas returning zero or #VALUE! errors despite visible numbers in the cells.&lt;/p&gt;

&lt;p&gt;This is one of the most common — and most confusing — issues in business spreadsheets, especially with data exported from accounting or POS systems. A quick fix: select the affected cells, use Text to Columns (Data tab), and click through with default settings — this forces Excel to re-recognize the values as numbers.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;5. Standardizing Dates&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Problem it solves: Sales or booking trend reports that don't sort correctly or skip data due to mismatched date formats.&lt;/p&gt;

&lt;p&gt;Excel often imports dates as text depending on the source system's regional settings. Using DATEVALUE() or Power Query's "Change Type → Date" function converts these into true date values Excel can sort, filter, and calculate against (e.g., "days since last purchase").&lt;/p&gt;

&lt;p&gt;&lt;em&gt;6. Splitting and Combining Columns&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Problem it solves: Data crammed into a single column that needs to be analyzed separately (e.g., "Nairobi, Kenya" needs to become "City" and "Country" columns).&lt;/p&gt;

&lt;p&gt;Text to Columns or the TEXTSPLIT() function (in newer Excel versions) can split data by a delimiter like a comma. Conversely, CONCATENATE() or TEXTJOIN() merges columns back together — useful for building full names or addresses from separate fields.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;7. Using Power Query for Repeatable Cleaning&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Problem it solves: Manually repeating the same cleaning steps every time new data arrives (e.g., a weekly sales export).&lt;/p&gt;

&lt;p&gt;Power Query (Data → Get &amp;amp; Transform) lets you record a cleaning process once — remove duplicates, trim text, fix data types, filter out irrelevant rows — and then simply refresh it every time new data comes in. This turns a half-hour manual cleanup into a single click, which is enormously valuable for recurring reports.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;8. Conditional Formatting to Spot Errors Visually&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Problem it solves: Catching outliers, errors, or inconsistencies that are easy to miss by scrolling through rows.&lt;/p&gt;

&lt;p&gt;Highlighting cells that fall outside an expected range (e.g., negative revenue, dates in the future, prices of $0) turns error-spotting into a visual task rather than a manual line-by-line review.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Part 3: Turning Clean Data Into Business Insight&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Once data is clean, Excel becomes genuinely powerful:&lt;/p&gt;

&lt;p&gt;PivotTables summarize thousands of rows into a digestible table in seconds — total sales by region, average order value by month, and so on.&lt;br&gt;
Charts turn those summaries into something a non-technical stakeholder can understand at a glance.&lt;br&gt;
What-if analysis tools (Goal Seek, Data Tables) let a business test scenarios, like "what happens to profit if costs rise 10%?"&lt;/p&gt;

&lt;p&gt;None of this works reliably, though, if the underlying data is inconsistent — which is exactly why cleaning comes first.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;A Simple Workflow to Follow&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;For anyone starting out, a practical end-to-end approach looks like this:&lt;/p&gt;

&lt;p&gt;Import the raw data (CSV, exported report, etc.)&lt;br&gt;
Inspect it — scroll through, check for obvious inconsistencies&lt;br&gt;
Clean it — remove duplicates, trim text, fix data types, handle blanks&lt;br&gt;
Structure it — split/combine columns as needed, standardize dates&lt;br&gt;
Analyze it — PivotTables, formulas, charts&lt;br&gt;
Automate it — where possible, use Power Query so the process repeats itself next time&lt;br&gt;
&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Excel's reputation as a "basic" tool undersells what it can actually do. For most businesses, the real barrier to good decision-making isn't a lack of data — it's dirty, inconsistent data that hides the truth inside it. Learning to clean data properly in Excel — trimming text, fixing data types, removing duplicates, standardizing formats — is often the single highest-leverage skill a business analyst can develop, because it's the step that determines whether every analysis built afterward can actually be trusted.&lt;/p&gt;

&lt;p&gt;Mastering the basics of Excel is the entry point. Mastering data cleaning is what turns Excel from a simple spreadsheet tool into a genuine business problem-solving instrument.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>beginners</category>
    </item>
    <item>
      <title>What will happen if Cloud database becomes too expensive ???</title>
      <dc:creator>KingUSD</dc:creator>
      <pubDate>Mon, 24 Aug 2026 04:20:50 +0000</pubDate>
      <link>https://dev.to/kingusd/what-will-happen-if-cloud-database-becomes-too-expensive--jia</link>
      <guid>https://dev.to/kingusd/what-will-happen-if-cloud-database-becomes-too-expensive--jia</guid>
      <description>&lt;p&gt;For most of the last fifteen years, "move it to the cloud" was the answer to almost every data infrastructure question. Storage was cheap, compute was elastic, and nobody had to rack a server again. But for the past 18 months, a lot has happened to the data world — and the bills caught up with them.&lt;br&gt;
Walk into almost any engineering org running a modern data stack today and you'll hear some version of the same complaint: the Snowflake or Databricks invoice keeps climbing, nobody can fully explain why, and finance is starting to ask uncomfortable questions in planning meetings. This isn't a hypothetical problem anymore. It's the reason "cloud repatriation" has gone from a niche blog post topic to a boardroom conversation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How we got there&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The pitch behind cloud data platforms was simple: pay for what you use, scale up when you're busy, scale down when you're not. In practice, a few things went wrong.&lt;br&gt;
Nobody scales down. Warehouses get provisioned for peak load and then just... stay there. Auto-suspend settings get ignored. Dashboards refresh every five minutes when once a day would do. The elasticity that was supposed to save money quietly turns into a fixed cost nobody revisits.&lt;br&gt;
Compute and complexity crept up together. Every new dashboard, every new ML feature, every "quick" transformation job adds a little more load to a system billed by the second. Individually, none of it looks expensive. Collectively, it's a warehouse bill that's tripled in two years while the actual data volume barely changed.&lt;br&gt;
A lot of workloads never needed distributed compute in the first place. Teams reached for Spark clusters and enterprise warehouses on datasets that would fit comfortably on a laptop. The industry over-engineered itself into complexity it didn't need, and now it's paying rent on that complexity every month.&lt;br&gt;
Egress and lock-in quietly tax the exit. Once your data lives in a vendor's proprietary format, leaving isn't just a technical migration — it's a bill in itself. That friction keeps teams paying prices they'd otherwise walk away from.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What Happens When It Gets Too Expensive&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When the cost curve stops making sense, teams don't usually abandon the cloud wholesale — they get selective about it. A few patterns are showing up consistently across the industry right now.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Repatriation of the boring, predictable stuff.&lt;br&gt;
The workloads that run the same way every day — steady-state storage, routine batch ETL, standard reporting — are the easiest to move to cheaper infrastructure or bring back on-prem, because their resource needs are known in advance. The unpredictable, bursty workloads (ML training, seasonal spikes) stay in the cloud, where elasticity actually earns its premium. Dropbox and 37signals both made headlines doing exactly this and saving millions annually.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A shift toward "right-sized" compute.&lt;br&gt;
This is the rise of tools like DuckDB and Polars: engines built to do serious analytical work on a single machine instead of spinning up a distributed cluster for data that never needed one. If your dataset fits in memory on a beefy laptop, you don't need to pay for a warehouse cluster to query it. It's less about rejecting the cloud and more about rejecting the assumption that everything needs cluster-scale compute by default.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Decoupling storage from compute — and taking it seriously.&lt;br&gt;
Open table formats like Iceberg and Delta Lake, sitting on plain object storage (S3, GCS, or increasingly cheaper alternatives like Cloudflare R2), let teams keep their data in a durable, portable format while treating the compute engine as replaceable. Snowflake today, DuckDB or Trino tomorrow — same data, no re-platforming project required. This is arguably the single biggest structural defense against cost lock-in.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Choosing formats and vendors that don't punish you for leaving.&lt;br&gt;
Egress fees and proprietary storage formats are a large part of why cloud costs feel inescapable. Betting on open formats isn't just a technical preference anymore — it's a negotiating position. When leaving is actually possible, vendors have to compete on price rather than lock-in.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Multi-cloud as leverage, not ideology.&lt;br&gt;
Fewer companies are going multi-cloud for resilience these days and more are doing it because having a second viable vendor is the only thing that keeps the first one honest on pricing.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The Underlying Shift&lt;br&gt;
None of this is really an anti-cloud movement. It's a correction. The industry spent a decade defaulting to maximum scale and maximum vendor convenience, and it's now relearning a lesson every infrastructure generation eventually learns: match the tool to the actual size of the problem, keep your exits open, and never let "it's just easier this way" become the whole cost strategy.&lt;br&gt;
The teams handling this well aren't the ones chasing the cheapest possible stack. They're the ones who can actually answer the question "why does this cost what it costs?" — and who've built enough optionality into their architecture that if the answer ever stops making sense, they have somewhere else to go.&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>cloud</category>
      <category>aws</category>
      <category>oracle</category>
    </item>
    <item>
      <title>SSH Explained...</title>
      <dc:creator>KingUSD</dc:creator>
      <pubDate>Thu, 20 Aug 2026 17:32:45 +0000</pubDate>
      <link>https://dev.to/kingusd/ssh-explained-5h5a</link>
      <guid>https://dev.to/kingusd/ssh-explained-5h5a</guid>
      <description>&lt;p&gt;SSH stands for Secure Shell, a network protocol that allows someone to securely connect to and communicate with a remote machine over an unsecured network. Before SSH existed, tools like Telnet existed, but anyone could snoop the network and SSH fixed that by encripting the entire session.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The main parts of SSH&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Transport Layer — Handles the initial connection, server authentication, and encryption setup. This is where the client confirms it's talking to the right server and both sides agree on an encryption algorithm to protect everything that follows.&lt;/li&gt;
&lt;li&gt;Authentication Layer — Confirms who is connecting. This is where passwords or, more commonly, key pairs come in.&lt;/li&gt;
&lt;li&gt;Connection Layer — Once you're authenticated, this layer manages the actual session: running commands, forwarding ports, transferring files, all multiplexed over the single encrypted connection.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;How SSH authentication works&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The most common and most secure way to authenticate with SSH is public key authentication, and it's worth understanding the flow rather than just trusting it works:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;You generate a key pair on your machine (ssh-keygen). This produces two files: a private key and a public key.&lt;/li&gt;
&lt;li&gt;You give the public key to the server or service you want to access — for example, pasting it into GitHub's SSH key settings, or appending it to ~/.ssh/authorized_keys on a remote server.&lt;/li&gt;
&lt;li&gt;When you connect, the server sends a cryptographic challenge that can only be answered correctly by whoever holds the matching private key.&lt;/li&gt;
&lt;li&gt;Your SSH client uses your private key to respond to that challenge — without ever sending the private key itself over the network.&lt;/li&gt;
&lt;li&gt;If the response checks out, the server knows you hold the private key, and grants access.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This is the important part: your private key never leaves your machine, even during authentication. That's fundamentally different from a password, which has to be transmitted (even if encrypted) for the server to check it.&lt;/p&gt;

&lt;p&gt;You can also authenticate with a password over SSH, but key-based authentication is standard practice because it's far more resistant to brute-force attacks and doesn't rely on you (or a service) remembering and protecting a secret string.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SSH vs HTTPS&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;HTTPS is the protocol most people are already familiar with from browsing the web. When used with Git, it authenticates you with a username and a password or personal access token, sent over an encrypted HTTPS connection.&lt;/p&gt;

&lt;p&gt;SSH, as covered above, authenticates you with a key pair instead of a password or token.&lt;/p&gt;

&lt;p&gt;Neither is objectively "more secure" in a blanket sense — both are strong when configured correctly. The real difference is convenience and threat model. SSH avoids ever transmitting a reusable secret and skips repeated prompts, which is why most developers set it up once and forget about it. HTTPS is faster to get started with and works everywhere, including networks or environments where SSH's port is blocked.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>python</category>
      <category>machinelearning</category>
    </item>
    <item>
      <title>Could markdown become the next programming language?</title>
      <dc:creator>KingUSD</dc:creator>
      <pubDate>Wed, 12 Aug 2026 10:52:12 +0000</pubDate>
      <link>https://dev.to/kingusd/could-markdown-become-the-next-programming-language-22jk</link>
      <guid>https://dev.to/kingusd/could-markdown-become-the-next-programming-language-22jk</guid>
      <description>&lt;p&gt;Would it be interesting if all code would just be in plain english? Its a wild concept and AI agents like claude code are using structured .md files or "skill.md" to define entire repeatable workflows.&lt;/p&gt;

&lt;p&gt;Markdown is not just for formating or writing articles anymore, its becoming a lightwieght way to program and easy to be understood by AI agents&lt;/p&gt;

&lt;p&gt;Markdown has a whole ecosystem formed around it, MCP (Model Context Protocol), and AI harnesses that connect agents to real eternal tools. AI harnessing is scaffolding a model and turning it from a chatbot into something that can actually do things.&lt;/p&gt;

&lt;p&gt;It has some limitations that doesnt make it a real trade off as per now August 2026, things like token cost, hallucinations and workflow entropy. &lt;/p&gt;

&lt;p&gt;so with vast change in technology could markdown become the next programming language?&lt;/p&gt;

</description>
      <category>ai</category>
      <category>programming</category>
      <category>machinelearning</category>
      <category>career</category>
    </item>
  </channel>
</rss>
