Vue 3 micro-frontend platform
Led the frontend of a B2B2C platform built from 28+ Vue 3 micro-frontends on single-spa — a shared communication SDK, one component library and independent delivery for every app.
10+ years turning complex products into fast, typed, maintainable interfaces. Vue 3 · Nuxt · TypeScript. Tech lead by habit.
Performance is your money.
Every wasted request is a line on someone's invoice. I hunt them down.
Performance auditI never listen passively.
Refinements are for challenging ideas. Including mine.
Quality is automated, not negotiated.
Strict types, lint rules and git hooks. Standards that hold when nobody is watching.
I build interfaces I'd want to use myself.
I click through them like an end user. If something bothers me, I fix it before anyone else notices.
02 Services
Move a production Vue 2 app to Vue 3 with typed architecture and hard lint rules, so the new codebase doesn't inherit the old problems.
Find the request waterfalls, duplicate fetches and needless reactivity that slow a Vue or Nuxt app down and cost money, then fix them.
Boundaries between apps, typed contracts, a shared component library and per-feature environments, drawn from a platform of 28+ Vue apps.
03 Impact
10+
Years shipping production frontends
28+
Micro-frontends in one living platform
5+
Years with the same client — and counting
11+
Projects shipped to production
04 Selected files
Most of my projects live behind NDAs. So here are the case files — names redacted, results intact.
Led the frontend of a B2B2C platform built from 28+ Vue 3 micro-frontends on single-spa — a shared communication SDK, one component library and independent delivery for every app.
A Vue 3 rewrite that was slow before it shipped. A typed query layer, strict tooling and targeted real-time invalidation removed request waterfalls and clarified the data flow.
A translation publish fanned out across every cluster, app and language. I traced the request path and found the repeated cache fetches driving the cost; another team shipped the fix.
I proposed drag & drop as the primary interaction model. Planning a week of meals went from clicking through forms to rearranging the screen in seconds.
Designed and shipped a shared Vue 3 component library in Storybook, giving the platform's frontend teams one consistent source for recurring UI patterns and less duplicated component work.
Gave every feature its own isolated Docker + Kubernetes environment on a 28+ app micro-frontend platform, and worked with DevOps on the Azure CI/CD pipelines behind independent app delivery.
Vue 2 + TypeScript with SSR and complex screen transitions. Service Worker caching for assets and data, IntersectionObserver-driven lazy loading, and canvas-based weather visualisations. My first big one — fitting, given my taste in films.
05 Stack
What I think in. Daily, for years.
Vue 2 → 3 migration1// one typed source of truth2export const orderKeys = {3 all: ['orders'] as const,4 detail: (id: string) => [...orderKeys.all, id] as const,5}6 7// real-time: invalidate exactly what changed8hub.on('OrderUpdated', ({ id }: OrderEvent) =>9 queryClient.invalidateQueries({10 queryKey: orderKeys.detail(id),11 }),12)AI-assisted workflow and LLM integrations — a multiplier, not a replacement for thinking.
Yes, I know how to exit. I just rarely want to.
:wq
06 Process
“He compiles code just by looking at it.”
01
I challenge the ticket before I write the code. The cheapest bug is the one never built.
02
Clear boundaries, typed contracts, no hidden coupling. Components built to be reused.
03
Strict linting, formatting, pre-commit and pre-push hooks. Reviews that notice what isn't obvious.
04
Fast for users, cheap to run for the client, readable for the next developer. Along the way: mentoring and technical interviews with candidates.
07 Contact
Available part-time, B2B, remote. Tell me what you're building — I reply within one business day.