Atlanta, GA Looking for a data or business analyst role

Jimmy Tran

I'm a Computer Information Systems student at Georgia State, graduating May 2027. Over the past two years I've built three data systems on my own: a forecasting model, a live esports analytics platform and a computer-vision tool that reads game broadcasts. I'm comfortable with messy data and careful about validating it before I trust it. Four projects are below, with the working parts left in.

Interests

What I'm paying attention to

01

Markets & investment management

How decisions get made under uncertainty, and how much of a result is signal rather than noise.

02

Operations & process

Workflow automation, data quality and controls, and finding the root cause instead of the symptom.

03

Data & modeling

Python, SQL, and large datasets. Building pipelines, then checking whether the model actually beats the obvious baseline.

04

AI

My concentration, and the part of all this that's moving fastest right now.

Work

What I've built

01 Machine learning & applied probability

Turret Prediction Model

A five-model PyTorch ensemble that predicts how many turrets fall in a professional League of Legends game, and the betting record I built around it: 1,395 graded positions over 27 months, +5.74% on stake. The inputs weren't in any public API, so I collected them by hand through Google Sheets and Apps Script, and where an automated source existed I checked it against 1,793 games I had counted myself: 85.3% exact agreement, and a statistically significant undercount in the feed (p < 0.001).

The interesting part is that the model is barely predictive. Its out-of-sample R² is −0.002, slightly worse than guessing the average every time, and the returns come from pricing rather than forecasting. I also found a data leak in my own validation: random splits were letting later games inform earlier predictions, which inflated my headline number from +1.44% to +9.59%. I published the smaller one.

Cumulative profit, 1,395 graded positions

Pos1,395 Date2026-06-06 Net+69.9
  • +5.74%return on stake
  • 75.8%strike rate
  • 7.7×return per drawdown
  • −0.002out-of-sample R²worse than guessing the mean

Turrets per game, 19,000+ games

Under— Fair— Over— Fair—

Drag the line. The dashed band is the model's entire output range.

Fair here: $1 returns $2.19 on under, $1.84 on over. Offered more than that, the bet has an edge; less, and the book does.

Break-even at the prices taken was 71.3%. Trace the curve for any point in the sequence.

PyTorch / pandas / NumPy / Apps Script

02 Python, Flask, SQLite, data modeling

Skyway Airways Flight Booking

A booking application on a seven-table relational SQLite database with indexed tables for flights, seats and bookings. Seat availability is derived at query time with LEFT JOINs, not stored, and a partial unique index stops double-booking when requests overlap: twelve concurrent requests for one seat gave one booking, eleven refusals and no errors. An idempotent seed (15 flights, 17 airports, about 2,400 seats) and 144 passing tests cover concurrency, sign-in, access control and bad input; accounts use hashed passwords and CSRF protection, an admin panel is restricted by role, and an interactive seat map quotes prices live.

The network

JFK LHR UTC

All 15 flights

FlightnumberRoutecitiesDepartsdurationFareaircraft

—

  • First ×4.0
  • Clipper ×2.2
  • Economy ×1.0
  • Taken
  • Yours ✓

Availability is never stored: every seat query is LEFT JOIN bookings b ON b.seat_id = s.id AND b.status = 'CONFIRMED'. Booked seats are the ones the app's own seed sells on each flight. Click a free seat to book it and click it again to cancel, exactly as a CONFIRMED and then CANCELLED booking behaves; these live in this tab only and reset on refresh. Source

Python / Flask / SQLite / Deployed on Render

03 Python · FastAPI · SQLite · Next.js · TypeScript

Esports Analytics Platform

Riot's esports feed is live telemetry with no history: a game is gone a few hours after it ends. This keeps it. 682 games and 160,953 timeline events across 19 leagues so far, from six sources, behind a 57-endpoint API and a 15-page dashboard.

There is no timeline to ask for, so one is rebuilt by diffing the feed's snapshots frame by frame: every kill, objective and purchase, on the true in-game clock with pauses taken out. Captures that contradict themselves are refused, what the feed drops is retried, and every winner is checked against a second source.

The feed runs 60 to 150 seconds behind the game, and the gap changes by broadcast. The panel below probes for it, tells a paused game from a silent feed, and plays the game back as it happens.

From the lolesports feed

Read from the official feed in your browser as the game is played. Finished games are written down and served locally in 41 ms, against 60 to 150 seconds upstream.

Python / Live APIs / Dashboards

04 Computer vision

Broadcast Computer-Vision Reader

Reads professional broadcasts to capture what no API publishes: summoner spells and their cooldowns, items (about 85% agreement with Riot's data), kills, deaths and assists (97%), level (95%), creep score (90%), and every champion's position on the minimap, tracked every half-second. It learned a digit and icon set per broadcast, and each one is graded against Riot's feed.

Widening the match windows and carrying last-known positions raised kill placement on the map from 66% to 91%, checked against the broadcast camera itself: 99% of placed kills (104 of 105) fall inside the camera's view at the moment of the kill. It feeds the platform live, with roster checks so another stream's game can never leak in; the maps, summoner spells and quest items in the esports panel come from its logs.

Python / OpenCV / NumPy

Skills

Analysis

  • Python (pandas, NumPy, PyTorch, FastAPI, OpenCV)
  • SQL (SQLite)

Data & BI

  • Excel
  • Power BI
  • Tableau
  • Google Sheets

Engineering

  • TypeScript
  • Next.js
  • Java
  • Git
  • Automated testing

Methods

  • Data validation & reconciliation
  • Walk-forward validation
  • Calibration
  • Root-cause analysis
  • Process documentation

AI tools

  • Claude
  • Copilot

Languages

  • English
  • Vietnamese (native)
Currently

Finishing a BBA in Computer Information Systems at Georgia State University's Robinson College of Business, concentration in Data Analytics & AI, GPA 3.67, Dean's List. Graduating May 2027.

Resume

Contact

I'm looking for a data or business analyst role. Email is the fastest way to reach me.

jimmy28tran@gmail.com