Portfolio, 2026

Matin Nikoomanzar

I'm a stats and data science student at UCLA, also doing business econ. I like taking a question all the way to something people can actually use. Right now I'm building Skeptic, an AI analyst that checks whether claims made with data hold up. Outside class I'm usually DJing, playing tennis or on my electric guitar.

Looking for a Summer 2027 internship in quant research or trading. Also open to data science and analytics.

UCLA, class of 2028Los AngelesPython, R, SQL

Photo of Matin
M.N., Los Angeles, 2026
SubjectObj 0001
Name
Matin Nikoomanzar
Field
Statistics and data science
Status
Open to Summer 2027
Focus
Quant first, then data science
Building
Skeptic, in beta
Coords
34.0689° N 118.4452° W
Scroll
Skip the tour

Room 01 · Skeptic

Skeptic

An AI that doesn't take anyone's word for it, not even its own. Show it a claim and it checks every number.

Growth team · 9:41B won. Checkout conversion is up 9.1%, p = 0.03. Shipping it Monday.

Scroll and watch it check

01 · The math

Right math. Wrong test.

It reruns the raw counts and gets p = 0.026. Then it finds eight more metrics nobody mentioned. Corrected for nine, it's 0.236.

Every step comes with the Python and R code, so you can run it yourself.

02 · Fact check

It reads the fine print.

Articles, reports, charts, even another AI's summary. Every number gets traced back to the data. Two of these came from nowhere.

It can't make up a number, because every figure it gives you is computed, not guessed.

03 · Gosset

Its own brain. On your chip.

Gosset is a model I trained myself on about 15,000 worked checks. It runs offline on your graphics chip, and the files you show it never leave your computer.

Rather use the cloud? Tukey does the same checks from any browser.

04 · Verdict

The claim fails.

Don't ship it Monday. The private beta opens December 17.

Join the waitlist

Projects

8 entries · code for all of them, most have something you can try

Beta · waitlist open

Skeptic, an AI for people who care about the numbers

  • JavaScript
  • statistics
  • AI agent
  • on device model
  • Python package

Most AI sounds sure of itself even when it's wrong. Skeptic checks every number first, its own included, and tells you in plain words what holds up. Show it a chart, a claim, an article or your data.

  • Catches charts that lie and redraws the honest version.

  • Fact checks whole articles, one claim at a time.

  • Tries to break your conclusion before others do.

  • Shows its work, with the Python and R code that proves it.

  • Lets you change anything it makes, by hand.

It can't make up a number, because every figure is checked against the statistics engine I wrote from scratch. Tukey runs it in the cloud. Gosset is my own model, trained on about 15,000 examples from that engine, and runs offline on your own graphics chip.

This deviceChecking your hardware.

CHECK

Q3 update · draft for the board

Q3 was our best quarter yet. Revenue grew from $M to $M, up %. The new checkout lifted conversion from % to %, a % increase, with visitors in each group, a clear win. Monthly churn fell to %, so customers now stay years on average. Support tickets dropped %, from to .

Tap any number to change it.
Skeptic
  1. Finding every number 
  2. Redoing the math 
  3. Testing the checkout result 
  • FAILRevenue growth. $4.2M to $5.1M is +21.4%, not 31%.
  • FAILConversion lift. That is a 0.5 point rise, or 16.1% in relative terms. Neither is 5%.
  • FAILThe clear win. p = 0.43. With 1,240 in each group a gap this small is easily chance. You would need about 20,327 in each group to tell.
  • WARNCustomer lifetime. Conservative. At 1.9% a month it is about 4.4 years.
  • WARNSupport tickets. Rounded up. 820 to 510 is a 37.8% drop, not 40%.
CHECK

Ridgeway Metro · annual riders

Ridership has exploded

Skeptic
  1. Reading the picture 
  2. Rebuilding the numbers 
  3. Checking the axis 
  4. Measuring the distortion 
  5. Redrawing it from zero 

Not honest. The axis starts at 35 million, so a 21.3% rise over five years is drawn 30 times too steep. From zero it is steady growth of about 3.9% a year. Use the redrawn one in the deck.

Harbor Growth Fund · ten years

Up 41% since March 2021

Drag the window or its edges. The headline writes itself.

Your window+41%
Full ten years−9%
Windows this good3%
PICKED

That window is cherry picked.

Checkout test · variant B wins?

FAILS

The claim does not hold up.

    All of this runs in your browser with the same math as the app. The app does it for your own reports, charts, articles and data. Join the waitlist.

    Trend following backtest

    • Python
    • pandas
    • SciPy
    • bootstrap
    • unit tests

    A backtest of the 50/200 day moving average crossover on SPY, written from scratch with next day trades, trading costs and unit tests. I tuned it on 2000 to 2017 and tested on 2018 to 2026.

    It didn't beat buy and hold. Then I checked whether picking the windows was just luck. Only 3 of 89 pairs beat buy and hold, and the probability of backtest overfitting came out around 0.57, basically a coin flip.

    $1 invested from the month you pick, after costs. Drag to change the start, hover to read values.
    9.2% / 14.3%yearly return, strategy vs SPY
    0.63 / 0.79Sharpe ratio
    33.7%worst drawdown, both

    A/B testing library, checked by simulation

    • Python
    • SciPy
    • pytest
    • CLI

    Real experiments break the textbook t test. People check results every day, metrics are noisy, splits come out uneven and dashboards track twenty metrics at once. I built a Python library that handles each of those, with CUPED and always valid sequential tests.

    I checked every method on thousands of simulated experiments, then ran it on Cookie Cats, a mobile game that split 90,189 players. It found a 4.3% drop in 7 day retention and caught that the groups were split unevenly.

    Experiment Lab Rerun the 90K player Cookie Cats test in your browser or drop in your own CSV and go through it step by step.
    normal p value 
    always valid p value 
    Each line is a test where nothing changed, checked after every batch of users. Red ones dipped under 0.05 at some point, a false alarm. With a normal p value they pile up the more you check. The always valid test stays under 5%.

    What it costs to turn off the internet

    • SQL
    • DuckDB
    • causal inference
    • Python
    • pytest

    When a government shuts off a country's internet, there's no A/B test to run. So I built each country a synthetic twin out of 106 countries that stayed online, using GitHub's public data on how much code every country pushes.

    During Iran's 2026 blackouts its GitHub activity ran 69% below its twin. Across six full shutdowns, each day offline cost about 1.3 days of work, so people didn't catch up after. I planted 1,500 fake shutdowns first to make sure the method finds them.

    Interactive Build a country's twin and see what simple comparisons get wrong Nine shutdowns, from Myanmar to Iran.

    Pushes per quarter vs the country's twin, a mix of countries that stayed online and moved like it before. Shaded quarters are the shutdown. Hover to read any quarter.

    Live simulator

    What gets an app to 100K installs

    • Python
    • pandas
    • scikit-learn
    • 2.2M rows

    I followed 815K Google Play apps from launch to see which ones ever reach 100K installs. Only about 6 in 100 do, and how an app makes money mattered most. Free apps with ads and in-app purchases broke out 31% of the time, paid ones 1.7%.

    The gap held in all 48 categories, not just games, though part of it runs backwards since apps often add purchases once they have users. Then I turned the model into the simulator here.

    Share reaching 100K installs, apps released 2018 to 2019, by how they make money.
    62%of installs go to the top 0.1% of apps
    7.9%breakout rate for devs with 6 to 20 apps out
    0.86AUC, trained on 2018 and tested on 2019

    New, a live tool

    Unchart, numbers back out of a chart

    • JavaScript
    • computer vision
    • OCR
    • robust regression
    • 130 chart benchmark

    People retype numbers off charts all the time. Unchart reads a chart the way a person would. It finds the axis labels, fits the scale, follows every line and measures every bar, then hands back a table you can paste into Sheets.

    It also flags charts built to mislead and redraws them honestly, and you can drag any point it got wrong back into place. It all runs in your browser, so nothing gets uploaded.

    Live tool Paste a line, bar or dot chart and get its numbers back Works on screenshots, slide photos and PDF pages.
    130charts tested, each with known numbers
    <1%error on every one of them
    0.17%median error, about a third of a pixel
    10 of 10bar charts that skip zero were caught, with no false alarms
    UN/CHART Live demo
    Read labelsFit axesTrace dataRebuild
    The example chart being read
    labels 0points 0time 0.0 sHover the chart to measure any point
    Three example charts with made up data. Orange is what Unchart found. The live tool reads your own charts the same way.

    Household size prediction

    • Python
    • LightGBM
    • R
    • team of three

    A class Kaggle competition, predicting how many people live in a household from their Amazon purchases. Since the answer is a small count, we treated it as classification and used the expected value of the predicted probabilities, which beat regressing on it directly.

    TF-IDF on product titles beat our hand picked keywords, and with more features than rows we solved ridge in dual form. A stack of seven models placed 3rd of 23 teams.

    1.001.021.041.061st1.008812nd3rd (us)1.016614th5th6th7th8th9th10th11th12th
    Final private leaderboard, top 12 of 23 teams. RMSE, lower is better.

    Aura desktop widgets

    • Python
    • PyQt6
    • NumPy
    • Windows APIs

    Desktop widgets for Windows. The main one shows the song that's playing and recolors itself from the album art, and the chrome text is rendered with NumPy. It only redraws what changed and pauses during fullscreen games, so idle CPU is close to zero.

    A mockup of my desktop. The player picks its colors from the album art, the icons open the real files, and you can drop your own GIF into either box. It stays on your device.

    Experience

    5 roles · newest first

    Summer 2025

    Service Desk Technician Intern Edelman FinancialIT · Finance

    IT support for a wealth management firm. 95% of tickets resolved on first response, turnaround down about 25%.

    95%fixed on the first reply
    2024 to now

    Stagehand and A/V Technician Live NationLive events

    A/V for 12+ live events, including Google I/O 2025 and a RÜFÜS DU SOL show.

    12+live events
    2024 to 2025

    CIS Tutor and Teaching Assistant De Anza CollegeTeaching

    TA for Python, Data Abstraction and Structures, and x86 Assembly. Also tutored 20+ students a week in programming and data structures.

    20+students a week
    Dec 2022 to May 2023

    Sales Associate LincolnSales

    Worked with walk in customers at the Valley Fair showroom, figuring out what they needed and explaining cars in plain terms.

    De Anza College

    Founder and Vice President Iranian Association ClubLeadership

    Grew the club from 0 to 54 members over two years, raised money, and teamed up with the Armenian and Middle Eastern student clubs. Got a Leadership Certificate, and was also an officer in the AI Future Club.

    54members, from zero

    Education

    2 schools · class of 2028

    01Los Angeles34.0689° N
    118.4452° W

    UCLA

    Statistics and Data Science, B.S. / Business Economics, B.A. / Entrepreneurship, minor

    Quarters at UCLA. Lit ones are done

    Class of
    2028
    GPA
    3.57
    Note
    Intended majors

    02Cupertino37.3196° N
    122.0450° W

    De Anza College

    Mathematics, A.S.T. / Computer Science, A.S.T. / Liberal Arts, Science, Math and Engineering, A.S.

    Dean's List, 7 quarters

    Finished
    2025
    Honors
    Dean's List
    Contest
    ICPC Pacific Northwest Regional

    Looking for a Summer 2027 internship.

    My timeLos Angeles

    Best way to reach me is email.

    style.csswaiting for you
    Looks

    Tap a look, or click into the code and change anything. The page follows as you type.

    
          
    Made byMatin Nikoomanzar, Los Angeles
    Set inInstrument Serif, Geist and Geist Mono, one ink, #FF5A1F
    Usually spinningsomething that sounds like RÜFÜS DU SOL
    Last page