AI Builder · Owner-Operator · MBA in Business Analytics

I build AI that runs my business.

I taught myself to run AI that predicts freight lanes, tracks my books, and powers my MBA, and to run it privately, on my own machine, without handing my data to anyone. Every tool on this page came from a problem I hit running my own business.

Brownsville, TX · Bilingual (English / Spanish) · MBA in Business Analytics, December 2026 · Open to Data / BI Analyst roles.

Carlos Martinez Jr., headshot
My Story

I didn't learn data in a classroom first. I learned it in a truck.

I've been behind the wheel since 2007, when I earned my CDL Class A.

For years I ran under my own authority, and because I'd always loved Excel, I started building what I'd call dashboards today: simple sheets that told me exactly what each load would pay after fuel and costs. That instinct to measure everything never left. In 2023 I moved my freight over to Landstar to cut the paperwork and focus on the driving and the building.

Then AI showed up, and I leaned all the way in. I taught myself where to go, how to code, and how to actually ship things. My crude spreadsheets became professional tools that show me what works and what doesn't, and I expand them every single day. Every problem I solve opens the door to the next idea, and chasing that next idea is the part I genuinely enjoy.

That's who I am: an operator who builds. I've spent 20+ years leading teams (a 20-year Army career, a 40+ member platoon) and grew my freight business from $100K to $300K in revenue with data-driven decisions. Now, with an MBA in Business Analytics, I look at any business the way I learned to look at mine: find where the hours and dollars leak, measure it, and build the thing that fixes it.

How I Work

I see businesses through an operator's eyes.

When I stepped into trucking and decided to buy my own truck, I made myself one promise: never stop looking for ways to improve the business. Chasing those improvements is where I picked up the ideas behind the automations and AI technology I use, and some of what I created along the way is on this page, live and working.

That habit changed how I look at every business, including mine. I don't see a mystery. I see processes that can be measured, decisions that can be sharpened, and hours that software can give back.

Find the leak

Every business loses hours and dollars somewhere. I learned to spot it because it was my money.

Measure it

Excel, SQL, Python, PostgreSQL. If it matters, it gets a number.

Build the fix

The proof is below: tools built for problems I lived.

What I've Built

Proof, not promises.

Every card is labeled for what it actually is. Live systems run today on real data. Prototype and Proof of concept are working builds that are not in production use. Client delivery was built to a paying client's spec. Nothing here claims a result that did not happen.

01 Live · refreshes 6 to 8× a day

Hot Spots / Top Lanes: A Lane-Prediction Engine I Run My Truck On

A load-prediction pipeline that runs on my own machine. Landstar load-alert emails are parsed into a Google Sheet, exported to CSV, and loaded into a PostgreSQL triangulation engine that analyzes roughly 14,000 historical loads over a rolling 12-week window. It refreshes 6 to 8 times a day and feeds live predictions into Lane Planner, the phone app I use to decide where to point the truck.

Landstar load-alert emails→ Google Sheet→ CSV export→ PostgreSQL triangulation engine→ Lane Planner phone app
~14,000
historical loads analyzed
12 weeks
rolling prediction window
6 to 8×
automatic refreshes per day
Why it matters: This is the tool I wished existed when I started driving, and now it is the one I actually run my business on. It is a prediction from history, not a load finder: it counts how often each lane has posted, prices every loop with real pay math, and ranks them by net dollars per day.
Outcome: Live and in daily use. I moved it off paid Railway hosting to my own Mac to cut the monthly cost to zero, and it has run there since. Every morning the new data lands, the engine rebuilds, and the phone shows me the loops worth running.
Skills:PostgreSQLPythonGoogle SheetsSQL
Lane Planner dispatch sheet on a phone: where the truck is, the day it rolls, days until home, deadhead limit, diesel price, and pay split
Step 1: The dispatch sheet. Where the truck is, the day it rolls, days until home, max deadhead, diesel price, and my pay split. Two modes: I'm empty, or I have a load.
Lane Planner map and the top proven loop with each leg's posting history and the gross, pay, fuel, and net math
Step 2: Proven loops. Every leg shows how often it posted in the last 12 weeks, then the loop is priced out: gross, my pay, fuel, net, and net per day. The map draws it.
Lane Planner this-week loop marked Runnable, starting from a load posted right now
Step 3: This week. Loops that start with a load posted right now, graded Runnable, Call Ahead First, or Gamble by how reliably each leg has posted. These change every morning.
Lane Planner ranking of states that ship to Texas by days with freight, loads, agencies, and rate per mile
Step 4: Where to place the truck. States that ship into Texas, ranked by days with freight, agencies, and loads, with rate per mile and average pay.
🔒Private tool, shown here on purpose. Lane Planner runs on my own machine and phone behind a password, because the data inside it is my own load history and the brokers I work with. These screenshots are from the live app today, with broker names, phone numbers, and load numbers removed. It is not available for public use.

How the engine thinks

Freight towns are grouped into market areas: a hub city plus every freight town within 75 road miles, so "Fort Worth area" includes Dallas, Weatherford, and Hurst. A lane is one area to another, summarized over the 12-week window. A loop is a chain of legs that starts where the truck is and ends back in Texas, with the empty miles home charged at cost so a loop that strands me far from home does not look better than it is.

How it rates confidence

Every loop gets a confidence tier based on how many of the last 12 weeks its weakest leg actually posted and how many agencies posted it. Runnable means the lane shows up most weeks with several agencies behind it. Call ahead first means it posts some weeks. Gamble means it is thin. The pay math is the same formula I use to check my own settlements, so the ranking is in real dollars, not a score.

What a BI analyst would recognize

It is a small warehouse: a fact table of loads, dimension tables for locations and brokers, geocoding for new towns, and a rebuild step that re-derives the market areas whenever new data lands. The sheet keeps about 30 days of history. The database keeps everything, and the ingest never deletes.

02 MBA project Live demo

Freight Mode Optimizer

For an MBA project I analyzed roughly 6 million shipments from the U.S. Commodity Flow Survey across air, rail, truck, and parcel, then determined the smartest mode by distance and shipment value. The result is a single-file interactive dashboard with the crunched market data baked in.

Why it matters: Big data, real logistics stakes. Proof I can take millions of rows and turn them into a clear recommendation a shipper can act on.
Skills:PythonpandasRegression analysisCommodity Flow Survey data
03 MBA project

Monterey Fisheries: Three NOAA Datasets in One PostgreSQL Database

I combined fish landings, harbor tide readings, and offshore buoy data, three public sources in three file formats, into one PostgreSQL database with 8 tables, 57,740 rows, and 34 rules enforced by the database itself. Then I answered five business questions in SQL and tested whether the catch moves with the ocean.

Why it matters: The design caught problems a spreadsheet would have missed: 48 duplicate sensor readings, fake sensor values, and 15.8 million pounds of catch that a normal join silently drops. The write-up says what the numbers prove and what they do not.
Skills:PostgreSQLSchema designSQL joins and window functionsPythonRegression and ANOVA
04 In production · my business

Truck Report Pro

A revenue and expense tracking system I built for my own trucking books, with a Google Sheet, Apps Script, and an iPhone shortcut all wired together. I log a load or a fuel stop from my phone and the books update themselves.

Why it matters: It replaced a $20-30/month app with software I own and control. Proof I ship production tools that pay for themselves on day one.
Outcome: It keeps a running annual tax estimate that updates automatically as income comes in through the year. I pay my taxes annually rather than quarterly, so at any point I can see what I will owe and set it aside, with no surprise in April.
Skills:Google SheetsApps ScriptiPhone Shortcut
05 Early proof of concept Live demo

Broker Pricing Tool

One of my first dashboards. An early proof-of-concept quote tool built from real historical load and pricing data to help a broker gauge what a lane should pay: rate per mile, fuel surcharge, and margin, in one number.

Why it matters: It was my first attempt at turning rate history into a decision a business could act on, and the pricing logic I worked out here later fed the lane-prediction engine above. It is not a tool in active use today. It stays on this page as proof of where the analytics started.
Skills:JavaScriptHistorical load and rate dataEIA diesel pricesPricing model
06 Working prototype

Flatbed Load Optimizer: The Load Plan Before a Single Pallet Moves

Where it came from: I built this after a load was packed wrong at a dock and cost me two extra hours fixing it. That afternoon of restrapping and reshuffling is the whole reason this tool exists.

A working prototype of a web tool for shippers. The dock manager types in the order, picks the trailer, and gets back the complete load plan in seconds: a to-scale trailer diagram, the exact loading sequence for the forklift crew, strap counts by row, and weight and height checks, all before the first pallet leaves the rack.

Why it matters: Nineteen years of flatbed experience, encoded into software. I didn't find this problem in a dataset. I found it standing at the dock, and I built the fix for myself first.
Outcome: Personal problem-solving, not a client result yet. The prototype runs, passes its test suite, and plans real loads I have hauled. No shipper is using it in production today.
Skills:PythonFlaskPacking algorithmAutomated tests (pytest)SVG trailer diagrams
Load Optimizer order form with a real roofing-materials demo load entered
Step 1: The shipper enters the order. This is a real load I hauled: 12 pallets and 47 loose rubber-roofing rolls, plus this dock's own spacing rules.
Load Optimizer plan page showing legal checks, top view, and side view of the trailer
Step 2: The plan comes back. Top and side views of the trailer, 32,595 lb placed and centered, 12 straps specified, every legality check passed.
Load Optimizer step-by-step loading sequence for the forklift crew
Step 3: The crew gets a numbered loading sequence, nose to rear, bottom layer first. No guesswork at the dock.

The day it started

I was picking up a flatbed load of roofing materials and the dock crew worked out the arrangement on the fly: what rides at the nose, what stacks on what, where the loose rolls go. All of that knowledge lived in people's heads. They got it wrong, and I spent two extra hours fixing it before I could leave legal. Get it wrong and you find out late, at the scale, at the strap check, or when freight comes back damaged. As the driver, I'm the one who straps it and hauls it, so I know exactly what a good load looks like.

What I built

A packing engine that knows the freight (pallet sizes, weights, what can bear weight, what crushes) and the rules of the road (payload limits, 8'6" height, center of gravity, strap working-load limits). It packs the trailer the way a good dock crew would: crush-sensitive foam at the nose, pyramid stacks of loose rolls braced at the rear, and the front row strapped as the backstop that braces everything behind it. Custom items can be added on the fly, and more than 60 automated tests keep the engine honest.

Why I think a shipper would pay for it

Every reload is forklift time, dock time, and driver detention. Every overweight or over-height surprise is a fine or a late delivery. This tool moves those mistakes from the dock, where they're expensive, to the screen, where they're free. That is the pitch. It has not been proven with a paying shipper yet, and I say so.

07 Client delivery · Upwork

Sales CSV Cleaner & Report Builder

A Python tool that turns a messy point-of-sale export into clean data and a ready-to-read sales report with a single command. It standardizes mismatched dates and prices, drops duplicates and broken rows, and accounts for every row so nothing disappears silently.

Why it matters: It replaces an afternoon of manual spreadsheet cleanup with a few seconds of work, and produces the same trustworthy numbers every time. The quiet kind of automation a business runs every week.
Outcome: Built to a real client's specification from an Upwork request and delivered exactly to spec. The client did not come back with follow-up work, so I make no claim about ongoing use. What it proves is that I can scope a request, build it, and ship real client work.
Skills:Python (standard library)CSV and JSONData cleaningAutomated reporting
Before and after: the raw messy CSV export on top, the cleaned CSV below
Step 1: Before and after. On top, the raw export: three date formats, prices as $1,299.00 and 1299, a row with no order ID, a blank row, a zero-quantity row, and a duplicate. Below, the same data cleaned and sorted, with a computed line total on every row.
Terminal showing the one-command run and the first rows of the cleaned CSV
Step 2: One command. 100 rows read, 88 kept, 8 skipped, 4 duplicates removed, and the cleaned file comes out tidy with a computed line total.
Generated sales report with revenue by product and month, top customers, and data quality section
Step 3: The report. Revenue by product and month, top customers, and a data-quality section that explains every single skipped row. Nothing disappears silently.

What it is

A lightweight Python tool that takes the raw, messy CSV a point-of-sale system exports and turns it into three usable files. It runs on the Python already built into your computer, so there is nothing to install and no monthly fee.

How it works

You run one line and point it at your export. It standardizes every date format, strips the dollar signs and commas off prices, tidies product names, removes duplicate orders, and pulls out broken rows (missing IDs, bad dates, zero prices). Then it hands you back a clean CSV, a plain-English report (revenue by product, by month, and top customers), and a machine-readable JSON.

Why it saves time

What used to be an afternoon of copy-paste and find-and-replace becomes seconds. Every row is accounted for (kept plus skipped plus duplicates removed always equals rows read), and the report tells you exactly why anything was dropped, so you can trust the revenue figure. Build it once, reuse it forever.

08 Newest Build In use · my business

AI Bill of Lading Generator: The Paperwork Writes Itself

When a broker books my truck, they send a rate confirmation, the sheet that says what the load pays and where it goes. Often no Bill of Lading comes with it. The Bill of Lading is the document that travels with the freight: what is on the truck, who shipped it, who receives it, and the receipt the consignee signs on delivery. Without one I cannot get loaded, and I cannot prove I delivered. I hand the rate confirmation to an AI agent, it pulls out the shipper, the receiver, the pickup and delivery windows, the order numbers, the commodity and the weight, and lays them onto the standard industry form. What comes back is a print-ready PDF, ready to sign.

Why it matters: The old fallback was hand-writing the form at the dock or waiting on a broker to call back, both while the clock runs. This turns a document I need before wheels move into something that is finished before I get there. Every generated form keeps its source data beside it, so any Bill of Lading can be traced back to the load it came from, and finished loads archive themselves after a week.
Skills:Claude Code agentPythonPDF generationDocument extraction
09 In daily use

Carlos-HQ: My Multi-Agent Operating System

A team of AI agents that power my MBA work. They hunt down credible articles and documents for my research, so my assignments are built on the most accurate, current data. They also turn my reading into MP3s I can listen to while I'm driving, and I ask questions about what I'm reading through a chatbot from the road.

Why it matters: The research and the reading would have taken 10x longer without it.
Skills:Claude CodePythonMulti-agent workflowsText-to-speech

Let's talk.

Want to talk about a data role, or about anything I've built? I'm easy to reach.

Brownsville, TX (Rio Grande Valley) · Open to remote