Skip to content
Szczepan Kosik — Senior Vue developer B2B Available · part-time · B2B

Senior Vue & Nuxt Frontend EngineerFrontends that scalewith your business.Not against it.

10+ years turning complex products into fast, typed, maintainable interfaces. Vue 3 · Nuxt · TypeScript. Tech lead by habit.

Base
Lublin, PL
Coords
51.25°N 22.57°E
Local time

How I build frontends

0104

Performance is your money.

01

Every wasted request is a line on someone's invoice. I hunt them down.

Performance audit

I never listen passively.

02

Refinements are for challenging ideas. Including mine.

Quality is automated, not negotiated.

03

Strict types, lint rules and git hooks. Standards that hold when nobody is watching.

I build interfaces I'd want to use myself.

04

I click through them like an end user. If something bothers me, I fix it before anyone else notices.

03 Impact

Numbers, not adjectives.Ten years of production frontends, measured.

  • 01

    10+

    Years shipping production frontends

  • 02

    28+

    Micro-frontends in one living platform

  • 03

    5+

    Years with the same client — and counting

  • 04

    11+

    Projects shipped to production

04 Selected files

Classified work.Frontend case studies, client names redacted.

Most of my projects live behind NDAs. So here are the case files — names redacted, results intact.

File 01 / 07Classified

Vue 3 micro-frontend platform

Client
German catering enterprise
Role
Frontend team lead · Architecture
Period
2021 — now

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.

File 02 / 07Classified

Performance rescue: Vue 2 → 3

Client
Same enterprise, different beast
Role
Senior engineer, de facto tech lead
Engagement
Vue 2 → 3 rewrite

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.

File 03 / 07Classified

Cloud translation cost cut

Client
Internal platform tooling
Contribution
Found it, diagnosed it, reported it
Scope
Translation infrastructure

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.

File 04 / 07Classified

Weekly meal planner

Context
Replacing a KnockoutJS legacy app
Role
Frontend engineer + UI/UX designer
Engagement
Greenfield

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.

File 05 / 07Classified

Vue 3 component library in Storybook

Context
Micro-frontend platform, FE teams
Role
Component library engineer
Engagement
Standardisation

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.

File 06 / 07Classified

Isolated Kubernetes environments per feature

Context
Micro-frontend platform, infrastructure
Focus
Frontend + DevOps collaboration
Engagement
Automation

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.

File 07 / 07Declassified

wirtualnycmentarz.pl

Project
Public service
Role
Sole frontend developer
Period
2019

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.

File ?? / ??

Got a slow app?

I've seen worse. Let's talk.

Let's talk

05 Stack

Tools I trust.Vue 3, Nuxt, TypeScript — and what's around them.

Core10+ yrs
  • Vue 301
  • Nuxt02
  • TypeScript03
  • Tailwind CSS04

What I think in. Daily, for years.

Vue 2 → 3 migration
queries/orders.ts
1// 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)
NORMALThe fix that made a slow rewrite fast: typed query keys + targeted real-time invalidation.
Data & real-time
  • GraphQL · Apollo
  • TanStack Query
  • SignalR
  • REST
  • single-spa
  • Pinia
Micro-frontends
Backend
  • NestJS
  • Express
  • Node.js
  • PHP · Laravel
  • .NET
  • PostgreSQL
  • Redis
  • MongoDB
Quality gates
  • Vitest
  • Cypress
  • Storybook
  • Biome
  • Git hooks
  • Strict TS
  • Code review
Infra & delivery
  • Docker
  • Kubernetes
  • Azure
  • CI/CD
  • Linux · VPS
AI / LLM

AI-assisted workflow and LLM integrations — a multiplier, not a replacement for thinking.

Neovim keys. Inside VS Code.

Yes, I know how to exit. I just rarely want to.

:wq

06 Process

How I work.Senior frontend consulting, B2B and remote.

“He compiles code just by looking at it.”
— a teammate, after a code review
  1. 01

    Question

    I challenge the ticket before I write the code. The cheapest bug is the one never built.

  2. 02

    Architect

    Clear boundaries, typed contracts, no hidden coupling. Components built to be reused.

  3. 03

    Guard

    Strict linting, formatting, pre-commit and pre-push hooks. Reviews that notice what isn't obvious.

  4. 04

    Deliver

    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

Got a productworth doing right?

Available part-time, B2B, remote. Tell me what you're building — I reply within one business day.

Prefer email?
0 / 4000

Your email is used only to reply. No newsletters, no tracking, no summoning rituals.