<?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: Sarques</title>
    <description>The latest articles on DEV Community by Sarques (@saarques).</description>
    <link>https://dev.to/saarques</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F389990%2F62fb6bbb-4f2c-4c4e-ab69-9d2eb752cac8.png</url>
      <title>DEV Community: Sarques</title>
      <link>https://dev.to/saarques</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/saarques"/>
    <language>en</language>
    <item>
      <title>I'm a backend engineer. Here's the order I'd learn AI engineering in (no math first)</title>
      <dc:creator>Sarques</dc:creator>
      <pubDate>Fri, 09 Oct 2026 18:31:09 +0000</pubDate>
      <link>https://dev.to/saarques/im-a-backend-engineer-heres-the-order-id-learn-ai-engineering-in-no-math-first-53ek</link>
      <guid>https://dev.to/saarques/im-a-backend-engineer-heres-the-order-id-learn-ai-engineering-in-no-math-first-53ek</guid>
      <description>&lt;p&gt;I spend my days on Java, Spring Boot and Kafka. When I started learning AI engineering, every resource I found had one of two problems: it opened with linear algebra, or it was a 40-hour video course I knew I'd never finish.&lt;/p&gt;

&lt;p&gt;What actually worked was learning things in the &lt;strong&gt;right order&lt;/strong&gt;, with each idea small enough to finish in one sitting. This is that order. Each step has a short explanation here, plus a link to a free 5-minute lesson if you want to go deeper.&lt;/p&gt;

&lt;p&gt;You don't need ML experience. If you can write a function and call an API, you're ready.&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 0: Know what the job actually is
&lt;/h2&gt;

&lt;p&gt;"AI engineer" usually doesn't mean training models. It means &lt;strong&gt;building products on top of models that already exist&lt;/strong&gt;: calling them, feeding them the right context, making their output reliable, and keeping them fast and cheap.&lt;/p&gt;

&lt;p&gt;That's mostly software engineering, which is good news if you already write backends.&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://sproutstack.dev/learn/ai-engineering/what-is-ai-engineering" rel="noopener noreferrer"&gt;What is AI Engineering?&lt;/a&gt; (7 min)&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 1: Understand what an LLM really does
&lt;/h2&gt;

&lt;p&gt;An LLM predicts the next token, one at a time, based on everything before it. That's it. Almost every "weird" behavior follows from this:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;It hallucinates&lt;/strong&gt; because it produces likely text, not checked facts.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;It doesn't know recent events&lt;/strong&gt; because its knowledge stops when its training data does.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;It can't count the r's in "strawberry"&lt;/strong&gt; because it never sees letters. It sees tokens.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That last one surprises people, so try it yourself: paste any sentence into this &lt;a href="https://sproutstack.dev/tools/tokenizer" rel="noopener noreferrer"&gt;tokenizer playground&lt;/a&gt; and watch how it gets chopped up.&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://sproutstack.dev/learn/ai-engineering/what-are-llms" rel="noopener noreferrer"&gt;What are LLMs?&lt;/a&gt; · &lt;a href="https://sproutstack.dev/learn/ai-engineering/tokenization" rel="noopener noreferrer"&gt;Tokenization&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 2: Make your first API call, then learn the knobs
&lt;/h2&gt;

&lt;p&gt;Before any framework, call a model directly and look at the raw response. Then learn the three parameters you'll touch every day:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Parameter&lt;/th&gt;
&lt;th&gt;What it does&lt;/th&gt;
&lt;th&gt;Rule of thumb&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;temperature&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;How adventurous each word choice is&lt;/td&gt;
&lt;td&gt;Low for facts and code, higher for brainstorming&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;max_tokens&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Hard cap on the answer's length&lt;/td&gt;
&lt;td&gt;Set it, or one bad prompt can cost you&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;top_p&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Limits choices to the most likely words&lt;/td&gt;
&lt;td&gt;Change this &lt;em&gt;or&lt;/em&gt; temperature, not both&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Seeing temperature beats reading about it. Drag the slider in the &lt;a href="https://sproutstack.dev/tools/temperature" rel="noopener noreferrer"&gt;temperature demo&lt;/a&gt; and ask the same question a few times.&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://sproutstack.dev/learn/ai-engineering/first-llm-call" rel="noopener noreferrer"&gt;Making Your First LLM API Call&lt;/a&gt; · &lt;a href="https://sproutstack.dev/learn/ai-engineering/llm-parameters" rel="noopener noreferrer"&gt;Understanding LLM Parameters&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 3: Make the output something your code can use
&lt;/h2&gt;

&lt;p&gt;Chat replies are for humans. Your backend needs &lt;strong&gt;JSON that matches a schema&lt;/strong&gt;, validated before you trust it. If you've used Pydantic or Jackson, this will feel familiar: define the shape, ask the model for it, and validate. Retry or fail loudly when it doesn't match.&lt;/p&gt;

&lt;p&gt;This one step turns an AI demo into an AI feature.&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://sproutstack.dev/learn/ai-engineering/structured-output" rel="noopener noreferrer"&gt;Structured Output from LLMs&lt;/a&gt; · &lt;a href="https://sproutstack.dev/learn/ai-engineering/anatomy-effective-prompt" rel="noopener noreferrer"&gt;Anatomy of an Effective Prompt&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 4: Embeddings, the idea everything else is built on
&lt;/h2&gt;

&lt;p&gt;An embedding turns text into a list of numbers: &lt;strong&gt;coordinates for meaning&lt;/strong&gt;. Texts that mean similar things land close together, even with no words in common.&lt;/p&gt;

&lt;p&gt;You can see the whole idea in a few lines of plain Python. These are toy 3-number vectors (real ones have hundreds of dimensions):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;math&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;cosine&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;dot&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;sum&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nf"&gt;zip&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;dot&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;math&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;sqrt&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;sum&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;math&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;sqrt&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;sum&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;y&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;)))&lt;/span&gt;

&lt;span class="c1"&gt;# Toy embeddings: imagine a model produced these
&lt;/span&gt;&lt;span class="n"&gt;reset_password&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mf"&gt;0.9&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;0.1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;0.0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="n"&gt;forgot_login&lt;/span&gt;   &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mf"&gt;0.8&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;0.2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;0.1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="n"&gt;pizza_recipe&lt;/span&gt;   &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mf"&gt;0.0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;0.1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;0.9&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;

&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;cosine&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;reset_password&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;forgot_login&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;  &lt;span class="c1"&gt;# ~0.98, same meaning
&lt;/span&gt;&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;cosine&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;reset_password&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;pizza_recipe&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;  &lt;span class="c1"&gt;# ~0.01, unrelated
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;"How do I reset my password?" and "I forgot my login" share no words, but a search over embeddings still matches them. A vector database is a store that does this comparison fast across millions of items.&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://sproutstack.dev/learn/ai-engineering/what-are-embeddings" rel="noopener noreferrer"&gt;What are Embeddings?&lt;/a&gt; · &lt;a href="https://sproutstack.dev/learn/ai-engineering/vector-databases" rel="noopener noreferrer"&gt;Vector Databases in 10 Minutes&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 5: RAG, which is just "look it up, then answer"
&lt;/h2&gt;

&lt;p&gt;Retrieval-Augmented Generation sounds fancy. It's two steps:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Retrieve:&lt;/strong&gt; find the chunks of your documents closest to the question, using embeddings.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Generate:&lt;/strong&gt; give those chunks to the model and tell it to answer &lt;em&gt;only&lt;/em&gt; from them.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That's how you get answers about your own data without fine-tuning anything. The hard parts are mostly boring engineering: how you split documents (chunking), and how you &lt;em&gt;measure&lt;/em&gt; whether answers are correct (evals). Skip evals and you're shipping vibes.&lt;/p&gt;

&lt;p&gt;See the whole flow animated in the &lt;a href="https://sproutstack.dev/tools/rag" rel="noopener noreferrer"&gt;RAG pipeline demo&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://sproutstack.dev/learn/ai-engineering/what-is-rag" rel="noopener noreferrer"&gt;What is RAG?&lt;/a&gt; · &lt;a href="https://sproutstack.dev/learn/ai-engineering/chunking-strategies" rel="noopener noreferrer"&gt;Chunking Strategies&lt;/a&gt; · &lt;a href="https://sproutstack.dev/learn/ai-engineering/evals-basics" rel="noopener noreferrer"&gt;Evals Basics&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 6: Tools and agents (only now)
&lt;/h2&gt;

&lt;p&gt;Agents are where everyone wants to start, and that's why so many agent projects fall apart. With steps 1–5 behind you, they're easy to reason about:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Tool calling:&lt;/strong&gt; the model doesn't run anything. It &lt;em&gt;asks&lt;/em&gt; your code to call a function with some arguments, your code runs it, and the result goes back to the model.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Agent:&lt;/strong&gt; that loop on repeat (plan → act → observe) until the task is done.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MCP:&lt;/strong&gt; a standard way to plug tools into models. Think of it as USB-C for AI tools.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The backend instincts you already have (timeouts, retries, least privilege, idempotency) are exactly what makes agents reliable.&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://sproutstack.dev/learn/ai-engineering/tool-calling" rel="noopener noreferrer"&gt;From Text Generation to Action&lt;/a&gt; · &lt;a href="https://sproutstack.dev/learn/ai-engineering/what-is-mcp" rel="noopener noreferrer"&gt;What is MCP?&lt;/a&gt; · &lt;a href="https://sproutstack.dev/learn/ai-engineering/what-are-ai-agents" rel="noopener noreferrer"&gt;What are AI Agents?&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 7: Ship it like a real system
&lt;/h2&gt;

&lt;p&gt;This is where backend engineers have an unfair advantage. Production AI is mostly:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Cost:&lt;/strong&gt; you pay per token, so caching and shorter prompts matter.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Latency:&lt;/strong&gt; streaming makes a 5-second answer feel instant.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Security:&lt;/strong&gt; prompt injection is the new SQL injection. Never let model output pick which tools it's allowed to use.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Observability:&lt;/strong&gt; trace every call, with its tokens and cost, or you'll never debug a chain.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👉 &lt;a href="https://sproutstack.dev/learn/ai-engineering/ai-costs" rel="noopener noreferrer"&gt;Understanding AI App Costs&lt;/a&gt; · &lt;a href="https://sproutstack.dev/learn/ai-engineering/prompt-injection-defense" rel="noopener noreferrer"&gt;Defending Against Prompt Injection&lt;/a&gt; · &lt;a href="https://sproutstack.dev/learn/ai-engineering/llm-observability" rel="noopener noreferrer"&gt;LLM Observability&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  The short version
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;What the job is&lt;/li&gt;
&lt;li&gt;How LLMs work (tokens!)&lt;/li&gt;
&lt;li&gt;API calls and parameters&lt;/li&gt;
&lt;li&gt;Structured output&lt;/li&gt;
&lt;li&gt;Embeddings&lt;/li&gt;
&lt;li&gt;RAG and evals&lt;/li&gt;
&lt;li&gt;Tools, MCP and agents&lt;/li&gt;
&lt;li&gt;Cost, latency, security, observability&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Notice what's missing from the start: calculus, training models from scratch, and choosing a framework. They can all wait, and most of them are optional for this job.&lt;/p&gt;




&lt;h2&gt;
  
  
  Where these lessons come from
&lt;/h2&gt;

&lt;p&gt;I wrote all of the linked lessons for &lt;strong&gt;&lt;a href="https://sproutstack.dev" rel="noopener noreferrer"&gt;SproutStack&lt;/a&gt;&lt;/strong&gt;, a free site I'm building on the side for people like me: engineers moving into AI, and anyone starting out in AI, ML, DSA or system design.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;105 lessons, 5–8 minutes each&lt;/li&gt;
&lt;li&gt;Quizzes that explain &lt;em&gt;why&lt;/em&gt; every answer is right or wrong&lt;/li&gt;
&lt;li&gt;Python that runs in your browser, with nothing to install&lt;/li&gt;
&lt;li&gt;No sign-up needed. Accounts are optional and only sync your progress.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The full AI path is laid out in order here: &lt;a href="https://sproutstack.dev/learn/ai-engineering/course-roadmap" rel="noopener noreferrer"&gt;AI Engineering roadmap&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;It's early, and I'd genuinely like to know: &lt;strong&gt;which step was hardest for you, or which one is missing?&lt;/strong&gt; Tell me in the comments. I read all of them, and I'll write up the most requested topic next.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>beginners</category>
      <category>machinelearning</category>
      <category>career</category>
    </item>
    <item>
      <title>Blood Cancer Diagnosis</title>
      <dc:creator>Sarques</dc:creator>
      <pubDate>Wed, 20 May 2020 06:43:12 +0000</pubDate>
      <link>https://dev.to/saarques/blood-cancer-diagnosis-4ob9</link>
      <guid>https://dev.to/saarques/blood-cancer-diagnosis-4ob9</guid>
      <description>&lt;h2&gt;
  
  
  My Final Project
&lt;/h2&gt;

&lt;p&gt;Cell classification via image processing has recently gained interest from the point of view of building computer assisted diagnostic tools for blood disorders such as leukemia. In order to arrive at conclusive decision on disease diagnosis and degree of progression, it is very important to identify malignant cells with high accuracy. Computer assisted tools can be very helpful in automating the process of cell segmentation and identification. Identification of maIignant cells vis-à-vis normal cells from the microscopic images is difficult because morphologically both cells types appear similar.  &lt;/p&gt;

&lt;p&gt;As a consequence, leukemia (blood cancer) is detected in advanced cancer stages via microscopic image analysis, not because of the ability to identify these under the microscope, but because of the medical domain knowledge, i.e., the cancer cells start growing in an unrestricted fashion and hence, they are present in much more larger numbers as compared to their numbers in a normal person. So, in this project, I was supposed to train a model which can diagnose the cancer cells in a very effective manner. I tried training various models on the basis of their architecture as our model must learn the most minor details from the data. Before training them, I tried a lot of hyper parameter tuning in order to get the best results. After using various network architectures like CNN, ResNet50, Capsnet, SeResNext, DenseNet, ResNext50, VGG19 while also using stacking. I found that SeResNext network architecture was doing really great in comparison to other architectures. The comparison between all these architectures can be found in the link provided. It got an accuracy of about 90% in predicting if a Blood Cell in cancerous or not.  &lt;/p&gt;

&lt;p&gt;After the model building, I created an Flask API of the same and then created a Docker image of it.  &lt;/p&gt;

&lt;h2&gt;
  
  
  Link to Code
&lt;/h2&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/saarques" rel="noopener noreferrer"&gt;
        saarques
      &lt;/a&gt; / &lt;a href="https://github.com/saarques/AI-Without-Borders---Projects" rel="noopener noreferrer"&gt;
        AI-Without-Borders---Projects
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      This repository contains my work towards the problems assigned to me by the AI Without Borders organisation.
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;Blood Cancer Diagnosis&lt;/h1&gt;

&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Aim&lt;/h2&gt;

&lt;/div&gt;
&lt;p&gt;Creating a state-of-the-art model for classification of leukemic B-lymphoblast cells from normal B-lymphoid precursors from blood smear microscopic images.&lt;/p&gt;
&lt;/div&gt;



&lt;/div&gt;
&lt;br&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/saarques/AI-Without-Borders---Projects" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;


&lt;h2&gt;
  
  
  How I built it (what's the stack? did I run into issues or discover something new along the way?)
&lt;/h2&gt;

&lt;p&gt;I built this project using Deep Learning(Keras, Tensorflow, Scipy, Scikit-learn, pandas, numpy), Flask and Docker. I got into many issues and resolved them with the help of peers and ofcourse Stack Overflow! :3  &lt;/p&gt;

&lt;h2&gt;
  
  
  Additional Thoughts / Feelings / Stories
&lt;/h2&gt;

&lt;p&gt;I hope that this project will be useful in the future of medical diagnosis of Blood Cancer.  &lt;/p&gt;

</description>
      <category>octograd2020</category>
    </item>
  </channel>
</rss>
