<?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: Ridwan Yoga Suryantara</title>
    <description>The latest articles on DEV Community by Ridwan Yoga Suryantara (@ryogs).</description>
    <link>https://dev.to/ryogs</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%2F4177438%2F91384bd2-1a24-4d06-87d6-2bc26a2f5329.png</url>
      <title>DEV Community: Ridwan Yoga Suryantara</title>
      <link>https://dev.to/ryogs</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ryogs"/>
    <language>en</language>
    <item>
      <title>Building Fuenzer Sports: An AI Tournament Prediction Side Hustle Powered by Open-Weight Models</title>
      <dc:creator>Ridwan Yoga Suryantara</dc:creator>
      <pubDate>Fri, 16 Oct 2026 07:43:51 +0000</pubDate>
      <link>https://dev.to/ryogs/fuenzer-sports-ai-driven-tournament-simulator-1iog</link>
      <guid>https://dev.to/ryogs/fuenzer-sports-ai-driven-tournament-simulator-1iog</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week2-2026-10-12"&gt;Hacktoberfest Open-Source AI Challenge Week 2: Side Hustle&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Fuenzer Sports&lt;/strong&gt; is an interactive, AI-driven sports analytics simulation platform designed as a scalable side hustle with a clear path to profitability. It bridges the gap between an intuitive search engine and a high-performance tournament management simulation.&lt;/p&gt;

&lt;p&gt;Instead of browsing rigid spreadsheets or reading lengthy articles, users can ask natural language questions such as:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"What are Indonesia's chances of reaching the knockout stage if their star midfielder is injured?"&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Our platform orchestrates open-weight LLMs with a vectorized mathematical simulation engine to dynamically adjust team strengths, execute &lt;strong&gt;10,000+ Monte Carlo iterations in milliseconds&lt;/strong&gt;, and stream real-time statistical probabilities alongside deep tactical commentary.&lt;/p&gt;

&lt;h3&gt;
  
  
  💼 Who Would Pay For This? (The Side Hustle Thesis)
&lt;/h3&gt;

&lt;p&gt;Traditional sports analytics platforms are either closed off for enterprise sports clubs or rely on legacy static dashboards. Meanwhile, general conversational chatbots regularly hallucinate scorelines and lack real mathematical predictive engines.&lt;/p&gt;

&lt;p&gt;Fuenzer Sports addresses two high-value paying customer segments:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;B2B Real-Time Odds APIs (Sportsbook &amp;amp; Betting Operators):&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Problem:&lt;/strong&gt; Live in-game disruptions (red cards, key injuries, tactical substitutions) drastically shift tournament advancement probabilities. Recalculating futures odds manually is slow.&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Monetization:&lt;/strong&gt; We license our low-latency simulation API to sportsbooks to recalibrate live advancement probabilities and adjust futures betting lines within seconds.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;B2C Subscriptions (Hardcore Fans, Fantasy &amp;amp; Esports Organizers):&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Problem:&lt;/strong&gt; Fantasy managers and esports tournament creators want deep what-if modeling on custom rosters and tournament formats without managing complex spreadsheet formulas.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Monetization:&lt;/strong&gt; A monthly subscription tiers feature custom tournament generation, private league draft simulations, and personalized coaching summaries.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;Experience the live interactive simulation:&lt;br&gt;
&lt;strong&gt;Live Demo:&lt;/strong&gt; &lt;a href="https://sports.fuenzer.web.id" rel="noopener noreferrer"&gt;https://sports.fuenzer.web.id&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  Key User Experience:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Prompt-to-Workspace Flow:&lt;/strong&gt; Type any tournament scenario in plain English.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Animated Standings UI:&lt;/strong&gt; Standings automatically re-order dynamically using fluid layout physics.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Human-in-the-Loop (HITL):&lt;/strong&gt; If a user mentions an ambiguous or unknown player, the autonomous agent politely pauses and displays an interactive dropdown to assign the player before running the math.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;High-Res Workspace Export:&lt;/strong&gt; One-click snapshot generation to export long vertical standings or bracket views.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;

&lt;p&gt;The entire codebase is open-source under the Apache-2.0 License:&lt;br&gt;
&lt;strong&gt;Link Repo:&lt;/strong&gt; &lt;a href="https://github.com/Yogs4R/fuenzer-sports" rel="noopener noreferrer"&gt;https://github.com/Yogs4R/fuenzer-sports&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;p&gt;Fuenzer Sports is engineered with a decoupled, high-performance architecture:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[React 18 + Vite Frontend]
↕  REST API (JSON)
[FastAPI Server on Render] ───► [Vectorized NumPy Monte Carlo (10,000x)]
↕  Tool Calling
[Google Gemma / Serverless Fallback]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  1. Backend &amp;amp; AI Orchestration
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Runtime &amp;amp; Framework:&lt;/strong&gt; Built on Python 3.10 and &lt;strong&gt;FastAPI&lt;/strong&gt;, deployed as a containerized web service on &lt;strong&gt;Render&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI Agent Router:&lt;/strong&gt; Utilizes an autonomous tool-calling architecture following standard OpenAI-compatible tool specifications. The model decides whether to route into the Monte Carlo simulation engine, request user clarification, or handle tactical Q&amp;amp;A.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Open-Weight Models:&lt;/strong&gt; Powered by &lt;strong&gt;Google Gemma (Gemma 4 12B IT)&lt;/strong&gt; for function calling and qualitative tactical match analysis, with fallback routing through serverless inference.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;High-Speed Monte Carlo Simulation:&lt;/strong&gt; Match outcomes are computed using dynamic Poisson distribution sampling coupled with vectorized matrix operations in &lt;strong&gt;NumPy&lt;/strong&gt;, resolving complex 48-team, 12-group FIFA tiebreaker structures in under 5 milliseconds.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. Frontend &amp;amp; Interaction
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Stack:&lt;/strong&gt; Built using &lt;strong&gt;React 18&lt;/strong&gt;, &lt;strong&gt;Vite&lt;/strong&gt;, &lt;strong&gt;TypeScript&lt;/strong&gt;, and &lt;strong&gt;Tailwind CSS&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;State &amp;amp; Animations:&lt;/strong&gt; Handled via &lt;strong&gt;Zustand&lt;/strong&gt; (with offline-friendly persistent storage) and &lt;strong&gt;Framer Motion&lt;/strong&gt; for smooth standings layout transitions.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3. Developer Tooling &amp;amp; Workflow
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;GitHub Copilot:&lt;/strong&gt; Extensively utilized Copilot for AI pair-programming, specifically when vectorizing the Poisson distribution matrix calculations in NumPy and refining the responsive Tailwind layout.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Automated CI/CD:&lt;/strong&gt; Complete security and code quality pipelines powered by GitHub Actions, featuring automated Gitleaks secret detection, Trivy container vulnerability scanning, and Dependabot dependency audits.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why Does Open Innovation Matter?
&lt;/h2&gt;

&lt;p&gt;For an AI-powered side hustle, &lt;strong&gt;unit economics make or break the business&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;If every simulation run and commentary prompt relied on closed-source, proprietary APIs (such as GPT-6, Opus 5.5, Kimi K3), our API inference costs would scale linearly with user traffic. In a scenario with thousands of simulation queries, token costs would quickly wipe out subscription margins.&lt;/p&gt;

&lt;p&gt;By architecting around &lt;strong&gt;open-weight models (Google Gemma)&lt;/strong&gt; and open-source infrastructure:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Marginal Token Cost Approaching Zero:&lt;/strong&gt; We can host open models locally or on dedicated GPU hardware, ensuring predictable hosting costs regardless of query spikes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Freedom from Vendor Lock-in:&lt;/strong&gt; Sticking to strict open tool-calling standards allows us to swap underlying inference runtimes (from local vLLM/Ollama to serverless providers) without changing a single line of business logic.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Data Privacy &amp;amp; Customizability:&lt;/strong&gt; We can fine-tune team-strength modifiers and tactical prompt weights without sending proprietary sports heuristics to third-party closed providers.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Open innovation is what turns Fuenzer Sports from an expensive prototype into a commercially viable, sustainable side hustle.&lt;/p&gt;

&lt;h2&gt;
  
  
  My First User
&lt;/h2&gt;

&lt;p&gt;To validate the platform, I shared Fuenzer Sports with a local fantasy football league admin and sports enthusiast to test hypothetical World Cup scenarios:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"Being able to just ask what happens if our key striker gets a yellow card and seeing the entire group table re-order itself with exact mathematical odds within a few seconds is incredible. This completely replaces the messy spreadsheets we usually argue over during matchdays."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Feedback from this session led directly to adding the &lt;strong&gt;Human-in-the-Loop team selector&lt;/strong&gt;, ensuring that if a user spells a player's name slightly differently, the engine asks for a quick confirmation rather than failing silently.&lt;/p&gt;

&lt;h2&gt;
  
  
  Prize Categories
&lt;/h2&gt;

&lt;p&gt;We are entering Fuenzer Sports into the following partner categories:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Best Use of Render:&lt;/strong&gt; The FastAPI backend is deployed and running live as a production web service on Render, providing reliable low-latency execution and seamless container deployments.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Best Use of Gemma:&lt;/strong&gt; Google Gemma acts as the core conversational agent, interpreting user scenarios, executing tool calls to the Monte Carlo engine, and generating rich post-simulation tactical commentary.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Best Use of GitHub Copilot:&lt;/strong&gt; GitHub Copilot was used as the primary AI pair-programmer during development to implement complex vectorized NumPy algorithms and refine frontend state transitions.&lt;/li&gt;
&lt;/ul&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fx0b6q8olyif1a00cdadk.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fx0b6q8olyif1a00cdadk.png" alt="Landing Page" width="799" height="373"&gt;&lt;/a&gt;&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F9k8knok3ledmw2ru2w9n.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F9k8knok3ledmw2ru2w9n.png" alt="Playground Group Standings" width="800" height="369"&gt;&lt;/a&gt;&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1f83n8metyvoyd9evqyv.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1f83n8metyvoyd9evqyv.png" alt="Playground Knockout Bracket" width="800" height="370"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
      <category>opensource</category>
      <category>ai</category>
    </item>
    <item>
      <title>What do you think about GHW ?</title>
      <dc:creator>Ridwan Yoga Suryantara</dc:creator>
      <pubDate>Sun, 11 Oct 2026 17:21:27 +0000</pubDate>
      <link>https://dev.to/ryogs/what-do-you-think-about-ghw--ofe</link>
      <guid>https://dev.to/ryogs/what-do-you-think-about-ghw--ofe</guid>
      <description></description>
      <category>discuss</category>
    </item>
  </channel>
</rss>
