> whoami

Janak
Rudani

Statistics student in a galaxy not so far away. I treat datasets like mystery novels - every variable is a suspect. I build models, break assumptions, and occasionally remember to set a seed. May the p-values be with you.

โ†“ See the imperial receipts
0 projects shipped
0 tests passing
0 best AUC
โˆž "just one more tweak" incidents
โš”๏ธ i find your lack of p-values disturbing R ยท tidyverse ยท ggplot2 ๐ŸŒŒ the force is strong with this model... it overfits python ยท pandas ยท sklearn ๐Ÿ–ค join me and we can rule the galaxy as data scientists SARIMA ยท GLM ยท ANCOVA ๐ŸŒ€ is this a real correlation or did i overfit it into existence? streamlit ยท plotly ยท sql ๐ŸฅŠ first rule of p-hacking: you don't talk about p-hacking ollama ยท qlora ยท rag ๐Ÿช that's no moon... it's a 2TB dataframe git ยท markdown ยท the force โš”๏ธ i find your lack of p-values disturbing R ยท tidyverse ยท ggplot2 ๐ŸŒŒ the force is strong with this model... it overfits python ยท pandas ยท sklearn ๐Ÿ–ค join me and we can rule the galaxy as data scientists SARIMA ยท GLM ยท ANCOVA ๐ŸŒ€ is this a real correlation or did i overfit it into existence? streamlit ยท plotly ยท sql ๐ŸฅŠ first rule of p-hacking: you don't talk about p-hacking ollama ยท qlora ยท rag ๐Ÿช that's no moon... it's a 2TB dataframe git ยท markdown ยท the force

01 - imperial archives

Projects

Thirteen relics from my Jedi training. Hover = 3D tilt. Click = sparkles. #09 is LIVE.

13 projects

01

Telco Churn Prediction - Logistic Regression

Binary classification on 7,043 telecom customers. Built in R with full EDA, correlation analysis, and Type II likelihood-ratio tests to quantify churn drivers. My AUC is higher than my credit score.

Logistic RegressionRROC / AUCEDALRT
AUC 0.84

02

Bike Share Demand - Count Regression (R + Python)

731 days of Capital Bikeshare demand modelled with Poisson and Negative Binomial GLMs in R, cross-validated in Python. Diagnosed severe overdispersion and quantified weather/seasonal effects with IRRs. Variance was 357ร— the mean - "Poisson, you're fired."

Poisson / NB GLMRPythonIRROverdispersion
ฮ”AIC 1,200

03

Airline Forecasting - Full SARIMA Pipeline (R + Python)

Complete Box-Jenkins workflow: log-transform, ADF/KPSS stationarity testing, ACF/PACF model identification, 36-month forecast with prediction intervals, benchmarked against Facebook Prophet. If only I could SARIMA my deadlines.

SARIMARPythonProphetADF / KPSS
MAPE ~3%

04

Palmer Penguins - Complete Linear Models Guide

A comprehensive linear modeling showcase: simple/multiple regression, one-way ANOVA with Tukey post-hoc, two-way ANOVA with interaction, and ANCOVA with adjusted means. Penguins are surprisingly cooperative. No IRB approval needed.

ANCOVAANOVATukey HSDR
Rยฒ = 0.87

05

Medicare Fraud Detection - SQL + Dashboard

Detects phantom billing - providers claiming from US + foreign addresses simultaneously (a documented CMS OIG scheme). Five SQL queries using CTEs and window functions over 9,976 synthetic claims, surfaced in an interactive Streamlit dashboard. I find fraud for fun. Your expense reports are safe. Probably.

SQLStreamlitCTEsWindow FunctionsFraud
18 flagged

06

COVID-19 Global Dashboard - Live Data App

Real-time pandemic statistics app: global KPIs, 180-day trends, top-15 country rankings, per-capita choropleth map, searchable explorer. Live REST API (disease.sh) with Plotly visualizations. Built when "going viral" wasn't a marketing strategy.

StreamlitPlotlyREST APIChoropleth
200+ countries

07

Local AI Assistant - Ollama, RAG, CrewAI

$0-cost assistant running fully offline on local hardware. Streamlit UI wrapping a complete tool-calling loop: sandboxed Python REPL, hybrid BM25+cosine RAG with numbered citations, structured memory, reminders, long-chat compaction. 253 tests, CrewAI multi-agent + Graphiti knowledge graph. It's not sentient (yet), but it remembers my coffee order better than I do.

OllamaRAGCrewAIGraphiti253 Tests
253 tests

08

QLoRA Fine-Tuning - Consumer GPU (8GB)

Domain-specific instruction fine-tuning pipeline built for an 8GB VRAM RTX 4060. Generates a seed stats/data-science dataset locally via a 30B model - fraud detection, count regression, time-series diagnostics - at zero API cost, using Unsloth + QLoRA. Some people game on their RTX 4060. I teach language models statistics. We are not the same.

QLoRAUnslothOllama8GB VRAMSynthetic Data
8GB VRAM

10

Jurassic Park - The AI Fleet + Live Dashboard

The whole fleet in one repo, themed as Jurassic Park: 34 scheduled bots + 17 on-demand agents, shared zero-token LLM client with 8 model tiers (Triceratops = DeepSeek flash, T-Rex = pro, Indominus = frontier Claude), semantic cache (cosine โ‰ฅ0.93), supervisor vetting, circuit breakers, cost ledger at ~$0.004 total. Plus the live interactive dashboard - species catalog, park console terminal, budget ledger, DNA-bank cache - regenerated nightly. 34 bots, $0.004 spent, one very tired GPU. The T-Rex eats on pocket change.

Multi-AgentLLM RoutingCacheVanilla JS$0.004
34 bots

11

Weather Arbitrage - Market Edge Bot

Automated weather-derivative trading bot: ingests NOAA forecast grids, computes degree-day deviations, detects arbitrage windows, and places orders via API - with a rate-limit-aware fetcher, checkpoint/resume rebuilds, and off-peak scheduling. I bet on the weather so you don't have to.

TradingNOAADegree DaysAutomation
LIVE

09

Puter.js To-Do - Live Serverless Demo

A working to-do list with zero backend code. Tasks persist to Puter's cloud KV store (local fallback while signed out) - add, edit, complete, filter, clear. My to-do list is finally serverless. The tasks still aren't getting done.

Puter.jsCloud KVServerlessAuthNo Backend
    โ€ฆ powered by puter

    13

    Delivery Gate โ€” an unattended pipeline that lied about its own health

    A nightly lead-gen pipeline reported success while shipping wrong-niche data: a manifest said status: ok on a delivery whose rows were 1 of 8 on-target, and a job exited 0 after scraping nothing. I audited it, root-caused the redirect behind the junk with two live HTTP probes, then built an independent gate that refuses a delivery when the rows don't match the order. The manifest was fine. The manifest was lying.

    PythonData QARoot cause11/11 testsOpen source
    1/8 โ†’ 8/8

    14

    Ken โ€” a 34-bot agent fleet on one PC

    My fork of the Hermes Agent framework: 298 commits of extension work on top of it, plus the operations layer that keeps 34 bots running unattended โ€” 9 cron jobs, 659 recorded executions, 203 skills, and $0.0037 of measured spend. Most of the fleet's work never reaches a metered API. That's the point.

    Agent engineeringPythonCronLocal LLMsOpen source fork
    34 bots

    02 - interactive terminal

    Try my terminal

    It's real. Type help and press enter. I find your lack of initiative disturbing.

    vader@deathstar: ~/imperial_stats
    vader@deathstar:~$

    03 - capabilities

    Skills, honestly rated

    Self-assessed with 95% confidence intervals. The Empire approves of alpha = 0.05.

    R + tidyverse (the force is strong with this stack)92%
    Python (pandas is just R with extra steps and fewer tears)88%
    SQL (I will find your missing semicolon, young Padawan)80%
    Debugging (I find your lack of semicolons disturbing)95%
    Excel (it's no Death Star, but it works)100%
    Documentation (future me apologizes to the whole Empire)40%
    Sleep hygiene (sleep is for the Rebel Alliance)12%
    Coffee intake (the only thing stronger than the Force)100%

    04 - empirical evidence

    Productivity vs. Caffeine

    A peer-reviewed study (n=1, me). The rebellion called it concerning. They were right.

    # productivity_curve.csv - coffee_cups vs. output (normalized)
    โ† the sweet spot
    the force awakens at 3AM โ˜ 
    x-axis: coffee cups (0โ†’10) ยท y-axis: productivity (0โ†’100) ยท regret: unbounded

    05 - holocron of memes

    A Data Scientist's Memes (Empire Edition)

    From a galaxy far, far away and a therapist's office. Click things.

    vader_disturbing.gif

    I find your lack of
    p-values disturbing
    - Darth Vader, after reading your summary() output

    this_is_fine.png

    ๐Ÿถ๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅ
    the model is overfitting
    but it's fine
    train: 99.9% ยท test: 51% ยท the force: imbalanced

    matrix_pills.sh

    stay in the loop of endless revisions, or see how deep the p-hacking goes

    inception_totem.gif

    ๐ŸŒ€
    is this a real result,
    or did I overfit it into existence?
    click the totem. if it stops spinning, you're in reality. if not... rerun with a different seed.

    expanding_brain.png

    ๐Ÿง 
    "I'll just use Excel"
    ๐Ÿง 
    "Linear regression solves everything"
    ๐Ÿง 
    "Wait... I should check for overdispersion"
    ๐Ÿง 
    "Negative Binomial GLM + Bayesian priors. The dark side of stats."

    fight_club_rules.txt

    ๐ŸฅŠ
    The first rule of p-hacking:
    you don't talk about p-hacking.
    The second rule of p-hacking:
    you DEFINITELY don't talk about p-hacking.
    (this portfolio violates both rules. I have a problem.)

    two_buttons.png

    ๐Ÿ˜ฐ
    choose wisely, young Padawan...

    shining_typing.txt

    all work and no p-values makes janak a dull boy
    click to keep typing. all work. no play. no significance.

    mock.text

    yOu CoMmItTeD aNd PuShEd WiThOuT rUnNiNg ThE tEsTs
    click to cycle the roast

    memento_seed.jpg

    ๐Ÿงฉ

    "REMEMBER TO SET YOUR SEED...
    wait, where am I? whose notebook is this?"

    somewhere, a data scientist reruns the same cell for the 5th time.

    compliment_btn.sh

    click the button. you deserve it.

    p_value_casino.sh

    0.0
    0.0
    0.0
    the Emperor demands a p-value. pull the lever.
    results may or may not be reproducible. the dark side has cookies.

    imperial_git_log.txt

    a3f9c2d (HEAD โ†’ imperial data division) feat: declare p-values imperial property
    9b1e44a feat: find the rebel bug, alert the Emperor
    7c0d51e chore: panic about the Death Star budget, then nap
    2f8a1b3 refactor: replaced stormtroopers with coffee (hit rate improved)
    e5d3c1b init: first commit (the dark side was proud)

    06 - productivity (fun version)

    Whack-a-Bug: Imperial Edition

    Squash the rebel bugs before they commit to main. The Empire is watching.

    bugs squashed: 0
    Rebel bugs pop up for 1.5s. Squash them. The Emperor is watching.

    07 - build something real

    Circuit Builder

    An actual mini electronics lesson. Drag the parts, wire them up, learn how a circuit works. The bug-hunting hobby, applied to physics.

    voltage: 0 V
    current: 0 mA
    resistance: 0 ฮฉ
    state: disconnected
    HOW IT WORKS
    1. Drag a battery โšก into the board.
    2. Drag a resistor ใ€ฐ๏ธ between battery and LED.
    3. Drag an LED ๐Ÿ’ก and connect the chain: + โ†’ R โ†’ LED โ†’ -
    4. When the loop closes, the LED lights up and you read the values!
    5. Resistors protect the LED. Too many = dim. None = poof.
    drag a battery in to start...

    07 - the human side

    Hobbies

    Proof that I exist outside of a terminal. Hover for the real story.

    ๐Ÿ–ฅ๏ธ

    PC Building

    Custom rigs, cable management, overclocking. LEGO for adults with credit cards.

    Yes, the RGB adds 15% performance. It's science.
    โšก

    Circuits & Electronics

    Breadboards, microcontrollers, making LEDs blink - the gateway drug of hardware.

    I've only shocked myself twice. Both times were "for science."
    ๐ŸŽท

    Jazz

    Miles Davis to modern fusion - improvisation feels a lot like EDA.

    I listen to jazz so people think I'm sophisticated. It's working.
    ๐ŸŽฎ

    Gaming

    Strategy, RPGs, competitive titles. Pattern recognition before statistics did.

    My K/D ratio is a time series with significant autocorrelation.
    ๐Ÿ›

    Bug Hunting

    Finding edge cases and breaking things before users do. QA is applied pessimism.

    I once spent 4 hours on a missing semicolon. I'm fine. Really.
    ๐ŸŽฌ

    Movies

    I'll rewatch favorites until I've memorized the score and quote editing choices.

    The Dark Knight ร—23. The Joker's stats speech is a probability lecture.

    08 - origin story

    About

    I'm Janak Rudani - Statistics student at the University of Manitoba. I treat every dataset like a plot twist waiting to happen and every model like a crime scene hypothesis to test.

    # my life, but make it version control (imperial edition)
    a3f9c2d(HEAD โ†’ future)feat: graduate with honors, statistically speaking (the force is strong)
    8d1b4e2feat: build 13 data projects, 253 tests, 0 sanity, 1 lightsaber
    5c9f0a1fix: learn what a p-value actually means (breaking change, dark side approved)
    b2e7d3fchore: question everything, including this portfolio
    e5d3c1binit: first commit (mum was proud)
    ๐Ÿ“ Based in
    ๐Ÿ‡จ๐Ÿ‡ฆ Winnipeg, MB
    ๐ŸŽ“ Studying
    B.Sc. Statistics & Math
    ๐Ÿ’ป Stack
    R, Python, SQL
    โ˜• Fuel
    Coffee & overconfidence

    09 - open a channel

    Contact

    I promise I write better emails than this website copy. You can also just type "email" in my terminal.

    janak25rudani@icloud.com