№ 00 — Adam Manji · San Francisco, CA

Founder& engineer.

Adam Manji

Building in fintech and sports — an AI copilot for commercial credit underwriting (Bashi) and a free-to-play, ranked fantasy app (Snappy) currently in beta.

BasedSan Francisco, CA
EducationUC Berkeley · Computer Science
ShippingBashi · Snappy
Emailadam@bashi.app
The work, indexed
A short biography

I studied computer science at UC Berkeley, by way of an International Baccalaureate diploma. I now spend my days writing the code, the pitch decks, and the cold emails for two early-stage companies that have nothing in common on the surface — and almost everything in common underneath.

i.

Fintech

Bashi turns a multi-week credit-underwriting workflow into an afternoon. Claude-powered extraction, deterministic financial modeling, and an output that looks like the memo a senior credit officer would write.

ii.

Sports

Snappy is built on a contrarian bet — that the right form-factor for fantasy is short, head-to-head, ranked, and feels like a mobile game, not a spreadsheet. Live matchmaking, snake drafts, real-time scoring.

iii.

The seam

Both products live where messy real-world data meets a product surface. That's the work I'm interested in — turning the hard, schema-less middle of a problem into something a normal person can use.

№ 01A case study

Bashi

An AI copilot for commercial credit underwriting.

bashi.appadam@bashi.app

Unlocking potential, together.

— bashi.app, public homepage. The product itself is intentionally quiet for now.

bashi/extract.run
running

fig 01 — Bashi extraction pipeline, illustrative

What ships
  • PDF ingestion across 10+ doc types
  • Deterministic 5-yr 3-statement projections
  • Drafted credit memo, exportable to Word
  • Excel workbook export with audit trail
  • Confidence scoring and human-in-the-loop edits
§ 01

The problem

Commercial credit underwriting is a multi-week ritual. Analysts re-key numbers from PDFs into Excel, build 3-statement projections by hand, and write a memo. The work is tedious and error-prone — the slowest part of every middle-market deal.

§ 02

The wedge

Bashi reads the PDF the way a credit officer would. Vision-language models pick the right pages. Type-checked extractors lift the numbers. A deterministic engine builds the projection in pure Python. The model writes the memo skeleton — never the math.

§ 03

Why it matters

We turn a two-week pass into an afternoon. The model does what models are good at — read mess, structure it. The deterministic layer does what models shouldn't — arithmetic, projections, audit trail. The human is freed to do the only part that still matters: judgment.

Stack9 items
  • FastAPI
  • Python 3.11
  • Claude Sonnet 4.6
  • pdfplumber
  • openpyxl
  • ReportLab
  • PostgreSQL
  • Railway
  • Docker
№ 02A case study
Early access · Free to play

Snappy.

Fantasy sports, ranked. Pick three real players. Go head-to-head. Climb from Bronze to Legend.

snappyfantasy.comadam@snappyfantasy.com
8
divisions, Bronze → Legend
2
sports — NBA + MLB
20s
draft pick clock
$0
to play, ever
snappy/Q3.live
5:42 left
you53.0
opp51.0
  • S. Gilgeous-A.17.0
  • L. Dončić19.0
  • A. Edwards17.0
  • J. Tatum17.5
  • N. Jokić19.5
  • G. Antetokounmpo14.0
last playtip-off
scoring · pts + reb·1.5 + ast·2 + stl/blk·2.5 − to·2 − pf·1.5

fig 01 — Snappy live-scoring engine. Real formulas, simulated stats.

Snappy Home screen
Home
Snappy Draft screen
Draft
Snappy Live screen
Live

fig 02 — iOS, current build

01

Match

Hit Battle. Ranked 1v1 matchmaking at your ELO. Eight divisions from Bronze to Legend. Win and climb, lose and learn.

02

Draft

Snake-draft your roster from real players in live games. Twenty seconds per pick. Every choice matters.

03

Compete

Watch it play out live. Every pitch, every play scores in real time. Your roster against theirs, fantasy points rolling in.

§ 01

The thesis

DraftKings won by being a spreadsheet. The next generation of fantasy users won't sit down for a 12-hour slate. They'll play in the queue at Chipotle. The product needs to feel like a mobile game, finish in minutes, and make every play feel consequential — without anyone risking a paycheck.

§ 02

The form factor

Snappy ships two formats. NBA quarter-only contests resolve in roughly 30 minutes. MLB head-to-head snake drafts finish in three innings. Both are 1v1. Both have a 20-second draft clock. Both are free to play, with rank — Bronze through Legend — replacing dollars as the thing on the line.

§ 03

The under-the-hood

Live matchmaking with a bot fallback at 90 seconds. A Glicko-2 rating that buckets players across eight divisions. Three independent scoring engines. Real-time stat polling against league feeds. Audit-grade tests on the server so the rating math never slips.

Stack9 items
  • React Native / Expo
  • FastAPI
  • PostgreSQL
  • Auth0
  • Glicko-2
  • WebSockets
  • League data feeds
  • Railway
  • EAS · TestFlight
№ 03A case study
Real stakes for a fake game

TaserTag.

Laser tag already exists. We tore apart TENS units, wired the electrode pads through Arduino relays, and built a tag game where getting hit means getting shocked.

Three stacks · one game · one shock
Arduino · IR · TENS Python · WebSockets iOS · Swift
01 · rigArduinoIR emitter / receiver · TENS relay · pads on forearm
02 · refereeFlask + SocketIOlobby · teams · hit logic · shock authorization
03 · HUDiOS apphealth · scoreboard · respawn timer
tasertag/lobby.live
match in progress
  • P1 · adam
    hp
  • P2 · troy
    hp
  • P3 · preston
    hp
  • P4 · noah
    hp
game.armed · pads.calibrated · ttd 3:00

fig 01 — Lobby state, simulated. Real games include a real flinch.

What it taught me

Three stacks talking to each other in real time is the most humbling thing you can build — every clock skew, every dropped packet, every flaky IR hit, every misfired relay surfaces through whichever layer is loudest. You learn to instrument before you optimize. You also learn that physical feedback fixes a lot of UX bugs.

§ 01

The thesis

Laser tag already exists. The whole game is solved at the toy-store level: photons hit a vest, a buzzer beeps, you keep playing. We wanted stakes that the body actually noticed — something between the photon and the score. The shock is what made it a game we actually wanted to play.

§ 02

The teardown

Each player wears an IR receiver wired to a torn-down TENS unit — the over-the-counter electrode-pad device physiotherapists use for muscle stim. The Arduino sits between them. When the IR sensor catches a coded pulse, the Arduino briefly closes a relay and the TENS unit fires through the pads on your forearm. Current-limited and within consumer-device specs — sharp, not dangerous.

§ 03

The referee

A Flask + SocketIO server runs the room: lobbies, teams, hit-points, modes (team-deathmatch and capture-the-flag). Every IR event routes through the server before it can fire any TENS unit, so the rules of the game live in one place — and the body trusts that singularity.

§ 04

The HUD

Each player carries an iOS HUD — health, scoreboard, respawn timer. The phone is what you check between rounds. The Arduino is what carries the shot. The pads are what make you remember it. Three stacks, one feedback loop, one stinging forearm.

Stack8 items
  • Arduino · C++
  • IR transmit / receive
  • TENS unit · teardown
  • Relay-driven shock trigger
  • Python · Flask
  • Flask-SocketIO
  • iOS · Swift
  • UIKit

Etc.— archived & assorted

  • 042022

    CalHacks 9

    Hackathon · NL → charts

    A natural-language interface for plotting physics. Users typed sentences like "quantum harmonic oscillator" and a fine-tuned Cohere classifier mapped them to chart actions. October 2022 — a month before ChatGPT shipped.

    Hackathon submission
  • 052026

    Madness 2026

    Sports ML · bracket optimization

    A full pipeline for the 2026 NCAA bracket. XGBoost win-probabilities calibrated with isotonic regression, blended with Vegas lines, then a 100k-iteration Monte Carlo that picks the bracket maximizing P(top-3 finish) in a 40-person pool.

    Personal tournament use
  • 062022—

    Vinyl Player

    Hardware · RFID / NFC

    A digital vinyl player. Tap an NFC-tagged card on an MSP430 reader and the matching record starts playing — physical artifact for a digital library. Energia firmware, custom RFID handling, hand-cut chipboard "sleeves".

    Long-running side build
  • 072022

    Croadle

    Side project · web game

    Wordle, but you're guessing today's UC Berkeley dining-hall menu. Flask, App Engine, a custom on-screen keyboard, and an admin page for the daily answer.

    Was deployed
  • 082024

    Tolstoy

    AI · Russian-lit recommender

    An OpenAI-backed recommender for niche 19th-century Russian literature. You feed it a list of books you've enjoyed and it returns less-obvious picks in the same vein — and it's hard-coded to refuse to suggest War and Peace, Crime and Punishment, Anna Karenina, or The Brothers Karamazov no matter what you give it.

    OpenAI · class final
  • 092024

    Documenting Islamophobia in Canada

    Research · long-form web

    A nine-section research site — country profile, media influence, legal challenges, surveillance, countermeasures — with an interactive Leaflet map and hand-built static pages. The non-code work in the inventory.

    Published

Coursework, indexed

A working index of what I've studied — and, where I have it, what I built. Berkeley CS as the spine, with detours through data, biology, French cinema, and a Canadian programming contest or three. Project lists are curated, not exhaustive.

I. Berkeley · Computer Science & EECS

CS 61ASp 2022

Structure & Interpretation of Computer Programs

  • Hog · Dice game with AI strategy and game-state management.
  • Cats · Typing test, paragraph selection, word-frequency analysis.
  • Ants vs. SomeBees · Tower-defense with an insect class hierarchy.
  • Scheme · Functional-language interpreter — lexer, parser, evaluator, REPL.
  • Lambdaing · Card-game engine with rule enforcement and command parsing.
CS 61BFa 2022

Data Structures

  • 2048 · Tile-sliding board game with move logic and end-state detection.
  • Deque · Double-ended queue, linked-list and array implementations.
  • NGordnet · N-gram timeline analysis with time-series plotting and a Spark web server.
  • BYOW · Build-your-own-world: procedural dungeon generation, persistent state, interactive engine.
CS 61C2023

Machine Structures

  • Snek · RISC-V interpreter for a snake-style game — instruction decode, execute, memory.
  • CS61Classify · Neural-network inference in RISC-V — matrix ops, dot product, ReLU, all in assembly.
  • CS61CPU · Single-cycle CPU in Logisim — full datapath, control logic, fetch/decode/execute.
  • Convolution · Optimized image convolution with OpenMP threads and SIMD vectorization.
CS 70Sp 2022

Discrete Math & Probability

  • Grade Predictor · Personal anxiety tool — given my midterm, what does the final need to look like to hit my target?
CS 161Sp 2024

Computer Security

  • Project 2 · End-to-end-encrypted file sharing — key exchange, key revocation, integrity verification.
  • Project 3 · Web-security writeup — XSS, CSRF, SQL injection in a controlled playground.
  • Pwnable VM · Binary-exploitation exercises across stack overflows, format-string bugs, return-oriented programming.
CS 164Fa 2024

Programming Languages & Compilers

  • PA1 · Parser · ChocoPy lexer + ANTLR parser — operator precedence, error recovery, AST construction.
  • PA2 · Semantic Analysis · Type checking and symbol-table construction over the AST.
  • PA3 · Code Generation · Compile ChocoPy to RISC-V — register allocation, instruction selection, calling conventions.
CS 186Sp 2025

Introduction to Database Systems

  • RookieDB (proj0) · Bootstrap a tiny relational database — foundation for everything else.
  • SQL & Relational Ops (proj1) · Query interface and basic relational algebra.
  • Indices & Joins (proj2) · B+ tree indices and three join algorithms — nested loops, hash, sort-merge.
  • Query Optimization (proj3) · Cost-based planner — selectivity estimation and join reordering.
  • Concurrency (proj4) · Multigranularity locking for serializable transactions.
  • Recovery (proj5) · ARIES-style write-ahead logging, checkpoints, crash recovery.
CS 188

Introduction to Artificial Intelligence

  • Search · BFS, DFS, UCS, A* on Pacman pathfinding — heuristic design and consistency proofs.
  • Multiagent · Minimax, alpha-beta pruning, expectimax against ghost adversaries.
  • Reinforcement Learning · Q-learning agent with feature extractors and value iteration on gridworld + Pacman.
CS 189Sp 2025

Introduction to Machine Learning

  • HW1 · SVM · Kernel SVMs on MNIST and spam classification — C-tuning, cross-validation, Kaggle leaderboard.
  • HW7 · im2spain · Geographic location prediction from CLIP image features — k-NN regression on 28k geo-tagged Spanish photos.
EECS 16AFa 2022

Information Devices & Systems I

  • Python Bootcamp · Numpy + signal-processing primer for circuit problems.
  • Touch Lab · Capacitive touch sensor — hardware build plus signal interpretation.
  • Imaging Lab · Single-pixel camera reconstruction — capture, basis projection, image recovery.
EECS 16BFa 2024

Information Devices & Systems II

  • Labs 1—5 · Robotics, motor control, op-amps, signal processing — five hardware lab submissions.

II. Berkeley · Data, math, and the rest

DATA 8

Foundations of Data Science

  • Various · Hypothesis testing, bootstrap, regression — the standard Data 8 path through real datasets.
DATA 100

Principles & Techniques of Data Science

  • Homework 1b · Pandas, EDA, regression, classification — applied DS workflow.
MATH 1A

Calculus

ISF 100JFa 2022

International & Area Studies

  • Three research papers · Long-form essays on technology, society, and the politics of knowledge production.
BIOENG 10

Introduction to Biomedical Engineering

  • Final group project · Self- and peer-evaluation team build on a biomedical engineering problem.
FRENCH 185Fa 2022

Topics in French Cinema

AMERSTD

American Studies

  • Research paper · Long-form humanities writing on an American cultural artifact.

III. Pre-Berkeley · Queen's, high school, contests

Transferred in via Queen's University in 2022; programming-contest history before that.

CISC 1242022

Queen's University · Object-Oriented Programming

  • Mayhem · Text-based hangman variant — file-based word lists, interactive gameplay, OO design.
CompSci

High-school CS final

  • 2D Java game · Entity-component system, collision detection, single- and two-player modes.
CCC2010 · 2011 · 2021

Canadian Computing Competition

Three years of submissions across the senior division.

ECOO2020

Educational Computing Organization of Ontario

Multi-round competitive programming.

§ VI — colophonContact

Get in touch.

For Bashi, write to adam@bashi.app. For Snappy, adam@snappyfantasy.com. Anything else, the Berkeley address is the easiest to reach.