Projects

Things I've built

Selected projects, side experiments and open-source work.

AI-powered Grafana app plugin that generates dashboards from natural-language prompts.

Built an AI-powered Grafana app plugin that generates complex dashboards from natural-language prompts, eliminating hand-authored panel JSON; architected as a React/TypeScript frontend, secure Go proxy protecting API credentials, and a headless Python/FastAPI agent. Orchestrated multi-step LLM workflows with LangGraph and PydanticAI, using Model Context Protocol (MCP) servers to autonomously discover OpenSearch data sources and write dashboards directly to Grafana. Engineered low-latency WebSocket token streaming to the browser plus a database-backed config layer with hot-swappable LLM providers (OpenAI, Anthropic, Ollama) and PostgreSQL-persisted conversation history.

ReactTypeScriptGoFastAPILangGraphPydanticAIMCPOpenSearch
View details

Conversational agent letting scientists search NASA Earth-observation datasets in plain English.

Built a conversational agent (FastAPI, Chainlit, LangGraph, PydanticAI) that lets scientists search and download NASA Earth-observation datasets in plain English, using local LLMs and embeddings via Ollama to translate ambiguous prompts into precise STAC search filters. Designed a dual-database retrieval architecture — PostgreSQL + pgvector for auth and conversational state recall, Neo4j for relationship-aware semantic catalog retrieval — with a real-time Mapbox panel over WebSockets visualizing spatial queries and dataset heatmaps. Containerized the backend with Docker Compose, integrating NASA Earthdata OAuth for secure asset downloads and Logfire for end-to-end agent observability.

FastAPIChainlitLangGraphPydanticAIpgvectorNeo4jDocker
View details

Time-series pipeline forecasting short-horizon price movement with stacked LSTM networks.

Automated slow, emotion-driven manual trading by engineering a time-series pipeline (Python, TensorFlow/Keras) that cleans OHLCV market history, derives technical-indicator features, and trains stacked LSTM networks to forecast short-horizon price movement. Implemented a rule-based execution layer converting model forecasts into buy/sell/hold signals, backtested against held-out historical data before deployment.

PythonTensorFlowKerasLSTM
View details

LoRA-fine-tuned Gemma model generating stylistically coherent Nepali verse.

Curated and preprocessed a corpus of historic Nepali poems (Devanagari script), then fine-tuned Google Gemma with Unsloth using parameter-efficient LoRA adapters on a single consumer GPU. Produced a model generating stylistically coherent Nepali verse from short prompts, demonstrating practical low-resource-language adaptation of open-weight LLMs.

LLM Fine-TuningLoRAUnslothGemma
View details