Projects

01

NestIQ — AI Airbnb Price Intelligence

Summer 2026

A production-grade full-stack AI platform rebuilt from a data-mining course project — scaled from a 49-row academic dataset to 245K+ real Airbnb listings across 28 US cities, taking a data-science idea end-to-end into a shipped product.

The core is an explainable price-prediction engine built on scikit-learn and XGBoost with SHAP feature attribution (R² ≈ 0.54), so every prediction can be traced back to the features that drove it.

Layered on top: a five-tool agentic host advisor, RAG-backed market chat, and semantic search using sentence-transformer embeddings with a FAISS index.

Shipped as a Next.js 14 + TypeScript frontend against a rate-limited, streaming FastAPI backend serving seven data-mining models — containerized with Docker, quality gates automated through GitHub Actions.

Next.js 14 · TypeScript · Tailwind CSS · FastAPI · Python · scikit-learn · XGBoost · SHAP · FAISS · RAG · Docker · GitHub Actions

From assignment to productionHow NestIQ is put together
  1. Course dataset

    49rows

    Where it started — a data-mining assignment.

  2. Production corpus

    245,000+listings · 28 US cities

    Rebuilt as a real ingestion problem rather than a homework set.

  3. Model layer

    7data-mining models

    scikit-learn and XGBoost, R² ≈ 0.54, every prediction traced back through SHAP attribution.

  4. Retrieval layer

    FAISSvector index

    Sentence-transformer embeddings for semantic search over the corpus.

  5. Agent layer

    5tools

    An agentic host advisor and RAG-backed market chat over the same index.

  6. Delivery

    FastAPI+ Next.js 14

    Rate-limited streaming backend, containerised with Docker, quality gates in GitHub Actions.

02

National Park Service Portal

Spring 2026

A full-stack national park management portal handling visitor reservations, parking, and real-time analytics — live in production.

Next.js 14 App Router frontend (TypeScript, Tailwind, Framer Motion, Recharts dashboards) backed by an Express.js / TypeScript REST API driving 11+ Oracle stored procedures over node-oracledb thin-mode connections.

A Python FastAPI AI concierge handles personalized park recommendations using LangChain custom tool-use loops written from scratch rather than AgentExecutor, with RAG for grounding — plus an admin executive summary with PDF export.

Auth via NextAuth v4 with Google OAuth and JWT sessions, gating role-based visitor and admin dashboards. End-to-end CI/CD through GitHub Actions across all three services (web, api, ai).

Next.js 14 · TypeScript · Tailwind CSS · Framer Motion · Express.js · Oracle XE · Python · FastAPI · LangChain · NextAuth v4 · Docker · GitHub Actions

03

Estimation of Ionospheric TEC for GPS Error Correction

Sep 2020

A Bachelor's final year research project on why a GPS device can be off by several meters and software to measure the single biggest reason why.

A GPS signal travels from a satellite through the ionosphere, a charged layer of the upper atmosphere, before it reaches a receiver on the ground. That layer bends and slows the signal down, and by a different amount depending on the time of day, the season, and how active the sun is so the delay it causes is never constant. That inconsistent delay turns out to be the largest single source of GPS position error.

Built a MATLAB and Python pipeline that reads raw, publicly available satellite observation data (the RINEX format used by real GPS ground stations), pulls out the dual frequency signal measurements, and calculates the Total Electron Content (TEC) — a number that estimates exactly how much delay the ionosphere added at a given moment.

Published as "Review on Estimation of Ionospheric TEC" in the International Research Journal of Engineering and Technology (IRJET), Volume 07, Issue 09, September 2020.

MATLAB · Python · RINEX · GNSS/GPS · Signal Processing

Travelling ionospheric disturbances — four plane waves summed. Not a measurement: the expression the project models, drawn live.
04

Portfolio Website

Jul 2025

Part portfolio, part professional diary — this site documents the move from BSE systems engineering into full-stack and AI development, with a bit of personality left in.

Deliberately built on a stack I have shipped production code in, paired with hand-written CSS animations instead of a motion library, keeping the page lightweight while leaving room for some design sensibility.

Black-and-white editorial layout, responsive throughout, optimized for performance and SEO.

Next.js · React · JavaScript (ES6+) · HTML5 · CSS3 · Vercel