Ratoong
High-Performance Ski & Travel Engine
A comprehensive ski resort planning and rating platform featuring real-time weather integration and complex multi-parameter search filters.
My Role
Full-Stack Engineer
Stack
Angular, Firebase, GCP Cloud Functions, TypeScript
Impact
< 200ms Search Latency • 10,000+ Active Data Points • Fully Responsive Design

View 1 of 5

Interactive Gallery — Select or swipe to explore
System Architecture Log
PROJECT LOG // DATA // UI EFFICIENCY
The Engineering Story
Building Ratoong was an exercise in managing High-Density Data within a reactive frontend ecosystem. The core challenge was transforming thousands of resort data points—ranging from piste lengths to real-time weather—into a lightning-fast, searchable interface.
Data Orchestration & Efficiency
Leveraging a Document-Based Architecture (Firestore), I designed a schema that balanced read efficiency with real-time updates. To handle complex filtering (altitude, lift types, pricing) without taxing the client-side, I utilized GCP Cloud Functions as a middleware layer to process and normalize data from various 3rd-party APIs, including Google Maps and Weather services.
Modern Angular & Responsive UI
The frontend was built using modern Angular, focusing on a component-based architecture that ensured high performance across both desktop and mobile. I implemented a custom state management flow to handle resort ratings and trip planning, ensuring that user interactions were instantly reflected in the UI while syncing seamlessly with Firebase Authentication.
Lessons in Scalability
Working with a Backend-as-a-Service (BaaS) model taught me the importance of cost-effective query design and the power of event-driven triggers. I was responsible for maintaining the development, staging, and production environments, ensuring a clean CI/CD flow from localhost to the Firebase cloud.
Security & Data Governance
A key architectural pillar was the implementation of a robust Security Rules layer within Firebase. By moving the logic from the client to the database level, we ensured that resort metadata was globally searchable while sensitive user planning data remained strictly isolated. This event-driven security model allowed us to scale the user base without increasing the risk surface area of the platform.