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

B2B2C micro-frontend platform

Client
Catering enterprise, Germany
Role
Frontend team lead
Period
2021 — now

28+ Vue apps living in single-spa, talking to each other in real time. GraphQL, REST and SignalR under one roof.

File 02 / 07Classified

Performance rescue: Vue 2 → 3

Client
Same enterprise, different beast
Role
Senior engineer, de facto tech lead
Period
Rewrite

A rewrite that was slow before it shipped. Hard lint rules, a centralised query layer and real-time invalidation made it as fast as it gets.

File 03 / 07Classified

Cloud translation cost cut

Client
Internal platform tooling
Role
Found it, diagnosed it, reported it
Period
Investigation

Every translation publish fanned out across all clusters, languages and apps. I traced it and reported it; the fix, shipped by another team, cut it to one shared cache and one request. Plus a script that merged per-feature i18n files and rewrote every key in code.

File 04 / 07Classified

Weekly meal planner

Client
KnockoutJS legacy successor
Role
Frontend + UI/UX author
Period
Greenfield

I proposed drag & drop everywhere. Planning a week of meals went from clicking through forms to rearranging the screen in seconds.

File 05 / 07Classified

Vue component library in Storybook

Client
Micro-frontend platform, FE teams
Role
Component library author
Period
Standardisation

Designed and shipped a Vue component library in Storybook, standardising UI patterns and speeding up feature development.

File 06 / 07Classified

Per-feature Kubernetes environments

Client
Micro-frontend platform, infrastructure
Role
Frontend + DevOps collaboration
Period
Automation

Used Docker and Kubernetes to stand up isolated environments per feature, and worked on the micro-frontend ecosystem's Azure CI/CD pipelines.

File 07 / 07Declassified

wirtualnycmentarz.pl

Client
Public · a virtual cemetery
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.