← All work
Adobe Express

Adobe Express — Design tooling · AI

An AI image generation UI for 700M monthly users

Role
Angular / Node.js Frontend Engineer
Period
2022 – 2023

Adobe Express was pushing to expand into small and medium businesses on the back of generative AI, with a user base already north of 700 million monthly actives. The design tooling had to feel instant for people who had never opened a design app before.

What I built

I built the AI image generation UI module — the surface where someone types a prompt, picks from predefined options, and gets an image back. It was written in Lit with a custom state-management layer, rather than the app’s main framework, so it could be dropped into several surfaces without dragging a runtime along with it.

The performance work

The bigger win was not a feature. The application shipped far too much JavaScript on first load, so I modularised it and moved to on-demand module loading, working inside a Bazel build system with Rush for package orchestration. Splitting the dependency graph so modules could actually be deferred was most of the effort; the loading change itself was small.

The unglamorous half

I also resolved a run of critical import/export bugs — i18n multi-language modules, and PDF import fidelity where the rendered output drifted from the source. Playwright end-to-end tests pinned the behaviour down across locales. To catch regressions in production rather than in a bug report, I built Grafana and Splunk dashboards for system health.

What I’d do differently

Reach for the on-demand loading work earlier. It was treated as a performance task late in the cycle, but it was really an architecture decision — and the longer a bundle stays monolithic, the more code gets written that assumes it always will be.

Stack

Angular 18 · Lit · Bazel · Playwright · Node.js · TypeScript · Web Components · Rush · Grafana · Splunk · Figma