Robert Moore
  • Java
  • Python
  • TypeScript
  • JavaScript
  • C
  • C++
  • MATLAB
  • SQL
  • HTML
  • Spring Boot
  • React
  • PostgreSQL

Seeking a Summer 2027 software engineering internship

Hi, I’m Robert

Computer science student at the Milwaukee School of Engineering, and a software developer intern at Motio.

UnderstandBall, on the chartA live NBA trade evaluator with a deterministic scoring engine

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.

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

Grade a trade yourself

Motio, on the chartSoftware developer intern. Integration layers for a data retention service

Software developer intern

Where the work is quiet and the bugs are subtle

Data retention service

helpdesk connectorCRM connector

  1. Findacross third-party systems
  2. Confirma person says yes
  3. Deletethen, and only then
  4. 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
ACC, on the chartCommunity Assistant. Leasing, sales and operations for a 380-bed property

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, on the chartA router that spreads work across three AI subscriptions, and Alfred, its butler

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
Curaçao, on the chartLearned to dive here. Ran a dive shop here. Wrote here

Dive Division, Curaçao

Curaçao

Coral Estates site

Alone on day 2

  1. Open the shop
  2. Intake, scheduling, sales
  3. The divesall of the teaching and guiding. 50+ certified in a season, several hundred guided dives
  4. Secure the sitearound every departure
  5. Equipment maintenance
  6. Cash in Odooreconciled, so it lines up
  7. 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.

How I ended up here, on the open world

Written in Curaçao

Selected writing

  • AP Research · 29 pages · 5,661 words

    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.

  • AP Seminar · Individual Written Argument · 2,228 words

    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.

Prob & Stats, on the chartAn interactive study site for MTH 2480, including a Crapless Craps simulator

ProbStatsStudy

Prob & Stats

Dealer showing 4

4♠

You 12

10♠2♥

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

ActionEV
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, on the chartShips passing his deck in Blue Bay, built while working remotely from that house

BB45-ShipTracker

BB45

200°220°240°260°280°Blue Bay, from the decktrue bearingvisibility edge
Live AIS vessels placed at their true bearing, with a weather-driven visibility model that decides which of them you could actually see from the deck.

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.

The code

Get in touch

The fastest way to reach me

I am looking for a Summer 2027 software engineering internship.

B.S. Computer Science, Milwaukee School of Engineering, expected May 2028

Coursework: Software Engineering, Computer Networks, Data Structures, Cybersecurity, Probability & Statistics

Also works inGit · GitHub · GitLab · Docker · Maven · Claude Code · VS Code · Salesforce · Odoo · Photoshop · Microsoft Office

Frameworks and dataNext.js · Node.js · Vite · Hibernate · Flyway

Testing and CIJUnit 5 · Vitest · pytest · GitHub Actions · GitLab CI

PracticesTest-driven development · CI/CD · code review · technical specification writing

Let's go exploring!

The end of the route

The open world

The same islands on one chart, a boat that sails between them, and the dive world under it.

Open world