<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Latent Space]]></title><description><![CDATA[What goes on beneath the surface of software and AI.]]></description><link>https://chatquill.hashnode.dev</link><generator>RSS for Node</generator><lastBuildDate>Thu, 22 Oct 2026 04:00:57 GMT</lastBuildDate><atom:link href="https://chatquill.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[What Is Machine Learning? For Beginners]]></title><description><![CDATA[This article explains the basics of ML.]]></description><link>https://chatquill.hashnode.dev/what-is-machine-learning-for-beginners</link><guid isPermaLink="true">https://chatquill.hashnode.dev/what-is-machine-learning-for-beginners</guid><category><![CDATA[Machine Learning]]></category><category><![CDATA[Beginner Developers]]></category><dc:creator><![CDATA[Shakeel Mohun]]></dc:creator><pubDate>Mon, 27 Apr 2026 13:06:26 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/69eb91a5449c95062fd08e54/3bcdd4b5-ea9f-4ff2-bce7-294a19ddd68c.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<blockquote>
<p>You use machine learning dozens of times a day without realising it. This is what's actually happening under the hood — no equations, no jargon, just the real idea.</p>
</blockquote>
<hr />
<h2>Before We Start — A Promise</h2>
<p>This article contains:</p>
<ul>
<li><p>✅ Real explanations</p>
</li>
<li><p>✅ Everyday examples you already know</p>
</li>
<li><p>✅ The actual intuition behind how it works</p>
</li>
<li><p>❌ No Greek letters</p>
</li>
<li><p>❌ No matrices</p>
</li>
<li><p>❌ No prerequisites whatsoever</p>
</li>
</ul>
<p>If you've ever Googled "what is machine learning" and ended up more confused than when you started — this one is for you.</p>
<hr />
<h2>So What Actually Is Machine Learning?</h2>
<p>Here's the one-sentence version:</p>
<blockquote>
<p><strong>Machine learning is teaching a computer to find patterns in data, so it can make decisions without being explicitly told the rules.</strong></p>
</blockquote>
<p>That's it. Everything else is just detail.</p>
<p>Let's unpack that with something you do every single day.</p>
<hr />
<h2>The Email Spam Example</h2>
<p>Think about your email inbox. Somewhere in there is a spam folder. Emails from Nigerian princes, fake prize notifications, and suspicious links — they all get filtered out before you ever see them.</p>
<p>How does your email provider know what's spam?</p>
<p>Nobody sat down and wrote a list of rules like:</p>
<ul>
<li><p><em>"If the subject line contains the word 'FREE' in capital letters → spam"</em></p>
</li>
<li><p><em>"If the sender domain ends in .xyz → spam"</em></p>
</li>
<li><p><em>"If the email body has more than 3 exclamation marks → spam"</em></p>
</li>
</ul>
<p>Well... actually, early spam filters did exactly that. And spammers immediately learned to work around every single rule.</p>
<p>So engineers tried a different approach. Instead of writing the rules themselves, they said:</p>
<blockquote>
<p><em>"Here are 100,000 emails. These 50,000 are spam. These 50,000 are not. Figure out the pattern yourself."</em></p>
</blockquote>
<p>And the machine did. It found patterns humans never would have written down — subtle combinations of word choice, sending time, formatting quirks, link structures. Things too complex and numerous to code by hand.</p>
<p><strong>That process — showing a machine examples and letting it find the rules — is machine learning.</strong></p>
<hr />
<h2>The Three Words That Actually Matter</h2>
<p>When people talk about machine learning, three terms come up constantly. Here's what they actually mean in plain English:</p>
<h3>1. Training</h3>
<p>This is the learning phase. You give the machine a large set of examples — emails, photos, transactions, whatever — and it studies them to find patterns.</p>
<p>Think of it like showing a child thousands of pictures of cats and dogs and saying "this is a cat, this is a dog" over and over. Eventually they learn to tell the difference, even with a photo they've never seen.</p>
<h3>2. Model</h3>
<p>The "model" is just the result of training. It's the set of patterns the machine discovered, saved in a format it can use to make future decisions.</p>
<p>Think of it as the machine's memory of everything it learned.</p>
<h3>3. Prediction</h3>
<p>Once trained, the model looks at new data it's never seen before and makes a guess. A new email arrives — is it spam? A new photo — is it a cat or a dog? A customer adds something to their cart — will they complete the purchase?</p>
<p>That guess is called a prediction.</p>
<p><strong>Train → Model → Predict.</strong> That's the whole loop.</p>
<hr />
<h2>Three Types of Machine Learning (With Zero Math)</h2>
<p>There are three main flavours of machine learning. Here's how to think about each one:</p>
<h3>🏫 Supervised Learning — Learning With a Teacher</h3>
<p>You give the machine labelled examples. "This email is spam. This one isn't. This photo is a cat. This one is a dog."</p>
<p>The machine learns from the correct answers you provide, like a student studying with an answer key.</p>
<p><strong>Real examples you use every day:</strong></p>
<ul>
<li><p>Email spam filters</p>
</li>
<li><p>Face recognition on your phone</p>
</li>
<li><p>Credit card fraud detection</p>
</li>
<li><p>Autocorrect on your keyboard</p>
</li>
</ul>
<h3>🔍 Unsupervised Learning — Finding Hidden Groups</h3>
<p>You give the machine data, but no labels. No right or wrong answers. You just say: <em>"Find something interesting."</em></p>
<p>The machine groups similar things together on its own. It discovers structure you didn't know was there.</p>
<p><strong>Real examples:</strong></p>
<ul>
<li><p>Spotify grouping listeners by taste to power Discover Weekly</p>
</li>
<li><p>Your bank identifying unusual transaction clusters</p>
</li>
<li><p>Netflix grouping users with similar viewing habits</p>
</li>
<li><p>News apps clustering similar stories together</p>
</li>
</ul>
<h3>🎮 Reinforcement Learning — Learning by Trial and Error</h3>
<p>The machine tries something. If it goes well, it gets a reward. If it goes badly, it gets a penalty. Over time it figures out what works.</p>
<p>This is exactly how you learned to ride a bike. Nobody gave you a manual. You fell, adjusted, tried again, and eventually found the balance point.</p>
<p><strong>Real examples:</strong></p>
<ul>
<li><p>AlphaGo (the AI that beat the world's best Go player)</p>
</li>
<li><p>Self-driving car systems learning to navigate</p>
</li>
<li><p>AI that learns to play video games from scratch</p>
</li>
<li><p>Robots learning to walk</p>
</li>
</ul>
<hr />
<h2>The Spotify Example — Putting It All Together</h2>
<p>Let's walk through a real-world example from start to finish.</p>
<p>Every week, Spotify creates a personalised playlist for you called Discover Weekly. Songs you've never heard, but somehow always feel right. How?</p>
<p><strong>Step 1 — Data collection</strong> Spotify has data on hundreds of millions of users. Every song you've ever played, skipped, replayed, added to a playlist, or listened to at 2am.</p>
<p><strong>Step 2 — Finding patterns (unsupervised learning)</strong> It groups users who listen to similar things. You and thousands of people you've never met have suspiciously similar taste in music. Spotify finds that overlap.</p>
<p><strong>Step 3 — Making predictions (supervised learning)</strong> Based on what similar users loved that you haven't heard yet, Spotify predicts which songs you're likely to enjoy. It's essentially saying: <em>"People who like what you like, also loved these tracks."</em></p>
<p><strong>Step 4 — Feedback loop (reinforcement learning)</strong> You listen. You skip. You replay. You add to your playlist. Every action tells Spotify whether its prediction was right or wrong — and the model updates accordingly.</p>
<p>That's machine learning working in layers, in real time, at scale. And you never noticed the math.</p>
<hr />
<h2>What Machine Learning Is NOT</h2>
<p>A few myths worth clearing up:</p>
<p><strong>❌ "Machine learning means the computer is thinking"</strong> No. It's finding statistical patterns in data. Very sophisticated pattern matching — not consciousness, not understanding, not common sense.</p>
<p><strong>❌ "You need to be a mathematician to work with it"</strong> The researchers who build ML algorithms from scratch? Yes, they need serious math. But applying existing models to real problems? That's much more accessible than people think.</p>
<p><strong>❌ "More data always means better results"</strong> Bad data in, bad results out. A million rows of messy, inaccurate data will produce a worse model than ten thousand rows of clean, well-labelled data. Quality beats quantity.</p>
<p><strong>❌ "Machine learning can do anything"</strong> It's exceptional at finding patterns. It's terrible at reasoning, understanding context, and anything that requires genuine judgment. It's a powerful tool with very real limits.</p>
<hr />
<h2>Why Should You Care?</h2>
<p>Whether you're a developer, a business analyst, a marketer, a student, or someone who just uses a smartphone — machine learning is already making decisions that affect your life.</p>
<p>Which job listings you see. Which loan applications get approved. Which medical scans get flagged. Which content fills your feed.</p>
<p>Understanding what it is — and what it isn't — makes you a more informed person in a world where these systems are everywhere.</p>
<p>And if you're thinking about a career in tech, data science, or analytics? This is the foundation everything else is built on.</p>
<hr />
<h2>What's Next?</h2>
<p>If this clicked for you, here's a natural reading order to go deeper:</p>
<ol>
<li><p><strong>What Is a Dataset?</strong> — understanding the raw material ML runs on</p>
</li>
<li><p><strong>Your First Python Script</strong> — the language most ML is written in</p>
</li>
<li><p><strong>What Is a Neural Network?</strong> — the architecture behind modern AI</p>
</li>
<li><p><strong>Supervised vs Unsupervised Learning</strong> — a deeper dive into the two main types</p>
</li>
</ol>
<p>No math required for any of them. Just curiosity.</p>
<hr />
<h2>The One-Line Summary</h2>
<blockquote>
<p>Machine learning is showing a computer thousands of examples and letting it figure out the rules — so it can apply those rules to new situations it's never seen before.</p>
</blockquote>
<p>Everything else is just building on that idea.</p>
<hr />
<p><em>Mohun Shakeel Ahmad — Software Engineer at Spoon Consulting / SharinPix. MSc Data Science (Distinction), Sunway University. BSc Computer Science (First Class Honours), University of Mauritius. Writing about tech, data and software for humans.</em></p>
<p><a href="https://www.linkedin.com/in/shakeel-mohun-3b8378233"><em>Connect on LinkedIn</em></a></p>
]]></content:encoded></item><item><title><![CDATA[AI Code Review: Is It Ready to Replace Your Senior Dev?]]></title><description><![CDATA[I've been on both sides of the PR. Here's what four years of shipping code taught me about trusting machines with the review queue. Let me paint you a…]]></description><link>https://chatquill.hashnode.dev/ai-code-review-is-it-ready-to-replace-your-senior-dev</link><guid isPermaLink="true">https://chatquill.hashnode.dev/ai-code-review-is-it-ready-to-replace-your-senior-dev</guid><dc:creator><![CDATA[Shakeel Mohun]]></dc:creator><pubDate>Fri, 24 Apr 2026 16:01:52 GMT</pubDate><content:encoded><![CDATA[<blockquote>
<p>I've been on both sides of the PR. Here's what four years of shipping code taught me about trusting machines with the review queue.</p>
</blockquote>
<hr />
<h2>Quick Stats Before We Dive In</h2>
<table>
<thead>
<tr>
<th>Metric</th>
<th>AI Review</th>
</tr>
</thead>
<tbody><tr>
<td>🟢 Surface-level issues caught</td>
<td>~87%</td>
</tr>
<tr>
<td>🔴 Context-aware feedback</td>
<td>~23%</td>
</tr>
<tr>
<td>🔵 Availability</td>
<td>24/7, instant</td>
</tr>
</tbody></table>
<hr />
<h2>The Setup</h2>
<p>Let me paint you a familiar picture. It's Thursday afternoon. You've spent three days building a feature — Rails backend, TypeScript on the frontend, Redis for the queue. The PR is ready. You need a review before the Friday deploy window.</p>
<p>Your senior dev is in back-to-back meetings until EOD. So you do what we all do now — you paste the diff into an AI tool and ask it to take a look. And it comes back with fifteen comments in under ten seconds.</p>
<p>That's where the interesting question starts. <strong>How many of those fifteen comments can you actually trust?</strong></p>
<hr />
<h2>What AI Gets Genuinely Right</h2>
<p>I want to be fair here — in my day-to-day at SharinPix, AI-assisted review has caught real issues. Things I might have skimmed past at 5pm on a Friday.</p>
<p>Take this classic example:</p>
<pre><code class="language-ruby"># ❌ Before: what I wrote
def find_user_assets(user_id)
  Asset.where("user_id = #{user_id}")  # SQL injection waiting to happen
end

# ✅ After: AI flagged it immediately
def find_user_assets(user_id)
  Asset.where(user_id: user_id)
end
</code></pre>
<p>That's a legitimate, consequential catch. AI also reliably flags:</p>
<ul>
<li><p><strong>N+1 query patterns</strong> — especially in Rails with ActiveRecord associations</p>
</li>
<li><p><strong>Missing index hints</strong> on filtered columns</p>
</li>
<li><p><strong>Inconsistent error handling</strong> across similar methods</p>
</li>
<li><p><strong>Poorly named variables</strong> that obscure intent</p>
</li>
<li><p><strong>Dead code paths</strong> and unreachable conditions</p>
</li>
<li><p><strong>Style/formatting inconsistencies</strong> that a linter might miss</p>
</li>
</ul>
<p>The mechanical, pattern-based stuff — it's genuinely good at this now.</p>
<blockquote>
<p>💡 <strong>Honest benchmark:</strong> If your team's review culture is weak — comments like "LGTM 👍" without actually reading the code — then AI is already better than what you have. That's a sobering thing to sit with.</p>
</blockquote>
<hr />
<h2>Where It Falls Apart</h2>
<p>Here's where I've personally watched AI-assisted review go wrong — and I mean <em>consequentially</em> wrong, not just mildly unhelpful.</p>
<h3>⚠️ Failure Mode 1: No Domain Memory</h3>
<p>It has no idea that your "soft delete" convention means setting <code>archived_at</code>, not <code>deleted</code>. It'll suggest ActiveRecord's <code>destroy</code> and break three downstream jobs.</p>
<h3>⚠️ Failure Mode 2: Confidently Wrong</h3>
<p>It will suggest a pattern that works in isolation but completely ignores a constraint introduced two sprints ago. It doesn't know what it doesn't know — and it won't tell you that.</p>
<h3>⚠️ Failure Mode 3: No Architectural Taste</h3>
<p>It can tell you a method is too long. It cannot tell you whether this feature belongs in the service layer or the model. It cannot tell you whether you're solving the right problem in the first place.</p>
<h3>⚠️ Failure Mode 4: The Noise Problem</h3>
<p>15 comments on a 20-line PR creates friction. Junior developers especially lose the signal in the flood of AI suggestions, many of which are style preferences — not real problems. This is dangerous if taken at face value.</p>
<hr />
<blockquote>
<p><strong>A senior dev reviewing your PR isn't just checking syntax — they're asking "does this make the system better or worse in six months?" That question requires context AI simply doesn't have.</strong></p>
</blockquote>
<hr />
<h2>The Honest Capability Comparison</h2>
<table>
<thead>
<tr>
<th>Capability</th>
<th>AI Review</th>
<th>Senior Dev</th>
</tr>
</thead>
<tbody><tr>
<td>Syntax &amp; style issues</td>
<td>✅ Excellent</td>
<td>⚡ Depends on mood</td>
</tr>
<tr>
<td>Security vulnerabilities (known patterns)</td>
<td>✅ Strong</td>
<td>✅ Strong</td>
</tr>
<tr>
<td>Performance anti-patterns</td>
<td>🟡 Good for common cases</td>
<td>✅ Strong</td>
</tr>
<tr>
<td>Business logic correctness</td>
<td>❌ Weak</td>
<td>✅ Core strength</td>
</tr>
<tr>
<td>Architectural feedback</td>
<td>❌ Poor</td>
<td>✅ Core strength</td>
</tr>
<tr>
<td>Codebase-specific conventions</td>
<td>❌ No memory</td>
<td>✅ Institutional knowledge</td>
</tr>
<tr>
<td>Availability &amp; turnaround</td>
<td>✅ Instant, 24/7</td>
<td>❌ Bottleneck</td>
</tr>
<tr>
<td>Mentorship &amp; explanation</td>
<td>🟡 Decent surface</td>
<td>✅ Irreplaceable</td>
</tr>
</tbody></table>
<hr />
<h2>How I Actually Use It</h2>
<p>My workflow at SharinPix has evolved to treat AI review as a <strong>first-pass filter</strong>, not a final gate.</p>
<p>Here's the flow:</p>
<ol>
<li><p><strong>Write the code</strong>, open the PR as a draft</p>
</li>
<li><p><strong>Run the diff through an AI tool</strong> — work through the mechanical feedback myself</p>
</li>
<li><p><strong>Clean up the obvious issues</strong> before any human sees it</p>
</li>
<li><p><strong>Request human review</strong> — now the reviewer can focus on what actually needs judgment</p>
</li>
</ol>
<p>By the time it reaches a colleague, the noise is gone. That's the right mental model: <strong>AI raises the floor of what hits the review queue. It doesn't replace the ceiling of what a great engineer brings to it.</strong></p>
<h3>Practical tip for better AI reviews</h3>
<p>When prompting for a review, don't just paste the diff. Give it context:</p>
<pre><code class="language-plaintext">Context: Rails 7 app, soft deletes via archived_at column, 
background jobs use Sidekiq. This PR adds bulk upload 
via AWS S3 pre-signed URLs.

Review this for: security issues, performance, consistency 
with our patterns.

[diff here]
</code></pre>
<p>The less it has to guess, the more useful it becomes. Treat it like onboarding a contractor, not consulting an oracle.</p>
<hr />
<h2>The Verdict</h2>
<p>Is AI ready to replace your senior dev in code review?</p>
<p><strong>No.</strong> Not today, and probably not for a while — at least not for any codebase with meaningful complexity and accumulated context.</p>
<p>But here's the flip side: if your senior dev is the only person catching basic security issues, naming problems, and style inconsistencies — that's a process problem AI has already solved. Use it to free up your best engineers for the decisions that actually require them.</p>
<hr />
<h3>🏁 Final Verdict</h3>
<blockquote>
<p><strong>Not a replacement. A very fast junior who never sleeps.</strong></p>
<p>Use it to clean the noise. Keep your senior dev for the decisions that matter. That's the play in 2026.</p>
</blockquote>
<hr />
<h2>What's Your Take?</h2>
<p>Are you using AI tools in your review process? I'd love to hear what's working — and what's blown up in your face. Drop a comment below.</p>
<hr />
<p><em>Mohun Shakeel Ahmad — Software Engineer at SharinPix. MSc Data Science, Sunway University.</em></p>
<p><a href="https://www.linkedin.com/in/shakeel-mohun-3b8378233"><em>Connect on LinkedIn</em></a></p>
]]></content:encoded></item></channel></rss>