Alex Morgan
AI/ML Engineer & Software Developer
I build AI-powered tools for support, operations and data teams.
- Software Engineering InternExample Labs
- Work2 projects
- Hackathon buildSupport Ticket Triage Assistant
Scroll. Enter the Jianghu.
The Gate
LEARN. BUILD. BREAK. REPEAT.
Alex Morgan
AI/ML Engineer & Software Developer
I build AI tools that sit where data, backend systems and good interfaces meet.
Clear problems, honest limits, and the small details that make software pleasant to use.
01 · Techniques
The work
01 · The Sentinel Spire · Support · Machine learning
Support Ticket Triage Assistant
Tickets pile up faster than anyone reads them. This one routes each and says why.
Python · FastAPI · Uvicorn · SQLite · scikit-learn (logistic regression) · sentence-transformers · pandas
Read the technique: Support Ticket Triage Assistantcan't log in: Access: login wording sends the ticket to the accounts queue.
charged twice: Billing: a duplicate-charge phrase adds the billing label, so the ticket is split across two queues.
in two hours: Urgency: a near deadline raises the priority by one step.
really urgent: An explicit urgency word counts only alongside another signal, so shouting alone cannot jump the queue.
Business: Account context: the plan name is looked up to apply the response-time target for that tier.
Sample ticket, written for this demo. Each marked phrase is a kind of signal the triage rules look for.

Illustration · The Sentinel Spire, from the map painting 02 · The Ledger Bridge · Operations · Data
Warehouse Inventory Anomaly Checker
Stock counts drift quietly. This finds the gaps and explains every one.
Python · FastAPI · pandas · openpyxl · rapidfuzz · PostgreSQL · SQLAlchemy
Read the technique: Warehouse Inventory Anomaly CheckerSKU-1042 · 120 units: The same item, typed differently. Codes are normalised before matching, so this is a pair, not two problems.
SKU-2210 · 48 units: Two units short: reported as a count variance. A tolerance setting decides how small a difference to let through.
SKU-3307 · 15 units: On the books but not on the shelf: flagged for a recount before anything is written off.
SKU-4481 · Bin A-12: Right item, wrong bin: transposed digits are caught by a near-match on the location code.
Demo data, written for this page. Each note paraphrases a check the tool runs.

Illustration · The Ledger Bridge, from the map painting
02 · The Sect Code
Engineering approach
Start from the problem, not the tool
Before choosing a model or a framework I want to know what actually arrives at the system and who has to act on what comes out.
Seen inSupport Ticket Triage AssistantTickets come from a form and an inbox, so the service accepts both in one shape.
Break the system into parts that stand alone
A component I can run, test and reason about by itself is one I can replace without fear. Boundaries come before features.
Seen inWarehouse Inventory Anomaly CheckerThe analysis engine knows nothing about HTTP; the API knows nothing about stock rules.
Let deterministic logic lead and models assist
Rules and arithmetic give answers that can be checked. Models add judgement on top, within limits, and the system must still work when they fail.
Seen inSupport Ticket Triage AssistantThe classifier can add a label but never remove one the rules set.
Name the limits
A prototype is more useful when it is honest about what is stubbed, simulated or untested. Each case study here ends with its limitations.
Seen inWarehouse Inventory Anomaly CheckerThe tool lists and explains discrepancies; it never writes stock off by itself.
03 · The Disciplines
Capabilities
Backend: The Sword
Services, data and the rules that must hold.
- Python
- SQL
- FastAPI and REST API design
- pandas: cleaning, merging, reconciliation
- Fuzzy matching
- PostgreSQL and SQLAlchemy
Frontend: The Palm
Interfaces, motion and the craft of the screen.
- JavaScript
- TypeScript
- React
- Next.js App Router
- Tailwind CSS
- Vite
- Data visualisation with Recharts
- Motion for React
- GSAP ScrollTrigger
AI and machine learning: Qi
Models, language and judgement, within limits.
- scikit-learn: logistic regression
- Sentence embeddings
- Text cleaning and feature design
04 · The Trial Record
Experience
Example Labs
Built internal tools for the support and operations teams, from data pipelines to the screens people used every day.
- Support Ticket Triage Assistant
- An internal dashboard kitShared charts and tables for the operations team.
05 · Asked and answered
Questions at the gate
- How soon are you ready to start?
- This week. Send the problem and the constraints.
- What do you still get wrong?
- I sometimes refactor before the first version has earned it.
- Who should not hire you?
- Anyone who wants a model added because it sounds good in a deck.
- What's the fastest way to get your best work?
- A real problem, real data, and someone who will say when I'm wrong.
- What makes you dangerous?
- I read the logs before I trust the dashboard.
- What are you obsessed with right now?
- Small models that run anywhere, and interfaces that explain themselves.
06 · The challenge
Send a challenge
Have a problem worth solving? Send it over.
Message me on LinkedIn (opens in a new tab)Ideas are cheap. Shipping is the work.