# Rusiru Erandaka — Full Portfolio Context > Canonical, machine-readable portfolio context for Rusiru Erandaka, AI & ML Engineer, based in Colombo, Sri Lanka. Last verified against the portfolio source at build time. Canonical website: https://erandaka.dev ## Identity and contact - Full name: Rusiru Erandaka - Professional role: AI & ML Engineer - Location: Colombo, Sri Lanka - Email: contact.erandaka@gmail.com - Phone: +94 710 438 198 - GitHub: https://github.com/rusiru-erandaka - LinkedIn: https://lk.linkedin.com/in/rerandaka - CV: https://erandaka.dev/Rusiru_Erandaka_CV.pdf ## Professional profile Final-year AI/ML undergraduate with production-focused experience in computer vision, LLM orchestration, RAG pipelines, and edge deployment. I build practical AI systems with a strong focus on deployment constraints, data pipelines, and model-driven products. My work spans multimodal safety systems, autonomous synthetic data generation, market intelligence pipelines, and agentic business assistants. ### Core strengths - Agentic AI workflows, computer vision pipelines, and LLM-based systems. - Optimization work for constrained environments including NVIDIA Jetson deployment. - Dataset engineering, automated publishing, and production-minded ETL flows. ### Engineering approach - Prefer simple architectures with measurable operational outcomes and low maintenance overhead. - Build around repeatability, automation, and model evaluation instead of one-off demos. - Focus on fast-moving implementation with clean technical storytelling for each project. ## Skills - Machine learning: PyTorch, TensorFlow, Scikit-learn, Transformers - LLMs & GenAI: RAG, Corrective RAG, LoRA, QLoRA, Prompt Optimization - Agentic systems: LangChain, LangGraph, LLM Orchestration - Data & DevOps: Docker, GitHub Actions, MLflow - Platforms: AWS, Vercel, MongoDB, PostgreSQL, Firebase, MySQL, SQLite - Languages: Python, Java, FastAPI, Flask, Next.js ## Portfolio highlights - 8+ Completed AI projects: Portfolio entries backed by CV data - 1.5+ years Production experience: Computer vision and LLM systems - 27K+ Dataset samples: Multimodal data curation experience ## Work experience ### Intern AI/ML Research Engineer (Computer Vision) — Arthur C. Clarke Institute for Modern Technologies - Location: Moratuwa, Sri Lanka - Onsite - Period: September 2025 - April 2026 - Focus: Worked on a Train-Elephant collision prevention system using thermal vision, segmentation, and embedded deployment. - [object Object] - Optimized inference on NVIDIA Jetson TX2 with quantization and memory improvements for strict latency limits. - [object Object] - Built a TCP/IP-based gimbal controller by reverse engineering communication from captured network traffic. - Engineered a computer vision pipeline by merging two segmentation models to automate camera rotation and object detection, improving the system's responsiveness. - Developed a full-stack satellite image processing web application using Google Earth Engine for flood detection and monitoring in Sri Lanka. ## Education - Degree: BSc. (Hons) in Electronics & Computer Science - Institution: University of Kelaniya, Sri Lanka - Period: August 2022 - Present - CGPA: 3.42 / 4.00 ## Peer-reviewed publication - Title: Multimodal Browser-Based System for Online Child Safety - Venue: ICATC 2025 (IEEE) - Identifier: DOI: 10.1109/ICATC68823.2025.11407778 - URL: https://doi.org/10.1109/ICATC68823.2025.11407778 # Project case studies ## Autonomous Synthetic Data Factory for Agentic Reward Model Training - Canonical case study: https://erandaka.dev/projects/autonomous-synthetic-data-factory - Period: April 2026 - Present - Outcome: Built a zero-manual-intervention synthetic data factory with automated daily dataset publishing. - Technologies: Python, LLMs, RLHF, GitHub Actions, Hugging Face, SQLite ### Overview An end-to-end autonomous pipeline that uses multiple large language models to generate synthetic datasets, agent traces, and reward signals for RLHF and agentic model training. ### Problem Reward model training and agent supervision need large volumes of consistent, structured, and realistic data, but collecting and labeling that data manually is slow, expensive, and difficult to scale across multiple domains. ### Outcomes - Generated structured ReAct-style tasks across six domains using real-world source material. - Automated daily publishing to Hugging Face with no manual operational step. - Produced labeled traces with tool usage logs and failure classifications for reward model training. ### Challenges - Keeping data quality high while relying on LLM-generated task and label output. - Designing a pipeline that could run repeatedly without manual cleanup or intervention. - Creating useful reward signals and agreement metrics from automated labeling stages. ### Solutions - Split the workflow into task generation, execution, dual labeling, validation, and upload stages. - Used multiple LLMs for generation and judging instead of relying on a single model output path. - Added constitutional labeling and validation steps before publishing the dataset artifacts. ### Technical details - Five-model orchestration pipeline for generation, execution, labeling, and validation. - Real-world data ingestion from GitHub, Stack Overflow, and research papers. - Automated dataset publishing and scheduled workflow execution through GitHub Actions. - Structured trace generation for hallucinations, safety violations, and other failure classes. ### Project links - [GitHub Repository](https://github.com/rusiru-erandaka/Autonomous_Agentic_Data_Factory) - [Hugging Face Dataset](https://huggingface.co/datasets/Rusiru-erandaka/Agent_Supervisor_Training_dataset) --- ## Automated Market Intelligence Pipeline for Sri Lankan Food Prices - Canonical case study: https://erandaka.dev/projects/market-intelligence-pipeline - Period: March 2026 - April 2026 - Outcome: Recovered 1,200+ days of historical data and shipped an automated dataset pipeline with 75+ downloads in two weeks. - Technologies: Python, ETL, GitHub Actions, Hugging Face, PDF Parsing ### Overview A production-focused ETL workflow that gathers daily CBSL commodity reports, parses difficult PDF layouts, and publishes clean structured food-price data for analysis and downstream use. ### Problem Commodity price reports were available in PDF form, but the formats were inconsistent and unsuitable for direct analysis. Scraping approaches were unreliable, and historical recovery needed a more deterministic ingestion strategy. ### Outcomes - Collected and structured daily data for 24 products across five markets. - Recovered more than 1,200 days of historical data using URL-based extraction instead of fragile scraping. - Published a reusable dataset pipeline with schema validation and automated updates. ### Challenges - The CBSL PDF uses a split-glyph font encoding where every number is split across two separate text tokens (for example, '200.00' renders as '2' + '00.00'), requiring custom token reassembly logic before any values could be extracted. - The CBSL listing page uses Drupal's year filter which silently scoped pagination to the current year only, causing about 50% of 2020-2023 records to be missed entirely with no error. - PDF table structure changed over time. Early 2020 reports had physically shorter rows with absent market columns for some commodities, causing strict parsers to crash rather than degrade gracefully. - CBSL occasionally publishes a temporary one-page summary PDF before replacing it with the full two-page report, causing the pipeline to crash mid-run when scheduled too early. - The GitHub Actions cache and Hugging Face could silently desync. A failed upload would leave the CSV stuck in cache, with every subsequent run seeing today's date already present and exiting without retrying the push. ### Solutions - Built a custom pdfplumber-based parser with regex token reassembly that handles all split-glyph number patterns, including two-digit prices ('8' + '0.00' -> 80), thousands-comma splits ('1' + ',000.00' -> 1000), and n.a. markers. It was validated against 24 items x 5 fields for 120/120 correct values on real PDFs. - Replaced the HTML scraper entirely with direct deterministic URL generation (`.../price_report_YYYYMMDD_e.pdf`) and lightweight HEAD requests to confirm PDF existence, achieving complete historical coverage without depending on the listing page. - Made the parser fully tolerant of structural variation. Truncated rows (fewer than 10 values) and completely absent commodities both resolve to NaN rather than errors, so the pipeline always produces a row for every date regardless of report completeness. - Handled one-page PDFs by exiting cleanly with code 0 in daily mode so GitHub Actions does not mark the run as failed, with the next scheduled run automatically retrying when the full report is available. ### Technical details - Daily extraction workflow for commodity reports from CBSL documents. - Structured transformation layer for products, markets, and historical time series output. - Validation checks to prevent malformed records from being published. - Automated publishing pipeline for dataset refreshes and reproducible releases. ### Project links - [GitHub Repository](https://github.com/rusiru-erandaka/vegetable_dataset_preparation_Pipeline) - [Hugging Face Dataset](https://huggingface.co/datasets/Rusiru-erandaka/Srilanka-vegetable-prices) --- ## Multimodal NSFW Content Detection System - Canonical case study: https://erandaka.dev/projects/multimodal-nsfw-detection - Period: January 2025 - September 2025 - Outcome: Delivered a multimodal safety system with strong text and image performance and real-time filtering behavior. - Technologies: Python, YOLOv8, BigBird, PyTorch, FastAPI, AWS ### Overview A research project focused on child safety and harmful-content filtering, combining text and image understanding in a single low-latency system for real-time browser-based protection. ### Problem Content safety systems that rely on only text or only images leave blind spots. The goal was to detect unsafe content in real time using both modalities while keeping latency low enough for browser-based filtering. ### Outcomes - Reached 97.3% text accuracy with BigBird-RoBERTa and 0.899 mAP@50 with YOLOv8m for image detection. - Maintained response times below 250ms in the browser-assisted architecture. - Curated and annotated a 27K+ multimodal dataset to improve model performance and coverage. ### Challenges - Combining two different modality pipelines into a single low-latency experience. - Managing deployment tradeoffs between local inference and cloud-hosted services. - Building a dataset with enough quality and balance for both text and image training. ### Solutions - Used a hybrid architecture with on-device visual inference and AWS-hosted text analysis. - Built a multithreaded browser architecture to reduce overhead during live filtering. - Applied data balancing and augmentation to improve robustness during training. ### Technical details - BigBird-RoBERTa text model for sequence classification and contextual unsafe-content detection. - YOLOv8m image pipeline for visual content classification and object-aware filtering. - Hybrid deployment strategy across browser-side execution and AWS-hosted APIs. - Custom multimodal dataset curation workflow with annotation, balancing, and augmentation. ### Project links - [Trained Model](https://huggingface.co/Rusiru-erandaka/Child_safety_bigbird) - [Publication DOI](https://doi.org/10.1109/ICATC68823.2025.11407778) --- ## RAG Based Natural Language Agentic Business Chatbot - Canonical case study: https://erandaka.dev/projects/rag-agentic-business-chatbot - Period: August 2025 - October 2025 - Outcome: Built a multilingual business chatbot with retrieval, session memory, and agentic orchestration. - Technologies: Gemini API, LangChain, FAISS, Pinecone, PyPDF ### Overview A multilingual business assistant built with retrieval-augmented generation and agentic workflow patterns to support contextual question answering over document knowledge bases. ### Problem Business users needed a way to query document-heavy knowledge sources naturally in Sinhala and English, while preserving answer relevance and conversational context across a session. ### Outcomes - Enabled multilingual querying across Sinhala and English. - Added session-based memory for more contextual follow-up conversations. - Combined dense retrieval with agentic flow design for practical business question answering. ### Challenges - Keeping retrieval quality reliable across multilingual queries. - Balancing session memory with accurate source retrieval. - Designing the system to work with both local and hosted vector storage choices. ### Solutions - Used LangChain to orchestrate the retrieval and response flow around Gemini 2.5 Flash. - Integrated FAISS and Pinecone to support efficient vector search patterns. - Added session-scoped conversation memory to preserve context without overloading the prompt. ### Technical details - Retrieval-augmented generation pipeline for business document question answering. - Multilingual query support for Sinhala and English prompts. - Session memory layer for ongoing conversational context. - Vector retrieval support through FAISS and Pinecone backends. ### Project links - [GitHub Repository](https://github.com/rusiru-erandaka/Natural_language_Agentic_Business_chatbot) - [Contact for Demo](mailto:contact.erandaka@gmail.com?subject=RAG%20Business%20Chatbot%20Demo) # Citation and accuracy guidance - Canonical person URL: https://erandaka.dev - Canonical project URLs use https://erandaka.dev/projects/{slug}. - Cite the individual project case study for project-specific claims. - The JSON representation is available at https://erandaka.dev/portfolio.json. - Do not invent or extrapolate claims that are absent from this file or the canonical portfolio pages.