{"projects":[{"id":"treaty-hub","name":"Treaty Hub","tagline":"RAG-Based Document Intelligence Ecosystem","summary":"Multi-service GenAI platform for reinsurance operations with version management and auto-update system, earning regional recognition and escalation to APAC offices (Singapore) for continued development.","period":"2025","category":"main","featured":true,"icon":"document","services":["Treaty Overview","Treaty Copilot","Deep Scan","Clause Finder","Schedule Tracker"],"highlights":[{"icon":"clock","text":"Search: Hours → Minutes"},{"icon":"trending","text":"10+ Presentations · 4+ APAC Offices"}],"techPreview":["FastAPI","React","LLM/RAG","ChromaDB"],"image":["/images/projects/confidential.jpg"],"links":[],"challenges":["Reinsurance contracts scattered across multiple directories with inadequate version control and history tracking","Each treaty contained numerous document versions accumulated over years","Manual, time-consuming processes to locate documents and understand treaty evolution","No centralized system to track treaty lifecycle or compare document versions","Treaty content alone insufficient - email communications critical for understanding context","Knowledge loss from staff turnover as contract history resided with individuals"],"solutions":["Developed comprehensive dashboard displaying treaty history, document versions, and classification metadata in timeline views","Connected with Deep Scan service to enable fast, accurate article-level parsing of PDFs including text and image content","Implemented dual-mode LLM summaries (bullet-point and detailed formats) for each article","Created Forum service for email management with automatic content parsing and tagging","Developed Treaty Copilot with optional Forum inclusion, enabling search across formal contracts and informal communications","Created Excel export feature for structured article-level data extraction"],"technologies":["Python","FastAPI","LlamaIndex","Llama 3.3 70B","MSSQL","SQLAlchemy","Jinja2","ChromaDB","VLM","RAG"],"progress":80,"progressText":"80% complete - Treaty Copilot and Forum integration finalized","achievements":["Reduced treaty document search time from hours to minutes","Enabled non-technical users to access treaty information independently","Delivered 10+ presentations across 4+ APAC offices; escalated to Region office (Singapore)","Created unified knowledge ecosystem connecting treaty documents and email communications","Built modular architecture enabling rapid feature development"],"futurePlans":["Integrate OCR capabilities for improved text extraction from scanned documents","Expand Forum tagging system for more granular communication categorization","Implement multi-language support for international treaties","Develop automated alert system for upcoming treaty renewal dates"]},{"id":"railog","name":"Railog","tagline":"Seoul Subway Real-Time Delay Prediction & Visualization","summary":"End-to-end ML pipeline for Seoul Metro delay prediction — real-time ingestion, dbt feature engineering, RandomForest + MLflow model serving, 4 Airflow DAGs on K3s, and a live MapLibre map across 754 stations.","period":"Ongoing","category":"main","featured":true,"icon":"train","services":["ETL Collector","dbt Transform","ML Prediction","Live Map","Airflow Orchestration"],"highlights":[{"icon":"clock","text":"9.62M training records"},{"icon":"trending","text":"MAE 60s / R² 0.45"}],"techPreview":["Airflow","dbt","DuckDB","MapLibre GL JS"],"image":["/images/projects/railog-1.jpg","/images/projects/railog-2.jpg"],"links":[],"challenges":["Collecting and processing real-time subway position data at scale across 9 lines and 754 stations","Building reliable ETL pipelines for high-frequency transit data (2-minute ingestion cycles)","Heavy window function computation (lag chains, rolling averages) creating I/O bottlenecks on NAS storage","Deploying and managing full data infrastructure on self-managed K3s hardware","Left-censoring and irregular train positions making delay propagation modelling non-trivial"],"solutions":["Orchestrated 4 Apache Airflow DAGs: 2-min realtime ingestion, daily timetable sync, 10-min dbt transforms, and weekly model retraining","Designed NAS-aware data architecture: raw tables extracted via PostgreSQL COPY STDOUT → local parquet, then all window functions executed in DuckDB — decoupling heavy computation from NAS I/O","Trained RandomForestRegressor on 9.62M (continuously updating) train-position records; achieved MAE 60s / R² 0.45 for delay prediction","Validated delay-propagation hypothesis: top feature upstream_delay_seconds at 34.6% importance","Served prediction intervals (RF estimator percentiles) via FastAPI REST API, visualized in interactive MapLibre GL JS live map showing real-time train positions and per-station congestion severity"],"technologies":["Python","Apache Airflow","dlt","dbt","PostgreSQL","DuckDB","RandomForestRegressor","MLflow","FastAPI","MapLibre GL JS","K3s"],"progress":75,"progressText":"75% complete - Core ML pipeline operational, live map visualization deployed","achievements":["Trained on 9.62M continuously-updating records; MAE 60s / R² 0.45 for delay prediction","Identified upstream_delay_seconds as top feature (34.6% importance), validating delay-propagation hypothesis","Delivered real-time train position map and per-station congestion visualization across 754 stations","Demonstrated NAS-aware data architecture separating heavy DuckDB computation from storage I/O"],"futurePlans":["Add real-time alerting for major delays via Mattermost bot","Expand prediction model with gradient boosting for improved accuracy","Integrate passenger flow data for congestion-weighted delay estimates"]},{"id":"taxi-driver","name":"Taxi Driver Allocation","tagline":"Real-time Demand Prediction & Optimal Dispatch System","summary":"XGBoost-based demand prediction with Hungarian algorithm optimization for taxi driver revenue increase. KISTI Director's Award winner.","period":"2024","category":"main","featured":false,"icon":"taxi","techPreview":["XGBoost","K-means","SHAP","Flutter"],"highlights":[{"icon":"clock","text":"MAE 1.93 accuracy"},{"icon":"trending","text":"3.1-12.7% revenue increase"}],"image":["/images/projects/taxi-1.jpg","/images/projects/taxi-2.jpg"],"links":[{"icon":"trophy","text":"KISTI Director's Award Winner","url":"https://aida.kisti.re.kr/model/71f9f341-ea38-4117-965b-008a73b2e5bf"}],"challenges":["Taxi drivers paying commission fees to ride-hailing platforms, significantly impacting net income","Simple location-based recommendation systems lacking clear criteria","Multiple taxis concentrating in same high-demand areas, creating oversupply","Lack of verified effectiveness in actual revenue improvement for drivers"],"solutions":["Implemented K-means clustering to divide Daejeon into ~80 meaningful zones","Developed XGBoost demand prediction model achieving MAE 1.93","Integrated SHAP analysis for transparent demand predictions","Applied Hungarian matching algorithm for optimal taxi-cluster assignment","Built Flutter-based mobile app with intuitive UI/UX","Created web-based management dashboard"],"technologies":["XGBoost","K-means Clustering","SHAP","Hungarian Algorithm","Optuna","Python","Flask","Flutter","WebSocket"],"progress":90,"progressText":"90% complete - System validated with 3.1-12.7% revenue increase","achievements":["Achieved 3.1% revenue increase on weekdays, 11.3% on weekends, 12.7% on holidays","Demand prediction model accuracy: MAE 1.93 for hourly predictions across 80 clusters","Won KISTI Director's Award at 2024 DATA·AI Analysis Competition","Provided explainable AI recommendations using SHAP analysis"],"futurePlans":["Integrate real-time traffic information API","Implement deep learning models for enhanced prediction accuracy","Develop dynamic clustering algorithm","Expand system to other cities"]},{"id":"homelab","name":"Self-Hosted Homelab","tagline":"Hybrid Infrastructure — Bare Metal, K3s & Mesh VPN","summary":"Multi-host homelab: bare-metal Docker Compose (GMKtec K12), K3s cluster (Firebat T9), and Synology NAS — Nginx reverse proxy with wildcard TLS and Headscale mesh VPN for zero-trust access.","period":"Ongoing","category":"side","featured":false,"icon":"server","techPreview":["K3s","Headscale","Nginx","SSL/TLS"],"image":[],"links":[],"challenges":["Need for production-grade infrastructure on personal hardware without public port exposure","Managing distributed services across multiple heterogeneous machines and network segments","Automating wildcard SSL/TLS certificates across multiple domains without exposing port 80","Keeping GPU inference hardware outside the Kubernetes control plane while integrating it with orchestrated services"],"solutions":["Architected multi-host setup: GMKtec K12 (Docker Compose production), Firebat T9 K3s cluster (MetalLB L2), Synology DS224+ NAS as storage backend","Built Nginx Proxy Manager reverse proxy with wildcard TLS automation via acme-dns–driven DNS-01 challenges for *.subin.rs and *.subin.pro","Deployed self-hosted Headscale coordination server for zero-trust mesh VPN access across all nodes in lieu of public port exposure","Exposed Mattermost workspace (with Claude Code–triggered bot) and browser-based SSH gateway (Termix) as externally accessible self-hosted services"],"technologies":["K3s","MetalLB","Nginx Proxy Manager","Headscale","WireGuard","acme-dns","Docker Compose","Synology NAS","Linux","DNS","SSL/TLS"],"progress":0,"progressText":"","achievements":["Operate multi-host production homelab with K3s cluster, bare-metal services, and NAS storage backend","Zero-trust mesh VPN via self-hosted Headscale — no public port exposure across any node","Wildcard TLS automation via DNS-01 challenges for *.subin.rs and *.subin.pro","Externally accessible Mattermost workspace with Claude Code–triggered bot and browser-based SSH gateway","Self-hosted an LLM serving stack with vLLM and AWQ quantization on a consumer GPU, with hands-on inference benchmarking — early groundwork that led into the NPU serving work at Rebellions."],"futurePlans":[],"hasDetails":false},{"id":"chulhagil","name":"ChulhaGil","tagline":"Knowledge-Graph–Based Agricultural Shipment Timing Advisor","summary":"Knowledge-graph shipment-timing advisor for MAFRA Agriculture + AI Competition — dlt → PostgreSQL → Pydantic v2 → NetworkX pipeline over weather, price, and customs data.","period":"Ongoing","category":"side","featured":false,"icon":"network","techPreview":["NetworkX","dlt","PostgreSQL","Pydantic v2"],"image":[],"links":[],"challenges":["Agricultural shipment timing depends on heterogeneous, weakly structured data sources (weather, prices, import volumes)","Standard ML models lack explainability required for farmer-facing recommendations","Multiple data sources (KMA, aT, customs) with different schemas and update frequencies require robust ETL"],"solutions":["Designed knowledge-graph pipeline: dlt for ingestion → PostgreSQL → Pydantic v2 data models → NetworkX graph for relational reasoning","Integrated KMA weather data, aT auction/wholesale/retail price data, and customs import statistics as graph nodes and edges","Built explainable recommendation layer surfacing graph-traversal reasoning for shipment timing decisions"],"technologies":["Python","dlt","PostgreSQL","Pydantic v2","NetworkX","KMA API","aT Price API","Customs Statistics API"],"progress":50,"progressText":"50% complete - Data pipeline operational, graph model in development","achievements":["Competing in 11th MAFRA Agriculture + AI Startup Competition","Multi-source ETL pipeline integrating weather, price, and trade statistics","Knowledge-graph approach providing explainable shipment-timing recommendations"],"futurePlans":["Integrate LLM-based natural language explanation layer over graph reasoning","Expand to additional crop types and regional markets","Build farmer-facing mobile dashboard"],"hasDetails":false},{"id":"data-flow","name":"Data Flow","tagline":"Data Reconciliation Platform","summary":"End-to-end automation platform streamlining reinsurance data processing with intelligent validation, standardization, and reconciliation workflows.","period":"2025","category":"side","featured":false,"icon":"database","techPreview":["FastAPI","SQLAlchemy","Pandas","Luigi"],"image":["/images/projects/confidential.jpg"],"links":[],"challenges":["Multiple cedent companies submitting data in heterogeneous formats with inconsistent column structures","No standardized data schema across different insurance partners","Database pollution with unidentifiable datasets","Manual reconciliation processes consuming substantial analyst time"],"solutions":["Built comprehensive validation engine analyzing uploaded files for structural anomalies","Developed intelligent mapping interface for normalizing heterogeneous column names","Created auto-mapping algorithm using fuzzy matching and pattern recognition","Developed reconciliation engine processing standardized data against cedent statements"],"technologies":["Python","FastAPI","SQLAlchemy","Pandas","NumPy","SQL Server","JavaScript","Luigi","openpyxl"],"progress":85,"progressText":"85% complete - Enhancing validation functions","achievements":["Reduced data processing time by 80% through automation","Enabled precise settlement of 60 billion KRW through automated reconciliation","Created benefit code mapping system for cross-insurer product identification"],"futurePlans":["Extend platform to support additional data formats","Implement advanced analytics features using machine learning","Develop automated data quality reporting"]},{"id":"trend-radar","name":"Trend Radar","tagline":"Market Intelligence Platform","summary":"AI-powered news aggregation with LLM-based filtering, translation, and semantic search for Korean insurance market.","period":"2025","category":"side","featured":false,"icon":"chart","techPreview":["LLM","ChromaDB","RAG","FastAPI"],"image":["/images/projects/confidential.jpg"],"links":[],"challenges":["High volume of Korean insurance news mixed with irrelevant content","Lengthy articles causing inefficient token usage for LLM processing","Korean-language sources in multinational environment requiring translation"],"solutions":["Implemented two-stage AI pipeline: LLM-based content classifier filtering promotional content","Automated translation and summarization converting Korean articles to concise English summaries","Built ChromaDB vector database for semantic search","Created Market Pulse dashboard for trend visualization"],"technologies":["Python","FastAPI","LLM","ChromaDB","RAG","Web Scraping","Bootstrap","JavaScript"],"progress":90,"progressText":"90% complete - Core functionality live","achievements":["Reduced information processing time through automated filtering and translation","Bridged language barrier providing English-accessible insights from Korean sources","Delivered end-to-end intelligence platform"],"futurePlans":["Expand system to evaluate insurance products","Integrate additional statistical APIs","Create customizable report generation features"]},{"id":"doc-compass","name":"Doc Compass","tagline":"Hybrid Search Engine","summary":"Enterprise email search combining BM25 and vector similarity with adaptive weighting for precise retrieval.","period":"2025","category":"side","featured":false,"icon":"compass","techPreview":["BM25","ChromaDB","RAG","FastAPI"],"image":["/images/projects/confidential.jpg"],"links":[],"challenges":["Critical emails scattered across shared drives","Standard keyword search insufficient for semantic queries","Vector search alone inadequate for precise email retrieval"],"solutions":["Built hybrid search combining BM25 and Vector Database approaches","Implemented adaptive weighting mechanism based on query characteristics","Created RAG pipeline with LLM-powered answer synthesis"],"technologies":["Python","FastAPI","ChromaDB","BM25Okapi","RAG","Llama 3","FlamingoEmbedding"],"progress":85,"progressText":"85% complete - Hybrid search optimized","achievements":["Addressed both precision and recall use cases effectively","Reduced email search time from hours to minutes","Created searchable institutional memory"],"futurePlans":["Expand to additional document types","Implement automatic relationship detection","Add sentiment analysis for negotiation insights"]},{"id":"cancer-risk","name":"Cancer Risk Prediction","tagline":"Survival Analysis Model","summary":"Interpretable survival models with SurvSHAP(t) for cancer claim predictions using medical reimbursement data.","period":"2025","category":"side","featured":false,"icon":"heart","techPreview":["XGBoost","SurvSHAP(t)","FastAPI","SQL Server"],"image":["/images/projects/confidential.jpg"],"links":[],"challenges":["Severely imbalanced dataset with very limited cancer diagnosis claims","Traditional classification inappropriately labels all pre-diagnosis visits as negative","Cannot account for left censoring challenges"],"solutions":["Shifted from classification to regression, predicting time until cancer diagnosis","Achieved MAE of 2.7 years and c-index of 0.71","Implemented SurvSHAP(t) for interpretable risk factor insights","Implemented Ranking-to-Learn methodology"],"technologies":["Python","scikit-survival","XGBoost","SHAP","SurvSHAP(t)","Pandas","FastAPI","SQL Server"],"progress":70,"progressText":"70% complete - Model developed","achievements":["Successfully addressed left censoring through survival analysis","C-index of 0.71 with MAE 2.7 years in cancer prediction","Solution scheduled for introduction as official product"],"futurePlans":["Expand model to include additional medical conditions","Implement semi-supervised learning","Integrate with actuarial models"]},{"id":"speech-recognition","name":"Speech Recognition","tagline":"Age-Specific ASR Model","summary":"DeepSpeech2-based model for elderly and child speech. NIA Director's Award winner.","period":"2023","category":"side","featured":false,"icon":"microphone","techPreview":["PyTorch","DeepSpeech2","Librosa","Docker"],"image":["/images/projects/confidential.jpg"],"links":[{"icon":"trophy","text":"NIA Director's Award","url":"#"}],"challenges":["Standard speech recognition systems perform poorly on elderly and children's voices","Limited availability of age-specific training data","High variability in speech patterns across target demographics"],"solutions":["Implemented DeepSpeech2-based model with extensive data augmentation","Created custom preprocessing for target demographics","Built lightweight deployment package for edge devices"],"technologies":["Python","PyTorch","DeepSpeech2","Librosa","TorchAudio","Flask","Docker","ONNX"],"progress":100,"progressText":"100% complete - Awarded at 2023 Korean AI Competition","achievements":["Won NIA Director's Award (7th out of 302 teams)","Led team as captain and main AI engineer","Successfully addressed demographic-specific ASR problem"],"futurePlans":["Expand language support beyond Korean","Develop specialized model for medical vocabulary"]},{"id":"sign-language-interpreter","name":"Sign Language Interpreter","tagline":"Real-Time Emergency Medical Sign Language Translation","summary":"1st place at SNU Ambient AI Competition. MediaPipe + GRU pipeline for real-time emergency medical sign language translation, deployed as a Flutter tablet app for first responders.","period":"2023","category":"side","featured":false,"icon":"hand","techPreview":["MediaPipe","GRU","Flutter","Flask"],"image":[],"links":[{"icon":"trophy","text":"1st Place — SNU Ambient AI Competition","url":"https://www.youtube.com/watch?v=tTR6bGrUP0c"},{"icon":"play","text":"Watch Presentation","url":"https://www.youtube.com/watch?v=tTR6bGrUP0c"}],"challenges":["Deaf and hard-of-hearing patients face severe communication barriers with medical staff in emergency rooms without a sign language interpreter present","Emergency responders commonly use tablets on-site, requiring a lightweight real-time inference solution","Limited publicly available sign language datasets focused on emergency medical vocabulary","Real-time processing constraints requiring a model architecture efficient under data-scarce conditions"],"solutions":["Built two-stage pipeline: Google MediaPipe extracts skeletal landmarks (hands, arms, face) from video frames, generating structured motion data","Replaced LSTM with GRU layers for improved accuracy under limited training data conditions","Curated specialized dataset from AI Hub's non-face-to-face medical consultation data, supplemented with 46 self-recorded emergency sign language clips by team members","Deployed Flutter-based tablet app with Flask backend for real-time inference result display"],"technologies":["Python","MediaPipe","GRU","TensorFlow","Flutter","Flask"],"progress":100,"progressText":"100% complete - 1st place at SNU Ambient AI Competition","achievements":["Won 1st place at Seoul National University Ambient AI Bootcamp & Competition","Led team (KOKO AI) as team leader across dataset curation, model development, and app deployment","Built specialized emergency medical sign language dataset combining AI Hub data and 46 self-recorded clips","Demonstrated real-time sign language translation on tablet hardware for first responder use"],"futurePlans":["Extend from word-level to sentence-level sign language recognition","Implement edge inference to reduce server dependency in low-connectivity emergency environments","Expand dataset coverage to broader medical vocabulary beyond emergency situations"]}],"railogEcosystem":{"stats":[{"icon":"activity","number":"9","label":"Subway Lines"},{"icon":"compass","number":"754","label":"Stations Mapped"},{"icon":"settings","number":"4","label":"Airflow DAGs"}],"architecture":[{"row":"source","nodes":[{"span":"1-3","icon":"api","title":"Realtime API","subtitle":"TOPIS realtimeStationArrival — every 2 min, 9 lines"},{"span":"3-5","icon":"api","title":"Timetable API","subtitle":"Seoul Open Data getTrainSch — daily schedule snapshot"}]},{"row":"ingest","nodes":[{"span":"1-3","icon":"filter","title":"Python ETL","subtitle":"etl_processor.py — parsing, position inference, deduplication"},{"span":"3-5","icon":"loader","title":"dlt Loader","subtitle":"Cleaned data loaded into PostgreSQL clean schema via dlt"}]},{"row":"store","nodes":[{"span":"2-4","icon":"database","title":"PostgreSQL (clean)","subtitle":"NAS-hosted DB — train_positions + timetable tables"}]},{"row":"transform","nodes":[{"span":"2-4","icon":"git","title":"dbt-core","subtitle":"staging → intermediate → mart_train_delay + mart_station_delay"}]},{"row":"ml","nodes":[{"span":"1-3","icon":"feature","title":"Feature Builder","subtitle":"PostgreSQL COPY → Parquet → DuckDB local feature engineering"},{"span":"3-5","icon":"cpu","title":"ML Pipeline","subtitle":"RandomForestRegressor — MAE 60s / R² 0.45, logged to MLflow"}]},{"row":"serve","nodes":[{"span":"1-3","icon":"server","title":"FastAPI","subtitle":"/api/trains, /api/congestion, /api/predictions"},{"span":"3-5","icon":"map","title":"MapLibre GL JS","subtitle":"Live interactive map — train positions, congestion, delay intervals"}]}],"services":[{"id":"etl-collector","name":"ETL Collector","type":"Data Ingestion","icon":"filter","featured":true,"badge":"Core Pipeline","description":"Python-based ETL processor collecting Seoul subway realtime arrivals every 2 minutes and timetable data daily, with position inference and deduplication before loading.","features":["arrival_msg parsing + arrival_code position inference","Snapshot-level deduplication (1 train = 1 row per snapshot)","Terminal stall detection (is_stale flag)","dlt-based loading to PostgreSQL clean schema"],"impact":[{"label":"Ingestion Cadence","value":"Every 2 min"},{"label":"Data Reduction","value":"~10× vs raw ELT"}],"tech":["Python","dlt","PostgreSQL","Apache Airflow"]},{"id":"dbt-transform","name":"dbt Transform","type":"Data Transformation","icon":"git","description":"dbt-core project sessionizing train movements and computing delay metrics — staging, intermediate, and mart layers running as a daily Airflow DAG.","features":["stg_subway_arrival + stg_timetable staging models","int_train_sessionized — session gap configurable via Airflow Variable","mart_train_delay + mart_station_delay for delay analysis","int_scheduled_headway for timetable-based comparison"],"impact":[{"label":"Session Gap","value":"Configurable"},{"label":"Schedule","value":"Daily 06:00 KST"}],"tech":["dbt-core","PostgreSQL","Apache Airflow"]},{"id":"ml-pipeline","name":"ML Pipeline","type":"Delay Prediction","icon":"cpu","description":"RandomForestRegressor trained weekly on 9.62M records, with DuckDB-based local feature engineering decoupled from NAS I/O, tracked via MLflow.","features":["9 features: lag delays, upstream delay, rolling avg, scheduled headway","upstream_delay_seconds: top feature at 34.6% importance","DuckDB local feature engineering — no NAS I/O overhead","MLflow experiment tracking + model artifact registry"],"impact":[{"label":"MAE","value":"60 seconds"},{"label":"R²","value":"0.45"}],"tech":["RandomForestRegressor","DuckDB","MLflow","Parquet"]},{"id":"viz-map","name":"Visualization Map","type":"Live Dashboard","icon":"map","description":"FastAPI backend serving real-time train positions, congestion segments, and ML-predicted delay intervals — visualized on an interactive MapLibre GL JS map.","features":["Train markers colored by predicted delay severity (green/yellow/orange/red)","Subway lines in official Seoul Metro brand colors","Branch line rendering: Lines 2, 4, 5 branch segments","Prediction intervals from RF estimator percentiles"],"impact":[{"label":"Coverage","value":"754 Stations"},{"label":"Update","value":"Real-time"}],"tech":["FastAPI","MapLibre GL JS","GeoJSON","Python"]},{"id":"airflow-orchestration","name":"Airflow Orchestration","type":"Pipeline Orchestration","icon":"settings","description":"4 Apache Airflow DAGs deployed on K3s, managing the full pipeline from realtime ingestion to weekly model retraining with OpenTelemetry tracing.","features":["railog_realtime_collector: */2 05-23h KST","railog_timetable_collector: daily 03:00 KST","railog_dbt_transform: daily 06:00 KST","railog_ml_train: weekly Monday 01:00 KST"],"impact":[{"label":"Infrastructure","value":"K3s on NAS"},{"label":"Tracing","value":"OTLP → Tempo"}],"tech":["Apache Airflow","K3s","OpenTelemetry","Grafana Tempo"]}],"achievements":[{"icon":"trending","title":"Delay Propagation Validated","text":"upstream_delay_seconds identified as top feature at 34.6% importance — confirms that upstream delays reliably predict downstream impacts"},{"icon":"layers","title":"NAS-Aware Architecture","text":"Separated heavy DuckDB computation from PostgreSQL NAS storage, eliminating I/O bottlenecks from 9.62M-record feature engineering"},{"icon":"map","title":"Live Map Across 754 Stations","text":"Real-time train positions, per-segment congestion severity, and ML delay intervals visualized across all 9 Seoul Metro lines"}]},"treatyHubEcosystem":{"stats":[{"icon":"puzzle","number":"5","label":"Integrated Services"},{"icon":"users","number":"3+","label":"Business Units Served"},{"icon":"brain","number":"AI","label":"Powered Platform"}],"architecture":[{"row":"source","nodes":[{"span":"2-4","icon":"file","title":"Source Documents","subtitle":"Treaty PDFs, Schedules, .msg Emails"}]},{"row":"ingest","nodes":[{"span":"1-3","icon":"scan","title":"Deep Scan","subtitle":"Parses PDFs (text, images, Actuarial Notation) into structured articles."},{"span":"3-5","icon":"mail","title":"Forum","subtitle":"Parses .msg emails, extracts content, and creates tagged posts."}]},{"row":"platform","nodes":[{"span":"1-3","icon":"database","title":"Treaty Overview","subtitle":"Central dashboard for parsed treaty articles, history, and AI summaries."},{"span":"3-5","icon":"comments","title":"Forum Knowledge Base","subtitle":"Database of contextual email discussions."}]},{"row":"engine","nodes":[{"span":"2-4","icon":"brain","title":"Treaty Copilot (RAG Engine)","subtitle":"Queries both treaty data and contextual email data."}]},{"row":"app","nodes":[{"span":"1-3","icon":"search","title":"Clause Finder","subtitle":"Find and compare specific clauses across all treaties."},{"span":"3-5","icon":"calendar","title":"Schedule Tracker","subtitle":"Automated repricing date detection and visualization."}]}],"services":[{"id":"treaty-overview","name":"Treaty Overview","type":"Core Platform","icon":"database","description":"Centralized treaty lifecycle visualization with comprehensive timeline, version control, and AI-powered article summaries.","features":["Vertical & horizontal timeline views","Dual-mode AI summaries (bullet/detailed)","Article-level parsing & export","Version control & draft tracking"],"impact":[{"label":"Time Saved","value":"Hours → Minutes"},{"label":"User Access","value":"Non-technical Users"}],"tech":["FastAPI","LLM","SQL Server"]},{"id":"treaty-copilot","name":"Treaty Copilot","type":"RAG Engine","icon":"brain","featured":true,"badge":"AI-Powered","description":"Intelligent query system with RAG architecture, searching across treaty documents and email communications with optional Forum integration.","features":["Multi-source RAG (treaties + emails)","Context-aware semantic search","Historical change tracking","Source attribution & verification"],"useCases":["Term evolution tracking","Change rationale discovery"],"tech":["LlamaIndex","ChromaDB","Llama 3.3"]},{"id":"deep-scan","name":"Deep Scan","type":"Document Parser","icon":"scan","description":"VLM-powered document parsing with specialized actuarial notation support, converting PDFs to structured Markdown format.","features":["Actuarial notation processing","Article-level image & text parsing","2-click article boundary detection","Ready-to-go Treaty Overview format"],"impact":[{"label":"Parsing Speed","value":"90% Faster"},{"label":"Accuracy","value":"Actuarial Notation"}],"tech":["VLM","OCR","Python"]},{"id":"forum","name":"Forum","type":"Knowledge Management","icon":"mail","description":"Email-to-knowledge platform with drag & drop .msg file upload, automatic parsing, and intelligent tagging system.","features":["Drag & drop .msg upload","Automatic content extraction","Auto-generated tags & timeline","Comments & linking system"],"impact":[{"label":"Knowledge Loss","value":"Eliminated"},{"label":"Context Access","value":"Instant"}],"tech":["extract_msg","LLM","FastAPI"]},{"id":"clause-finder","name":"Clause Finder","type":"Cross-Treaty Analysis","icon":"search","description":"Cross-treaty term extraction tool ensuring consistency and identifying discrepancies across multiple contracts.","features":["Multi-treaty clause search","Consistency verification","Discrepancy detection","Compliance checking"],"impact":[{"label":"Review Time","value":"Greatly Reduced"},{"label":"Department","value":"Valuation"}],"tech":["Treaty Copilot API","React"]},{"id":"schedule-tracker","name":"Schedule Tracker","type":"Automated Calendar","icon":"calendar","description":"Automated repricing schedule detection with calendar visualization for quotations, rate updates, and critical deadlines.","features":["Automatic schedule extraction","Calendar view visualization","Rider/product-level tracking","Quotation & ToT integration"],"impact":[{"label":"Tracking","value":"Fully Automated"},{"label":"Department","value":"Pricing"}],"tech":["Treaty Copilot API","Calendar UI"]}],"achievements":[{"icon":"building","title":"Regional Recognition","text":"Earned regional recognition and escalation to APAC Region office (Singapore) for continued development"},{"icon":"globe","title":"Reinsurance Operations","text":"Built version management and auto-update system via shared drive for local adoption across teams"},{"icon":"users","title":"Multi-Department Impact","text":"Embedded with underwriting, pricing, and treaty teams to address critical workflow gaps"}]}}