<?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: Aniket Raj</title>
    <description>The latest articles on DEV Community by Aniket Raj (@theaniketraj).</description>
    <link>https://dev.to/theaniketraj</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%2F1068692%2Fb208ee6a-3245-4ab1-8d9d-641a18373764.jpeg</url>
      <title>DEV Community: Aniket Raj</title>
      <link>https://dev.to/theaniketraj</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/theaniketraj"/>
    <language>en</language>
    <item>
      <title>The beginning</title>
      <dc:creator>Aniket Raj</dc:creator>
      <pubDate>Tue, 07 Apr 2026 14:49:57 +0000</pubDate>
      <link>https://dev.to/theaniketraj/the-beginning-1j6b</link>
      <guid>https://dev.to/theaniketraj/the-beginning-1j6b</guid>
      <description>&lt;p&gt;Most distributed systems don’t fail because of bad code.&lt;/p&gt;

&lt;p&gt;They fail because of orchestration.&lt;/p&gt;

&lt;p&gt;Not immediately. Not loudly.&lt;/p&gt;

&lt;p&gt;Slowly.&lt;/p&gt;

&lt;p&gt;A retry happens at the wrong time.&lt;br&gt;
Two controllers race each other.&lt;br&gt;
State drifts just enough to cause inconsistency.&lt;br&gt;
And suddenly… debugging becomes guesswork.&lt;/p&gt;

&lt;p&gt;You try again.&lt;/p&gt;

&lt;p&gt;This time it works.&lt;/p&gt;

&lt;p&gt;But you don’t know why.&lt;/p&gt;




&lt;p&gt;We’ve built incredible systems.&lt;/p&gt;

&lt;p&gt;But the way we program control planes is still:&lt;/p&gt;

&lt;p&gt;• timing-dependent&lt;br&gt;
• hard to reproduce&lt;br&gt;
• difficult to reason about&lt;/p&gt;




&lt;p&gt;I’ve been exploring a different question:&lt;/p&gt;

&lt;p&gt;What if orchestration itself was deterministic?&lt;/p&gt;

&lt;p&gt;What if:&lt;/p&gt;

&lt;p&gt;Same input → same execution → same outcome&lt;/p&gt;

&lt;p&gt;Every time.&lt;/p&gt;




&lt;p&gt;That’s what I’ve been building.&lt;/p&gt;

&lt;p&gt;A programming model where systems don’t just &lt;em&gt;run&lt;/em&gt;.&lt;br&gt;
They continuously stabilize toward a desired state.&lt;/p&gt;

&lt;p&gt;Not scripts.&lt;br&gt;
Not controllers.&lt;/p&gt;

&lt;p&gt;Something else.&lt;/p&gt;




&lt;p&gt;Still early. But the ideas are starting to take shape.&lt;/p&gt;

&lt;p&gt;Sharing more soon.&lt;/p&gt;

&lt;h1&gt;
  
  
  distributedSystems #systemsdesign #programminglanguages #backend #cloudnative
&lt;/h1&gt;

</description>
      <category>systemdesign</category>
      <category>cloudnative</category>
      <category>distributedsystems</category>
      <category>programming</category>
    </item>
    <item>
      <title>Stop Alt-Tabbing to Check Metrics: Meet Vitals for VS Code 🚀</title>
      <dc:creator>Aniket Raj</dc:creator>
      <pubDate>Fri, 26 Dec 2025 10:01:41 +0000</pubDate>
      <link>https://dev.to/theaniketraj/stop-alt-tabbing-to-check-metrics-meet-vitals-for-vs-code-16d7</link>
      <guid>https://dev.to/theaniketraj/stop-alt-tabbing-to-check-metrics-meet-vitals-for-vs-code-16d7</guid>
      <description>&lt;p&gt;The Problem: Context Switching&lt;br&gt;
As developers, we live in our IDE. But when we need to check how our app is performing—CPU usage, memory leaks, or HTTP latency—we have to alt-tab away to a browser, log into Grafana or Prometheus, and hunt for the right dashboard. It breaks our flow.&lt;/p&gt;

&lt;p&gt;The Solution: Vitals&lt;br&gt;
I built Vitals to bridge this gap. Vitals is an open-source VS Code extension that brings real-time observability directly into your editor.&lt;/p&gt;

&lt;p&gt;It connects cleanly to Prometheus to visualize critical system and specific application metrics without you ever leaving your code.&lt;/p&gt;

&lt;p&gt;✨ Key Features&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Real-Time Metrics 📊
Visualize critical metrics with auto-updating, interactive charts.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;CPU &amp;amp; Memory: Track resource usage trends instantly.&lt;br&gt;
Request Latency: Monitor p50, p95, and p99 response times.&lt;br&gt;
Custom Metrics: Support for any Prometheus metric you care about.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Live Log Stream 📜
Forget tail -f. Vitals gives you a terminal-like log viewer right in the dashboard with:&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Syntax Highlighting: Color-coded for INFO, WARN, ERROR.&lt;br&gt;
Search &amp;amp; Filter: Quickly isolate the logs you need.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Zero Configuration ⚡
If you have Prometheus running locally (e.g., via Docker or Homebrew), Vitals auto-discovers it. No complex JSON config required to get started—just install and view.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;🛠️ Quick Start&lt;br&gt;
Install the Extension: Search for "Vitals" in the VS Code Marketplace.&lt;br&gt;
Run Prometheus: Ensure Prometheus is running (default port :9090).&lt;br&gt;
Open Dashboard: Press Ctrl+Shift+P -&amp;gt; Vitals: Open Dashboard.&lt;br&gt;
That's it! You should see your metrics streaming immediately.&lt;/p&gt;

&lt;p&gt;🔮 What's Next?&lt;br&gt;
We are actively working on v0.3.0, which will include:&lt;/p&gt;

&lt;p&gt;Multi-datasource support (Datadog, AWS CloudWatch).&lt;br&gt;
AI-powered anomaly detection.&lt;br&gt;
Historical data analysis.&lt;br&gt;
Try it out!&lt;br&gt;
We’re open source and love feedback.&lt;/p&gt;

&lt;p&gt;Download: &lt;a href="https://marketplace.visualstudio.com/items?itemName=theaniketraj.vitals" rel="noopener noreferrer"&gt;VS Code Marketplace&lt;/a&gt;&lt;br&gt;
Open VSX: &lt;a href="https://open-vsx.org/extension/theaniketraj/vitals" rel="noopener noreferrer"&gt;Vitals&lt;/a&gt;&lt;br&gt;
Source Code: &lt;a href="https://github.com/theaniketraj/vitals" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; (Give us a star! ⭐)&lt;br&gt;
Docs: &lt;a href="https://theaniketraj.github.io/vitals/" rel="noopener noreferrer"&gt;Get Started&lt;/a&gt;&lt;br&gt;
Happy Coding! 💻&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>tooling</category>
      <category>vscode</category>
      <category>monitoring</category>
    </item>
    <item>
      <title>Introducing SCAN - A Must Have Plugin</title>
      <dc:creator>Aniket Raj</dc:creator>
      <pubDate>Tue, 19 Aug 2025 11:05:40 +0000</pubDate>
      <link>https://dev.to/theaniketraj/introducing-scan-a-must-have-plugin-47jh</link>
      <guid>https://dev.to/theaniketraj/introducing-scan-a-must-have-plugin-47jh</guid>
      <description>&lt;p&gt;🚨 LAUNCH ALERT: Introducing SCAN - The Gradle Plugin That Could Save Your Company from the Next Big Security Breach 🚨&lt;/p&gt;

&lt;p&gt;I'm thrilled to announce the launch of SCAN (Sensitive Code Analyzer for Nerds) - a powerful Gradle plugin that automatically detects secrets, API keys, and sensitive information before they hit your codebase.&lt;/p&gt;

&lt;p&gt;Why SCAN? Because one leaked API key can cost millions.&lt;/p&gt;

&lt;p&gt;We've all seen the headlines: major companies exposing AWS credentials, database passwords, and API keys in public repositories. What if I told you there's now a way to catch these before they ever leave your development environment?&lt;/p&gt;

&lt;p&gt;What makes SCAN different:&lt;/p&gt;

&lt;p&gt;🔍 Multi-Layered Detection Engine &lt;br&gt;
• Pattern recognition for 50+ secret types (AWS, GitHub, database credentials) &lt;br&gt;
• Entropy analysis to catch encoded/obfuscated secrets &lt;br&gt;
• Context-aware intelligence that understands when something looks like a secret but isn't&lt;/p&gt;

&lt;p&gt;⚡ Built for Performance &lt;br&gt;
• Parallel processing optimized for large codebases &lt;br&gt;
• Memory-efficient streaming for massive files &lt;br&gt;
• Incremental scanning for CI/CD pipelines&lt;/p&gt;

&lt;p&gt;🛠️ Developer-First Design &lt;br&gt;
• Zero configuration required - works out of the box &lt;br&gt;
• Gradle-native integration with your existing workflow &lt;br&gt;
• Multiple report formats (console, JSON, HTML)&lt;/p&gt;

&lt;p&gt;Perfect for: &lt;br&gt;
✅ Startups wanting enterprise-grade security &lt;br&gt;
✅ Enterprise teams managing complex codebases &lt;br&gt;
✅ DevOps engineers integrating security into CI/CD &lt;br&gt;
✅ Security teams needing automated secret detection&lt;/p&gt;

&lt;p&gt;The Numbers: &lt;br&gt;
📊 Detects 50+ types of secrets &lt;br&gt;
🚀 Scans 1000+ files in seconds &lt;br&gt;
🔧 Integrates with GitHub Actions, Jenkins, GitLab CI &lt;br&gt;
🏗️ Built with Kotlin for JVM ecosystem&lt;/p&gt;

&lt;p&gt;This isn't just another security tool - it's your first line of defense against the kind of mistakes that make front-page news.&lt;/p&gt;

&lt;p&gt;Get Started:&lt;br&gt;
📖 Documentation: &lt;a href="https://theaniketraj.github.io/SCAN/" rel="noopener noreferrer"&gt;DOCS ↗&lt;/a&gt; &lt;br&gt;
💻 Source Code: &lt;a href="https://github.com/theaniketraj/SCAN" rel="noopener noreferrer"&gt;REPO ↗&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Want to contribute?&lt;/p&gt;

&lt;p&gt;This is an open-source project, and we're looking for contributors to help us: &lt;br&gt;
• Add detection patterns for new secret types &lt;br&gt;
• Improve performance optimizations &lt;br&gt;
• Enhance CI/CD integrations &lt;br&gt;
• Write documentation and examples&lt;/p&gt;

&lt;p&gt;Whether you're a security engineer, DevOps specialist, or Kotlin developer, there's a place for your expertise in making the JVM ecosystem more secure.&lt;/p&gt;

&lt;p&gt;Try it today - your future self (and your security team) will thank you when that critical API key gets caught before production instead of after it's leaked.&lt;/p&gt;

&lt;h1&gt;
  
  
  cybersecurity #devsecops #gradle #kotlin #appsec #security #opensource #java #kotlin #devtools #cicd #github #aws #secretsmanagement #infosec
&lt;/h1&gt;




&lt;p&gt;P.S. If you've ever had that sinking feeling when you realized you committed something sensitive - you know exactly why SCAN exists. Let's make sure it never happens again.&lt;/p&gt;

&lt;p&gt;Ready to secure your code? Drop a ⚡ in the comments if you're going to try SCAN, or share your own horror stories about leaked credentials (anonymously, of course! 😅)&lt;/p&gt;

&lt;p&gt;-&lt;/p&gt;

&lt;h2&gt;
  
  
  AR.
&lt;/h2&gt;

</description>
      <category>kotlin</category>
      <category>devops</category>
      <category>showdev</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Project KARL</title>
      <dc:creator>Aniket Raj</dc:creator>
      <pubDate>Mon, 18 Aug 2025 09:03:27 +0000</pubDate>
      <link>https://dev.to/theaniketraj/project-karl-4hao</link>
      <guid>https://dev.to/theaniketraj/project-karl-4hao</guid>
      <description>&lt;h3&gt;
  
  
  &lt;strong&gt;Introduction: The Problem with Personalization&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;In the modern software landscape, AI-driven personalization is a key differentiator. From suggesting the next action in a developer tool to tailoring a news feed, intelligent features enhance user engagement. However, this intelligence often comes at a steep price: user privacy. The conventional approach requires aggregating vast amounts of user interaction data on centralized cloud servers, creating significant privacy risks, latency issues, and a dependency on network connectivity.&lt;/p&gt;

&lt;p&gt;This trade-off inspired a question: &lt;strong&gt;Can we build a system that provides deep, adaptive personalization while guaranteeing that a user's data never leaves their device?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Project KARL (Kotlin Adaptive Reasoning Learner) is my answer to that question. It is an open-source, on-device AI framework designed from the ground up to be privacy-first, modular, and deeply integrated with the modern Kotlin ecosystem.&lt;/p&gt;

&lt;p&gt;Here it is in action:&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%2F5b2ki2rpmuwx7ermds8t.gif" 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%2F5b2ki2rpmuwx7ermds8t.gif" alt="GIF of Project KARL Desktop App in action, showing buttons being clicked, the interaction log updating, the confidence trend changing, and the prediction details updating." width="" height=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Explore Project KARL:                                      &lt;/p&gt;

&lt;h2&gt;
  
  
  ➡️ &lt;a href="https://karldocs.netlify.app/" rel="noopener noreferrer"&gt;&lt;strong&gt;KARL-AI ↗&lt;/strong&gt;&lt;/a&gt;
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Core Philosophy &amp;amp; Vision&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;The vision for KARL is to empower developers to embed trustworthy AI directly into their applications. This is built on three foundational pillars:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Privacy by Design (Local-First):&lt;/strong&gt; All learning, data processing, and state storage occur exclusively on the user's device. There is no data egress by default, eliminating the privacy concerns of cloud-based AI.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;True Personalization (Adaptive Learning):&lt;/strong&gt; KARL models start as a "blank slate" for each user. They learn and adapt incrementally from an individual's specific interactions, creating a uniquely tailored experience rather than applying a generalized, pre-trained model.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Developer-Friendly Modularity:&lt;/strong&gt; The framework is architected as a set of decoupled modules with clear interfaces, allowing developers to plug in different machine learning backends, storage mechanisms, and UI components.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Technical Architecture: The Composable Container Model&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;To achieve these goals, I designed a multi-module Kotlin Multiplatform (KMP) architecture centered around the &lt;strong&gt;KarlContainer&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The KarlContainer is an isolated, stateful sandbox for each user's AI instance. It orchestrates the interactions between three key pluggable components defined in the :karl-core module:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;LearningEngine (The Brain):&lt;/strong&gt; An interface for the machine learning model. It defines the contract for incremental training (trainStep) and inference (predict). The initial reference implementation, :karl-kldl, uses the &lt;strong&gt;KotlinDL&lt;/strong&gt; library to build and manage a simple Multi-Layer Perceptron (MLP) that adapts in real-time.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;DataStorage (The Memory):&lt;/strong&gt; An interface for local persistence. It's responsible for saving and loading the KarlContainerState (the serialized model weights and metadata). The reference implementation, :karl-room, leverages &lt;strong&gt;AndroidX Room's KMP support&lt;/strong&gt; with a SQLite backend, using KSP for compile-time code generation.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;DataSource (The Senses):&lt;/strong&gt; An interface implemented by the host application. It acts as the bridge, observing user actions, transforming them into anonymized InteractionData objects, and feeding them into the container.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This decoupled design ensures that the core orchestration logic remains independent of the specific ML library or database used, making the system highly extensible.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Key Technical Challenges &amp;amp; Solutions&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Building an on-device AI framework, especially in the Kotlin ecosystem, presented several interesting challenges:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. On-Device Incremental Learning:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Challenge:&lt;/strong&gt; How do you train a model effectively with a stream of single data points without the massive computational resources of the cloud?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Solution:&lt;/strong&gt; I implemented a trainStep function in the KLDLLearningEngine that performs a single, low-latency training pass on the model with each new InteractionData point. This "online learning" approach allows the model to adapt continuously. State is managed using a Mutex to ensure thread-safe updates to the model during concurrent training and prediction requests.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;2. State Persistence and Management:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Challenge:&lt;/strong&gt; How do you save and restore the entire learned state of a neural network efficiently on a local device?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Solution:&lt;/strong&gt; The getCurrentState() method in the LearningEngine serializes the model's weights and key metadata (like the number of interactions processed) into a ByteArray. The RoomDataStorage implementation then persists this binary blob in a local SQLite database. On initialization, this state is loaded back, allowing the AI to resume its learned state across application sessions.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;3. Reactive UI Integration:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Challenge:&lt;/strong&gt; How do you display the AI's real-time status and predictions in a modern, declarative UI without blocking the main thread?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Solution:&lt;/strong&gt; The :karl-example-desktop application was built using &lt;strong&gt;Jetpack Compose for Desktop&lt;/strong&gt;. I used &lt;strong&gt;Kotlin Coroutines and StateFlow&lt;/strong&gt; extensively. The application's ViewModel observes the KarlContainer and exposes its state (predictions, interaction count, confidence trends) as reactive streams. The Compose UI then subscribes to these flows using collectAsState(), ensuring that the dashboard updates automatically and efficiently whenever the underlying AI state changes.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;4. Build System Complexity (Gradle &amp;amp; KMP):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Challenge:&lt;/strong&gt; Managing a multi-module Kotlin Multiplatform project with complex dependencies like KSP, Compose, and KotlinDL is non-trivial and prone to configuration errors.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Solution:&lt;/strong&gt; I implemented a &lt;strong&gt;Gradle Version Catalog (libs.versions.toml)&lt;/strong&gt; as the single source of truth for all plugin and library versions. This drastically improved build script readability, maintainability, and resolved numerous dependency conflicts. I also set up a full CI/CD pipeline using &lt;strong&gt;GitHub Actions&lt;/strong&gt; to automatically build, test (with ktlint), and deploy the Dokka documentation, ensuring a high standard of quality and automation.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;The Result: A Demonstrable Prototype&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;The culmination of this work is a polished, fully functional diagnostic dashboard that showcases KARL in action. It allows a user to simulate actions, and in real-time, observe:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;The &lt;strong&gt;AI Insights&lt;/strong&gt; panel, showing the model's status, the number of interactions processed, and a live-updating "Confidence Trend" sparkline.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The &lt;strong&gt;Prediction Details&lt;/strong&gt; panel, displaying the input context, the primary prediction with its confidence score, and alternative suggestions.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Future Directions &amp;amp; Personal Learnings&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;This project has been an incredible learning experience in software architecture, on-device machine learning, and modern Kotlin development. While the foundation is solid, the roadmap for KARL is exciting:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Advanced Models:&lt;/strong&gt; Implementing more sophisticated LearningEngines using RNNs or Transformers to better capture sequential patterns.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Robust Serialization:&lt;/strong&gt; Moving from a basic DataOutputStream to a more structured format like Protocol Buffers or JSON for model state persistence.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Broader KMP Support:&lt;/strong&gt; Extending the core functionalities and providing reference implementations for Android and iOS.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Project KARL demonstrates that it is feasible to build intelligent, adaptive systems that respect user privacy by design. It represents my passion for tackling complex architectural challenges and my commitment to building high-quality, well-documented, and forward-thinking software.&lt;/p&gt;

</description>
      <category>kotlin</category>
      <category>opensource</category>
      <category>showdev</category>
      <category>programming</category>
    </item>
    <item>
      <title>Project KARL AI</title>
      <dc:creator>Aniket Raj</dc:creator>
      <pubDate>Fri, 08 Aug 2025 14:34:21 +0000</pubDate>
      <link>https://dev.to/theaniketraj/project-karl-ai-20i0</link>
      <guid>https://dev.to/theaniketraj/project-karl-ai-20i0</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/theaniketraj/its-alive-project-karl-is-now-open-source-4mpb" class="crayons-story__hidden-navigation-link"&gt;It's Alive! Project KARL is Now Open Source.&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/theaniketraj" class="crayons-avatar  crayons-avatar--l  "&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%2Fuser%2Fprofile_image%2F1068692%2Fb208ee6a-3245-4ab1-8d9d-641a18373764.jpeg" alt="theaniketraj profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/theaniketraj" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Aniket Raj
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Aniket Raj
                
              
              &lt;div id="story-author-preview-content-2755134" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/theaniketraj" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F1068692%2Fb208ee6a-3245-4ab1-8d9d-641a18373764.jpeg" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Aniket Raj&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/theaniketraj/its-alive-project-karl-is-now-open-source-4mpb" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Aug 6 '25&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/theaniketraj/its-alive-project-karl-is-now-open-source-4mpb" id="article-link-2755134"&gt;
          It's Alive! Project KARL is Now Open Source.
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag crayons-tag--filled  " href="/t/showdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;showdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/kotlin"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;kotlin&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/opensource"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;opensource&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/theaniketraj/its-alive-project-karl-is-now-open-source-4mpb" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;1&lt;span class="hidden s:inline"&gt; reaction&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/theaniketraj/its-alive-project-karl-is-now-open-source-4mpb#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              Comments


              &lt;span class="hidden s:inline"&gt;Add Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            3 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
      <category>kotlin</category>
      <category>ai</category>
      <category>opensource</category>
      <category>showdev</category>
    </item>
    <item>
      <title>It's Alive! Project KARL is Now Open Source.</title>
      <dc:creator>Aniket Raj</dc:creator>
      <pubDate>Wed, 06 Aug 2025 07:11:08 +0000</pubDate>
      <link>https://dev.to/theaniketraj/its-alive-project-karl-is-now-open-source-4mpb</link>
      <guid>https://dev.to/theaniketraj/its-alive-project-karl-is-now-open-source-4mpb</guid>
      <description>&lt;p&gt;Hey Dev Community!&lt;/p&gt;

&lt;p&gt;It’s here.&lt;/p&gt;

&lt;p&gt;After months of late-night coding sessions, wrestling with Gradle, architecting APIs, and sharing the journey with all of you, I'm incredibly proud and excited to announce that &lt;strong&gt;Project KARL (Kotlin Adaptive Reasoning Learner) is now officially open source!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The repository is public, the code is available, and the first alpha version is ready for you to explore.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://github.com/theaniketraj/project-karl" rel="noopener noreferrer"&gt;Check out Project KARL on GitHub! ↗&lt;/a&gt;
&lt;/h2&gt;

&lt;h3&gt;
  
  
  A Quick Recap: What is KARL?
&lt;/h3&gt;

&lt;p&gt;For those new to the journey, KARL is my answer to a question that drove this entire project: &lt;strong&gt;Can we build powerful, personalized AI without sacrificing user privacy?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;KARL is an open-source library, built entirely in Kotlin, for creating &lt;strong&gt;on-device, adaptive AI models&lt;/strong&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Privacy-First:&lt;/strong&gt; All learning and data storage happen locally. No cloud servers, no data egress.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Truly Personal:&lt;/strong&gt; The AI starts as a blank slate and learns exclusively from an individual user's interactions, creating a deeply personalized experience.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Modular &amp;amp; KMP-Powered:&lt;/strong&gt; Built on a clean, container-based architecture with a Kotlin Multiplatform core, making it flexible and extensible.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  From "Build Hell" to a Working Demo
&lt;/h3&gt;

&lt;p&gt;The path to this release was a marathon. I've shared some of the struggles with dependency resolution and build configurations right here on dev.to. But today, I'm thrilled to share the result: a fully functional example application that brings the entire KARL ecosystem to life.&lt;/p&gt;

&lt;p&gt;Here it is in action:&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%2F5b2ki2rpmuwx7ermds8t.gif" 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%2F5b2ki2rpmuwx7ermds8t.gif" alt="GIF of Project KARL Desktop App in action, showing buttons being clicked, the interaction log updating, the confidence trend changing, and the prediction details updating." width="" height=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;What you're seeing is the complete, end-to-end data flow:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; A user action is simulated in the &lt;strong&gt;Controls&lt;/strong&gt; panel.&lt;/li&gt;
&lt;li&gt; The &lt;code&gt;DataSource&lt;/code&gt; sends this interaction to the &lt;code&gt;KarlContainer&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt; The &lt;code&gt;KLDLLearningEngine&lt;/code&gt; performs a &lt;code&gt;trainStep&lt;/code&gt;, updating its local model.&lt;/li&gt;
&lt;li&gt; The &lt;strong&gt;AI Insights&lt;/strong&gt; panel updates in real-time, showing the &lt;code&gt;Interactions Processed&lt;/code&gt; count and the &lt;code&gt;Confidence Trend&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt; A new prediction is requested, and the &lt;strong&gt;Prediction Details&lt;/strong&gt; panel displays the model's output, including its confidence and alternatives.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;All of this happens instantly, on-device, with a persistent state managed by our Room-based &lt;code&gt;DataStorage&lt;/code&gt; implementation.&lt;/p&gt;

&lt;h3&gt;
  
  
  What's in the Box? (The Modules)
&lt;/h3&gt;

&lt;p&gt;The initial release includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;&lt;code&gt;:karl-core&lt;/code&gt;&lt;/strong&gt;: The KMP core with all the essential interfaces and data models.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;&lt;code&gt;:karl-kldl&lt;/code&gt;&lt;/strong&gt;: A &lt;code&gt;LearningEngine&lt;/code&gt; implementation using KotlinDL.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;&lt;code&gt;:karl-room&lt;/code&gt;&lt;/strong&gt;: A &lt;code&gt;DataStorage&lt;/code&gt; implementation using AndroidX Room and KSP.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;&lt;code&gt;:karl-compose-ui&lt;/code&gt;&lt;/strong&gt;: Reusable Jetpack Compose components.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;&lt;code&gt;:karl-example-desktop&lt;/code&gt;&lt;/strong&gt;: The fully runnable diagnostic dashboard you see in the GIF!&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  This is Just the Beginning: An Invitation to Contribute
&lt;/h3&gt;

&lt;p&gt;This is an alpha release. The foundation is laid, but there is so much more to build. I'm officially inviting you to be a part of this journey.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Explore the Code:&lt;/strong&gt; Dive into the repository. I'd love to hear your feedback on the architecture.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Run the Example App:&lt;/strong&gt; Clone the repo and run the desktop app yourself!&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Read the Docs:&lt;/strong&gt; The &lt;a href="https://karldocs.netlify.app/" rel="noopener noreferrer"&gt;Official Documentation&lt;/a&gt; is live with detailed guides.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Contribute:&lt;/strong&gt; Check out the &lt;code&gt;CONTRIBUTING.md&lt;/code&gt; and the open issues. Whether you're a Gradle expert, an ML enthusiast, or a Compose wizard, there's a place for you. I'll be adding &lt;code&gt;good first issue&lt;/code&gt; labels soon!&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Thank you to everyone who has followed along, offered encouragement, and shown interest. This project was born out of a belief in a different kind of AI, and I can't wait to see where we, as a community, take it next.&lt;/p&gt;

&lt;p&gt;Let me know what you think in the comments!&lt;/p&gt;




&lt;p&gt;&lt;em&gt;AR&lt;/em&gt;&lt;/p&gt;

</description>
      <category>kotlin</category>
      <category>ai</category>
      <category>opensource</category>
      <category>showdev</category>
    </item>
    <item>
      <title>RELEASING KARL DOCS</title>
      <dc:creator>Aniket Raj</dc:creator>
      <pubDate>Sat, 02 Aug 2025 11:57:06 +0000</pubDate>
      <link>https://dev.to/theaniketraj/releasing-karl-docs-32o1</link>
      <guid>https://dev.to/theaniketraj/releasing-karl-docs-32o1</guid>
      <description>&lt;h2&gt;
  
  
  Hello, Dev Community!
&lt;/h2&gt;

&lt;p&gt;For the past couple of months, I've been on an incredible journey building something I'm truly passionate about. Today, I'm thrilled to take the first major step in sharing it with all of you.&lt;/p&gt;

&lt;p&gt;I'm talking about &lt;strong&gt;Project KARL&lt;/strong&gt; (Kotlin Adaptive Reasoning Learner).&lt;/p&gt;

&lt;p&gt;What is KARL?&lt;br&gt;
At its heart, KARL is an answer to a question that has been on my mind: Can we build powerful, personalized AI without sacrificing user privacy?&lt;/p&gt;

&lt;p&gt;Project KARL is an open-source library, built entirely in Kotlin, designed to create on-device, adaptive AI models. Instead of sending your data to the cloud to be processed, KARL learns and adapts exclusively on the user's device. It starts as a blank slate and becomes uniquely tailored to an individual's behavior over time.&lt;/p&gt;

&lt;p&gt;It's built on a few core principles:&lt;br&gt;
• Privacy-First: All learning and data storage are local by default.&lt;br&gt;
• Truly Personal: The AI adapts to one user, not a generalized population.&lt;br&gt;
• Modular &amp;amp; Composable: Designed with a clean, container-based architecture to be easily integrated into modern Kotlin applications.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Action is Always Preceded by Learning&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;In the spirit of that motto, I'm taking a &lt;strong&gt;docs-first&lt;/strong&gt; approach to this release. I believe that for a project with a new architectural pattern to be truly understood and adopted, the concepts and guidelines must be clear from day one.&lt;/p&gt;

&lt;p&gt;Before you dive into the code, I want you to have the complete map.&lt;/p&gt;

&lt;p&gt;Today, I am officially releasing the complete documentation for Project KARL.&lt;/p&gt;

&lt;p&gt;This includes everything from high-level introductions and core concepts to detailed integration guides, API overviews, and contributor information. It’s the blueprint for the entire project.&lt;/p&gt;

&lt;p&gt;→ Explore the Official KARL Documentation Here: &lt;a href="https://karldocs.netlify.app" rel="noopener noreferrer"&gt;&lt;strong&gt;KARL DOCS ↗&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Mark Your Calendars: The Code is Coming
&lt;/h2&gt;

&lt;p&gt;With the documentation now public, you can learn, explore, and understand the vision. The next step is action.&lt;/p&gt;

&lt;p&gt;The official open-source repository for Project KARL will be made public soon.&lt;/p&gt;

&lt;p&gt;On that day, you'll have access to the full source code for all the core modules, implementations, and the example desktop application that brings it all to life.&lt;/p&gt;

&lt;h2&gt;
  
  
  What to Expect
&lt;/h2&gt;

&lt;p&gt;The initial release will be an alpha version, a solid foundation ready for feedback, experimentation, and community contribution. It's the start of a journey, and I'm incredibly excited to build it in the open with all of you.&lt;/p&gt;

&lt;p&gt;So, take some time to read through the docs. Understand the "why" and the "how." And get ready to dive into the code.&lt;br&gt;
I can't wait to share it with you.&lt;br&gt;
We're on the edge.&lt;br&gt;
Get Ready.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AR&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>opensource</category>
      <category>ai</category>
      <category>kotlin</category>
      <category>android</category>
    </item>
    <item>
      <title>Building AI Model</title>
      <dc:creator>Aniket Raj</dc:creator>
      <pubDate>Sat, 10 May 2025 19:03:26 +0000</pubDate>
      <link>https://dev.to/theaniketraj/building-ai-model-19c4</link>
      <guid>https://dev.to/theaniketraj/building-ai-model-19c4</guid>
      <description>&lt;h2&gt;
  
  
  Hello Readers
&lt;/h2&gt;

&lt;p&gt;It's day #14 of building an AI - Model.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Explore more &lt;a href="https://dev.to/theaniketraj/building-ai-model-1m7b"&gt;here&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>devops</category>
      <category>programming</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
