Skip to content

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

  1. 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

    Mira Chen <mira.chen@example.com>

    Hi, since this morning our whole team can't log in, and the March invoice shows we were charged twice. We have a client demo in two hours, so this is really urgent. Plan: Business.

    can'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.

    Read the technique: Support Ticket Triage Assistant
    Illustration of The Sentinel Spire, the place standing for Support Ticket Triage Assistant on the map painting.
    Illustration · The Sentinel Spire, from the map painting
  2. 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

    SKU-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.

    Read the technique: Warehouse Inventory Anomaly Checker
    Illustration of The Ledger Bridge, the place standing for Warehouse Inventory Anomaly Checker on the map painting.
    Illustration · The Ledger Bridge, from the map painting

02 · The Sect Code

Engineering approach

The rules the work is built by, each with the project where it shows.
  1. 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.

  2. 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.

  3. 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.

  4. 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

  1. Example Labs

    Software Engineering Intern · Jan 2026 – Jun 2026

    Built internal tools for the support and operations teams, from data pipelines to the screens people used every day.

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.