RRio / Portfolio

Independent projects / 07

Ideas,
engineered.

Applied AI is my primary focus, from retrieval to live insights and evidence-backed research. I also build native iOS apps in Swift and cross-platform products with Flutter.

Explore by focus

07 projects

Featured / Applied AIProject 01
Strata PDA dashboard with document ingestion and writing skill shortcuts
Applied AI

01 / 04 · Document workspace

Full size

A single starting point for document uploads, conversations, and reusable writing skills.

Full-Stack AI Engineer

Strata PDA

Your documents. Your voice. Traceable answers.

A document assistant that turns personal archives into context-aware drafts. Local embeddings, source citations, and reusable writing personas connect AI generation to the documents and style that matter to each user.

  • Local RAG with BGE-M3 and Qdrant
  • Reusable writing personas and source citations
  • Streaming drafts with live preview and DOCX export

1,024

Embedding dimensions

PDF + DOCX

Document ingestion

SSE

Draft streaming

PythonFastAPIQdrantBGE-M3GeminiReactTypeScriptZustandDocker
Engineering prototypeView source
Explore the case study

The problem

Professional documents repeat familiar structures, but generic AI assistants lack the source context and writing conventions needed to produce useful, reviewable drafts.

What I built

  1. 01Built a PDF and DOCX ingestion pipeline with heading-aware chunking, local BGE-M3 embeddings, and Qdrant semantic retrieval filtered by user and folder.
  2. 02Connected Gemini drafting and persona extraction to reusable writing skills, preserving a selected tone and document structure.
  3. 03Implemented FastAPI SSE streaming and a React workspace with citation popovers, document storage, live preview, and DOCX export.

The engineering decision

Keep indexing and vector storage local, then retrieve only the relevant chunks for generation. Local embedding reduces dependence on an external embedding API; Gemini still receives selected context during drafting.

The result

Brings document search, source review, and style-aware drafting into one workspace, with visible evidence that users can inspect before accepting an answer.

Demo & verification

Screenshots show the prototype workspace. Embedding and vector storage run locally; text generation uses Gemini. Citations support source review and do not guarantee that every generated statement is correct.

Featured / Applied AIProject 02
Streamly demo dashboard showing audience sentiment and suggested live stream actions
Applied AI

01 / 04 · Live audience pulse

Full size

Simulated sentiment, message volume, and actionable insights in a compact creator dashboard.

Full-Stack & AI Engineer

Streamly

Turn a fast-moving live chat into a clear next move.

An AI co-pilot for TikTok Live that turns chat activity into audience sentiment, emerging topics, and practical actions. Hierarchical summaries preserve the conversation's timeline across short pulses, developing trends, and session reviews.

  • Hierarchical summaries across 5, 20, and 45 minutes
  • Atomic Redis batch isolation during chat ingestion
  • Sentiment, emerging topics, and actionable AI insights

5 / 20 / 45m

Analysis windows

Redis

Queue + insight cache

Demo

No live stream required

TypeScriptNode.jsRedisGeminiReactExpressTikTok Live ConnectorVitest
MVP / interactive demo
Explore the case study

The problem

Creators need to present, sell, and respond at the same time. Fast-moving comments can bury buying questions and technical complaints, while per-message AI inference adds unnecessary cost and latency.

What I built

  1. 01Built a TikTok chat ingestion service and Redis queue, using atomic key renaming to isolate processing batches while new messages continue to arrive.
  2. 02Designed 5-minute summaries that feed 20-minute trends and 45-minute session reviews, instead of repeatedly sending the entire chat history to the model.
  3. 03Delivered a React dashboard for sentiment, topics, alerts, and insight history, with structured Gemini output and an instant simulation mode.

The engineering decision

Use chronological summary aggregation rather than vector search for temporal trends. Redis handles the queue and insight history; the dashboard polls for new results while AI analysis runs in timed batches.

The result

Translates an overwhelming stream of comments into a manageable sequence of audience signals and suggested actions that a creator can review during a broadcast.

Demo & verification

Screenshots use simulated audience data. Chat ingestion follows the live stream, but insights are generated in batches and displayed through polling. Platform connectivity depends on the TikTok connector.

Featured / Applied AIProject 03
Signalroom market research terminal with fundamental and price discrepancy controls
Applied AI

01 / 05 · Signalroom terminal

Full size

Configure a research scan and compare fundamental performance with price behavior.

AI & Backend Engineer

Market Intelligence

From market anomaly to an evidence-backed research memo.

Signalroom is an IDX research terminal that connects robust statistical screening, cited AI research, and deterministic scenario testing. Each research run stays tied to one market snapshot so its evidence and calculations can be revisited.

  • Robust screening with median/MAD and outlier controls
  • Cited Gemini research validated with Pydantic
  • Deterministic stress tests and immutable snapshot replay

357

Documented automated tests

3

Stress scenarios

Snapshot

Reproducible research

PythonFastAPIPydanticGeminiSectors APIpytestJavaScriptHTML / CSS
Hackathon research demoView source
Explore the case study

The problem

Equity research combines financial ratios, disclosures, news, and market flows. A useful AI workflow must keep those inputs traceable and prevent language-model output from becoming the authority for numerical calculations.

What I built

  1. 01Built a Python screening engine with winsorization, median/MAD scoring, and small-sample suppression to handle outliers in subsector comparisons.
  2. 02Integrated Sectors API data and Gemini research with strict Pydantic contracts, source IDs, quote validation, and safe fallback behavior.
  3. 03Connected foreign-flow confirmation, deterministic stress scenarios, and immutable snapshot replay to the Signalroom terminal and World Observatory.

The engineering decision

Separate calculation from interpretation: a numerical engine finds candidates, an LLM synthesizes source evidence, and another numerical stage challenges the thesis. A shared snapshot keeps the stages reproducible.

The result

Makes the path from an unusual market signal to a research memo inspectable, with explicit evidence, scenario assumptions, and repeatable offline demonstrations.

Demo & verification

Built as a Sectors Hackathon research demo with snapshot replay. The 357-test result is recorded in project documentation. Research candidates and scenario outputs are analytical demonstrations, not validated trading returns.

Flutter & WebProject 04
Rantang seller dashboard showing kitchen queue and store overview
Flutter & Web

01 / 04 · Seller operations

Full size

A daily overview of incoming orders, production, and storefront sharing.

Flutter & Full-Stack Engineer

Rantang

A calmer way to run a busy food business.

A food commerce workspace with a Flutter seller app for Android and iOS, alongside a web storefront and dashboard. Account-free buyer checkout, pre-order capacity reservations, and a seller order pipeline connect customers to kitchen operations.

  • Flutter seller app for Android and iOS
  • Account-free web checkout and order tracking
  • Transactional pre-order capacity and auditable credits

No account

Buyer checkout

Android + iOS

Flutter seller app

FlutterDartRiverpodGoRouterDioNext.jsTypeScriptHonoPostgreSQLPrismaRedisBullMQDocker
Product MVP
Explore the case study

The problem

Orders scattered across social messages make payment checks, production capacity, and delivery updates difficult to coordinate, especially during pre-order batches.

What I built

  1. 01Built a Next.js and Hono monorepo with PostgreSQL, Prisma, and Redis/BullMQ for storefronts, seller operations, and background jobs.
  2. 02Built a Flutter seller app for Android and iOS with Riverpod state management, GoRouter navigation, and Dio API integration for dashboard, orders, products, and store settings.
  3. 03Implemented pre-order rules and transactional capacity reservations that check kitchen availability during checkout.
  4. 04Designed buyer tracking links, payment-proof review, and a credit ledger with grants, usage, expiration, and reversal events.

The engineering decision

Keep checkout simple for buyers while enforcing order transitions and capacity on the server. Database transactions coordinate payment review, production status, and credit consumption.

The result

Connects a public storefront to seller operations on web, Android, and iOS, giving buyers a direct way to follow orders and sellers a consistent production workflow.

Demo & verification

The gallery shows the web experience with seeded product data, including responsive buyer tracking. The Flutter Android/iOS seller app is a separate client; these captures do not show its native screens. Merchant adoption and sales uplift have not been measured.

Swift / iOSProject 05
Slate native iOS creator dashboard for projects, invoices, and transfers
Swift / iOS

01 / 03 · Creator workspace

Full size

A native iOS overview of client projects, invoices, and file transfers.

iOS & Full-Stack Engineer

Slate

From creative brief to verified file delivery.

A native iOS workspace and private client portal for photographers. Projects, invoices, recoverable media uploads, and payment-aware delivery form one controlled workflow, with the backend governing access to original files.

  • Durable background uploads with multipart recovery
  • Server-verified payment and delivery transitions
  • Private originals with short-lived download access

SHA-256

File verification

Signed URLs

Controlled downloads

SwiftUIKitCore DataTypeScriptPostgreSQLS3HonoNext.js
Engineering MVPView source
Explore the case study

The problem

Creative teams juggle invoices, large uploads, and file handoffs across separate tools. Delivery needs a reliable answer to whether a file is complete, paid for, and authorized for download.

What I built

  1. 01Built a UIKit app with Swift concurrency, Core Data persistence, Keychain authentication, and file-backed background URLSession uploads.
  2. 02Designed resumable multipart transfers with storage reconciliation and server-side file-size and SHA-256 verification.
  3. 03Implemented authoritative payment and delivery transitions in a Hono/PostgreSQL API, plus a Next.js portal with request-checked, short-lived download URLs.

The engineering decision

Make the server authoritative for payment, file integrity, and release state. The iOS queue recovers transfer work; the portal receives safe previews until original-file access is authorized.

The result

Connects native upload reliability with backend transaction integrity, so file delivery follows explicit verification and release rules.

Demo & verification

An engineering MVP with seeded screenshots and a local payment simulator. The simulator does not move money. Merchant settlement and physical-device background lifecycle checks require separate verification.

Swift / iOSProject 06
BrandLens campaign discovery screen captured in iOS Simulator
Swift / iOS

01 / 03 · Campaign discovery

Full size

Simulator capture of the native campaign discovery experience.

iOS & Product Engineer

BrandLens

Printed campaigns, brought into another dimension.

An iPhone augmented reality experience that turns campaign artwork into an interactive scene. Native campaign browsing and 3D product previews lead into image tracking, with local poster storage and defined physical scale.

  • ARKit image tracking and RealityKit scenes
  • Physical poster scale and camera lifecycle handling
  • Local poster storage and bundled offline campaigns

3

Built-in AR scenes

On-device

Poster library

SwiftUIKitARKitRealityKitTypeScriptHono
Product concept / prototypeView source
Explore the case study

The problem

Printed campaigns offer a limited interaction surface. Connecting artwork to an AR experience requires a clear discovery flow, stable image anchoring, and predictable camera-session behavior.

What I built

  1. 01Built native UIKit campaign discovery and RealityKit product previews that lead into an ARKit image-tracking experience.
  2. 02Used poster width to calibrate scene scale, and tied camera-session ownership and interruption recovery to the screen lifecycle.
  3. 03Implemented an on-device poster library and three compiled-in scene choices, with a TypeScript/Hono campaign service and bundled offline content.

The engineering decision

Anchor a scene to known artwork and its measured width. Keep camera frames and poster images on device, and bundle campaign content so the demo remains useful offline.

The result

Demonstrates a complete native discovery-to-camera product flow, combining 3D interaction, physical calibration, and session lifecycle management.

Demo & verification

Product captures are from Simulator, not a live camera AR session. The LUMA camera preview was confirmed on iPhone; imported-poster recognition, alignment, and scene interaction still need hardware verification.

Swift / iOSProject 07
Personal Money Tracker monthly overview with synthetic iOS Simulator transactions
Swift / iOS

01 / 04 · Monthly overview

Full size

Income, expenses, balance, and recent transactions using synthetic demo records.

iOS Developer & Product Designer

Personal Money Tracker

Make everyday money tracking easy to keep up with.

A focused iOS app for income, expenses, and transfers. Quick IDR entry, searchable transactions, a dedicated Grocery category, receipt OCR, and CSV export make everyday records easier to capture and review.

  • Quick IDR entry and dedicated Grocery tracking
  • Local SwiftData records with search and CSV export
  • Receipt OCR with review before saving

SwiftData

Local transaction storage

CSV

Portable records

SwiftSwiftUISwiftDataVisionVisionKitLocalAuthentication
iOS prototype
Explore the case study

The problem

Daily tracking becomes difficult when entry is slow and categories are too broad. Grocery and household essentials need their own view, while imported receipt data needs review before it becomes a saved transaction.

What I built

  1. 01Built a SwiftUI transaction workflow with an IDR keypad, monthly summaries, searchable history, editable details, and separate transfer handling.
  2. 02Used SwiftData for local persistence and Vision/VisionKit for receipt text extraction followed by a user review step.
  3. 03Added CSV export, a Share Extension with App Group draft handoff, and optional device authentication through LocalAuthentication.

The engineering decision

Keep records local and make extraction a draft, not an automatic financial entry. Users review the merchant, amount, date, and category before saving OCR results.

The result

Turns day-to-day transactions into a searchable local record, with clearer grocery spending and a quick path from entry to monthly review.

Demo & verification

Simulator build and the Home, history, Grocery detail, and Quick Add screens were verified in the documentation session using synthetic transactions. OCR and Share Extension were implemented but not interactively verified in that session.

Open to engineering opportunities

Looking for someone who connects AI to real products?

My primary focus is applied AI. I’m also open to iOS developer roles, with hands-on SwiftUI, UIKit, and native app projects. Let’s talk about what your team is building.

Start a conversation