<?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: Ahmed Algrgawy</title>
    <description>The latest articles on DEV Community by Ahmed Algrgawy (@ahmed_algrgawy).</description>
    <link>https://dev.to/ahmed_algrgawy</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%2F1703983%2F79f83c2b-9db7-4094-83c0-9252cb92edaa.jpeg</url>
      <title>DEV Community: Ahmed Algrgawy</title>
      <link>https://dev.to/ahmed_algrgawy</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ahmed_algrgawy"/>
    <language>en</language>
    <item>
      <title>In investigations, assumptions kill</title>
      <dc:creator>Ahmed Algrgawy</dc:creator>
      <pubDate>Thu, 14 May 2026 07:30:00 +0000</pubDate>
      <link>https://dev.to/ahmed_algrgawy/in-investigations-assumptions-kill-5g7n</link>
      <guid>https://dev.to/ahmed_algrgawy/in-investigations-assumptions-kill-5g7n</guid>
      <description>&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%2F07gn6c22up2w1nb2wltn.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%2F07gn6c22up2w1nb2wltn.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Like Jack Reacher once said:&lt;br&gt;
“In investigations, assumptions kill.”&lt;/p&gt;

&lt;p&gt;I think the same thing happens in software development more often than we realize.&lt;/p&gt;

&lt;p&gt;As developers, we sometimes assume the client needs X when they actually meant X+, or sometimes something completely different. Other times, we assume how a feature should behave without fully understanding the business side behind it.&lt;/p&gt;

&lt;p&gt;Recently, I faced a situation where my assumptions did not match what was actually expected. The result was misleading communication, wasted effort, and time spent building or thinking in the wrong direction.&lt;/p&gt;

&lt;p&gt;And honestly, most of these situations do not happen because people are bad at communication.&lt;br&gt;
They happen because everyone thinks they already understand enough.&lt;/p&gt;

&lt;p&gt;One thing I started realizing:&lt;br&gt;
Context matters more than assumptions.&lt;/p&gt;

&lt;p&gt;If something is unclear:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ask your leader or client to elaborate more&lt;/li&gt;
&lt;li&gt;Ask why the feature exists, not only what it should do&lt;/li&gt;
&lt;li&gt;Repeat your understanding back to them&lt;/li&gt;
&lt;li&gt;Write down your assumptions clearly&lt;/li&gt;
&lt;li&gt;Do not treat “I think” as confirmation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A small clarification early can save:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;hours of development&lt;/li&gt;
&lt;li&gt;unnecessary meetings&lt;/li&gt;
&lt;li&gt;company money&lt;/li&gt;
&lt;li&gt;team frustration&lt;/li&gt;
&lt;li&gt;rework and technical debt&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;One practice that helped me a lot is explicitly listing assumptions before starting implementation.&lt;/p&gt;

&lt;p&gt;Something as simple as:&lt;br&gt;
“so you mean that this is for….., please confirm with me”&lt;/p&gt;

&lt;p&gt;can completely change the direction of a discussion before problems happen.&lt;/p&gt;

&lt;p&gt;Sometimes the issue is not technical skill.&lt;br&gt;
Sometimes the issue is building the correct thing in the first place.&lt;/p&gt;

&lt;p&gt;Assumptions do not only kill investigations.&lt;br&gt;
They also kill time, clarity, and momentum in software projects.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Struggling with Shopify Liquid? Here’s What Finally Made It Click for Me</title>
      <dc:creator>Ahmed Algrgawy</dc:creator>
      <pubDate>Wed, 01 Apr 2026 08:03:26 +0000</pubDate>
      <link>https://dev.to/ahmed_algrgawy/struggling-with-shopify-liquid-heres-what-finally-made-it-click-for-me-15ef</link>
      <guid>https://dev.to/ahmed_algrgawy/struggling-with-shopify-liquid-heres-what-finally-made-it-click-for-me-15ef</guid>
      <description>&lt;p&gt;Recently, I worked on a Shopify store, and honestly… it was challenging at first.&lt;/p&gt;

&lt;p&gt;I had never worked with Shopify before, so I started by exploring the codebase through the Shopify theme editor. What surprised me the most was the syntax — a lot of .liquid files. It felt like HTML, CSS, and JavaScript had all been fighting each other.&lt;/p&gt;

&lt;p&gt;At first, I wasn’t comfortable working directly in the Shopify editor. So I looked for a better workflow.&lt;/p&gt;

&lt;p&gt;That’s when I discovered Shopify CLI.&lt;/p&gt;

&lt;p&gt;I pulled the project locally, started working in my own editor, and managed everything with Git — pushing and pulling changes while keeping full control of the code. That shift alone made a huge difference in my productivity.&lt;/p&gt;

&lt;p&gt;While working on the project, I also took time to understand how Liquid actually works.&lt;/p&gt;

&lt;p&gt;Liquid is a templating language, not a full programming language. It runs on Shopify’s servers and generates the final HTML that users see.&lt;/p&gt;

&lt;p&gt;It mainly has three building blocks:&lt;br&gt;
• Objects → like product, cart, customer (data coming from Shopify)&lt;br&gt;
• Tags → logic like loops and conditions &lt;code&gt;{% if %}, {% for %}&lt;/code&gt;&lt;br&gt;
• Filters → used to transform data like &lt;code&gt;{{ product.title | upcase }}&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;So instead of writing full JavaScript logic, you're mostly shaping and rendering data that Shopify already provides.&lt;/p&gt;

&lt;p&gt;Once I understood that, the whole structure started to make much more sense.&lt;/p&gt;

&lt;p&gt;What also stood out to me is how powerful the Shopify ecosystem is. It’s not just a store — it’s more like an entire platform with apps, integrations, and extensibility everywhere.&lt;/p&gt;

&lt;p&gt;During the project, I also built a custom app to integrate Shopify with an external system, which added another layer of complexity.&lt;/p&gt;

&lt;p&gt;What I really liked about this experience is that I wasn’t working in just one place:&lt;/p&gt;

&lt;p&gt;• Shopify CLI&lt;br&gt;
• Theme editor&lt;br&gt;
• Local development&lt;br&gt;
• External backend&lt;br&gt;
• Shopify dashboard&lt;/p&gt;

&lt;p&gt;Key takeaway:&lt;/p&gt;

&lt;p&gt;Sometimes the hardest part isn’t the technology itself — it’s understanding how it thinks.&lt;/p&gt;

&lt;p&gt;Once you do, everything starts to click.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>shopify</category>
      <category>fullstack</category>
      <category>learning</category>
    </item>
  </channel>
</rss>
