Alibaba Internship

Introduction

Over the summer I spent three months interning at Alibaba’s AliExpress, working on influencer and user-growth briefs. I shipped five projects, and used every one of them to push on the same question: what AI can actually do inside a design process, rather than in a demo. This case is where that went furthest.

IMPACT

Shipped 5 projects

Built an AI design workflow

TIMELINE

May 2026 - Aug 2026

DOMAIN

User Growth

E-Commerce

AI Agent

OVERVIEW

How I used AI, project by project

I see myself as a non-traditional designer who knows AI well. On each project I used it differently, depending on the business constraints and what the brief actually needed.

Image gen

Image 2

Nano Banana 2

Video gen

Seedance 2.5

UI gen

Opus / Fable

Dev

Opus / Fable

Cheap model for execution

Examples from my internship projects:

The project

Showcase: rebuilding pages, business logic and user flows straight out of the codebase

BACKGROUND

Where the work now starts

Design used to begin in Figma. It now begins with whatever HTML I can get hold of — and that swap is where everything breaks.

BEFORE AI

Ask for the source files

→

Design in Figma

→

Hand off Figma

WITH AI

Get HTML somehow

→

Vibe-code on top of it

→

Hand off HTML

Every step of the new lane has a tax

And each one gets worse the moment a brief arrives with dozens of interaction pages in it.

Get HTML

Days before design starts

Conversions are inaccurate, front-end needs a page list and mock data, doing it yourself means test logins.

Vibe-code

The whole front of a project

The model knows nothing about the business, so PRD and background go in piece by piece.

Hand off

Nothing you can show

The flow scatters across files. You open them one at a time and talk over them.

FINAL DESIGN

01

EVERYTHING AT ONCE

One pull, every page

The whole live surface comes back from the repository in one run, complete enough that nothing goes missing by hand.

Every live page of the influencer platform, recovered from the front-end code.

Each page can be pulled out as clean HTML, ready to hand to a model or a developer.

02

CONTEXT INCLUDED

The context comes with it

Business logic is inferred from how the code actually renders, and the design system is derived rather than re-documented.

Every UI decision in the product, collected onto one page — straight out of the code.

03

ORGANISED VISUALLY

Organised so you can see it

Pages by hierarchy, states by blast radius, flows split into main and branch — plus versions and branches on top.

Pages, arranged by their parent–child relationships.

States, grouped by how far they reach and what they sit inside.

User flows generate themselves, split into main and branch paths.

Two views of the same flow: collapsed, or every decision laid flat.

Versions and branches sit on top, so who changed what stays answerable.

ITERATION · EXTRACTION

The scan kept reporting success

Let the model plan its own scan and it misses things, then prints “success” anyway. Looping it until it stops missing does not work either.

scan complete — 0 misses

45 types / 187 values · success

42

values it never found

22%

of the enumeration missing

0

of that in the report

The scanner grades its own homework, so its “success” is not evidence of anything.

The root cause

WHY IT KEPT MISSING

The model did not know what to scan. Nothing told it what makes a page, a state, a piece of business logic or a flow — so it could not know what it had skipped.

Survey first, then scrape

I put a stage in front of the scrape: map the repository, then pull from it. The order cannot be reversed.

WRONG

Scrape

→

Self-check

→

Ship

✗ Still missing 42 values, and the run says it is fine.

RIGHT

Survey the repo

→

Scrape

→

Closure gate

✓ Each of the 18 layers has its own gate, and the run exits when it cannot show its work.

What that bought

53%

V1 · no survey, one layer

55%

V2 · survey, eighteen layers

100%

V3 · code-derived, a gate per layer

File closure on the state-type scan. The jump is not a better scanner — it is the gate.

ITERATION · PIPELINE

Five skills, one flow

Each stage is a skill with a defined output, so a run is repeatable instead of improvised.

IN · an unfamiliar repo

→

5 skills

→

OUT · pages × states you can present

01

Onboard

Naming, source, owner, scope

02

Extract

Pages, states, logic, flows

03

Port

Components 1:1, pixel-diff

04

Model

Pages × states, collisions

05

Showcase

Three layers, presentable

ITERATION · LAYERS

The bug that came from editing the master

Open a second branch of the restaurant, edit the master recipe book to suit it, and the original dish stops coming out right. Same failure here.

What happened

A designer edited the scraped baseline directly, because it was the file sitting right there.

Why it mattered

The baseline stopped being a snapshot of the code, so every fidelity proof made against it was void.

Three layers, one of them writable

Read the stack from the bottom: the machine owns ① and ②, and a person may only ever touch ③.

IMPACT

What it takes off the clock

Same brief, three eras. Estimated person-days for one designer taking a feature from context to hand-off.

STAGE 1

Pre-AI

STAGE 2

AI era · without Showcase

STAGE 3

AI era · with Showcase

01

Getting context

Find the old PRD

0.5

Ask the last designer for files

0.5

Total

1.0

Find the old PRD

0.5

Get / generate all related HTML

1.0

Total

1.5

Browse related pages in Showcase; ask the AI

0.5

Pull all related HTML from Showcase

0.0

Total

0.5

02

Designing

Design in Figma

10.0

Build a prototype

1.5

Total

11.5

Feed the AI business + design-system context

3.0

Vibe coding / designing

2.0

Total

5.0

Branch and version, guided by the AI

0.5

Vibe-code on what Showcase holds

2.0

Total

2.5

03

Handing off

Draw the flow

1.0

Mark up specs

0.5

Total

1.5

Collect the HTML into one file

0.5

Screenshot into Figma as a flow

1.0

Total

1.5

Delivery report generates itself

0.0

Flow generates itself

0.0

Total

0.0

04

Design QA

Page-by-page walkthrough, filing bugs

1.0

Total

1.0

Deliverable is the code — fidelity is high

0.1

Total

0.1

Deliverable is the code — fidelity is high

0.1

Total

0.1

Total

15.0

person-days

8.1

person-days

3.1

person-days

A live project it is already carrying

Influencer, affiliate and live were three separate products. They are being merged into one so shared capability is built once and the architecture is common.

Influencer platform

100–200 pages

Affiliate channel

100–200 pages

Live platform

100–200 pages

→

One platform

Shared capability built once

One core architecture

Projected person-days across the merge:

STAGE 1

Pre-AI

STAGE 2

AI era · without Showcase

STAGE 3

AI era · with Showcase

150

person-days

81

person-days

31

person-days

REFLECTION

“That is not buildable”

The first extraction runs were bad enough that engineering wrote it off. But a thing that works in theory can ship — the rest is decomposition.

(

Dev

)

Easy to say. I do not think this one can actually be built.

If it works in theory it can ship. The rest is breaking it down.

(

Me

)

Page generation alone went through five rewrites before it held:

01

Hand-drawn HTML

02

Hand-labelled catalogue

03

Contract handover

04

Controlled DOM

05

Derived from the real components

What I actually learned

Three things that each cost me a day.

01

Know how the tool loads, not just what to prompt

Skills load from one specific folder. Anywhere else and whether your rules were read is luck.

02

A model’s search is not an enumeration

The agent reported 15 types and 50 values. Parsing the syntax tree found 37 and 145.

03

One rule, one home

Write the same rule twice and never read the output, and the two drift the moment either runs.