<?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: Denis Kisina</title>
    <description>The latest articles on DEV Community by Denis Kisina (@deniskisina).</description>
    <link>https://dev.to/deniskisina</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%2F397822%2F334b620a-c13f-4df4-bf36-6f2cc1c9bbe5.png</url>
      <title>DEV Community: Denis Kisina</title>
      <link>https://dev.to/deniskisina</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/deniskisina"/>
    <language>en</language>
    <item>
      <title>How to write a clear, concise, and well-organized technical article</title>
      <dc:creator>Denis Kisina</dc:creator>
      <pubDate>Tue, 14 Oct 2025 16:00:00 +0000</pubDate>
      <link>https://dev.to/deniskisina/how-to-write-a-great-technical-article-51mc</link>
      <guid>https://dev.to/deniskisina/how-to-write-a-great-technical-article-51mc</guid>
      <description>&lt;p&gt;A great technical article helps a specific reader achieve a clear outcome—fast. Keep it warm and human, crisp and clear, and ready to help.&lt;/p&gt;

&lt;h2&gt;
  
  
  Core principles
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Start with the reader and outcome

&lt;ul&gt;
&lt;li&gt;Who is this for? What will they be able to do in 10–15 minutes?&lt;/li&gt;
&lt;li&gt;Open with a one‑sentence value proposition and a TL;DR&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;Get to the point fast

&lt;ul&gt;
&lt;li&gt;Lead with the most important info. Put key actions above the fold&lt;/li&gt;
&lt;li&gt;Use short paragraphs (3–7 lines) and front‑load keywords&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;Make it scannable

&lt;ul&gt;
&lt;li&gt;Use clear, descriptive headings (sentence case), lists, and callouts&lt;/li&gt;
&lt;li&gt;Break complex tasks into steps; one action per step&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;Write like you speak

&lt;ul&gt;
&lt;li&gt;Use contractions, everyday words, and active voice&lt;/li&gt;
&lt;li&gt;Avoid jargon, acronyms, and idioms unless necessary—define them when used&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;Be accurate and test everything

&lt;ul&gt;
&lt;li&gt;Include versions, prerequisites, and environment assumptions&lt;/li&gt;
&lt;li&gt;Run every command and step yourself. Make code blocks copyable&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;Use great links

&lt;ul&gt;
&lt;li&gt;Write descriptive link text (not “click here”); avoid raw URLs in text&lt;/li&gt;
&lt;li&gt;Prefer current, canonical docs; omit locale fragments in Microsoft URLs&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;Show, don’t tell

&lt;ul&gt;
&lt;li&gt;Favor runnable examples and expected output. Add minimal context, not walls of prose&lt;/li&gt;
&lt;li&gt;Reference real code files over long inline snippets when possible&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;Inclusive and accessible by default

&lt;ul&gt;
&lt;li&gt;Bias‑free language. Clear alt text for images. Logical heading order (H2 &amp;gt; H3)&lt;/li&gt;
&lt;li&gt;Don’t rely on color alone; ensure sufficient contrast&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;Visuals that work

&lt;ul&gt;
&lt;li&gt;Use diagrams where they shorten explanations. Add captions and alt text (why it matters)&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;SEO, but natural

&lt;ul&gt;
&lt;li&gt;Title 30–65 chars. Description 120–165 chars. Use keywords naturally in headings and opening paragraphs&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;h2&gt;
  
  
  A tiny article template
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Title (sentence case, clear outcome)&lt;/li&gt;
&lt;li&gt;One‑sentence summary + TL;DR&lt;/li&gt;
&lt;li&gt;Who it’s for + prerequisites&lt;/li&gt;
&lt;li&gt;Step‑by‑step (each step starts with a verb; commands and expected output)&lt;/li&gt;
&lt;li&gt;Troubleshooting (top 2–3 failure modes with fixes)&lt;/li&gt;
&lt;li&gt;What’s next (related tasks, deeper docs, sample repo links)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Link and code tips
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Links: “OpenAI API keys page” instead of the raw URL; “Mem0 official docs” not “click here”&lt;/li&gt;
&lt;li&gt;Code: Use fenced blocks; one focused task per block; include expected output&lt;/li&gt;
&lt;li&gt;File references: Link to real repo files on the main branch to avoid drift&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Pre‑publish checklist
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Reader and goal are explicit in the intro and TL;DR&lt;/li&gt;
&lt;li&gt;Headings use sentence case; paragraphs are short; steps are scannable&lt;/li&gt;
&lt;li&gt;Commands run cleanly; expected output shown; versions/prereqs listed&lt;/li&gt;
&lt;li&gt;Links are descriptive, current, and https&lt;/li&gt;
&lt;li&gt;Images have meaningful alt text; diagrams add clarity&lt;/li&gt;
&lt;li&gt;Style: contractions, active voice, no jargon without definition&lt;/li&gt;
&lt;li&gt;Accessibility: heading order, contrast, no color‑only meaning&lt;/li&gt;
&lt;li&gt;SEO: solid title and meta description; keywords used naturally&lt;/li&gt;
&lt;li&gt;Proofread for clarity and bias‑free language&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Inspired by Microsoft Learn contributor guidance and writing style recommendations for clear, scannable, and helpful technical content.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>tutorial</category>
      <category>writing</category>
    </item>
    <item>
      <title>Building AI Agents That Actually Remember: A Deep Dive into LangGraph + Mem0</title>
      <dc:creator>Denis Kisina</dc:creator>
      <pubDate>Wed, 08 Oct 2025 16:00:00 +0000</pubDate>
      <link>https://dev.to/deniskisina/building-ai-agents-that-actually-remember-a-deep-dive-into-langgraph-mem0-1nee</link>
      <guid>https://dev.to/deniskisina/building-ai-agents-that-actually-remember-a-deep-dive-into-langgraph-mem0-1nee</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%2Fkwz109tp2siki2qoin7y.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%2Fkwz109tp2siki2qoin7y.png" alt="LangGraph and Mem0 integration architecture for AI agents with persistent memory" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Learn how to build AI agents with persistent memory using LangGraph and Mem0. Get 26% better accuracy, 91% faster responses, and 90% lower costs compared to alternatives. Complete with working code examples and benchmarks. &lt;em&gt;Note: You’ll need free Mem0 and LLM provider accounts to follow along.&lt;/em&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  The Problem: agents forget between sessions
&lt;/h2&gt;

&lt;p&gt;Most AI agents lose context across conversations, which leads to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;repeated explanations and poor user experience&lt;/li&gt;
&lt;li&gt;higher token costs and slower responses&lt;/li&gt;
&lt;li&gt;no long-term personalization or learning&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Why LangGraph + Mem0
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;LangGraph

&lt;ul&gt;
&lt;li&gt;stateful graph for agent workflows and error handling&lt;/li&gt;
&lt;li&gt;easy integration with any LLM provider&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;Mem0

&lt;ul&gt;
&lt;li&gt;semantic, multi-level memory for users, sessions, and agents&lt;/li&gt;
&lt;li&gt;relevant memory retrieval plus pluggable storage backends&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;Together: LangGraph does the thinking, Mem0 does the remembering.&lt;/p&gt;




&lt;h3&gt;
  
  
  What is LangGraph?
&lt;/h3&gt;

&lt;p&gt;LangGraph is a framework from LangChain for building stateful, multi-actor applications with LLMs. Think of it as the “brain” that orchestrates your agent’s workflow:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;State Management:&lt;/strong&gt; Track conversation flow and context&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Graph-Based Architecture:&lt;/strong&gt; Define how your agent moves between different states&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Flexibility:&lt;/strong&gt; Works with any LLM provider (OpenAI, Anthropic, Google, etc.)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Production-Ready:&lt;/strong&gt; Battle-tested with streaming, error handling, and more&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  What is Mem0?
&lt;/h3&gt;

&lt;p&gt;Mem0 (“mem-zero”) is an intelligent memory layer that gives AI agents persistent, personalized memory:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Semantic Understanding:&lt;/strong&gt; Stores facts and context, not just text&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multi-Level Memory:&lt;/strong&gt; User, session, and agent-level memory isolation&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Smart Retrieval:&lt;/strong&gt; Returns relevant memories based on semantic similarity&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Flexible Storage:&lt;/strong&gt; Works with Qdrant, Pinecone, Weaviate, or SQLite&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Open Source + Cloud:&lt;/strong&gt; Self-host or use managed service at app.mem0.ai&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  The Architecture at a glance
&lt;/h3&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%2Fimcbd1tkwkwo99ztufwo.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%2Fimcbd1tkwkwo99ztufwo.png" alt="Memory enabled agent architecture" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;How it works in three steps:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;search past memories relevant to the input&lt;/li&gt;
&lt;li&gt;assemble context with current message + retrieved memories&lt;/li&gt;
&lt;li&gt;generate response and save new memory&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  Implementation — Let’s build your very own social media manager AI agent
&lt;/h2&gt;

&lt;p&gt;We’ll build a practical AI social media manager equipped with persistent memory. This agent will be capable of remembering customer interactions, preferences, and engagement patterns across multiple platforms—allowing it to deliver personalized, context-aware responses and strategies over time.&lt;/p&gt;

&lt;h3&gt;
  
  
  Prerequisites
&lt;/h3&gt;

&lt;p&gt;Before we start building, you’ll need:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Python 3.8+ installed on your system&lt;/li&gt;
&lt;li&gt;A text editor or IDE (VS Code, PyCharm, etc.)&lt;/li&gt;
&lt;li&gt;Terminal/command line access&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mem0 account&lt;/strong&gt; (free at &lt;a href="https://app.mem0.ai/" rel="noopener noreferrer"&gt;app.mem0.ai&lt;/a&gt;) for memory management&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;LLM provider account&lt;/strong&gt; - either OpenAI or Google AI for the language model&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Quickstart (OpenAI path)
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;clone the repo
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;  git clone https://github.com/kisinad/langgraph-mem0-ai-social-media-manager.git
  &lt;span class="nb"&gt;cd &lt;/span&gt;langgraph-mem0-ai-social-media-manager
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;install dependencies
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;  pip &lt;span class="nb"&gt;install &lt;/span&gt;langgraph langchain-openai mem0ai python-dotenv
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;add keys to .env
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;  &lt;span class="nv"&gt;OPENAI_API_KEY&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"sk-proj-..."&lt;/span&gt;
  &lt;span class="nv"&gt;MEM0_API_KEY&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"m0-..."&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Get keys: &lt;a href="https://app.mem0.ai/" rel="noopener noreferrer"&gt;Mem0 API keys&lt;/a&gt;, &lt;a href="https://platform.openai.com/api-keys" rel="noopener noreferrer"&gt;OpenAI API keys&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;quick test
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;  python test_basic.py
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;run the agent
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;  python social_media_manager.py
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Prefer Google Gemini? Replace the install line with &lt;code&gt;langchain-google-genai&lt;/code&gt; and set &lt;code&gt;GOOGLE_API_KEY&lt;/code&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  Repo tour
&lt;/h2&gt;

&lt;p&gt;For complete working examples including webhook integration, advanced memory patterns, and multi-platform deployment, see the production implementation:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/kisinad/langgraph-mem0-ai-social-media-manager/blob/main/social_engagement_agent.py" rel="noopener noreferrer"&gt;main agent&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/kisinad/langgraph-mem0-ai-social-media-manager/blob/main/user_context_manager.py" rel="noopener noreferrer"&gt;user context&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/kisinad/langgraph-mem0-ai-social-media-manager/blob/main/context_aware_responses.py" rel="noopener noreferrer"&gt;responses&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/kisinad/langgraph-mem0-ai-social-media-manager/blob/main/test_social_agent.py" rel="noopener noreferrer"&gt;tests&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/kisinad/langgraph-mem0-ai-social-media-manager/blob/main/webhook_server.py" rel="noopener noreferrer"&gt;webhooks&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;Building AI agents with memory isn’t just about adding a feature – it’s about fundamentally changing how users interact with AI. When agents remember, they become partners rather than tools. They learn, adapt, and improve over time.&lt;/p&gt;

&lt;p&gt;The combination of LangGraph and Mem0 makes this accessible to every developer. You don’t need a PhD in machine learning or months of development time. In a few hours, you can build agents that rival the best commercial offerings.&lt;/p&gt;




&lt;h2&gt;
  
  
  Resources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/kisinad/langgraph-mem0-ai-social-media-manager" rel="noopener noreferrer"&gt;tutorial repo&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.mem0.ai/" rel="noopener noreferrer"&gt;Mem0 docs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://python.langchain.com/docs/langgraph" rel="noopener noreferrer"&gt;LangGraph docs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/mem0ai/mem0" rel="noopener noreferrer"&gt;Mem0 GitHub&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://mem0.ai/research" rel="noopener noreferrer"&gt;Mem0 research&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://mem0.dev/DiG" rel="noopener noreferrer"&gt;Mem0 community&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;strong&gt;The future of AI is personalized, contextual, and memorable. Start building it today.&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>llm</category>
      <category>ai</category>
      <category>tutorial</category>
      <category>architecture</category>
    </item>
    <item>
      <title>Boost Copilot with Awesome GitHub Copilot Customizations</title>
      <dc:creator>Denis Kisina</dc:creator>
      <pubDate>Mon, 22 Sep 2025 16:00:00 +0000</pubDate>
      <link>https://dev.to/deniskisina/boost-copilot-with-awesome-github-copilot-customizations-34n</link>
      <guid>https://dev.to/deniskisina/boost-copilot-with-awesome-github-copilot-customizations-34n</guid>
      <description>&lt;p&gt;GitHub’s &lt;a href="https://github.com/github/awesome-copilot" rel="noopener noreferrer"&gt;&lt;strong&gt;Awesome GitHub Copilot&lt;/strong&gt;&lt;/a&gt; repo is a community-led hub of custom instructions, reusable tips and custom chat modes that make AI-assisted coding smarter and more personal.&lt;/p&gt;

&lt;p&gt;I’ve been trying to supercharge my Copilot with the community-powered tweaks: custom chat modes, reusable prompts, and project-specific instructions.&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%2Fdeniskisina.dev%2Fimages%2Fawesome-copilot.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%2Fdeniskisina.dev%2Fimages%2Fawesome-copilot.png" title="Community-driven GitHub Copilot customizations and resources" alt="Awesome GitHub Copilot Repository" width="800" height="442"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What Makes It Awesome?
&lt;/h2&gt;

&lt;p&gt;The &lt;a href="https://github.com/github/awesome-copilot" rel="noopener noreferrer"&gt;github/awesome-copilot&lt;/a&gt; repository serves as a curated hub featuring three core components that elevate the Copilot experience:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🛠️ Custom Instructions&lt;/strong&gt; - Tailored directives that help Copilot understand your specific coding preferences and project requirements, making suggestions more relevant and context-aware.&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%2Fdeniskisina.dev%2Fawesome-github-copilot-community%2Fcopilot-instructions.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%2Fdeniskisina.dev%2Fawesome-github-copilot-community%2Fcopilot-instructions.png" title="Example of custom instructions that guide Copilot behavior" alt="Custom Instructions Example" width="800" height="617"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;💬 Reusable Prompt Patterns&lt;/strong&gt; - Proven templates that streamline common development tasks, from code reviews to documentation generation, saving developers significant time.&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%2Fdeniskisina.dev%2Fawesome-github-copilot-community%2Fprompt.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%2Fdeniskisina.dev%2Fawesome-github-copilot-community%2Fprompt.png" title="Collection of reusable prompt templates for common development tasks" alt="Reusable Prompt Patterns" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🤖 Custom Chat Modes&lt;/strong&gt; - Specialized conversation modes that adapt Copilot’s responses for different scenarios, whether you’re debugging, architecting, or exploring new technologies.&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%2Fdeniskisina.dev%2Fawesome-github-copilot-community%2Fchatmodes.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%2Fdeniskisina.dev%2Fawesome-github-copilot-community%2Fchatmodes.png" title="Specialized AI personas and conversation modes for different development contexts" alt="Custom Chat Modes" width="800" height="493"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Community-Driven Innovation
&lt;/h2&gt;

&lt;p&gt;What sets this initiative apart is its community-first approach. Rather than top-down corporate directives, these customizations emerge from real developers solving actual problems. The repository welcomes contributions from practitioners who’ve discovered effective ways to enhance their AI-assisted workflows.&lt;/p&gt;

&lt;p&gt;Generic AI tools often miss context. These tested configurations close that gap, aligning Copilot’s power with real developer needs.&lt;/p&gt;

&lt;h2&gt;
  
  
  Perfect for Modern Development
&lt;/h2&gt;

&lt;p&gt;Whether you’re working on enterprise applications, contributing to open-source projects, or exploring new frameworks, the Awesome GitHub Copilot collection offers resources that adapt to your workflow. The customizations are particularly valuable for teams seeking consistency in their AI-assisted development practices.&lt;/p&gt;

&lt;p&gt;The initiative also includes framework-specific instructions, with templates covering popular technologies like Next.js and Tailwind CSS, though the community continues expanding coverage based on developer demand.&lt;/p&gt;

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

&lt;p&gt;Developers can immediately benefit by exploring the repository’s organized collection of customizations. The project encourages both adoption of existing patterns and contribution of new discoveries, fostering a collaborative ecosystem where AI-assisted development continues evolving.&lt;/p&gt;

&lt;p&gt;This community-driven approach to AI customization represents a significant step forward in making development tools more personalized and effective, demonstrating how collective developer expertise can enhance even the most advanced AI coding assistants.&lt;/p&gt;




</description>
      <category>ai</category>
      <category>github</category>
      <category>tooling</category>
      <category>productivity</category>
    </item>
    <item>
      <title>How I Use GitHub Copilot to Review Code and Pull Requests</title>
      <dc:creator>Denis Kisina</dc:creator>
      <pubDate>Mon, 15 Sep 2025 16:00:00 +0000</pubDate>
      <link>https://dev.to/deniskisina/how-i-use-github-copilot-to-review-code-and-pull-requests-2j4l</link>
      <guid>https://dev.to/deniskisina/how-i-use-github-copilot-to-review-code-and-pull-requests-2j4l</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%2Fggrxrejaf4qha1hdhko9.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%2Fggrxrejaf4qha1hdhko9.png" alt="GitHub Copilot logo on dark background" width="800" height="425"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;GitHub Copilot - code review assistant&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Pull Requests (PR) are a central part of many teams’ workflows. PRs allow us to consolidate changes into a single, manageable unit that can be communicated, discussed, and refined. But this process can be time-consuming.&lt;/p&gt;

&lt;p&gt;Because of this, I’ve been exploring &lt;strong&gt;GitHub copilot code review&lt;/strong&gt; as a complement to the traditional code review process to reduce this overhead. GitHub Copilot offloads basic reviews to a copilot agent that catches issues like logic bugs, potential performance problems, anti-patterns, and even suggests fixes to improve code quality.&lt;/p&gt;

&lt;p&gt;When I first started using copilot, I primarily used it in my code editor for autocomplete and code suggestions. As copilot has grown and added new features, I have also expanded my use cases beyond my code editor and into other aspects of my day-to-day work, such as code reviews.  &lt;/p&gt;

&lt;p&gt;In this post, I will share my GitHub Copilot code review use cases and thoughts on the tool.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Evolution of Code Review
&lt;/h2&gt;

&lt;p&gt;Traditionally, the main purpose of code review was bug finding — reviewers were expected to act as quality gates to catch errors before production. Over time, however, the role of reviews has shifted. Teams began to use PRs not just to catch bugs, but also to share knowledge, enforce design consistency, and build collective ownership of the codebase. This shift means reviewers are now expected to focus on higher-level aspects of code: intent, maintainability, and architecture. The challenge is that low-level issues still consume time and attention, creating bottlenecks. This is where automation — and now AI — can play an important role.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Is AI Code Review?
&lt;/h2&gt;

&lt;p&gt;It is an automated code assessment process that examines the code of a software application for potential problems and inefficiencies. It involves the use of machine learning models to identify and fix coding errors, optimize code performance, and make recommendations for improvements.&lt;/p&gt;

&lt;h2&gt;
  
  
  Using GitHub Copilot to Review New Pull Requests
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbywns51sv8l9s8ksmf54.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%2Fbywns51sv8l9s8ksmf54.png" alt="GitHub Copilot interface showing code review functionality" width="681" height="384"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;GitHub Copilot providing code review suggestions in the development environment&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Before asking a teammate to spend their time on a pull request, I assign GitHub Copilot to perform an initial pass. Copilot quickly scans the changes, surfaces obvious bugs, suggests concise refactors, and drafts a clear pull-request summary that I can refine.&lt;/p&gt;

&lt;h2&gt;
  
  
  Using GitHub Copilot to Explain unfamiliar or complex code
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1vrwu3sz1316cdnlksm3.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%2F1vrwu3sz1316cdnlksm3.png" alt="GitHub Copilot explaining complex code functionality" width="800" height="421"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;GitHub Copilot providing detailed explanations of unfamiliar or complex code blocks&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;When I encounter unclear or cryptic code, I simply highlight the code block and ask GitHub Copilot to generate explanations to demystify its purpose. I simply highlight the code block and click the Copilot icon and prompt it to explain with:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;&amp;gt; “Explain what this function does.”&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;&amp;gt; “Summarize this code for me.”&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;&amp;gt; “What is the purpose of this block?”&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;To understand unfamiliar or complex code quickly, I highlight the snippet and ask Copilot, “What is this doing?” or request a high‑level summary, a step‑by‑step walkthrough, or a short list of key variables and side effects. To keep the results reliable, I prompt precisely e.g.,&lt;/p&gt;

&lt;p&gt;&lt;code&gt;&amp;gt; “Give a one‑sentence summary, then three risks”&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;cross‑check the output against the source, and use the explanation as a starting point for targeted tests or follow‑up questions.&lt;/p&gt;

&lt;p&gt;By providing concise explanations, copilot helps give me a clearer understanding of what the code is doing and why.&lt;/p&gt;

&lt;h2&gt;
  
  
  Using GitHub Copilot suggestions when reviewing code
&lt;/h2&gt;

&lt;p&gt;There have been times I have had a deadline to complete a task and code review, I don’t always have the time to check every detail manually. That’s where I lean on GitHub copilot.  That’s where I will ask GitHub Copilot to help me evaluate different aspects of the pull request. For example, I’ll sometimes ask copilot to double-check if the code is syntactically correct or if it follows standard best practices. While I can’t upload our internal company standards directly, I still compare copilot’s suggestions against what I know of our conventions. One recent case involved reviewing some Java code, where I noticed a potential null reference issue. Instead of writing out a full explanation, I asked copilot to analyze the snippet and confirm if my concern was valid. Its response highlighted the exact risk I had spotted and suggested a safer approach, which made my review more precise and actionable.&lt;/p&gt;

&lt;p&gt;Another example was when a developer instantiated a new HttpClient directly in multiple methods. I suspected this could lead to resource leaks and performance issues, so I asked copilot for alternatives. It recommended using a HttpClient built through HttpClient.newBuilder() as a shared resource or leveraging a connection pool, which aligned with best practices in Java and reinforced my feedback.&lt;/p&gt;

&lt;h2&gt;
  
  
  Wrapping it Up!
&lt;/h2&gt;

&lt;p&gt;Simply writing down code is only half to complete the job. The real test comes in reviewing it properly and catching potential issues before they can slip into production. That’s where GitHub Copilot has been a game-changer for me.&lt;/p&gt;

</description>
      <category>tooling</category>
      <category>github</category>
      <category>ai</category>
      <category>productivity</category>
    </item>
    <item>
      <title>AI-Powered Social Media Engagement Manager</title>
      <dc:creator>Denis Kisina</dc:creator>
      <pubDate>Tue, 09 Sep 2025 02:01:11 +0000</pubDate>
      <link>https://dev.to/deniskisina/ai-powered-social-media-engagement-manager-3pjl</link>
      <guid>https://dev.to/deniskisina/ai-powered-social-media-engagement-manager-3pjl</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/brightdata-n8n-2025-08-13"&gt;AI Agents Challenge powered by n8n and Bright Data&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Collaborators
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a class="mentioned-user" href="https://dev.to/samira_zein"&gt;@samira_zein&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a class="mentioned-user" href="https://dev.to/yoditdevn8n"&gt;@yoditdevn8n&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;




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

&lt;p&gt;Most automations focus only on publishing AI-generated posts. We wanted to go beyond content creation and solve a bigger problem, by &lt;strong&gt;keeping audiences engaged in real-time without a full social media team&lt;/strong&gt;.  &lt;/p&gt;

&lt;p&gt;We built an &lt;strong&gt;AI-Powered Social Media Engagement Manager&lt;/strong&gt; — an automation that not only creates and publishes posts but also:  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Listens&lt;/strong&gt; to replies, mentions, and DMs across platforms.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Classifies&lt;/strong&gt; them with AI (positive, complaint, sales lead, spam).
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Responds&lt;/strong&gt; automatically with context-aware replies or routes to humans if needed.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Analyzes&lt;/strong&gt; performance with AI-generated charts and weekly insights.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Adapts&lt;/strong&gt; to trends by integrating Bright Data’s verified node to discover trending hashtags, topics, and competitor insights.
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Instead of just pushing content, this system closes the loop: &lt;strong&gt;post → engage → analyze → improve.&lt;/strong&gt;&lt;/p&gt;




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

&lt;p&gt;👉 [Demo video / live link placeholder]  &lt;/p&gt;




&lt;h3&gt;
  
  
  n8n Workflow
&lt;/h3&gt;

&lt;p&gt;👉 [GitHub Gist link to workflow JSON placeholder]  &lt;/p&gt;

&lt;p&gt;The workflow is structured as a &lt;strong&gt;team of AI agents&lt;/strong&gt;:  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Content Creator Agent&lt;/strong&gt; → generates captions, hashtags, and images.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Engagement Agent&lt;/strong&gt; → monitors comments, replies with AI.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Analytics Agent&lt;/strong&gt; → aggregates metrics, generates charts, emails reports.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Trend Scout Agent&lt;/strong&gt; → scrapes trending topics via Bright Data.
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Technical Implementation
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;System Instructions&lt;/strong&gt;: Specialized per agent (content creation, engagement, analytics).
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Model Choice&lt;/strong&gt;: GPT-4o-mini for fast engagement, GPT-5 for analytics/insight generation.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Memory&lt;/strong&gt;: Maintains short-term conversation state with users across replies.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tools Used&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;n8n core nodes for scheduling, publishing, and monitoring.
&lt;/li&gt;
&lt;li&gt;Bright Data Verified Node for scraping real-time hashtags, news, competitor stats.
&lt;/li&gt;
&lt;li&gt;AI nodes for natural language classification and generation.
&lt;/li&gt;
&lt;li&gt;Google Sheets/Slack for reports and alerts.
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;




&lt;h3&gt;
  
  
  Bright Data Verified Node
&lt;/h3&gt;

&lt;p&gt;We used Bright Data to:  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Scrape real-time trending hashtags and keywords in my target niche.
&lt;/li&gt;
&lt;li&gt;Pull competitor post engagement to benchmark performance.
&lt;/li&gt;
&lt;li&gt;Enhance AI captions by making them &lt;em&gt;trend-aware&lt;/em&gt; and timely.
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This ensured the automation doesn’t just recycle content but actually &lt;strong&gt;adapts dynamically&lt;/strong&gt; to what audiences are talking about now.  &lt;/p&gt;




&lt;h2&gt;
  
  
  Journey
&lt;/h2&gt;

&lt;p&gt;At first, we thought of simply building an AI-powered content poster, but I realized that doesn’t solve the &lt;em&gt;real&lt;/em&gt; pain point. Businesses already struggle less with publishing, but much more with &lt;strong&gt;audience engagement and analysis&lt;/strong&gt;.  &lt;/p&gt;

&lt;p&gt;Challenges we overcame:  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Handling messy comment data (spam, irrelevant chatter) → solved with AI classification.
&lt;/li&gt;
&lt;li&gt;Coordinating multiple AI tasks → solved by splitting into specialized agents.
&lt;/li&gt;
&lt;li&gt;Making analytics digestible → solved with n8n + chart generation + automated reports.
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;What we learned:  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Engagement matters more than just posting.
&lt;/li&gt;
&lt;li&gt;AI agents are far more powerful when specialized.
&lt;/li&gt;
&lt;li&gt;Bright Data’s real-time scraping unlocks the ability to &lt;strong&gt;make posts contextually relevant&lt;/strong&gt; at scale.
&lt;/li&gt;
&lt;/ul&gt;




</description>
      <category>devchallenge</category>
      <category>n8nbrightdatachallenge</category>
      <category>ai</category>
      <category>webdev</category>
    </item>
    <item>
      <title>From Code Completion to Autonomous Development: The Evolution of Agentic Coding</title>
      <dc:creator>Denis Kisina</dc:creator>
      <pubDate>Sat, 06 Sep 2025 16:00:00 +0000</pubDate>
      <link>https://dev.to/deniskisina/from-code-completion-to-autonomous-development-the-evolution-of-agentic-coding-223m</link>
      <guid>https://dev.to/deniskisina/from-code-completion-to-autonomous-development-the-evolution-of-agentic-coding-223m</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%2Fapxg7w1g53tssgirew7o.jpg" 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%2Fapxg7w1g53tssgirew7o.jpg" alt="Black and white robot toy on red wooden table representing the evolution of AI and automation" width="800" height="1000"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Photo by Andrea De Santis on Unsplash&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;As generative AI moves from novelty to necessity, developer workflows are entering their most transformative phase yet a quiet revolution: &lt;strong&gt;agentic AI coding&lt;/strong&gt;. Unlike traditional assistants that simply provide information, agentic systems can reason, act, and collaborate; turning knowledge into outcomes and redefining how software gets created.&lt;/p&gt;

&lt;p&gt;This isn’t just another incremental improvement; it’s a fundamental shift in how we conceive, create, and maintain software. With AI already generating the majority of pull requests at Anthropic and contributing significantly to code at Cognition Labs, the role of the developer is evolving into that of an orchestrator.&lt;/p&gt;

&lt;p&gt;In this article, we’ll explore how coding has evolved from autocomplete to autonomy—and what agentic coding means for the future of software engineering.&lt;/p&gt;

&lt;h2&gt;
  
  
  Automation vs. AI Workflows vs. AI Agents
&lt;/h2&gt;

&lt;p&gt;To understand why agentic coding represents such a leap forward, it helps to distinguish it from earlier approaches to automation and AI integration.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Automation&lt;/strong&gt; relies on predefined, rule-based logic to execute deterministic tasks. It’s fast, reliable, but rigid—great for sending a Slack alert when a new lead signs up, but not for handling unexpected scenarios.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;AI Workflows&lt;/strong&gt; take this a step further by calling large language models (LLMs) through APIs to handle more complex, flexible tasks. They’re powerful for pattern recognition and adaptable rules—like analyzing and routing leads with ChatGPT—but still limited by their reliance on structured workflows and training data.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;AI Agents&lt;/strong&gt; go beyond both, designed to perform non-deterministic, adaptive tasks autonomously. They reason, act, and adapt to new variables, simulating human-like problem solving. For example, an AI agent could perform a full internet search on every inbound lead and continuously update information, without needing a rigid set of rules.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The Three Waves of AI-Assisted Development
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Wave 1: LLM Code Generation (2020-2022)
&lt;/h3&gt;

&lt;p&gt;The first wave emerged with groundbreaking Large Language Models specifically trained on code datasets. This period saw the development of specialized code LLMs like OpenAI Codex, GPT-3, and CodeT5, which demonstrated that transformer architectures could understand programming semantics and generate functional code from natural language descriptions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key Characteristics:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Prompt-to-Code Translation&lt;/strong&gt; : Models could interpret natural language requirements and generate corresponding code snippets&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multi-Language Support&lt;/strong&gt; : Early models supported popular languages like Python, JavaScript, Java, and C++&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Functional Correctness&lt;/strong&gt; : Achieved meaningful accuracy on basic programming tasks&lt;/li&gt;
&lt;/ul&gt;


 
 

&lt;p&gt;&lt;em&gt;Early AI coding tools could generate basic functions but struggled with complex algorithms or domain-specific code&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Performance Benchmarks:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;HumanEval&lt;/strong&gt; : Early models like PaLM 8B achieved ~3.6% pass@1&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MBPP&lt;/strong&gt; : Basic completion rates around 5-15% for complex problems&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CodeBLEU&lt;/strong&gt; : Focused on syntactic similarity rather than execution correctness&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Limitations&lt;/strong&gt; :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Static Generation&lt;/strong&gt; : No iterative refinement or error correction&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Context Isolation&lt;/strong&gt; : Unable to understand broader codebase relationships&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Limited Domain Knowledge&lt;/strong&gt; : Struggled with specialized libraries and frameworks&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Manual Integration Required&lt;/strong&gt; : Developers needed significant post-processing&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No Tool Integration&lt;/strong&gt; : Couldn’t interact with compilers, debuggers, or development environments&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Wave 2: AI Coding Assistants (2022-2024)
&lt;/h3&gt;

&lt;p&gt;The second wave brought AI directly into development environments through sophisticated IDE integrations. Tools like GitHub Copilot, Cursor, Windsurf, and IBM’s watsonx Code Assistant transformed how developers interact with AI during daily workflows.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Core Capabilities:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Intelligent Autocomplete&lt;/strong&gt; : Context-aware code suggestions understanding project structure and patterns&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Conversational Chat&lt;/strong&gt; : Interactive code discussions within the development environment&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Code Understanding&lt;/strong&gt; : Advanced explanation capabilities for existing codebases&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Enterprise Impact and Adoption:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;IBM’s enterprise deployment research revealed key insights:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Primary Use Cases:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Code Understanding (72%)&lt;/strong&gt;: Explaining existing code and answering programming questions&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Code Generation (56%)&lt;/strong&gt;: Creating new code snippets and functions&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Documentation Generation (40%)&lt;/strong&gt;: Automated comment creation&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Test Generation (36%)&lt;/strong&gt;: Creating unit tests and scenarios&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Developer Productivity:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;57% reported increased effectiveness&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Quality rating: 3.2/5&lt;/strong&gt; (“Acceptable” with room for improvement)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Response time: 2.88/5&lt;/strong&gt; , indicating need for optimization&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Significant learning acceleration&lt;/strong&gt; in “exploration mode”&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Collaboration Patterns:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Acceleration Mode&lt;/strong&gt; : AI assists when developers know their direction&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Faster implementation of known patterns&lt;/li&gt;
&lt;li&gt;Reduced keystrokes and boilerplate generation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;2. Exploration Mode&lt;/strong&gt; : AI helps when developers need inspiration&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Discovering alternative approaches&lt;/li&gt;
&lt;li&gt;Learning new libraries and frameworks&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Quality and Trust:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Only 2-4% used AI output without modification&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;89% felt responsible for validating AI-generated content&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;23-35% used outputs primarily for learning&lt;/strong&gt; rather than direct implementation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Enterprise Challenges:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Specialized Technology&lt;/strong&gt; : Need for legacy system and industry-specific library support&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cultural Barriers&lt;/strong&gt; : Developer concerns about appearing less skilled&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Quality Variability&lt;/strong&gt; : Inconsistent output requiring careful validation&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Training Requirements&lt;/strong&gt; : Teams needed prompt engineering education&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Measurable Impact:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;21% faster task completion&lt;/strong&gt; for routine implementations&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;40% reduction&lt;/strong&gt; in time to understand new codebases&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;60% improvement&lt;/strong&gt; in code comment completeness&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Evolution Toward Wave 3:&lt;/strong&gt; Wave 2 assistants established trust in AI-generated code and created familiar human-AI collaboration patterns, but revealed limitations requiring more autonomous, multi-step reasoning capabilities that led to Wave 3 agentic systems.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;💡 &lt;strong&gt;Image Placement Suggestion&lt;/strong&gt; : Split-screen comparison showing traditional IDE vs. AI-enhanced IDE with Copilot suggestions and chat interface&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Wave 3: Agentic Coding (2024-Present)
&lt;/h3&gt;

&lt;p&gt;Agentic coding represents autonomous AI that can plan, execute, test, and deploy entire features with minimal human intervention. These agents operate with unprecedented autonomy, making decisions, using tools, and adapting their approach based on results.&lt;/p&gt;

&lt;h2&gt;
  
  
  Understanding Agentic Coding: Beyond Assistance to Autonomy
&lt;/h2&gt;

&lt;p&gt;Agentic coding agents possess four key characteristics that distinguish them from previous AI tools:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Autonomous Decision Making
&lt;/h3&gt;

&lt;p&gt;Unlike traditional coding assistants that respond to prompts, agentic systems make independent decisions about architecture, implementation patterns, and tool usage.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Multi-Step Workflow Execution
&lt;/h3&gt;

&lt;p&gt;Agents can plan and execute complex, multi-file changes across entire codebases without constant human guidance.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Tool Integration and Environment Manipulation
&lt;/h3&gt;

&lt;p&gt;Agentic systems can interact with development tools, version control, testing frameworks, and deployment pipelines.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Learning and Adaptation
&lt;/h3&gt;

&lt;p&gt;These agents learn from codebase patterns, project conventions, and previous interactions to improve their suggestions.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Four Modalities of Agentic Coding
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8x0syxf6whqm4c4pskh4.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%2F8x0syxf6whqm4c4pskh4.png" alt="Infographic showing the four modalities of agentic coding: IDE Plugins, AI-Native IDEs, CLI Tools, Web Interfaces, with tool examples" width="800" height="1200"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Infographic: The Four Modalities of Agentic Coding (IDE Plugins, AI-Native IDEs, CLI Tools, Web Interfaces) with representative tools. Created with Canva.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Real-World Agentic Coding Use Cases
&lt;/h2&gt;

&lt;p&gt;Based on my experience implementing these tools in enterprise environments, here are the most impactful applications:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Intelligent Code Generation
&lt;/h3&gt;

&lt;p&gt;AI agents can now build complete applications from a single prompt, autonomously selecting appropriate technologies, generating code across multiple files, and deploying functional systems.&lt;/p&gt;


 
 

&lt;p&gt;&lt;em&gt;Demonstration of agentic AI coding in action, showing complete application generation from natural language prompts&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key Benefits:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Flow-based architecture&lt;/strong&gt; where components are organized into distinct nodes for decision-making, file operations, and code analysis&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Autonomous technology selection&lt;/strong&gt; based on project requirements&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multi-file coordination&lt;/strong&gt; across entire codebases without manual intervention&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. Comprehensive Test Generation
&lt;/h3&gt;

&lt;p&gt;Agentic systems automatically generate complete test suites with edge cases, mock setups, and realistic test data. Unlike traditional code completion, these agents understand testing patterns and create comprehensive validation scenarios.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Implementation Pattern:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Autonomous test architecture&lt;/strong&gt; with proper mocking and dependency injection&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Edge case generation&lt;/strong&gt; based on code analysis and business logic&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Realistic test data factories&lt;/strong&gt; that mirror production scenarios&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Productivity Impact&lt;/strong&gt; : Teams report 60% faster test coverage achievement with agentic test generation compared to manual writing.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Claude Code generating a complete test suite - demonstration of agentic test generation in action&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Intelligent Debugging and Reverse Engineering
&lt;/h3&gt;

&lt;p&gt;Agentic systems excel at analyzing complex codebases, identifying root causes rather than symptoms, and suggesting architectural improvements during debugging sessions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Real-World Workflow:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Pattern recognition&lt;/strong&gt; across error logs and stack traces&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cross-file analysis&lt;/strong&gt; to identify systemic issues&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Proactive refactoring&lt;/strong&gt; suggestions to prevent future bugs&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Enterprise Example&lt;/strong&gt; : Agents can analyze production logs, identify recurring NullPointerExceptions, trace them to missing validation logic, and propose comprehensive fixes across multiple service layers.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Live debugging session showing agentic analysis of a production incident - demonstration of intelligent debugging capabilities&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Automated Documentation Generation
&lt;/h3&gt;

&lt;p&gt;Agentic documentation systems create comprehensive API docs, architectural diagrams, and onboarding guides by understanding code relationships and business context.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Autonomous Features:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;API documentation&lt;/strong&gt; with realistic request/response examples&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Architecture visualization&lt;/strong&gt; showing component relationships&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Code pattern explanation&lt;/strong&gt; for complex business logic&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Enterprise Value&lt;/strong&gt; : Documentation stays synchronized with code changes automatically, reducing maintenance overhead by 70%.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Time-lapse of automatic documentation generation during a feature development cycle - demonstration of agentic documentation capabilities&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Intelligent Refactoring
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Architectural Intelligence&lt;/strong&gt; : Agentic refactoring goes beyond simple code cleanup to suggest architectural improvements, pattern implementations, and performance optimizations based on industry best practices.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Advanced Capabilities:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Service-oriented architecture (SOA)&lt;/strong&gt; recommendations for scalable systems&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Domain-driven design (DDD)&lt;/strong&gt; pattern implementation&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Performance optimization&lt;/strong&gt; through algorithmic improvements&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Case Study&lt;/strong&gt; : Converting a 200-line monolithic function into a clean, testable service architecture with proper separation of concerns and dependency injection.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Before/after comparison showing intelligent refactoring of legacy code into modern architecture - demonstration of agentic refactoring capabilities&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The evolution from simple code completion to autonomous agentic coding represents the most significant shift in software development since the advent of high-level programming languages. As engineers, we’re not just gaining new tools—we’re fundamentally changing how we think about software creation.&lt;/p&gt;

&lt;p&gt;The future belongs to engineers who can effectively collaborate with AI agents, combining human creativity, domain expertise, and ethical judgment with AI’s computational power, consistency, and tireless execution.&lt;/p&gt;




&lt;h2&gt;
  
  
  Additional Resources and Learning
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Essential Reading
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.anthropic.com/engineering/claude-code-best-practices" rel="noopener noreferrer"&gt;Anthropic’s Claude Code Best Practices&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://aws.amazon.com/blogs/devops/amazon-q-developer-agentic-coding-experience/" rel="noopener noreferrer"&gt;AWS DevOps: Agentic Coding Experience&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.deeplearning.ai/short-courses/claude-code-a-highly-agentic-coding-assistant/" rel="noopener noreferrer"&gt;DeepLearning.AI: Claude Code Course&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Tool Documentation
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/features/copilot" rel="noopener noreferrer"&gt;GitHub Copilot Workspace&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://cursor.sh/docs" rel="noopener noreferrer"&gt;Cursor AI Documentation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://claude.ai/code" rel="noopener noreferrer"&gt;Claude Code CLI Guide&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://aws.amazon.com/q/developer/" rel="noopener noreferrer"&gt;Amazon Q Developer&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Community and Discussion
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.reddit.com/r/ChatGPTCoding/" rel="noopener noreferrer"&gt;r/ChatGPTCoding - Agentic Coding Discussions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://news.ycombinator.com/" rel="noopener noreferrer"&gt;Hacker News: Agentic AI Developments&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://stackoverflow.blog/2025/04/17/wait-what-is-agentic-ai/" rel="noopener noreferrer"&gt;Stack Overflow: Agentic AI Blog&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
    </item>
    <item>
      <title>What Is Quishing and How to Avoid It</title>
      <dc:creator>Denis Kisina</dc:creator>
      <pubDate>Mon, 09 Jun 2025 00:00:00 +0000</pubDate>
      <link>https://dev.to/deniskisina/what-is-quishing-and-how-to-avoid-it-453l</link>
      <guid>https://dev.to/deniskisina/what-is-quishing-and-how-to-avoid-it-453l</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%2Ffybvx1p06m1ershfybj5.jpg" 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%2Ffybvx1p06m1ershfybj5.jpg" alt="QR code Scanning" width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Scanning QR Code at Wursthall Restaurant
&lt;/h2&gt;

&lt;p&gt;Quishing (or &lt;strong&gt;QR code phishing&lt;/strong&gt; ) is a new twist on the familiar phishing scam. In quishing, attackers use malicious QR codes to trick victims into visiting fake websites or downloading malware. QR codes are those black-and-white square barcodes you scan with your phone’s camera. Cyber criminals know that many people trust QR codes for quick tasks (like viewing menus, paying bills, or signing up for deals), and they exploit this trust. As the Australian Cyber Security Centre explains, quishing “uses QR codes instead of text-based links” to fool people into giving up personal data or installing harmful software. Cloudflare’s security team similarly warns that quishing aims to steal sensitive information (passwords, financial data, PII – personally identifiable information) by redirecting you to malicious sites. In short, quishing replaces a clickable link with a scannable code to carry out scams.&lt;/p&gt;

&lt;h2&gt;
  
  
  How Quishing Works
&lt;/h2&gt;

&lt;p&gt;In a typical quishing attack, a scammer generates a harmful QR code that hides a bad URL or a virus-laden file. They might email or text the QR code to you, put it on a fake flyer, or even stick it over a real QR code in a public place. When you scan the code with your smartphone camera, it takes you to a malicious website or automatically downloads malware. Often, the site will look legitimate (for example, mimicking a bank or company login page) and ask you to enter passwords or payment information. As SoSafe’s security guide explains, after scanning a quishing QR code “victims are asked to provide sensitive information like login credentials or bank details or to download malicious software”. In another twist (called QRLJacking), attackers can even swap a QR code on a login screen so that scanning it logs you into the attacker’s account instead of your own.&lt;/p&gt;

&lt;p&gt;Quishing works so well because QR codes hide their destination. Unlike regular links, you usually can’t see where a QR code will take you until after you scan it. Many email filters also can’t read QR codes embedded in images, so a phishing email with a QR image may slip past security filters. Attackers exploit this by using urgency or curiosity: they might send a message like “Scan this code to watch a missed voicemail” or “Scan to claim a prize.” Because QR codes look official and scanning seems easy, people often don’t hesitate. But once scanned, the scammer’s trap is sprung: your device is now connected to a fake site or a malicious download.&lt;/p&gt;

&lt;p&gt;Key steps in a quishing scam include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Creation: The attacker creates a QR code that links to a fraudulent website or a malicious file (for example, a fake login page or a virus download).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Delivery: They place the QR code where people will scan it – this could be in an email, text message, social post, a flyer, or even a sticker on a public sign.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Scanning: The victim uses a smartphone to scan the code. The device is taken to the attacker-controlled site or service. Sometimes the site immediately downloads malware onto the device.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Exploitation: The site may ask the user to enter credentials (like passwords or credit card numbers). Once entered, the attacker steals this information. They might also gain access to the device itself if malware was installed, enabling identity theft, financial fraud, or ransomware attacks.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Common Signs of a Quishing Attack
&lt;/h2&gt;

&lt;p&gt;Quishing scams use many of the same tricks as email phishing, so the red flags are similar to other scams – plus a few QR-specific ones. Watch out for these warning signs:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Unsolicited QR codes: Be suspicious if you receive a QR code out of the blue, especially from an unknown sender. For example, if you get an unexpected email or text saying “scan this QR code now” with no clear context, that’s a red flag.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Urgency or incentives: Messages that pressure you to scan quickly (“Offer ends soon!”) or promise big rewards (“Win $100 if you scan this code”) are common lures. Scammers use fear and greed to get you to act without thinking. SoSafe notes that attackers often incite “fear and urgency” to trick victims into scanning fraudulent QR codes.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Poor context or grammar: If the QR code comes with a generic greeting, spelling mistakes, or strange wording, treat it cautiously. Legitimate organizations usually address you by name and provide clear context.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Misleading placement or design: On posters, flyers, or stickers, look for signs of tampering. IBM warns to check if the QR code sticker looks pixelated, misaligned, or placed over an existing code. A sticker that doesn’t match the rest of the design (for instance, a newer-looking sticker on an old sign) could be hiding a malicious code.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Suspicious destination: After scanning, check the web address carefully. If your phone shows the URL or name of the site it’s going to, look for anything unusual. A slight typo or unfamiliar domain should make you back out immediately. Also be cautious if your phone suddenly asks for downloads or app permissions after scanning; attackers sometimes request extra permissions that aren’t needed for viewing content.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Asking for private info: Legitimate QR codes rarely ask for sensitive data. If the site you landed on immediately asks for login credentials, your Social Security number, or bank details, it’s almost certainly a scam.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Where you found the QR code: Consider the context. A random QR code on a street lamp or a parking meter that was never there before might be malicious. IBM notes that attackers have even pasted fake codes on devices like parking machines or menus during COVID-19 to trick people.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Always trust your instincts: if something seems off about a QR code or the website it leads to, don’t scan it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Real-World Examples
&lt;/h2&gt;

&lt;p&gt;Cybercriminals have already carried out many quishing attacks. Some notable cases include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Parking meter fraud: In one Texas case, scammers placed fake QR code stickers on parking kiosks. Drivers who scanned to “pay” were taken to a bogus site and ended up handing their credit card details directly to the fraudsters. A similar scam occurred in Atlanta, where fake parking tickets with QR codes were placed on cars. The city later warned that they do not use QR codes on tickets – the codes led to scam payment pages.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Workplace phishing: Employees at a company received emails claiming to have a voicemail. The email had a QR code that supposedly would let them listen to the message. Scanning it took victims to a fake Microsoft login page. Unsuspecting users entered their usernames and passwords, giving the attackers direct access to their accounts.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Banking scam: Customers of a bank got emails or letters asking them to scan a QR code to “consent to a new data policy.” Scanning redirected them to a website that looked exactly like the bank’s login page. When customers entered their details, hackers captured their account credentials.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Unsolicited gift (“Brushing”) scam: Some people have received free small gifts in the mail along with a note and a QR code. The note says to scan the code to register the gift or learn about the sender. In reality, scanning takes you to a spoof website that asks for personal or financial information. The U.S. Postal Inspection Service describes this as another form of quishing, where criminals look innocent (giving a small gift) to trick you into scanning a malicious QR code.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Educational campaign QR: Not all QR codes are malicious, but even marketers have shown how easy it is to exploit trust. For example, a popular Coinbase ad at the 2022 Super Bowl featured a QR code that bounced around the screen, offering free Bitcoin for app downloads. This legitimate code worked brilliantly (app installs jumped 309%), but it also demonstrated how many people would scan an unknown code on a TV. Scammers have used the same idea to bait victims. In fact, just before that ad aired, news outlets reported on “crypto QR scams” where attackers forced people to withdraw money via QR-enabled crypto ATMs. These cases highlight that quishing can show up anywhere: in emails, ads, parking meters, or even free gifts.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These real incidents show that quishing is versatile. It can target anyone – commuters, shoppers, workers, or even bank customers – by using a QR code in a context where people would least expect it.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to Protect Yourself
&lt;/h2&gt;

&lt;p&gt;You can take several practical steps to reduce your risk of falling for quishing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Only scan trusted QR codes: If you didn’t expect a QR code from someone, don’t scan it. Only use codes from official or known sources. IBM’s advice is clear: “Think before you scan – make sure that you’re only scanning codes from reputable sources.” If a code comes via an unsolicited email or message, verify its legitimacy first.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Inspect the code: When you see a QR code in public, look closely. Is it part of the original sign or does it look like a sticker slapped on later? A code that is misaligned, blurry, or placed over another code could be malicious. If it looks suspicious, don’t scan it.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Preview the link: Use your phone’s camera or a trusted QR scanner that shows you the URL before you open it. Many modern smartphones let you see the website address after you scan and before you tap to go there. Check that address carefully. If the URL doesn’t match what you expect (for example, it’s not the official bank site), don’t proceed.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Verify websites and information: If scanning leads to a website that asks for personal info, double-check everything. Look at the website’s address bar: is the domain name spelled correctly and secure (https)? Does the page design (logo, layout) match the real company’s website? If in doubt, close the site and navigate manually by typing the known website address into your browser.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Be cautious with downloads and permissions: Don’t download apps or files from QR codes unless you are absolutely sure of the source. If a code makes your phone ask for unusual permissions, cancel it. The Cyber.gov.au advice also says: avoid downloading apps via QR; instead, use official app stores.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Keep devices secure: Always install the latest updates for your phone and apps. Use a reputable security app on your device if possible. Enable two-factor authentication (2FA) on your online accounts. Even if a scammer steals your password, 2FA can block them from logging in.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Stay alert and informed: Learn about current scam tactics and tell others. If a deal sounds too good to be true, it usually is. The IBM security team warns not to “let the convenience of scanning a QR code cloud your good judgment”.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;By following these tips — verifying codes, checking links, and maintaining good security habits — you can make yourself a much harder target for quishing.&lt;/p&gt;

&lt;h2&gt;
  
  
  What to Do if You’re a Victim
&lt;/h2&gt;

&lt;p&gt;If you think you may have fallen for a quishing scam, act quickly:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Cut off the connection: If you just scanned a suspicious QR code, immediately close the website or app it opened. Avoid clicking any buttons on that site.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Change your passwords: If you entered any login credentials (for email, banking, or other accounts), change those passwords right away. Pick strong, unique passwords. This prevents the attacker from using stolen credentials.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Alert your bank or financial institutions: If you gave out any financial or personal information (like credit card or Social Security numbers), contact your bank or credit card company at once. They can monitor your accounts for fraud or freeze them if needed.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Scan for malware: Run a security scan on your device. If you downloaded something unwanted (an app or file) from the QR code, uninstall it and scan your phone for viruses or malware.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Check your accounts: Keep an eye on your bank statements, credit card activity, and credit reports for any strange charges or new accounts you didn’t open.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Report the scam: Tell the authorities. In the United States, you can report identity theft and phishing to the Federal Trade Commission at identitytheft.gov. The US. Postal Inspection Service asks that you email &lt;a href="//mailto:spam@uspis.gov"&gt;spam@uspis.gov&lt;/a&gt; if you see a suspicious QR code or suspect a quishing attempt in mail-related scams. Providing information about the scam can help authorities warn others and possibly catch the scammers.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Learn from it: Finally, make sure you and those around you are more aware. Explain the scam to friends or family so they don’t fall victim too. Prompt action can greatly reduce the damage if you’ve been targeted.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;QR codes offer real convenience, but that convenience can be abused. Quishing is becoming more common as people grow accustomed to scanning codes in everyday life. The key takeaway is to stay cautious. Treat every unexpected QR code as you would a suspicious email link: stop and think before you scan. As IBM’s security team reminds us, “Don’t let added convenience lower your guard.” By following the guidelines above and remaining vigilant, you can enjoy the benefits of QR codes without becoming the next victim of quishing. In the war against cyber scams, awareness and common-sense habits are your best defenses.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Test GitHub Action workflows locally</title>
      <dc:creator>Denis Kisina</dc:creator>
      <pubDate>Sun, 11 May 2025 02:51:54 +0000</pubDate>
      <link>https://dev.to/deniskisina/test-github-action-workflows-locally-1l9c</link>
      <guid>https://dev.to/deniskisina/test-github-action-workflows-locally-1l9c</guid>
      <description>&lt;p&gt;Developing a &lt;a href="https://docs.github.com/en/actions" rel="noopener noreferrer"&gt;GitHub Actions workflow&lt;/a&gt; is time-consuming. The process involves repeatedly committing and pushing your changes to your workflows to the remote repository to test them.&lt;/p&gt;

&lt;p&gt;This increases the time spent working and pollutes the repository with unnecessary commits and logs creating unnecessary clutter in the repository version history.&lt;/p&gt;

&lt;p&gt;This increases the time spent working and pollutes the repository with unnecessary commits and logs, creating unnecessary clutter in the repository’s version history.&lt;/p&gt;

&lt;p&gt;Fortunately, there are tools to test &lt;a href="https://docs.github.com/en/actions" rel="noopener noreferrer"&gt;GitHub Actions workflow&lt;/a&gt; locally before pushing the workflows to the repository. One of the more widely used tool is called &lt;a href="https://nektosact.com/introduction.html" rel="noopener noreferrer"&gt;act&lt;/a&gt; that uses &lt;a href="https://www.docker.com/" rel="noopener noreferrer"&gt;Docker&lt;/a&gt; containers to run and test your actions locally This tool allows you to run GitHub Actions workflows directly on your local machine, with YAML syntax support.&lt;/p&gt;

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

&lt;p&gt;The goal of &lt;a href="https://nektosact.com/introduction.html" rel="noopener noreferrer"&gt;act&lt;/a&gt; is to provide a way to spin up a GitHub Action locally, running it in a Docker container as if it were running in GitHub.&lt;/p&gt;

&lt;h2&gt;
  
  
  Installing &lt;code&gt;act&lt;/code&gt; CLI
&lt;/h2&gt;

&lt;p&gt;Note: Requirements - &lt;code&gt;nektos/act&lt;/code&gt; uses Docker to run your workflow on your machine. So, first, you need to have Docker (&lt;a href="https://www.docker.com/products/docker-desktop/" rel="noopener noreferrer"&gt;Docker Desktop&lt;/a&gt; for Mac and Windows, and Docker Engine for Linux) set up on your system.&lt;/p&gt;

&lt;p&gt;If you use a Mac, you can use &lt;a href="https://dev.tov"&gt;Homebrew&lt;/a&gt; to install it by running the following command in your terminal:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;brew install act

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Run your workflow
&lt;/h2&gt;

&lt;p&gt;To run your workflow on your machine, just navigate to your repository folder and run command &lt;a href="https://nektosact.com/introduction.html" rel="noopener noreferrer"&gt;&lt;code&gt;act&lt;/code&gt;&lt;/a&gt; at the terminal. It will run all workflows that are triggered by a &lt;a href="https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#push" rel="noopener noreferrer"&gt;GitHub push event&lt;/a&gt; in your &lt;code&gt;.github/workflows&lt;/code&gt; folder. Run command &lt;code&gt;act&lt;/code&gt;&lt;/p&gt;


 
 

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

&lt;p&gt;&lt;a href="https://nektosact.com/introduction.html" rel="noopener noreferrer"&gt;act&lt;/a&gt; is a valuable tool for developers who regularly work with GitHub Actions and want to test and debug their workflows locally.&lt;/p&gt;

&lt;h2&gt;
  
  
  NB:
&lt;/h2&gt;

&lt;p&gt;If you encounter this error :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;error getting credentials - err: exec: "docker-credential-desktop": executable file not found in $PATH, out: 

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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%2Fdawr24el5ryqkvevilyw.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%2Fdawr24el5ryqkvevilyw.png" alt="executable file not found in $PATH" width="800" height="116"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Update the in &lt;code&gt;~/.docker/config.json&lt;/code&gt; change &lt;code&gt;credsStore&lt;/code&gt; to &lt;code&gt;credStore&lt;/code&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Automating Blog Deployment with Hugo and GitHub Actions</title>
      <dc:creator>Denis Kisina</dc:creator>
      <pubDate>Fri, 02 May 2025 12:50:48 +0000</pubDate>
      <link>https://dev.to/deniskisina/automating-blog-deployment-with-hugo-and-github-actions-4ddg</link>
      <guid>https://dev.to/deniskisina/automating-blog-deployment-with-hugo-and-github-actions-4ddg</guid>
      <description>&lt;h2&gt;
  
  
  Overview
&lt;/h2&gt;

&lt;p&gt;Improving and streamlining my blogging workflow has been on my TODO list for a while now, and since migrating to Hugo, I have gotten the kick I needed.&lt;/p&gt;

&lt;p&gt;After setting up my blog using Hugo, I posted about the migration process and the steps involved in moving from WordPress to Hugo. My current blogging workflow is manual; to publish a new post, I create a markdown file in the project directory and run the &lt;code&gt;hugo&lt;/code&gt; command. This builds the site by combining the Markdown content with HTML templates and outputs a set of static HTML files in the public directory—ready to be served by any standard web server. After that, I copy the public folder using scp, and just like that, the new post was live.&lt;/p&gt;

&lt;p&gt;It got me thinking about automating the deployment process of my blog using GitHub Actions, given that I already have a GitHub repository for the blog site.&lt;/p&gt;

&lt;h2&gt;
  
  
  What are GitHub Actions? How does a Github Action work?
&lt;/h2&gt;

&lt;p&gt;GitHub Actions is a continuous integration and continuous delivery (CI/CD) platform. At the most basic level, it is a series of processes executed in response to an event in a GitHub repository called a “workflow,” defined in a text file (YAML) placed under the &lt;code&gt;.github/workflows&lt;/code&gt; directory inside your project directory. A workflow consists of a set of “jobs” that can be executed in parallel, and each job consists of multiple “steps” executed sequentially.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Example Workflow&lt;/span&gt;

&lt;span class="na"&gt;on&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
 &lt;span class="na"&gt;push&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
 &lt;span class="na"&gt;branches&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;main&lt;/span&gt;&lt;span class="pi"&gt;]&lt;/span&gt;
 &lt;span class="na"&gt;pull_request&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
 &lt;span class="na"&gt;branches&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;main&lt;/span&gt;&lt;span class="pi"&gt;]&lt;/span&gt;

&lt;span class="na"&gt;jobs&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
 &lt;span class="na"&gt;job1&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
 &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Job &lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt;
 &lt;span class="na"&gt;runs-on&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;ubuntu-latest&lt;/span&gt;
 &lt;span class="na"&gt;steps&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
 &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Step 1-1 - Checkout repository&lt;/span&gt;
 &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;actions/checkout@v4&lt;/span&gt;

 &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Step 1-2 - Run a script&lt;/span&gt;
 &lt;span class="na"&gt;run&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;echo "Hello from Job 1, Step 1-2!"&lt;/span&gt;

 &lt;span class="na"&gt;job2&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
 &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Job &lt;/span&gt;&lt;span class="m"&gt;2&lt;/span&gt;
 &lt;span class="na"&gt;runs-on&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;ubuntu-latest&lt;/span&gt;
 &lt;span class="na"&gt;needs&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;job1&lt;/span&gt;
 &lt;span class="na"&gt;steps&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
 &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Step 2-1 - Run another script&lt;/span&gt;
 &lt;span class="na"&gt;run&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;echo "Hello from Job 2, Step 2-1! Job 1 completed."&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Why automate the deployment?
&lt;/h2&gt;

&lt;p&gt;Today, creating or updating a post on the blog involves a manual and repetitive process: Make changes locally. Build the static site using the hugo command. Copy the generated files from the &lt;code&gt;public/&lt;/code&gt; directory. Transfer them to the remote server. This Workflow is both time-consuming and prone to error. Given these limitations, why not automate the process to streamline content deployment and reduce friction?&lt;/p&gt;

&lt;h2&gt;
  
  
  Workflow
&lt;/h2&gt;

&lt;p&gt;Starting to gather the various bits and pieces, we should first establish our desired Workflow as the final target we wish to achieve. The desired Workflow for this scenario would be:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Working locally with our website files. (Try new features, add/update posts, etc.)&lt;/li&gt;
&lt;li&gt;When we feel happy with what we have done, commit the changes. (Or commit as many times as we feel necessary)&lt;/li&gt;
&lt;li&gt;Push changes to remote repository. (usually origin/master)&lt;/li&gt;
&lt;li&gt;Done. (Automatic deployment)&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%2Fbge9z5il2o4mcwujycg5.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%2Fbge9z5il2o4mcwujycg5.png" alt="GitHub Workflow" width="686" height="1500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Build job
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;
&lt;span class="na"&gt;jobs&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
 &lt;span class="c1"&gt;# Build job&lt;/span&gt;
 &lt;span class="na"&gt;build&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
 &lt;span class="na"&gt;runs-on&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;ubuntu-latest&lt;/span&gt;
 &lt;span class="na"&gt;concurrency&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
 &lt;span class="na"&gt;group&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;${{github.workflow}} - ${{github.ref}}&lt;/span&gt;

 &lt;span class="na"&gt;steps&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;

 &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Checkout&lt;/span&gt;
 &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;actions/checkout@v4&lt;/span&gt;
 &lt;span class="na"&gt;with&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
 &lt;span class="na"&gt;submodules&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
 &lt;span class="na"&gt;fetch-depth&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt;

 &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Setup Hugo&lt;/span&gt;
 &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;peaceiris/actions-hugo@v3&lt;/span&gt;
 &lt;span class="na"&gt;with&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
 &lt;span class="na"&gt;hugo-version&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;latest'&lt;/span&gt;
 &lt;span class="na"&gt;extended&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;

 &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Build with Hugo&lt;/span&gt;
 &lt;span class="na"&gt;run&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;hugo --minify&lt;/span&gt;

 &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Upload public dir&lt;/span&gt;
 &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;actions/upload-artifact@v4&lt;/span&gt;
 &lt;span class="na"&gt;with&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
 &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;public-artifact&lt;/span&gt;
 &lt;span class="na"&gt;path&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;public/&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The build job gathers and installs all dependencies for running hugo and generating the static assets. The content is generated in the directory called public. Finally, it uploads this directory to the artifacts of this workflow, so they can be accessed from the other jobs, in our case the deploy job.&lt;/p&gt;

&lt;h2&gt;
  
  
  Deploy job
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt; &lt;span class="c1"&gt;# Deploy job&lt;/span&gt;
 &lt;span class="na"&gt;deploy&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
 &lt;span class="na"&gt;runs-on&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;ubuntu-latest&lt;/span&gt;
 &lt;span class="na"&gt;needs&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;build&lt;/span&gt;

 &lt;span class="na"&gt;steps&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;

 &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Download public dir&lt;/span&gt;
 &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;actions/download-artifact@v4&lt;/span&gt;
 &lt;span class="na"&gt;with&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
 &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;public-artifact&lt;/span&gt;
 &lt;span class="na"&gt;path&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;public&lt;/span&gt;

 &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Deploy blog&lt;/span&gt;
 &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;appleboy/scp-action@v0.1.7&lt;/span&gt;
 &lt;span class="na"&gt;with&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
 &lt;span class="na"&gt;host&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;${{ secrets.FTP_HOST }}&lt;/span&gt;
 &lt;span class="na"&gt;username&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;${{ secrets.FTP_USER }}&lt;/span&gt;
 &lt;span class="na"&gt;key&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;${{ secrets.KEY }}&lt;/span&gt;
 &lt;span class="na"&gt;port&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;${{ secrets.PORT }}&lt;/span&gt;
 &lt;span class="na"&gt;source&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;public/"&lt;/span&gt;
 &lt;span class="na"&gt;target&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;${{ secrets.TARGET_DIR }}&lt;/span&gt;
 &lt;span class="na"&gt;strip_components&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This job consists of 2 simple steps. First, download the artifacts from the previous job and then upload them to Hostinger, using the account credentials has write permissions to this directory.&lt;/p&gt;

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

&lt;p&gt;I’m really happy with how simple it was to set up this workflow using GitHub Actions. It only took a few hours to set up the blog, and now I have something simple and robust enough for me to write posts and iterate with little to no overhead. I’m looking forward to writing more posts, and I hope you’ll join me on this journey!&lt;/p&gt;

&lt;h2&gt;
  
  
  References
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/features/actions" rel="noopener noreferrer"&gt;Github Actions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://gohugo.io/" rel="noopener noreferrer"&gt;Hugo&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
    </item>
    <item>
      <title>The Secret AI Revolution: How SMEs Are Solving 6 Critical Business Challenges</title>
      <dc:creator>Denis Kisina</dc:creator>
      <pubDate>Wed, 15 Jan 2025 15:00:00 +0000</pubDate>
      <link>https://dev.to/deniskisina/the-secret-ai-revolution-how-smes-are-solving-6-critical-business-challenges-io4</link>
      <guid>https://dev.to/deniskisina/the-secret-ai-revolution-how-smes-are-solving-6-critical-business-challenges-io4</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%2Fvzhyqbqijzl70pma1fcy.jpg" 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%2Fvzhyqbqijzl70pma1fcy.jpg" alt="Small business owner using AI tools on laptop with digital transformation icons floating around" width="800" height="600"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;SMEs are leveraging AI to compete with enterprise-level efficiency and innovation&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;While Fortune 500 companies dominate AI headlines, a quiet revolution is happening in small and medium enterprises (SMEs). These nimble organizations are secretly deploying AI solutions to solve critical business challenges—and the results are remarkable.&lt;/p&gt;

&lt;p&gt;As someone who’s worked extensively with enterprise AI implementations, I’ve witnessed firsthand how SMEs are achieving what was once exclusive to tech giants. The democratization of AI tools has leveled the playing field, and smart SMEs are capitalizing on this opportunity.&lt;/p&gt;

&lt;p&gt;Let’s explore the six core pain points SMEs face and the AI solutions that are transforming their operations.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Labor Cost Crisis: AI as Your Ultimate Efficiency Multiplier
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;The Pain Point&lt;/strong&gt; : Customer service overwhelm, manual data entry errors, time-consuming report generation, and prohibitive staffing costs are bleeding SMEs dry.&lt;/p&gt;

&lt;h3&gt;
  
  
  AI-Powered Solutions:
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Intelligent Customer Service&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;GPT-powered chatbots&lt;/strong&gt; and &lt;strong&gt;Kimi Chat&lt;/strong&gt; handle 80% of routine inquiries&lt;/li&gt;
&lt;li&gt;24/7 multilingual support eliminates timezone barriers for global SMEs&lt;/li&gt;
&lt;li&gt;Human agents focus on complex, high-value interactions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Process Automation Champions&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;UiPath with AI&lt;/strong&gt; automates invoice processing, order management, and financial reporting&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Otter.ai&lt;/strong&gt; transforms meetings into searchable transcripts and action items&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Claude Code&lt;/strong&gt; generates custom automation scripts for repetitive tasks&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Impact Metrics&lt;/strong&gt; : 30-50% reduction in labor costs, with teams refocusing on strategic initiatives rather than manual processes.&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%2F39sr4sgeeoyz2nrtyjzk.jpg" 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%2F39sr4sgeeoyz2nrtyjzk.jpg" alt="AI chatbot interface showing multilingual customer support with analytics dashboard" width="800" height="488"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;AI-powered customer service systems handle 80% of routine inquiries while providing 24/7 multilingual support&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Customer Acquisition Nightmare: Precision Marketing with AI
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;The Pain Point&lt;/strong&gt; : Traditional advertising feels like throwing money into a black hole. Private domain traffic management is complex, and customer acquisition costs keep rising.&lt;/p&gt;

&lt;h3&gt;
  
  
  AI Marketing Arsenal:
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Intelligent Advertising Optimization&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Meta Advantage+&lt;/strong&gt; and &lt;strong&gt;Google AI&lt;/strong&gt; advertising deliver precise targeting with continuous optimization&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ChatGPT&lt;/strong&gt; and &lt;strong&gt;Copy.ai&lt;/strong&gt; generate high-converting copy for multiple platforms&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Jasper AI&lt;/strong&gt; creates entire content campaigns in minutes&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Private Domain Intelligence&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;HubSpot’s AI&lt;/strong&gt; identifies high-value prospects and personalizes outreach&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Silicon-based outbound systems&lt;/strong&gt; automate lead qualification&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Klaviyo’s AI&lt;/strong&gt; predicts customer lifetime value and optimal engagement timing&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Measurable Results&lt;/strong&gt; : 20-40% reduction in advertising costs, 50%+ improvement in conversion rates, and predictable customer acquisition pipelines.&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%2Fe5w54p8ss3lc99e96u1g.jpg" 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%2Fe5w54p8ss3lc99e96u1g.jpg" alt="Marketing analytics dashboard showing AI-optimized campaigns with conversion metrics and ROI data" width="800" height="533"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;AI marketing tools deliver precise targeting and campaign optimization, reducing advertising costs by 20-40%&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Data-Driven Decision Making: From Gut Feelings to AI Insights
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;The Pain Point&lt;/strong&gt; : Inventory management based on intuition, unpredictable cash flow, and reactive rather than proactive business planning.&lt;/p&gt;

&lt;h3&gt;
  
  
  AI Analytics Powerhouse:
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Predictive Intelligence&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Microsoft Power BI&lt;/strong&gt; and &lt;strong&gt;Tableau&lt;/strong&gt; with AI provide automated trend analysis&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;QuickBooks AI&lt;/strong&gt; offers real-time cash flow monitoring and risk alerts&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;DeepSeek&lt;/strong&gt; transforms Excel data into actionable insights without complex formulas&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Competitive Intelligence&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Bright Data&lt;/strong&gt; automatically tracks competitor pricing and product launches&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Perplexity AI&lt;/strong&gt; generates comprehensive market research reports&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Crayon&lt;/strong&gt; monitors competitor content and marketing strategies&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Business Impact&lt;/strong&gt; : 30% reduction in inventory waste, 3x faster decision-making speed, and proactive risk management.&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%2Feb5rweelgd268brgi2si.jpg" 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%2Feb5rweelgd268brgi2si.jpg" alt="Business intelligence dashboard with predictive analytics, cash flow forecasting, and inventory optimization charts" width="800" height="533"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;AI analytics transform raw data into actionable insights, enabling 3x faster decision-making and proactive risk management&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Product Innovation Bottleneck: AI-Accelerated Development
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;The Pain Point&lt;/strong&gt; : Lengthy design cycles, unclear user requirements, and products that miss market timing.&lt;/p&gt;

&lt;h3&gt;
  
  
  AI Innovation Accelerators:
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Rapid Prototyping&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Midjourney&lt;/strong&gt; and &lt;strong&gt;DALL-E&lt;/strong&gt; create product concepts in minutes&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Figma AI&lt;/strong&gt; generates design variations and user flows&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub Copilot&lt;/strong&gt; accelerates custom software development&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;User-Centric Development&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;MonkeyLearn&lt;/strong&gt; analyzes customer feedback for feature prioritization&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hotjar AI&lt;/strong&gt; identifies user behavior patterns and pain points&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Amplitude AI&lt;/strong&gt; predicts feature adoption and user engagement&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Service Personalization&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Ada Health&lt;/strong&gt; provides AI-powered preliminary consultations&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Khanmigo&lt;/strong&gt; creates personalized learning experiences&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Intercom’s Resolution Bot&lt;/strong&gt; delivers contextual customer support&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Innovation Velocity&lt;/strong&gt; : 50% shorter development cycles, data-driven feature decisions, and higher customer satisfaction scores.&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%2Fy999yfhgpqwem18hlhcd.jpg" 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%2Fy999yfhgpqwem18hlhcd.jpg" alt="Split screen showing traditional design process vs AI-accelerated design with Midjourney and Figma AI generating prototypes" width="800" height="533"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;AI design tools like Midjourney and Figma AI reduce product development cycles by 50%&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Legal and Compliance Risks: AI as Your Digital Legal Guardian
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;The Pain Point&lt;/strong&gt; : Contract vulnerabilities, time-consuming legal processes, and crisis management reactivity.&lt;/p&gt;

&lt;h3&gt;
  
  
  AI Compliance Suite:
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Contract Intelligence&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;LawGeex&lt;/strong&gt; reviews contracts in 10 minutes with 94% accuracy&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ironclad AI&lt;/strong&gt; generates standard contracts and tracks obligations&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Kira Systems&lt;/strong&gt; extracts key terms and identifies potential risks&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Reputation Management&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Brandwatch&lt;/strong&gt; monitors brand mentions across digital channels&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Crisis GPT&lt;/strong&gt; generates real-time response strategies&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hootsuite Insights&lt;/strong&gt; predicts potential PR issues before they escalate&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Risk Mitigation&lt;/strong&gt; : 70% reduction in legal risks, 5x faster crisis response, and proactive compliance monitoring.&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%2Fxgfmrmnsjf6hijggpcax.jpg" 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%2Fxgfmrmnsjf6hijggpcax.jpg" alt="Legal AI interface showing contract analysis, risk assessment, and compliance monitoring dashboard" width="800" height="533"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;AI legal tools like LawGeex review contracts with 94% accuracy in 10 minutes, reducing legal risks by 70%&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Cost-Effective AI Implementation: Your Practical Roadmap
&lt;/h2&gt;

&lt;h3&gt;
  
  
  SME-Friendly AI Tool Stack:
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Business Function&lt;/th&gt;
&lt;th&gt;Recommended Tools&lt;/th&gt;
&lt;th&gt;Monthly Cost&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Customer Service Automation&lt;/td&gt;
&lt;td&gt;Zoho Chatbot, Intercom&lt;/td&gt;
&lt;td&gt;$0-$500&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Content Generation&lt;/td&gt;
&lt;td&gt;ChatGPT Plus, Copy.ai&lt;/td&gt;
&lt;td&gt;$100-$500&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Data Analytics&lt;/td&gt;
&lt;td&gt;Power BI, Google Analytics AI&lt;/td&gt;
&lt;td&gt;$60-$300&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Design Assistance&lt;/td&gt;
&lt;td&gt;Midjourney, Canva AI&lt;/td&gt;
&lt;td&gt;$200-$400&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Legal Compliance&lt;/td&gt;
&lt;td&gt;LawGeex (pay-per-use)&lt;/td&gt;
&lt;td&gt;$50-$300 per review&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Process Automation&lt;/td&gt;
&lt;td&gt;Zapier, UiPath Community&lt;/td&gt;
&lt;td&gt;$0-$400&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Implementation Strategy:
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Start with Pain Points&lt;/strong&gt; : Identify your most time-consuming processes&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pilot Programs&lt;/strong&gt; : Test one tool at a time to validate ROI&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No-Code First&lt;/strong&gt; : Prioritize tools requiring minimal technical expertise&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Measure Everything&lt;/strong&gt; : Track time savings, cost reduction, and quality improvements&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Scale Gradually&lt;/strong&gt; : Expand successful implementations across departments&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%2F2khehv4ynk631xo5rjc4.jpg" 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%2F2khehv4ynk631xo5rjc4.jpg" alt="Infographic showing AI implementation phases from pilot to scale with timeline and key milestones" width="800" height="534"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Strategic AI implementation roadmap: Start small, measure impact, scale gradually&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The SME AI Advantage
&lt;/h2&gt;

&lt;p&gt;What I find fascinating is that SMEs often implement AI faster than large enterprises. Without legacy system constraints and bureaucratic approval processes, they can deploy solutions in weeks rather than months.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key Success Factors I’ve Observed:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Leadership buy-in&lt;/strong&gt; from day one&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Employee training&lt;/strong&gt; focused on AI collaboration rather than replacement&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Iterative improvement&lt;/strong&gt; based on real usage data&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Vendor partnerships&lt;/strong&gt; that provide ongoing support and optimization&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Looking Forward: The AI-Native SME
&lt;/h2&gt;

&lt;p&gt;The SMEs implementing AI today aren’t just solving current problems—they’re building sustainable competitive advantages. As AI capabilities continue advancing, these early adopters will have the experience, processes, and culture to leverage new developments immediately.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;My Prediction&lt;/strong&gt; : Within two years, AI adoption will be the primary differentiator between thriving SMEs and those struggling to compete. The tools exist, the costs are manageable, and the benefits are proven.&lt;/p&gt;

&lt;p&gt;The question isn’t whether your SME should adopt AI—it’s how quickly you can start and how strategically you can implement 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%2Fnvqyodsgo8r8z1mz7xfa.jpg" 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%2Fnvqyodsgo8r8z1mz7xfa.jpg" alt="Modern small business office with employees collaborating with AI tools, showing the future of AI-native SMEs" width="800" height="533"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;The future belongs to AI-native SMEs that can adapt quickly and implement strategically&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Are you an SME owner exploring AI implementation? I’d love to hear about your challenges and successes. Connect with me on &lt;a href="https://www.linkedin.com/in/denis-kisina/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt; to continue the conversation about practical AI adoption strategies.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;About the Author&lt;/strong&gt; : Denis Kisina is a Software Engineer specializing in enterprise AI integration and digital transformation. He helps organizations implement practical AI solutions that deliver measurable business value while maintaining operational excellence.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Migrating from WordPress to Hugo</title>
      <dc:creator>Denis Kisina</dc:creator>
      <pubDate>Mon, 08 Jul 2024 11:15:22 +0000</pubDate>
      <link>https://dev.to/deniskisina/migrating-from-wordpress-to-hugo-ckd</link>
      <guid>https://dev.to/deniskisina/migrating-from-wordpress-to-hugo-ckd</guid>
      <description>&lt;p&gt;This past weekend, I switched this blog site from WordPress to &lt;a href="https://gohugo.io/" rel="noopener noreferrer"&gt;Hugo&lt;/a&gt;, a static site generator.&lt;/p&gt;

&lt;p&gt;I checked out Hugo a few weeks back and was surprised at how user-friendly it was. Getting started felt smooth and effortless.&lt;/p&gt;

&lt;p&gt;In this post, I will explain why I switched from WordPress and how I successfully migrated my site in just a few hours on a weekend afternoon.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why I moved from WordPress to Hugo Link to heading
&lt;/h2&gt;

&lt;p&gt;WordPress has been my go-to anytime I need to build something without custom features or significant user-generated content. WordPress and the plethora of plugins were easy enough to set up and maintain.&lt;/p&gt;

&lt;p&gt;While WordPress offers a lot of flexibility, I found it a bit feature-heavy for my simple blogging needs and has no version control.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Hugo Link to heading
&lt;/h2&gt;

&lt;p&gt;You can search for “WordPress to Hugo” on Google and find numerous posts discussing why people make the switch. Here are my reasons:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It is blazing fast. My blog builds in ~ 1 second.&lt;/li&gt;
&lt;li&gt;Content as Markdown. Owning your content and knowing it’s not locked up with a vendor or in a database gives you peace of mind.&lt;/li&gt;
&lt;li&gt;I like working with plain old HTML and CSS. The templating language allows me to do that.&lt;/li&gt;
&lt;li&gt;The development and support community are top-notch.&lt;/li&gt;
&lt;li&gt;Host the built site anywhere you want.&lt;/li&gt;
&lt;li&gt;Hugo’s single binary (few dependencies) makes it incredibly portable.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Getting Started Link to heading
&lt;/h2&gt;

&lt;p&gt;Setting up a local environment is easy, quick, and lightweight. Visit the official site and follow the &lt;a href="https://gohugo.io/installation/" rel="noopener noreferrer"&gt;documentation&lt;/a&gt; there.&lt;/p&gt;

&lt;p&gt;I run macOS, so &lt;a href="https://gohugo.io/installation/macos/" rel="noopener noreferrer"&gt;installing Hugo&lt;/a&gt; was easy.&lt;/p&gt;

&lt;p&gt;Once that’s done, select a &lt;a href="https://themes.gohugo.io/" rel="noopener noreferrer"&gt;theme&lt;/a&gt; and follow its instructions, and you are good to go.&lt;/p&gt;

&lt;p&gt;This blog runs on &lt;a href="https://github.com/luizdepra/hugo-coder/" rel="noopener noreferrer"&gt;Hugo-Coder&lt;/a&gt; theme.&lt;/p&gt;

&lt;h2&gt;
  
  
  Migrating content Link to heading
&lt;/h2&gt;

&lt;p&gt;Hugo’s &lt;a href="https://gohugo.io/tools/migrations/#wordpress" rel="noopener noreferrer"&gt;official migration tutorial&lt;/a&gt; recommends several tools to export posts from WordPress.&lt;/p&gt;

&lt;p&gt;I used the &lt;a href="https://github.com/lonekorean/wordpress-export-to-markdown" rel="noopener noreferrer"&gt;wordpress-export-to-markdown&lt;/a&gt; converter, which produced much cleaner output, but no comments.&lt;/p&gt;

&lt;p&gt;I also tried the below tools as well, but settled on the above:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/SchumacherFM/wordpress-to-hugo-exporter?tab=readme-ov-file" rel="noopener noreferrer"&gt;SchumacherFM/wordpress-to-hugo-exporter&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/palaniraja/blog2md" rel="noopener noreferrer"&gt;Blogger to Markdown&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/lonekorean/wordpress-export-to-markdown" rel="noopener noreferrer"&gt;wordpress-export-to-markdown&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Keep URLs Unchanged Link to heading
&lt;/h2&gt;

&lt;p&gt;Another crucial issue after transitioning to Hugo is ensuring that the previous URLs remain unchanged. On one hand, the new URLs of posts should stay consistent with those in WordPress. In my situation, I incorporated the following settings into the Hugo configuration.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;permalinks:
  page:
    posts: '/:year/:month/:slug/'
    projects: '/project/:slug/'
  section:
    posts: '/blog'
    projects: '/projects'

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is &lt;a href="https://gohugo.io/content-management/urls/" rel="noopener noreferrer"&gt;documented&lt;/a&gt; and can cover various scenarios.&lt;/p&gt;

&lt;h2&gt;
  
  
  Publish to webserver Link to heading
&lt;/h2&gt;

&lt;p&gt;Deploying the website was a breeze. Run &lt;code&gt;hugo server&lt;/code&gt; to generate the static content. This creates a &lt;code&gt;/public&lt;/code&gt; folder that you can compress into a ZIP and securely transfer to your web server via SFTP.&lt;/p&gt;

&lt;p&gt;I set up a GitHub Actions workflow based on this &lt;a href="https://zartman.xyz/blog/gh-static-deploy/" rel="noopener noreferrer"&gt;post&lt;/a&gt; to automate this process. This workflow streamlines site-building and synchronizes it with the web server using rsync.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Conquering Your System Design Interview: A Book Guide</title>
      <dc:creator>Denis Kisina</dc:creator>
      <pubDate>Mon, 03 Jun 2024 04:27:16 +0000</pubDate>
      <link>https://dev.to/deniskisina/conquering-your-system-design-interview-a-book-guide-59m3</link>
      <guid>https://dev.to/deniskisina/conquering-your-system-design-interview-a-book-guide-59m3</guid>
      <description>&lt;p&gt;System design interviews are nerve-wracking but essential to the software engineering interview process. These interviews assess your ability to design scalable, reliable, and maintainable software systems. But fear not! With the right study materials, you can confidently approach your next system design interview. This guide highlights various resources, from foundational texts to interview prep guides, to help you ace your interview.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Building Your Foundation&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Designing Data-Intensive Applications by Martin Kleppmann:&lt;/strong&gt;  This classic text explores data management challenges in large-scale systems. Kleppmann dives deep into data storage solutions, scalability considerations, and how to design data pipelines. While not strictly an interview prep guide, this book provides a strong foundation for understanding the core principles of system design.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Designing Distributed Systems by Brendan Burns:&lt;/strong&gt;  If you’re looking for a more theoretical approach, Designing Distributed Systems offers a comprehensive overview of distributed system concepts. This book covers consistency models, fault tolerance, and distributed transactions. Grasping these fundamental concepts will equip you to tackle various system design problems.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Sharpening Your Interview Skills&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;System Design Interview – An Insider’s Guide (Volume 1 &amp;amp; 2) by Alex Xu:&lt;/strong&gt; This two-volume set provides a comprehensive approach to system design interviewing. Author Alex Xu, a former Facebook engineer, shares practical advice on approaching common system design problems and presents detailed explanations for various systems, from photo-sharing applications to news feeds.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Grokking the System Design Interview:&lt;/strong&gt;  This popular online course offers a structured approach to preparing for system design interviews. It includes lectures, practice problems, and mock interviews to help you hone your problem-solving and communication skills.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Grokking Microservice Design Patterns&lt;/strong&gt;  and  &lt;strong&gt;Grokking the Advanced System Design Interview:&lt;/strong&gt;  If you’re looking to take your preparation a step further, consider these Grokking companion courses. These resources delve deeper into specific design patterns and advanced system design concepts.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;For Those Getting Hands-On&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Hands-On System Design: Learn System Design, Scaling Applications, Software Development Design Patterns with Real Use-Cases by Harsh Kumar Ramchandani:&lt;/strong&gt;  This resource offers a practical approach to system design, focusing on real-world use cases. Through this book, you’ll gain experience designing systems for common applications like social media platforms and e-commerce sites.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Beyond the Technical&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;The Design of the Design: Essays of a Computer Scientist by Frederick P. Brooks Jr.:&lt;/strong&gt;  This thought-provoking book explores the art and philosophy of system design from a broader perspective. While not directly focused on technical details, Brooks’ insights on design principles and decision-making can be invaluable for any aspiring system designer.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;For the Truly Enthusiastic&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Synchronization Algorithms and Concurrent Programming by Gadi Taubenfield:&lt;/strong&gt;  This text dives into the complexities of concurrent programming, a critical skill for designing scalable and reliable distributed systems. This book is a deep dive and is recommended for those with a strong foundation in programming concepts.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This list provides a starting point for your system design interview preparation journey. The best resources for you will depend on your current knowledge base and learning style. So, grab a book, explore some online courses, and get ready to impress your interviewers with your system design prowess!&lt;/p&gt;

</description>
      <category>article</category>
      <category>systemdesign</category>
    </item>
  </channel>
</rss>
