Skip to content
View Devesh0508's full-sized avatar
💭
It's not a Bug... It's a Feature...
💭
It's not a Bug... It's a Feature...

Block or report Devesh0508

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
Devesh0508/README.md

Devesh Ojha

AI & Data Engineer

I build models and the data infrastructure they depend on — the part most models never survive. Four years inside enterprise operational data, then two building ML systems and full-stack products end to end.

Portfolio LinkedIn Email


Impact snapshot: a +15.5% growth leader found in AER regulator filings, a 3-day reporting cycle cut to 4 hours, 12 hours of manual work reduced to 90 seconds, 8 stakeholder teams on shipped dashboards, and a model benchmark reaching 97.4% test accuracy

The system I build, end to end

flowchart LR
    A["<b>Sources</b><br/>regulator filings<br/>ServiceNow ITSM<br/>Excel · CSV · APIs"]
    B["<b>Ingest &amp; validate</b><br/>Python · pandas · ADF<br/>rule-based QA gate<br/>schema drift caught early"]
    C[("<b>Modelled store</b><br/>PostgreSQL · tidy fact tables<br/>indexes · row-level security")]
    D["<b>Features &amp; training</b><br/>scikit-learn · TensorFlow<br/>imbalance handling<br/>GridSearchCV tuning"]
    E["<b>Evaluate</b><br/>per-class metrics<br/>held-out benchmark<br/>threshold chosen for the cost"]
    F["<b>Serve</b><br/>Next.js APIs · Power BI<br/>Streamlit · RPC endpoints"]

    A --> B --> C --> D --> E --> F
    C --> F

    style C fill:#131E33,stroke:#4F9CF9,color:#E6EDF7
    style D fill:#131E33,stroke:#34D399,color:#E6EDF7
    style E fill:#131E33,stroke:#34D399,color:#E6EDF7
Loading

A model is the easy half. The half that decides whether it survives contact with reality is everything to its left and right — where the data comes from, whether you can trust it, what metric you actually optimise, and who consumes the output.


Machine learning

Both of these are as much about judgment as accuracy — choosing the metric that matches the cost of being wrong, and saying plainly where the work falls short.

Project The engineering call Result
Space Object Classification
Orbital elements → object type
Debris massively outnumbers rocket bodies, so accuracy rewards a model that predicts "debris" forever. Balanced with SMOTE to 8,431/class, benchmarked four algorithms under GridSearchCV, and read the result through per-class precision and recall. The linear-SVM-to-RBF jump (74.6% → 92.7%) is the real finding: the boundary in orbital-element space is non-linear. 97.4% held-out, Random Forest
Pediatric Pneumonia Detection
Chest X-ray triage
In triage a false negative costs far more than a false alarm, so recall is the objective, not accuracy. VGG19 transfer learning because the dataset is far too small to learn filters from scratch; augmentation, BatchNorm, Dropout and EarlyStopping as the brakes on a high-capacity backbone. ~88% accuracy, VGG19 base

Each README ends with what I would do differently — SMOTE belongs inside the CV fold, macro-F1 beats accuracy on a resampled set, a clinical model needs Grad-CAM and external validation before anyone trusts it. Knowing where your own work is weak is the difference between a benchmark and an engineer.


Production systems

Project The hard part Stack
CheaperRx · live ↗
Canadian prescription price comparator
Authorisation lives in Postgres, not the app. Row-level security on all eight tables, so a bug in a React component cannot leak another user's medication list. Stripe webhooks are the only writer of paid entitlement. Drug search runs on GIN full-text indexes rather than LIKE scans. Next.js 14 TypeScript PostgreSQL Supabase Stripe

Data engineering

Project The hard part Stack
Alberta Oil Sands Analysis
Regulator filings → queryable model
Alberta's regulator publishes ST39 as a document: months across the page, commodities stacked down it. Unpivoting three annual workbooks into one tidy fact table — 9 operators × 36 months × 9 commodity streams — is what makes every measure a one-line aggregation. Findings are reproducible from the committed dataset, and the README states the grain defect I have not fixed yet. Python pandas Power BI
HR Analytics Pipeline
12 hours/week of manual Excel, deleted
A 12-rule validation gate that fails loudly instead of silently corrupting downstream reports — a pipeline that quietly accepts bad data is worse than the manual process it replaced. Streamlit front door so analysts self-serve. Python pandas Streamlit

🔎 Try the data yourself — devesh0508.github.io holds an interactive chart over the AER fact table my ETL produced. Pick an operator and the +15.5% figure above recomputes in your browser.


Stack

ML & AI  scikit-learn  TensorFlow / Keras  transfer learning  SMOTE · imbalanced-learn  GridSearchCV  pandas · NumPy

Data & platform  PostgreSQL  Azure Data Factory  Supabase  Power BI  ServiceNow  SQL Server

Languages  Python  SQL / T-SQL  TypeScript  DAX  M / Power Query

Product & infra  Next.js 14  Stripe  Vercel  Docker  Streamlit  Git


Background

Independent builds & analytics projects — Sep 2025 – present, Calgary AB Shipped CheaperRx end to end: schema, row-level security model, Stripe billing, SEO, deployment. Built the AER ST39 ETL and Power BI model now published with reproducible findings.

Post-Baccalaureate Diploma, Applied Data Science — Thompson Rivers University, Sep 2023 – Sep 2025 Full-time. Machine learning, statistical methods and applied data engineering; the pneumonia-detection and space-object projects were produced here.

Business Analyst, Cognizant Technology Solutions — Jan 2020 – Jul 2023, client: John Deere IT Infrastructure Power BI semantic layer adopted by 8 Finance, Ops and IT teams, cutting a three-day reconciliation to four hours. Azure Data Factory pipelines ingesting 70,000+ records per cycle. Diagnosed a SQL aggregation defect distorting $50M+ investment reporting and cut metric variance 50% in 30 days. Designed the 12-rule data quality framework behind the HR pipeline above.

B.Tech, Electronics & Instrumentation Engineering — MAKAUT, 2015 – 2019

Certifications  Power BI Data Analytics (Simplilearn)  ·  Modernizing Data Lakes & Warehouses on Google Cloud (Coursera)  ·  Azure AI Fundamentals AI-900 (Microsoft)


Open to AI/ML Engineer, Data Engineer and Senior Analyst roles in Canada. Work authorised · based in Calgary · available immediately

Pinned Loading

  1. Space-Object-Classification Space-Object-Classification Public

    Classification of Space Objects Using Machine Learning Methods

    Jupyter Notebook

  2. Tourism_chatbot Tourism_chatbot Public

    Python

  3. Alberta_Oil_Sands_Analysis Alberta_Oil_Sands_Analysis Public

    ETL pipeline unpivoting three years of Alberta Energy Regulator ST39 filings into a tidy fact table - 9 operators, 36 months, 251 monthly series. Surfaces Gibson Energy's +15.5% crude bitumen growt…

    Jupyter Notebook

  4. cheaperrx cheaperrx Public

    Canada's simplest prescription price comparator — Next.js 14 + Supabase + Stripe

    TypeScript

  5. Python-Pipeline-for-Excel-Automation Python-Pipeline-for-Excel-Automation Public

    Transform 12 hours of manual Excel processing into 90 seconds of automated HR insights

    Jupyter Notebook