<?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: Shreyas Taware</title>
    <description>The latest articles on DEV Community by Shreyas Taware (@shreyastaware).</description>
    <link>https://dev.to/shreyastaware</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%2F495994%2F9ef0178b-5e97-4cea-9b05-ce91e5ff80c1.jpg</url>
      <title>DEV Community: Shreyas Taware</title>
      <link>https://dev.to/shreyastaware</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/shreyastaware"/>
    <language>en</language>
    <item>
      <title>AI Engineering Explained</title>
      <dc:creator>Shreyas Taware</dc:creator>
      <pubDate>Tue, 13 Jan 2026 15:30:00 +0000</pubDate>
      <link>https://dev.to/shreyastaware/ai-engineering-explained-3036</link>
      <guid>https://dev.to/shreyastaware/ai-engineering-explained-3036</guid>
      <description>&lt;p&gt;"AI Engineer" is a new role that has emerged because of Artificial Intelligence platforms like ChatGPT, Gemini, and Claude.&lt;/p&gt;

&lt;p&gt;Therefore, it is essential that developers now master not only their core skills but also this emerging field called &lt;strong&gt;AI Engineering&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The aim of this blog is to cover essential basics of AI Engineering so that beginners have a guiding path to dive deeper into this field.&lt;/p&gt;

&lt;h3&gt;
  
  
  Conventional AI vs Generative AI
&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%2Fziql958r22lgy1zyzw3h.jpeg" 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%2Fziql958r22lgy1zyzw3h.jpeg" alt="Conventional AI vs Generative AI Infographic" width="800" height="436"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conventional AI&lt;/strong&gt; is mostly about making decisions or predictions from data.&lt;/p&gt;

&lt;p&gt;You give it an input, and it gives you a very specific kind of output — a label, a number, or a yes/no answer.&lt;/p&gt;

&lt;p&gt;For example, it might tell you whether an email is spam, whether a loan should be approved, or what the price of a house might be. It’s intelligent, but it’s not creative. It’s essentially learning patterns so it can make better decisions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Generative AI&lt;/strong&gt; creates entirely new data based on learned patterns. So instead of just predicting an outcome, it actually creates new content.&lt;/p&gt;

&lt;p&gt;You give it a prompt, and it generates something that didn’t exist before — like text, images, code, or even audio.&lt;/p&gt;

&lt;p&gt;Models like ChatGPT don’t just choose from predefined options; they generate responses word by word based on the patterns they’ve learned from massive amounts of data.&lt;/p&gt;

&lt;p&gt;Another important difference is &lt;strong&gt;determinism&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Traditional AI&lt;/strong&gt; systems usually give you the same output for the same input. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Generative AI&lt;/strong&gt; doesn’t — two prompts that look identical can still result in slightly different outputs, because the model is sampling from probabilities rather than following fixed rules.&lt;/p&gt;

&lt;h3&gt;
  
  
  Keyword Search vs Semantic Search vs AI Search
&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%2F2cdxt1iwu5h1ndq0xkwq.jpeg" 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%2F2cdxt1iwu5h1ndq0xkwq.jpeg" alt="Keyword Search vs Semantic Search vs AI Search InfoGraphic" width="800" height="436"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Keyword Search&lt;/strong&gt; uses direct text matching, finding pages with the exact keywords you type.&lt;/p&gt;

&lt;p&gt;It is best for exact lookups, technical searches, or simple queries (e.g., "weather")&lt;/p&gt;

&lt;p&gt;Example: &lt;strong&gt;Twitter Search&lt;/strong&gt; (as of 2026) still uses traditional Keyword Search&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Semantic Search&lt;/strong&gt; understands the meaning, context, and intent behind your query (e.g., "Apple stock price" means the company, not the fruit). &lt;/p&gt;

&lt;p&gt;It uses AI, Natural Language Processing (NLP), and vector embeddings to grasp concepts and relationships.&lt;/p&gt;

&lt;p&gt;Example: &lt;strong&gt;Google Search Engine&lt;/strong&gt; uses Semantic Search at the core, although it is gearing towards AI Search.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI Search&lt;/strong&gt; interprets complex natural language, provides direct answers, and learns from interactions, often incorporating semantic understanding as its core.&lt;/p&gt;

&lt;p&gt;It delivers conversational, context-aware, and personalized results, often generating direct answers.&lt;/p&gt;

&lt;p&gt;It builds upon semantic search using advanced AI models (LLMs) and techniques like Retrieval-Augmented Generation (RAG).&lt;/p&gt;

&lt;p&gt;Example: &lt;strong&gt;OpenAI ChatGPT&lt;/strong&gt;, &lt;strong&gt;Google Gemini&lt;/strong&gt;, &lt;strong&gt;Anthropic Claude&lt;/strong&gt;, &lt;strong&gt;xAI Grok&lt;/strong&gt; are a few of the notable ones. &lt;/p&gt;

&lt;h3&gt;
  
  
  Context vs Memory
&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%2Fy9wnw1h7qs92gau00rtg.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%2Fy9wnw1h7qs92gau00rtg.png" alt="Context vs Memory Infographic" width="800" height="436"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Context&lt;/strong&gt; is the immediate, temporary information within a session that an AI uses for real-time understanding, while&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Memory&lt;/strong&gt; is the broader, persistent system (like databases or user profiles) that stores long-term knowledge, past interactions, and facts, allowing for continuity and personalized actions beyond a single session, with context often being dynamically retrieved from memory to enrich the current interaction&lt;/p&gt;

&lt;h3&gt;
  
  
  LLM vs AI Agent
&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%2Fx8d4lf1y0sgjksft8ysx.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%2Fx8d4lf1y0sgjksft8ysx.png" alt="LLM vs AI Agent Infographic" width="800" height="436"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;An &lt;strong&gt;LLM&lt;/strong&gt; (Large Language Model) is the "brain" that understands and generates text, while &lt;/p&gt;

&lt;p&gt;an &lt;strong&gt;AI Agent&lt;/strong&gt; is a system that uses an LLM as its core to take action, plan, use tools (APIs, code), and complete multi-step tasks autonomously, acting like an orchestrator with memory and decision-making loops, rather than just answering prompts. &lt;/p&gt;

&lt;p&gt;Think of an LLM as a smart assistant who can write a recipe (text output), and &lt;/p&gt;

&lt;p&gt;an Agent as a chef who reads the recipe, uses kitchen tools (APIs, software), and actually cooks the meal (completed task). &lt;/p&gt;

&lt;h3&gt;
  
  
  Vector Database
&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%2Fq05egvxa9tvl4ieww7fl.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%2Fq05egvxa9tvl4ieww7fl.png" alt="Vector Database Examples" width="800" height="476"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A &lt;u&gt;vector database&lt;/u&gt; stores and manages data as vector embeddings, which are numerical representations of unstructured data like text, images, and audio.&lt;/p&gt;

&lt;p&gt;They are different from traditional databases in that&lt;/p&gt;

&lt;p&gt;A &lt;u&gt;Traditional Database (SQL/ NoSQL)&lt;/u&gt; is a system designed for the storage and retrieval of scalar data (text, numbers, booleans), optimized for &lt;strong&gt;deterministic&lt;/strong&gt; and &lt;strong&gt;exact-match queries&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;u&gt;Vector Databases&lt;/u&gt; are engineered for &lt;strong&gt;probabilistic retrieval&lt;/strong&gt; in high-dimensional vector space. They store unstructured data as dense vector embeddings generated by deep learning models (e.g., Transformers).&lt;/p&gt;

&lt;p&gt;Vector databases store and search high-dimensional data (like text, images, audio) using unstructured embeddings (vectors/arrays of floats).&lt;/p&gt;

&lt;p&gt;They are a critical component for modern AI applications, powering tools like recommendation engines, semantic search, and large language models (LLMs). &lt;/p&gt;

&lt;p&gt;Example Vector DBs include &lt;strong&gt;Pinecone, Chroma, Weaviate, Qdrant, pgvector&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  How it works
&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%2Fb1mrrxjqzkd5kihjcob5.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%2Fb1mrrxjqzkd5kihjcob5.png" alt="Vector Database Infographic" width="800" height="436"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Vector Embeddings:&lt;/strong&gt; Machine learning models convert data into high-dimensional vectors (arrays of numbers) where each dimension represents a feature of the data. For example, an image of a car could be represented by vectors for its color, number of doors, and size.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Indexing:&lt;/strong&gt; The vectors are organized into a special index within the database. This index groups similar vectors together, so items with similar characteristics are stored close to each other.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Similarity Search:&lt;/strong&gt; When a query is made (e.g., a user searches for a car image), the database converts the query (data received in the form of text, image, etc) into a numerical vector embedding. &lt;/p&gt;

&lt;p&gt;The index of that vector is used to quickly find the "nearest neighbors" – the most similar vectors to the query vector.&lt;/p&gt;

&lt;p&gt;The items with the closest vector embeddings are found out in a high-dimensional space using distance metrics (like &lt;strong&gt;Cosine Similarity&lt;/strong&gt; or &lt;strong&gt;Euclidean distance&lt;/strong&gt;) to identify similar items.&lt;/p&gt;

&lt;p&gt;To do this matching efficiently, libraries like &lt;a href="https://ai.meta.com/tools/faiss/" rel="noopener noreferrer"&gt;FAISS&lt;/a&gt; are used which allow efficient similarity search and clustering of dense vectors. &lt;/p&gt;

&lt;p&gt;Example Algorithms include &lt;strong&gt;k-Nearest Neighbors (k-NN)&lt;/strong&gt; and more efficient &lt;strong&gt;Approximate Nearest Neighbor (ANN)&lt;/strong&gt; methods like &lt;strong&gt;Hierarchical Navigable Small World (HNSW)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Result:&lt;/strong&gt; The database returns the most relevant results based on this similarity, rather than just matching keywords. &lt;/p&gt;

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

&lt;p&gt;RAG stands for Retrieval Augmented Generation. There are four steps in a RAG:&lt;/p&gt;

&lt;p&gt;1) &lt;strong&gt;Indexing&lt;/strong&gt;: This foundational step involves preparing the external knowledge base for efficient search and retrieval&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Data Sourcing&lt;/em&gt;&lt;/strong&gt;: Raw data (e.g., documents, web pages, database records) is crawled and collected from various data sources and made to ready for data ingestion.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Chunking&lt;/em&gt;&lt;/strong&gt;: The data collected is then ingested, parsed, and broken down into smaller, manageable pieces called "chunks". &lt;/p&gt;

&lt;p&gt;This process is called &lt;u&gt;Chunking&lt;/u&gt;.&lt;/p&gt;

&lt;p&gt;This process is crucial because LLMs have limits on how much text they can process at once (context window), and smaller chunks allow for more precise information retrieval.&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%2F2tsdvdag45ksu9y3t7ky.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%2F2tsdvdag45ksu9y3t7ky.png" alt="Indexing Infographic" width="800" height="436"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;Embedding Generation&lt;/strong&gt;&lt;/em&gt;: Each text chunk is converted into a numerical vectors called a vector embedding using an embedding model. These embeddings capture the semantic meaning of the text.&lt;/p&gt;

&lt;p&gt;Some example &lt;strong&gt;Embedding Models&lt;/strong&gt; are &lt;strong&gt;Word2Vec&lt;/strong&gt; for words, &lt;strong&gt;BERT&lt;/strong&gt; for context-aware text, and &lt;strong&gt;Sentence-BERT (SBERT)&lt;/strong&gt; for sentence similarity.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;Vector Storage&lt;/strong&gt;&lt;/em&gt;: The resulting vector embeddings are stored in a specialized database, known as a vector database (or vector store), which is optimized for rapid similarity searches. &lt;/p&gt;

&lt;p&gt;2) &lt;strong&gt;Retrieval&lt;/strong&gt;: When a user submits a query, the RAG system searches the prepared knowledge base for relevant information. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Query Encoding&lt;/em&gt;&lt;/strong&gt;: The user's input query is also converted into a vector embedding using the same embedding model used during indexing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Similarity Search&lt;/em&gt;&lt;/strong&gt;: The query's vector is used to perform a similarity search within the vector database to find the top "k" most semantically similar data chunks. This process efficiently identifies the most pertinent information from the external source. &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%2Ftvksjnaftjnruz9wwp1h.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%2Ftvksjnaftjnruz9wwp1h.png" alt="Retrieval Augmented Generation Infographic" width="800" height="436"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;3) &lt;strong&gt;Augmentation&lt;/strong&gt;: The retrieved chunks of information are then used to create a more comprehensive prompt for the LLM. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Contextual Fusion&lt;/em&gt;&lt;/strong&gt;: The system takes the original user query and the retrieved documents and combines them into a single, structured prompt.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Prompt Engineering&lt;/em&gt;&lt;/strong&gt;: The prompt is engineered to provide clear instructions to the LLM, effectively telling it to use the provided context to answer the question. &lt;/p&gt;

&lt;p&gt;For example, the prompt might be structured as: "Context: [Retrieved Documents]. User Question: [Original Query]. Please provide an answer based solely on the context provided." &lt;/p&gt;

&lt;p&gt;4) &lt;strong&gt;Generation&lt;/strong&gt;: In the final step, the augmented prompt is sent to the Large Language Model to generate the final output. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;LLM Processing&lt;/em&gt;&lt;/strong&gt;: The LLM uses its inherent knowledge combined with the specific, relevant context provided in the augmented prompt to formulate an accurate and grounded response.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Response Delivery&lt;/em&gt;&lt;/strong&gt;: The system returns the generated, factually accurate, and context-aware answer to the user. This process helps mitigate common issues with standard LLMs like generating incorrect information or "hallucinations". &lt;/p&gt;

&lt;h3&gt;
  
  
  What is an Agentic Workflow?
&lt;/h3&gt;

&lt;p&gt;An &lt;u&gt;agentic workflow&lt;/u&gt; is a dynamic, AI-driven process where autonomous agents plan, decide, and execute complex, multi-step tasks with minimal human intervention, adapting in real-time to achieve a goal.&lt;/p&gt;

&lt;p&gt;Unlike static workflows, they use AI's reasoning and tool-use capabilities to break down problems, select actions, and self-correct, enabling greater autonomy and efficiency in automated processes, from IT support to customer service&lt;/p&gt;

&lt;h3&gt;
  
  
  Langchain vs LangGraph vs LangSmith
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;LangChain&lt;/strong&gt;: The libraries (code) to build the app.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;LangGraph&lt;/strong&gt;: The architecture (logic) to control complex agents and loops.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;LangSmith&lt;/strong&gt;: The platform (dashboard) to test, debug, and monitor the app.&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%2Fpo5uuk0huum7kilfb45n.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%2Fpo5uuk0huum7kilfb45n.png" alt="Langchain versus LangGraph versus LangSmith Infographic" width="800" height="436"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;LangChain&lt;/strong&gt; is a framework that simplifies building LLM applications by providing abstractions. It connects LLMs (like GPT-4) to other data sources and tools.&lt;/p&gt;

&lt;p&gt;&lt;u&gt;Core Concept&lt;/u&gt;: &lt;strong&gt;"Chains" (DAGs - Directed Acyclic Graphs)&lt;/strong&gt;. It is excellent for linear workflows where step A leads to step B, which leads to step C.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;LangGraph&lt;/strong&gt; is a library built on top of LangChain specifically for building agents and stateful applications.&lt;/p&gt;

&lt;p&gt;&lt;u&gt;Core Concept&lt;/u&gt;: &lt;strong&gt;"Cyclic Graphs."&lt;/strong&gt; Unlike LangChain's linear chains, LangGraph allows loops. This enables an agent to try a task, fail, critique its own work, and try again (a loop) before finishing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;LangSmith&lt;/strong&gt; is a developer platform (cloud service) for observability, testing, and fine-tuning. It is not a code library you import to build logic; it is a dashboard you log into.&lt;/p&gt;

&lt;p&gt;&lt;u&gt;Core Concept&lt;/u&gt;: &lt;strong&gt;"Tracing and Evaluation."&lt;/strong&gt; LLMs are "black boxes"—it is hard to know why they failed. LangSmith records every step the AI took so you can inspect it.&lt;/p&gt;




&lt;p&gt;And that is it, these are all the concepts required for you to get started in the field of AI Engineering.&lt;/p&gt;

&lt;p&gt;To explore and take your knowledge further, feel free to explore libraries like LangGraph/ Langchain, FAISS, and Vector Databases like Pinecone, Weaviate.&lt;/p&gt;

&lt;p&gt;If you came till the end, thank you so much. Feel free to let me know your thoughts in the comments, or visit my website to know more: &lt;a href="https://shreyastaware.me/" rel="noopener noreferrer"&gt;shreyastaware.me&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Until next time,&lt;br&gt;
Shreyas&lt;/p&gt;

</description>
      <category>programming</category>
      <category>ai</category>
      <category>software</category>
      <category>interview</category>
    </item>
    <item>
      <title>Everything about Docker – Basics, MCPs, and more...</title>
      <dc:creator>Shreyas Taware</dc:creator>
      <pubDate>Fri, 03 Oct 2025 15:42:18 +0000</pubDate>
      <link>https://dev.to/shreyastaware/everything-about-docker-560i</link>
      <guid>https://dev.to/shreyastaware/everything-about-docker-560i</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%2Fguoqq4ioyxmethd4lrra.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%2Fguoqq4ioyxmethd4lrra.png" alt="An image which has Docker logo, along with the text " width="659" height="440"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you are new to Docker or to Docker's newly released agentic features, this is a guide to help you understand it in the most jargon-free language as possible.&lt;/p&gt;

&lt;p&gt;So, what is Docker?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Docker&lt;/strong&gt; is a platform for developing, shipping, and running applications.&lt;/p&gt;

&lt;p&gt;There are three main concepts in Docker:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Container&lt;/strong&gt; - Consider it as a smaller version of a computer but specific to the hardware it was created on. If you know what a Virtual Machine or VM is, a Container is just like that except its lightweight and shares resources with the computer while keeping the processes separate.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Image&lt;/strong&gt; - It is a set of instructions that when run create a container. You store those instructions in a file called as "Dockerfile".&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Registry&lt;/strong&gt; - It is a location for storing and sharing container images.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Examples include &lt;a href="https://hub.docker.com" rel="noopener noreferrer"&gt;Docker Hub&lt;/a&gt;, Amazon &lt;a href="https://aws.amazon.com/ecr/" rel="noopener noreferrer"&gt;ECR&lt;/a&gt;, Azure &lt;a href="https://azure.microsoft.com/en-in/products/container-registry" rel="noopener noreferrer"&gt;ACR&lt;/a&gt;, Google's &lt;a href="https://cloud.google.com/artifact-registry" rel="noopener noreferrer"&gt;GCR&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can also create your own registry locally or shared it within a specific network and thus keep it privy to only that network.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Important Concept Alert&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Whenever you create a Docker Container and run it, it serves a specific purpose: it might run a database, or keep a backend server running, or run a cron job.&lt;/p&gt;

&lt;p&gt;But let's say we create our database in one container, and our backend server is in another.&lt;/p&gt;

&lt;p&gt;Then we'll have to manually figure out the port connections from the database container to the backend one, thus adding more work and slowing down our deployment timelines.&lt;/p&gt;

&lt;p&gt;This is when Docker Compose comes in.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Docker Compose&lt;/strong&gt;: It is a command using which you can define multiple docker containers and store their configurations in a single YAML file.&lt;/p&gt;

&lt;p&gt;This way all the containers get defined individually while "docker compose" takes care of the headache of connecting them.&lt;/p&gt;

&lt;p&gt;–––&lt;/p&gt;

&lt;p&gt;Before moving on to advanced concepts in Docker, here are few pre-requisites:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Model Context Protocol (MCP)&lt;/strong&gt;: It is a standardized open-source protocol for connecting AI applications to external systems and data sources.&lt;/p&gt;

&lt;p&gt;Examples - ChatGPT can access your Notion Chats using Notion MCP.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ask Gordon&lt;/strong&gt; - It is the newly released AI-powered assistant specifically for Docker Desktop &amp;amp; Docker CLI.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Docker Model Runner (DMR)&lt;/strong&gt;: It lets you run, manage, and deploy AI models using Docker.&lt;/p&gt;

&lt;p&gt;–––&lt;/p&gt;

&lt;p&gt;Agentic workflows are created when AI tools are connected to disparate tools - and those tools require MCPs to orchestrate the agents's tasks.&lt;/p&gt;

&lt;p&gt;To orchestrate MCPs, we need to understand about the MCP architecture.&lt;/p&gt;

&lt;p&gt;MCP follows a client-server architecture that enables a standardized communication between AI applications and external tools.&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%2Fvr46j2ecfub47jvqisak.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%2Fvr46j2ecfub47jvqisak.png" alt="MCP Client connecting MCP Server and in-turn to final data source (Github in this case)" width="578" height="274"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;MCP Servers&lt;/strong&gt; - These are specialized programs that provide specific tools and capabilities to AI models through the Model Context Protocol.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;MCP Clients&lt;/strong&gt; - These act as the bridge between AI applications and MCP servers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;MCP Gateway&lt;/strong&gt; - It is Docker's open-source solution which connects MCP servers to MCP clients.&lt;/p&gt;

&lt;p&gt;We can connect one MCP client with multiple MCP servers, and conversly one MCP server with multiple MCP clients.&lt;/p&gt;

&lt;p&gt;Thus, MCP clients and MCP servers have a many-to-many relationship, and MCP Gateway is what connects these two. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;MCP Catalog&lt;/strong&gt; - It is what hosts MCP servers.&lt;/p&gt;

&lt;p&gt;MCP Clients connect through MCP Gateway to access the cataloged servers.&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%2Fcnnafzla8d8eqr5vy9b9.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%2Fcnnafzla8d8eqr5vy9b9.png" alt="An image depicting how IDEs can connect to MCP Servers and how MCP servers are connected using the MCP catalog" width="594" height="407"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;MCP Toolkit&lt;/strong&gt; - It is a gateway that lets you set up, manage, and run containerized MCP servers and connect them to AI agents.&lt;/p&gt;

&lt;p&gt;Depending on the MCP server, the tools it provides might run within the same container as the server or in dedicated containers:&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%2Fexubtmrtpw652d522tep.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%2Fexubtmrtpw652d522tep.png" alt="Single Container" width="548" height="228"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Below you can see, multiple servers being spawned depending upon the operation:&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcplbotnt6i7t1tk8132i.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%2Fcplbotnt6i7t1tk8132i.png" alt="Separate Containers" width="672" height="307"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Docker Hub MCP server&lt;/strong&gt;: It is a MCP server that interfaces with Docker Hub APIs to make rich image metadata accessible to LLMs thus enabling intelligent parsing and discovery of your Docker containers.&lt;/p&gt;

&lt;p&gt;And that is it, these are all the the concepts of Docker you needed to know to get started to tinkering with MCPs using your favourite code editors and AI tools.&lt;/p&gt;

&lt;p&gt;So, what are you waiting for?&lt;/p&gt;

&lt;p&gt;–––&lt;/p&gt;

&lt;p&gt;If you came till the end, thank you! This is just my second blog on  the Dev platform!&lt;/p&gt;

&lt;p&gt;If you liked this blog, please let me know in the comments!&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%2Fivf72wfrgyemjnzlh2yb.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%2Fivf72wfrgyemjnzlh2yb.png" alt="Meme" width="500" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Until next time,&lt;br&gt;
Shreyas&lt;/p&gt;

</description>
      <category>docker</category>
      <category>mcp</category>
    </item>
    <item>
      <title>14 CS fundamental questions to prepare for your next interview &amp; not sound like a vibe-coder!</title>
      <dc:creator>Shreyas Taware</dc:creator>
      <pubDate>Thu, 04 Sep 2025 16:36:45 +0000</pubDate>
      <link>https://dev.to/shreyastaware/14-cs-fundamental-questions-to-prepare-for-your-next-interview-not-sound-like-a-vibe-coder-47ho</link>
      <guid>https://dev.to/shreyastaware/14-cs-fundamental-questions-to-prepare-for-your-next-interview-not-sound-like-a-vibe-coder-47ho</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%2Fug1d6sw8vmdrv4a6p9hm.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%2Fug1d6sw8vmdrv4a6p9hm.png" alt="On the left, a broke vibe-coder is show. On the right, a successful CS engineer working at a big silicon valley firm is shown." width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Optimizing Program Performance
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Is a switch statement always more efficient than a sequence of if-else statements?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;How much overhead is incurred by a function call?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Is a while loop more efficient than a for loop?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Are pointer references more efficient than array indexes?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Why does our loop run so much faster if we sum into a local variable instead of an argument that is passed by reference?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;How can a function run faster when we simply rearrange the parentheses in an arithmetic expression?&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Understanding link-time errors
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;What does it mean when the linker reports that it cannot resolve a reference?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;What is the difference between a static variable and a global variable?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;What happens if you define two global variables in different C files with the same name?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;What is the difference between a static library and a dynamic library?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Why does it matter what order we list libraries on the command line?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;And scariest of all, why do some linker-related errors not appear until run time?&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Avoiding security holes
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;What are &lt;em&gt;buffer overflow vulnerabilities&lt;/em&gt;?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;What is the program stack?&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>programming</category>
      <category>computerscience</category>
      <category>c</category>
    </item>
  </channel>
</rss>
