Gautam ShahMSc Data Science · London Start a conversation
01About 02Work 03Stack 04Path 05Contact

Kathmandu → London

Gautam Shah

I build things that have to survive contact with the real world: forecasting models that are judged on next week's price, and websites that carry a working business's phone number. Right now I'm reading for an MSc in Data Science and writing about stock price prediction with machine learning.

See the work
Status
Open to work
London
--:--
Kathmandu
--:--
Focus
Applied ML
NEPSE · forecast tape
Last
Horizon15 sessions
Signal

Illustrative render of the forecast shape my dissertation model produces — history on the left, projection cone on the right. Move your pointer across it.

About

Two jobs, one habit: measure it, then ship it.

A short version of how a bullion counter in New Road turned into a machine learning dissertation.

I'm reading for an MSc in Data Science at York St John University, London campus, and my dissertation asks a question I've wanted answered for years: how well can a machine learning model predict stock prices on the Nepal Stock Exchange?

Before that I was IT Officer at DPPL (Diamond Palace Pvt. Ltd.), a silver bullion dealer in New Road, Kathmandu. My job was everything with a plug or a domain name: the website, the live rate feed, the search presence, the counter display. That's where I learned that a number on a screen is never just a number — someone is about to make a decision with it.

The first thing I built there was a single page showing the day's silver rate on a shop television. To keep it honest I had to fetch a live price, survive CORS, cache it, and make it legible from across the room. It grew into a full production site, and that site is why I care about data pipelines, uptime and structured data as much as I care about layout.

What I enjoy most is the join between the two. A model is only interesting once someone can open it on their phone and act on it, so I care about explainability, about pages that load on a mid-range Android over mobile data, and about interfaces that don't make people feel slow.

300k+Rows in the training set
18Technical indicators engineered
15Trading days forecast ahead
MScData Science, York St John

Selected work

Things that are live, or were built to be.

Every project here solved a problem I actually had. None of them are exercises.

Dissertation · forecasting In progress

Stock price prediction using machine learning

My MSc dissertation, applied to the Nepal Stock Exchange. It asks a plain question — can a model trained on public NEPSE history beat a naive baseline over a short horizon — and answers it with a Random Forest regressor over a 300,000-row dataset, 18 engineered technical indicators, and honest error reporting rather than a single confident line. Explainability is handled with SHAP so the features can be argued about instead of trusted blindly, and the forecast is always presented with its uncertainty attached.

View the code
Institution
York St John, London
Model
Random Forest regressor
Features
18 technical indicators
Data
300,000+ NEPSE rows
Horizon
15 trading sessions
Explainability
SHAP on Azure ML
pythonscikit-learnpandas shapazure-mlplotly
Commerce · productionLive

dppl.com.np

The production website I built and ran as IT Officer at DPPL. Vite, React and Tailwind with a "Capsule" design system — pill containers, warm ivory, graphite and champagne. It pulls the day's sale and purchase rates from a live source, prerenders journal articles so search engines can actually read a single-page app, and carries structured data, a Leaflet map of the counter, and AdSense integration.

Stack
Vite · React · Tailwind
Data
Live silver rate feed
SEO
Prerender + schema.org
reactvitetailwindleafletadsense
Open the site
Data · pipelineMaintained

NEPSE data pipeline

The unglamorous foundation the dissertation stands on. A Python scraper and cleaning layer that turns scattered exchange data into one dependable, deduplicated dataset, then derives the moving averages, momentum and volatility features the model actually trains on.

Scope
Scrape · clean · feature
Output
300,000+ rows
Serving
Cloudflare Pages Function
pythonpandasetlcloudflare
BackendShipped

Auth service

A REST authentication stack built properly rather than copied: Express and Prisma over SQLite, JWT sessions, and OTP verification for sign-up and recovery.

expressprismajwtotp
ToolingIn use

Document pipeline

A Node toolchain that generates academic Word documents from data — updatable contents, figure and table fields, Harvard references, and charts rendered straight out of matplotlib.

nodedocxmatplotlib
DisplayShipped

Counter rate board

A live silver rate page built for a shop television, with multiple fallback fetch methods for when the source refused the browser. Readable from the far side of the counter.

htmljscors

Toolchain

What I reach for, and why.

Grouped by the job it does. Nothing here is on the list because it looks good on a list.

Data & modelling

the analysis

  • Python
  • pandas
  • NumPy
  • scikit-learn
  • Random Forest
  • Feature engineering
  • Time series
  • SHAP

Visual & reporting

the argument

  • Matplotlib
  • Seaborn
  • Plotly
  • Jupyter
  • docx (Node)
  • Harvard referencing
  • Structured reports
  • Chart design

Web

the surface

  • React
  • Vite
  • Tailwind CSS
  • Semantic HTML
  • Canvas & SVG
  • Express
  • Prisma
  • REST + JWT

Infrastructure

the delivery

  • Cloudflare Pages
  • Pages Functions
  • DNS & redirects
  • Git & GitHub
  • Azure ML
  • AWS architecture
  • Search Console
  • Core Web Vitals

Path

How one shop display became a dissertation.

In order, because in this case the order is the point — each step created the problem the next one solved.

  1. IT Officer at DPPL, New Road

    Joined a silver bullion dealer in Kathmandu as the person responsible for anything with a plug or a domain name — the website, the rate feed, the search presence, the counter display.

  2. A silver rate page for a shop TV

    One HTML file, live rates, and several fallback fetch methods for when the source blocked the browser. It had to be legible from the far side of the counter — my first real lesson in designing for the actual room.

  3. From one file to a design system

    The page grew into a full site: the Capsule system, solid colour blocking instead of glass, enquiry flows instead of buy buttons, and a Cloudflare Pages Function fetching prices server-side. Verified in Search Console, sitemap submitted, structured data fixed.

  4. From displaying prices to predicting them

    Watching metal and equity prices move every day made me want to forecast them. Scraper, then dataset, then engineered indicators, then a model — and a habit of reporting the error alongside the answer.

  5. MSc Data Science, York St John University, London

    Formalising the instinct. Writing my dissertation on stock price prediction using machine learning, with NEPSE as the case study.

  6. A team where these are one job, not three

    Looking for a graduate role or internship where forecasting, data engineering and front-end craft sit together. That is roughly how I already work.

Contact

Tell me what you're building.

Graduate roles, internships, data science work, freelance web builds — all land in the same inbox and all get a reply. If it's a project, a sentence about the problem is more useful to me than a brief.

This composes the message in your own mail app — nothing is stored on this site and there is no tracking here.

Email copied