<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Learning on Daffa Abhipraya</title><link>https://blog.abhipraya.dev/tags/learning/</link><description>Recent content in Learning on Daffa Abhipraya</description><generator>Hugo</generator><language>en-us</language><copyright>© Daffa Abhipraya</copyright><lastBuildDate>Thu, 09 Apr 2026 00:00:00 +0700</lastBuildDate><atom:link href="https://blog.abhipraya.dev/tags/learning/index.xml" rel="self" type="application/rss+xml"/><item><title>PPL: New Learnings Applied to SIRA [Sprint 2, Week 2]</title><link>https://blog.abhipraya.dev/ppl/part-c/s2w2-aptitude/</link><pubDate>Thu, 09 Apr 2026 00:00:00 +0700</pubDate><guid>https://blog.abhipraya.dev/ppl/part-c/s2w2-aptitude/</guid><description>&lt;h2 id="overview">
 &lt;a class="anchor" href="#overview" data-anchor="overview" aria-hidden="true">#&lt;/a>
 Overview
&lt;/h2>
&lt;p>Sprint 2 Week 2 (April 3 to 9) was dominated by a mutation testing sprint: setting up mutmut and Stryker in CI, building integration test infrastructure from scratch, and writing mutation-killing tests. The week also delivered three application features and a meta-level improvement to AI workflow. Each area required learning at least one technology or concept not covered in standard Fasilkom coursework.&lt;/p>
&lt;hr>
&lt;h2 id="1-mutation-testing-with-mutmut-python">
 &lt;a class="anchor" href="#1-mutation-testing-with-mutmut-python" data-anchor="1-mutation-testing-with-mutmut-python" aria-hidden="true">#&lt;/a>
 1. Mutation Testing with mutmut (Python)
&lt;/h2>
&lt;p>Mutation testing is a technique where a tool injects small faults (&amp;ldquo;mutants&amp;rdquo;) into your source code (flipping operators, changing constants, removing lines) and checks whether your test suite catches each fault. If a test fails, the mutant is &amp;ldquo;killed.&amp;rdquo; If no test fails, the mutant &amp;ldquo;survives,&amp;rdquo; meaning your tests have a blind spot.&lt;/p></description></item><item><title>PPL: New Learnings Applied to SIRA [Sprint 2, Week 1]</title><link>https://blog.abhipraya.dev/ppl/part-c/s2w1-aptitude/</link><pubDate>Mon, 30 Mar 2026 00:00:00 +0700</pubDate><guid>https://blog.abhipraya.dev/ppl/part-c/s2w1-aptitude/</guid><description>&lt;h2 id="overview">
 &lt;a class="anchor" href="#overview" data-anchor="overview" aria-hidden="true">#&lt;/a>
 Overview
&lt;/h2>
&lt;p>Sprint 2 Week 1 (Mar 24 to 30) combined feature development with infrastructure hardening. The week produced two full-stack features (multi-device session management and email integration), a developer tooling improvement (Superset workspace isolation), and iterative CI quality gate improvements. Each required learning at least one technology from scratch.&lt;/p>
&lt;hr>
&lt;h2 id="1-multi-device-session-management">
 &lt;a class="anchor" href="#1-multi-device-session-management" data-anchor="1-multi-device-session-management" aria-hidden="true">#&lt;/a>
 1. Multi-Device Session Management
&lt;/h2>
&lt;p>SIRA needed per-device session tracking: users should see which devices are logged in, and admins should be able to revoke sessions remotely. This isn&amp;rsquo;t a standard Supabase Auth feature; it required a custom session layer on top of the existing JWT auth.&lt;/p></description></item><item><title>PPL: New Learnings Applied to SIRA [Sprint 1, Week 3]</title><link>https://blog.abhipraya.dev/ppl/part-c/s1w3-aptitude/</link><pubDate>Tue, 10 Mar 2026 00:00:00 +0700</pubDate><guid>https://blog.abhipraya.dev/ppl/part-c/s1w3-aptitude/</guid><description>&lt;h2 id="overview">
 &lt;a class="anchor" href="#overview" data-anchor="overview" aria-hidden="true">#&lt;/a>
 Overview
&lt;/h2>
&lt;p>Sprint 1 Week 3 (Mar 4 to 10) was infrastructure-heavy. The project needed production-grade tooling that goes well beyond standard coursework: reverse proxies, email alerting, migration safety nets, security scanning, structured logging, and AI-integrated code quality analysis. Each of these required learning a new technology from scratch and applying it directly to the project.&lt;/p>
&lt;hr>
&lt;h2 id="1-nginx-reverse-proxy-for-subdomain-routing">
 &lt;a class="anchor" href="#1-nginx-reverse-proxy-for-subdomain-routing" data-anchor="1-nginx-reverse-proxy-for-subdomain-routing" aria-hidden="true">#&lt;/a>
 1. Nginx Reverse Proxy for Subdomain Routing
&lt;/h2>
&lt;p>SIRA runs three services on a single Nashta VM, each needing its own subdomain:&lt;/p></description></item></channel></rss>