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.

Every number it gives you is recomputed or traced back to your data, and anything it can't verify gets flagged.

03 · Gosset

Its own brain. On your chip.

Gosset is my own model, fine tuned on 12,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 · most have code you can read and 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.

Every figure is checked against the statistics engine I wrote from scratch, and anything it can't verify gets flagged. Tukey runs it in the cloud. Gosset is my own model, fine tuned on 12,000+ worked checks 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 as portfolio protection

    • Python
    • pandas
    • block bootstrap
    • Reality Check
    • 123 tests

    I tested the 50/200 day moving average rule on a century of US stocks and 35 years of markets outside the US, to see if it works as insurance. I wrote the question, the rules and what would count as a pass down first and froze them before running anything.

    It lost less than buy and hold in 9 of the 10 big US bear markets since 1927, about $21,000 ahead per $100,000 at the bottom, and that cost about $5,400 a year in normal times. But just holding 69% stocks and the rest in T-bills did about as well for the same risk, and my precommitted test came out Mixed.

    Precommitted testMixed

     

    $5,416a year it cost per $100,000 in normal times
    9 of 10bear markets where trend lost less
    −1.2%a year net, over every month
    Growth of $1 since 1927 on a log scale, after costs. Shaded are the 10 falls of 20% or more from the all time high, and the bars are dollars ahead at each bottom, per $100,000. Hover to read one.

    A/B testing library, checked by simulation

    • Python
    • SciPy
    • sequential tests
    • pytest
    • CLI

    Real experiments break the textbook t test. People check results every day, revenue is skewed, users have many sessions and splits come out uneven. abkit is a Python library and command line that handles those, with CUPED, always valid sequential tests, group sequential designs and a written plan before the test starts.

    I tested every method with 127 checks on made up experiments where I knew the answer, many of them on messy data, and the validation table says where each one breaks. That also caught two bugs in my sequential test code. On Cookie Cats, a real test with 90,189 players, the groups came out uneven (p = 0.009), which is a warning sign worth chasing down.

    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 

    In the repo's run of 2,000 tests checked 100 times each, 39% falsely won with a normal p value and 2.2% with the always valid one.

      • Split44,700 vs 45,489 players, p = 0.009. A healthy test lands there about 1 time in 116, so it's worth a look.
      • WherePlayers with under 29 rounds couldn't have reached a gate, and gate 40 has 823 more of them (p = 0.0005). From 29 rounds up it's 16,958 vs 16,924 (p = 0.85).
      • Result7 day retention fell from 19.0% to 18.2%, a 4.3% drop (adjusted p = 0.005). Among players who could see the gate it's 43.4% vs 42.4%, p = 0.07, with 38% of the data.
      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.

      When a country's internet goes dark

      • SQL
      • DuckDB
      • synthetic control
      • 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 with no shutdown in my registry, using GitHub's public data on where code gets pushed from, and measured the gap. Then I spent most of the time trying to break it.

      Iran was offline for about half of early 2026, and its pushes came in 59% to 69% below its twin. It's a range because most countries jumped about 30% that quarter and sanctioned ones mostly didn't, though Venezuela grew 48%. OONI's daily network tests line up with the blackout dates. It's GitHub's map, so people on VPNs counted elsewhere are part of the gap.

      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 donor countries that moved like it before. Shaded quarters are the shutdown. Hover to read any quarter.

      Live simulator

      Launch-day odds for Play Store apps

      • Python
      • scikit-learn
      • survival analysis
      • 2.2M apps

      Most new Google Play apps go nowhere. Of the apps about a year old in June 2021, 13% had 10K installs, 3.5% had 100K and 0.6% had 1M.

      A model using only launch-day facts like category, title and the developer's history ranks 2019 launches at an AUC of 0.84. My first version said 0.86, but it used fields read in 2021, long after launch. The simulator adds intervals and real apps like yours. Money shows up there only as a pattern.

      first apps, 9 to 15 months old95% intervallaunch-day model at 12 months
      First apps 9 to 15 months old, against the launch-day model.
      0.84AUC from launch-day facts (0.86 with 2021 fields)
      47%of each month's top 5% in the model's top 10%
      62%of installs go to the top 0.1% of apps

      New, a live tool

      Unchart, numbers back out of a chart

      • JavaScript
      • computer vision
      • OCR
      • 618 held out charts
      • chart editor

      People retype numbers off charts all the time. Unchart reads the axis labels, fits the scale, traces the lines, bars, slices and dots, and hands back a table you can paste into Sheets or Excel, with an error bar on every number. It also flags charts drawn to mislead.

      When it isn't sure about a chart it says so and gives no numbers, which happens a lot. On 618 held out charts it reads 69.8% of the synthetic ones right and 40.0% of the Our World in Data ones. Then the editor redraws any chart as one of 16 types with the controls of a spreadsheet's format pane, and exports CSV, XLSX with a real Excel chart, PNG, SVG and more. It all runs in your browser, so nothing gets uploaded.

      Live tool Paste a chart or a PDF page and get its numbers back Screenshots, photos of slides and PDFs. Fix any point, redraw it, take it to Excel.
      618held out charts it was never tuned on
      69.8%of synthetic test charts read right, 40.0% of Our World in Data ones
      3.2 smedian time per chart, in the browser
      16chart types in the editor
      UN/CHART Live demo
      Read labelsFit axesTrace dataCheck itself
      The example chart being read
      labels 0points 0time 0.0 sHover the chart to measure any point
      Four example charts with made up data, read by version 4 of the engine. Orange is what Unchart found. The live tool reads your own charts the same way, and it has the full editor.

      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
      • 253 tests

      Desktop widgets for Windows. A now playing card that takes its colors from the album cover, GIF boxes, and a clock in 3D chrome rendered with NumPy. Version 1.1 adds five card shapes, an analog clock face, dragging the progress bar to seek, snapping, a hide shortcut, saved profiles, a settings window with a live preview and an installer.

      It also fixes a leak in the fullscreen check that kept about 270 MB a day per widget, makes GIFs play at the right speed (0.96x instead of 0.65x for 20 ms frames), and keeps every line of text at 3:1 contrast or better on 122 test covers. I've only measured it on Linux so far.

      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