understandball.com
I wanted to know if a trade was actually good
Trade evaluator example
Sports: the NBA is live, other sports are withheld until built.
One trade, two goals. Each side is graded against its own.
Contending
graded against winning now
Helps now
Rebuilding
graded against what it keeps for later
Pays off later
Same trade, same grade, every time. No model in the scoring path.
Legal under the 2023 CBA: both aprons, tiered salary matching, the second-apron aggregation ban, frozen first-round picks.
Most trade grades start and end with an analyst's judgment. I wanted one that could show its work, so I built understandball.com: a live NBA trade evaluator that grades each side against what that team is actually trying to do, contending or rebuilding, rather than against a single idea of value.
The scoring engine is fully deterministic. No model inference anywhere in the scoring path, which means the same trade always produces the same grade and the site can explain how it got there. 9,129 tests cover that engine and the salary cap rules it enforces, and they run in a GitHub Actions pipeline.
It implements the 2023 CBA properly: both aprons, tiered salary matching, the second apron aggregation ban and frozen first round picks.
The NBA is the league that is built. Each league declares whether its own data is live, empty or unbuilt, so the others are scaffolded and their grades are withheld until the data behind them is real. A grade nobody can trace is worse than no grade at all.
Before a third party API expired I designed and ran a data capture pipeline that archived its data across 23 sports.
The goal underneath all of it: I want to work in an NBA front office. UnderstandBall is where I am learning to build software for basketball decisions.
- Stack
- Java 21 · Spring Boot · React · Vite · Vitest · JUnit · Docker · Vercel
Software developer intern
Where the work is quiet and the bugs are subtle
Data retention service
helpdesk connectorCRM connector
- Findacross third-party systems
- Confirma person says yes
- Deletethen, and only then
- Recordtamper-evident
I am a software developer intern at Motio, a data analytics company out of Dallas, working remote. Most of my time goes to Purge Pilot, a data retention service in Java, Spring Boot, React and PostgreSQL, where I own the helpdesk and CRM connectors end to end. OAuth 2.0 with token caching, rate limit backoff, query translation.
I found and fixed three separate causes of silent record loss in keyset pagination running over a search index that lags its own writes. Nothing crashed. Nothing errored. Records just quietly did not come back, which is the worst kind of bug in a system whose whole job is deciding what to delete. I also wrote down the exact point where the guarantee stops holding.
I built the operator console's frontend out from a designer's mockup into reusable components, and introduced Vitest and Testing Library where the frontend had no test setup at all. On the backend I wrote roughly 40% of the test suite and shipped 14 database migrations against a trunk shared with the team.
- Reliability
- Evidence uploads to cloud storage, with idempotency aware retry and a durable local fallback, so audit records survive a remote outage
- Across teams
- A user interface update delivered to a second team's project, handed to the team building it
- With the team
- Code review, and three live demos at internship review, one against a real external sandbox
- Languages
- Java · TypeScript · Python · SQL
- Tools
- Spring Boot · React · PostgreSQL · Git · CI
American Campus Communities
The leasing office
Community Assistant
Chauncey Square 150 units, 380 beds
- Every day
- Open the model apartment and the office
- The front desk: whoever walks in or calls
- Tours, applications, twelve-month leases in Salesforce
- The model walk, for curb appeal
- Close
- When it comes up
- A parent worried about their kid: the student signs, the parent decides
- Maintenance triage: stabilise it for maintenance, or resolve it so they are never called
- Resident events
- Marketing on and around campus, and the social media ideas
- Weekends
- No manager on site. The CAs run the office
- With the assistant general manager post vacant for long stretches, more of it landed on us
- One week at a time
- On call, rotating among the CAs, holidays included
- One month a year
- Turn: most residents out July 31, new students in around August 16
- Scrub apartments, move furniture, watch vendors for residents' belongings and code
- Thirteen-hour days
Twenty hours a week alongside a full course load, for two years.
For two years I was a Community Assistant at Chauncey Square, a 150-unit, 380-bed student housing property. I closed more than 25 twelve-month leases, over $300,000 in signed value at roughly $13,000 a contract, tracking every lead in Salesforce from first inquiry to signature.
The leasing was the measurable slice. The rest of the job was the front of the office: whoever walked in or called, the model apartment and the office opened and closed every day, a walk of the property for curb appeal, resident events, marketing on and around campus, and social media, where I was asked for the ideas as well as to appear in it. A manager was on site most of the time. On the weekends the CAs worked there was none, and for long stretches the assistant general manager post sat vacant, so the CAs ran the office and more of it landed on us.
The harder conversations were with parents. The student signs the lease and the parent decides, and a lot of the job was giving an anxious parent a real reason to feel their kid would be safe there.
Community Assistants carried a real on-call rotation: one week at a time, rotating among the CAs, holidays included. I also learned maintenance triage in the first-responder sense: stabilise a problem so maintenance arrived to something that had not got worse, or resolve it so they never had to come.
Turn was its own month. Most residents moved out on July 31 and new students arrived for classes around August 16, so the whole property changed hands in about two weeks: scrubbing apartments, moving furniture, and watching vendors so residents' belongings stayed safe and the work was up to code. Thirteen-hour days. The rest of the year it was twenty hours a week alongside a full course load, for two years.
Jarvis
A router across three AI subscriptions
Alfred, at your service.
- Butler
- on duty
- Employer
- Master Robert
- Router
- Jarvis (claude / codex / gemini)
- Silver
- polished
- Tea
- Earl Grey, steeping
- Patience
- inexhaustible
- Judgement
- reserved, but present
DEMO: canned replies, no models called
/help for commands, /exit to be dismissed.
Good afternoon. You are Master Robert's guest, and this is a demonstration.
Nothing here calls a model. Try: about, routing, limits, example.
Jarvis is a command line router that dispatches tasks across three LLM provider subscriptions, choosing by task type and falling back down a chain when one is unavailable. It is covered by 994 tests that spend no quota.
Running out of quota is a first class outcome, distinct from an error, so only a genuine limit benches a provider on a cooldown rather than a transient failure.
Every layer has a dry run mode that prints the exact command it would run, and no layer can silently downgrade a rehearsal into a real, billable call.
Alfred is the interface on top of it. What runs on this page is its demonstration mode: the same canned tour the real one gives, calling nothing.
- Stack
- Python 3.12 · Typer · Pydantic · pytest
Dive Division, Curaçao
Curaçao
Coral Estates site
Alone on day 2
- Open the shop
- Intake, scheduling, sales
- The divesall of the teaching and guiding. 50+ certified in a season, several hundred guided dives
- Secure the sitearound every departure
- Equipment maintenance
- Cash in Odooreconciled, so it lines up
- Close
The week
Three days alone. Four with one office staff member.
Emergency First Response Instructor: CPR, emergency oxygen, AED.
In the summer of 2022 I ran Dive Division's Coral Estates site as its only instructor for most of the season: all of the teaching and the guided diving, and the shop's daily operations around them. I was alone at the shop on my second day. I certified more than 50 students that season and led several hundred guided dives, and I finished the summer as an MSDT.
The shop was mine to open and close: customer intake, scheduling, sales, reconciling the cash in Odoo, securing the site around every dive departure, and the equipment maintenance in between. Three days a week I was there alone; the other four, with one office staff member.
About a month before I left, the shop hired a second, more senior instructor. One day I let her take a dive and did not think anything of it. Then I was told: we want you to take all the dives.
I was also a certified Emergency First Response Instructor, teaching CPR, emergency oxygen and AED use, including Care for Children. The summer before Coral Estates I had taught freelance at two other Curaçao dive centres, tracking each student's progress toward certification.
In its lee
Central Curaçao
Central Car Curaçao
Central Dive Curaçao
Confirmed Pickup at the shop. Gear included with the dives.
Online booking system for Central Car Curaçao and Central Dive Curaçao. The people who taught me to dive co-own it with my dad, so this is the one project where I already know every user by name.
Written in Curaçao
Selected writing
Mixed-Methods Historical and Statistical Analysis of American Metrication
The 1975 Metric Conversion Act failed where Australia, Canada and Ireland succeeded, because the American switch was voluntary and had no deadline. The cost of staying imperial is measurable: a $125 million Mars orbiter lost to a unit mix-up, and billions a year in medical error.
Social and Health Effects of Binge-Watching
Binge-watching has real social and health benefits, but the harms are more common: cancelled plans, a tolerance curve that looks like addiction, and disrupted sleep. Avoiding them takes deliberate self-monitoring.
ProbStatsStudy
Prob & Stats
Dealer showing 4
You 12
Bet $10
Dealer, showing 4♠
Where the dealer's hand ends, drawing from the 309 cards you cannot see.
Your hand: 12
P(bust) if you hit: 30.7%
EV per $1 bet
| Action | EV |
|---|---|
| Standchart | -0.211 |
| Hitbest | -0.210 |
| Double | -0.421 |
best is the exact number for this shoe;chart is what the basic-strategy chart says. When they differ, the gap is the price of playing from a chart of averages.
Hitting busts you 31% of the time, but standing on 12 loses to any dealer 17 or better, which happens 61% of the time. The chart says stand; for this shoe the exact numbers prefer hit by 0.001 per dollar, which is $0.01 on this bet.
Exact recursion over the remaining shoe (9,396 states). The one approximation: split hands are valued as independent, no resplits.
A snapshot of the study site's blackjack table: six decks, dealer stands on soft 17, one spot, every number computed by its engine for the cards on the felt.
Interactive study site for MTH 2480: practice problems, a formula reference, and a Crapless Craps simulator.
BB45-ShipTracker
BB45
A first-person horizon view of ships passing my deck in Blue Bay, Curaçao, drawn at their true bearing, with a weather-driven visibility edge.
