🟢 Open to work — remote or Philippines-based
I graduated in Information Technology but coding took a back seat for years — I spent time in office automation, content review, and sales work. Coding felt like a hobby with no real direction, so I stepped away.
Then AI arrived and everything changed. Suddenly I could build things that actually worked, learn while I built, and have an assistant that helped me push through the hard parts. That reignited everything. Now I spend my time building real AI tools — not just following tutorials, but shipping things I actually want to use.
I'm not a career developer with years of job history. I'm someone who came back to coding with a clear reason, and I think the projects show that.
I build AI-powered tools, automation pipelines, and multi-agent systems — apps where multiple LLMs collaborate, debate, and reason together in real time. I focus on making AI practical: local models via Ollama, cloud API integrations, real web apps, and developer templates that save time without burning your token budget.
🏠 Agent Meeting Room · Python Flask Ollama Claude API
A web app where you @mention AI agents to bring them into a live group chat. Runs any Ollama-compatible model — defaults use sub-8B models so it works on modest hardware, but swap in anything your GPU can handle. Includes structured debate mode (3 rounds), free-talk streaming via SSE, and Obsidian memory integration.
🎬 YT Shorts Autopilot · Python FFmpeg YouTube API
Automated YouTube Shorts upload pipeline — adds watermark, boosts audio, mixes BGM, then schedules 4 uploads per day at fixed times. Runs on PC startup via Task Scheduler. Uploads even while your PC is off.
🎮 Claude Code Solo Studio · Claude Code Godot Unity
A lightweight Claude Code template for solo game developers. 6 self-contained agents, 10 slash commands, token-efficient by design — nearly zero API spent on coordination. Inspired by Claude-Code-Game-Studios, rebuilt from scratch for solo devs on limited API budgets.
🛠️ Python Utils Toolkit · Python stdlib
15 production-ready utility modules — retry with backoff, async rate limiter, TTL cache, HMAC/crypto helpers, file I/O, and more. Pure Python, zero heavy dependencies. Built iteratively with 16 PRs merged — full test suite, versioned releases, and changelogs. Used internally across the trading bot, agent room, and automation pipelines.
📈 Crypto Futures Trading Bot · Python CCXT Claude API Ollama
Automated BTC/ETH/BNB/SOL futures trading bot running on GCP Singapore (asia-southeast1). Multi-timeframe analysis (4H trend → 1H confirm → 30M entry → optional 15M fine-entry). Ollama/Mistral pre-screens signals; Claude API makes final confirmation at 72% threshold. SL/TP orders placed directly on Binance for offline protection. Discord webhook alerts. Currently in live testing — repo private.
Small standalone scripts and utilities I've published.
| Gist | Description |
|---|---|
| 🎮 Discord Quest Completer v2 | Improved fork of aamiaa's script — completes all active quests, progress bar + ETA, auto-resume, color-coded console output |
| 🔧 Python Utilities | Retry decorator with exponential backoff + rate limiter — pure stdlib, no deps, used in trading bots and AI agents |
- Voice interfaces for local AI — Whisper STT + Piper/Kokoro TTS + Ollama (JARVIS-style assistant)
- Roblox game development — survival game with custom biome, zombie, and workbench progression systems
- Open source contribution patterns — bug triage, changelog discipline, and working with maintainer feedback across large codebases
- MCP (Model Context Protocol) server development — built a custom RavenMCP server connecting Claude Code to Roblox Studio
Python · Flask · Local LLMs · Ollama · Anthropic Claude API · Multi-agent systems · SSE streaming · FFmpeg · YouTube API · Claude Code · Godot · Game Dev Templates
📫 Reach me at rolly.calma.0217@gmail.com
I actively contribute to Python open source projects — fixing bugs, adding features, improving test coverage, and refactoring shared logic across AI, trading, and developer tooling repos.
My own python-utils-toolkit repo was built entirely through PRs — 16 merged across 15 modules — showing the same contribution workflow I use upstream: scoped commits, changelogs, and full test coverage.
Repos I've contributed to:
| Repository | What I worked on |
|---|---|
| TauricResearch/TradingAgents ⭐76k | Configurable news fetch parameters (applied by maintainer) · Renamed social_media_analyst → sentiment_analyst with backward-compat alias (applied by maintainer) · Code reviews on API key error handling and investment horizon feature |
| ccxt/ccxt ⭐42k | Fixed watch_orders message hash bug in GRVT exchange |
| langchain-ai/langchain ⭐136k | Fixed HuggingFaceEndpoint _stream and _astream not passing model=self.model — streaming always used the wrong default model |
| microsoft/autogen ⭐58k | Added encoding='utf-8' to open() calls in GAIA benchmark scripts to fix UnicodeDecodeError on non-English Windows |
| mem0ai/mem0 ⭐55k | Fixed parse_vision_messages crash when message content is a text-only list of parts · Fixed _update_memory() silently dropping all custom metadata on every update — now overlays changes onto full existing payload (sync + async) |
| crewAIInc/crewAI ⭐50k | Fixed class-level @persist() doc example · Fixed Bedrock streaming tool args always receiving {} · Replaced deprecated datetime.utcnow() across memory subsystem (4 files, 9 call sites) |
| run-llama/llama_index ⭐49k | Set inner OpenAI client max_retries=0 to prevent AuthenticationError from being silently retried |
| agno-agi/agno ⭐40k | Fixed Team never injecting LearningMachine context into its system prompt · Fixed Message.from_dict() not parsing JSON-stringified list content from Postgres · Replaced deprecated datetime.utcnow() in DecisionLogStore with timezone-aware alternative |
| openai/openai-python ⭐31k | Extended SensitiveHeadersFilter to redact API keys appearing as formatted strings in debug log messages |
| pydantic/pydantic-ai ⭐17k | Replaced deprecated asyncio.get_event_loop() with get_running_loop() in pydantic_graph — removes Python 3.12 deprecation warning |
| chroma-core/chroma ⭐16k | Fixed collection.modify(metadata=...) replacing entire metadata dict instead of merging · Narrowed bare # type: ignore to # type: ignore[misc] on tenacity @retry |
| ollama/ollama-python ⭐9.9k | Added client.exists() · Exposed __version__ and version() · Added Audio field to Message · Added __enter__/__aenter__ context manager support · Fixed convert_function_to_tool incorrectly listing default-value params in required |
| voxel51/fiftyone ⭐10k | Replaced deprecated datetime.utcnow() · Migrated brush import to label_studio_sdk · Added train_extra split to Cityscapes loader |
| apache/burr ⭐1.9k | Fixed stream_type type annotation to accept union of BaseModel types in streaming_action.pydantic() |
| camel-ai/oasis ⭐4.4k | Fixed KeyError: 'post_id' in rec_sys_personalized_with_trace — trace rows store post_id in info JSON, not as a top-level column |
| Tracer-Cloud/opensre ⭐3.6k | Unit tests ✅ merged · Shared helpers · Refactoring · Docs · Telegram integration guide · LLM providers reference · Snowflake/OpenObserve/OpenSearch tool tests · Early-exit integration validation · Post-signup onboarding page |
| Noble-Lab/casanovo ⭐185 | Fixed val_check_interval float/int · Improved README (grammar, badges, quick start, application area descriptions) |
| IN3PIRE/pn | Added !uptime command ✅ merged · Pinned dependencies ✅ merged |
| tecnolgd/repoScanner | Expanded language detection to 40+ file extensions ✅ merged |
