Skip to content

Open to full-time roles

Full stack developer and AI engineer. I build the whole product, not a slice of it.

Eight years of shipping since 2018, five of them running my own products. Vue and Nuxt on the front, Node and serverless behind it, LLM workflows where they earn their place — plus the data model, the deploy, the SEO and the AI bill.

300K+
orders processed on a platform I built and ran
10,000
registered users on a serverless AI product
90%
of daily operations automated away
Every layer, one engineer
Interface
Vue.jsNuxtTypeScriptAngularTailwind
APIs & services
Node.jsExpressREST APIsServerless
AI layer
LLM APIsAgentsRAGMCPEvals
Data
PostgreSQLMySQLMongoDBFirebase
Infrastructure
VercelDockerCI/CDCapacitor
Product & growth
SEOAnalyticsGoogle AdsCRO

Most of my work has meant owning several of these at once — from the data model to the deploy.

Stack

What I reach for.

Vue.js Nuxt TypeScript Angular Tailwind CSS CapacitorJS Node.js Express PHP WordPress Java REST APIs Stripe LLM APIs RAG Reranking LangChain MCP Prompt caching Context compression Evals PostgreSQL MySQL MongoDB Firebase Vercel Serverless Docker Git SEO
Let's work together

My Skills

The toolkit, by category.

Eight years of shipping, distilled into the things I actually reach for — grouped by domain and rated one to five. The dots are my own honest self-assessment, not a certification.

Frontend

09
  • Vue.js
  • JavaScript
  • HTML
  • Nuxt
  • CSS
  • TypeScript
  • SCSS / Sass
  • Angular
  • CapacitorJS

Backend

09
  • Node.js
  • REST APIs
  • Express
  • Serverless
  • Stripe
  • Payment gateways
  • WordPress
  • PHP
  • Java

AI & LLM

09
  • LLM APIs
  • RAG
  • Context compression
  • Prompt caching
  • MCP
  • AI agents
  • Model routing
  • Evals
  • LangChain

Databases

03
  • MySQL
  • Firebase
  • NoSQL

DevOps & Infra

04
  • Git
  • Vercel
  • Docker
  • CI/CD

Growth & Business

07
  • SEO
  • Client management
  • Customer support
  • Analytics
  • Google Ads
  • TikTok Ads
  • CRO

What I do

Three things, done properly.

Most engagements start in one of these and end up touching all three — that is usually the point.

From an empty repository to a thing running in production

Full Stack Development

I have taken products from an empty repository to hundreds of thousands of real transactions — frontend, API, database, infrastructure, deploys and the 3 a.m. incident. Vue and Node are home; I have shipped Angular, PHP and mobile too.

How I approach it
  • Vue.js / Nuxt frontends — accessible, fast, and typed end to end
  • Node.js / Express APIs and serverless functions on Firebase and Vercel
  • WordPress and PHP when the business case says so, integrated with modern JS
  • Cross-platform mobile from the same web codebase, published to both stores
  • SQL and NoSQL data modelling, payment integrations, plus the SEO work that makes it findable
  1. Start from the transaction

    I find the one flow that makes the business money and build outward from it. Everything else is scaffolding around that flow.

  2. Boring architecture on purpose

    Managed services, few moving parts, one deploy target. Complexity is a cost you pay every week, not once.

  3. Ship in thin vertical slices

    Each slice goes through UI, API and database to production. Integration problems surface in week one, not in month three.

  4. Automate the operations

    If a human does it twice a day, it becomes a script. That habit is what turned a growing platform into one two people could run.

Agents and pipelines that hold up in production

AI Workflow Development

A demo that works once is not a workflow. I build LLM systems with the boring parts included: retrieval that returns the right chunk, tools with real error handling, staged pipelines where the expensive call runs last, and a fallback for every step that can fail.

How I approach it
  • Agent and pipeline design — planning, tool use, staging, and knowing when to stop
  • RAG architectures with reranking, chunk strategy and context compression
  • MCP servers: typed tools, stable schemas, metering at the boundary
  • Direct integration against provider APIs, without hiding behind a framework
  • Human-in-the-loop checkpoints for anything that touches money or customers
  1. Map the decision, not the prompt

    Before any model is called I write down what the system decides, what it is allowed to do, and what happens when it is wrong. Most failed AI projects skipped this.

  2. Build the smallest honest version

    One path, real data, no orchestration framework. It exposes the retrieval and data-quality problems immediately, which is where the actual work lives.

  3. Order the pipeline by cost

    Cheap, deterministic signals first; the expensive multimodal call only on what survives. Ordering is the difference between a product and a demo you cannot afford to run.

  4. Harden the edges

    Timeouts, retries with backoff, schema validation on every model output, and a deterministic fallback. The model is a component, not the system.

The same output, for a fraction of the work and the bill

Automation & Cost Engineering

Two versions of the same habit: find the work that repeats and stop paying for it. On a commerce platform that meant automating around 90% of daily operations. On an AI product it meant cutting inference spend by 80% without changing the models on offer.

How I approach it
  • Context engineering — retrieval, reranking and compression so the model reads what matters and nothing else
  • Prompt caching and model right-sizing, measured against a quality baseline
  • Operations automation: intake, validation, dispatch and reconciliation running unattended
  • Exception-driven alerting instead of humans supervising the happy path
  • A human decision point kept exactly where judgement is actually needed
  1. Count before touching anything

    Which processes repeat, how many hours they eat, where the tokens actually go. The bill and the workload are almost never distributed the way the team assumes.

  2. Fix the context first

    The cheapest optimisation is not sending tokens you did not need. Oversized prompts and unfiltered retrieval are the usual culprits — that is where most of the 80% came from.

  3. Automate in order of hours saved

    Rank the manual operations by time cost, then work down the list. The first three usually pay for the whole project.

  4. Escalate the exceptions only

    Automation handles volume, people handle judgement. Refunds, disputes and anything ambiguous still reach a human — everything else runs unattended.

Selected work

What I built, and how.

Each case study includes the architecture I actually shipped — not a sanitised version of it.

All case studies
Screenshot of the CosmicUp.me homepage
012024 — 2026

CosmicUp.me

LumaUp sp. z o.o.

Co-founder · Product & engineering

Replace seven AI subscriptions with one — 30+ models, 10,000 users, 80% off the inference bill.

CosmicUp puts 30+ chat, image and audio models behind a single €16.99/month subscription, on web, iOS and Android. The hard part was never the interface — it was serving bursty inference traffic under a flat price, where every architectural decision is also a margin decision. Each provider is integrated against its own API rather than flattened into a common gateway, so the breadth of the catalogue stays intact. The leverage sits upstream of the model call: retrieval, reranking, context compression and prompt caching cut inference spend by around 80%. Fair-use metering degrades into a slower queue instead of cutting people off.

10,000
registered users
30+
models available
−80%
inference cost, after context work
Vue.jsNode.jsFirebaseServerlessLLM APIsRAG
Read the case study
Screenshot of the SeekUp.ai homepage
022025 — 2026

SeekUp.ai

LumaUp sp. z o.o.

Product & engineering

Point it at one TikTok creator who works, get back ten who work like them.

SeekUp turns influencer discovery into a search. You hand it one TikTok creator who already performs for your brand; a four-stage agent pipeline analyses that reference — content, style, comment threads — then screens up to a thousand candidates and returns roughly ten scored matches in about five minutes. The stages are ordered by cost: cheap statistical and rule-based filters run across everyone, expensive multimodal analysis only on the survivors, which keeps a single search worth cents rather than euros. Every candidate carries four sub-scores and a written rationale, because a marketing team has to justify the spend to someone else.

~5 min
for a shortlist of ~10 creators
up to 1,000
profiles screened per search
4
pipeline stages, ordered by cost
Vue.jsNode.jsAI agentsLLM APIsEmbeddingsThird-party data APIs
Read the case study
Screenshot of the SociallyMCP.com homepage
032026

SociallyMCP.com

Sole proprietorship

Founder · Product & engineering

Social media data for your AI, one API key away — no login, no scraping stack.

SociallyMCP is a hosted Model Context Protocol server that gives Claude, ChatGPT, Gemini, Cursor and any MCP client access to real TikTok data — no social login, no session cookies, no scraping stack to babysit. The surface is 90+ narrowly-scoped, well-typed tools rather than one catch-all endpoint, because an agent picks the right tool from a clear signature far more reliably than it constructs a correct query against a generic API. The upstream source stays behind a single adapter with a normalised JSON shape, so platform changes never reach the customer's agent. Metering sits on that same choke point: one call, one credit, with spend caps that hard-stop.

90+
typed MCP tools
$0 → $500
self-serve tiers
0 logins
social logins needed
MCPTypeScriptNode.jsStreamable HTTPBearer authMetering
Read the case study
Screenshot of the CompraSocial.me homepage
042021 — 2026

CompraSocial.me

LumaUp sp. z o.o.

Founder · Developer · Operator

300,000 orders, run by two people and a lot of automation.

CompraSocial is a social media marketing storefront that has processed over 300,000 orders across eleven platforms and four languages, run by a team of two. WordPress carries the content and the SEO; the interactive surfaces — checkout, dashboards, order flows — are custom Vue.js components against a dedicated API. The interesting part is underneath: every recurring manual operation was ranked by hours-per-week and automated in that order, from profile checks and order validation through to dispatch, delivery tracking and status updates. Around 90% of daily operations now run unattended, with alerting on the exceptions. Refunds and disputes still escalate to a person.

300,000+
orders processed
90%
operations automated
11
social platforms
WordPressPHPVue.jsMySQLMongoDBCustom theme
Read the case study

Looking for someone who can own the whole thing?

Full-time role, contract project, or an architecture that needs a second opinion — tell me the shape of it. If I am not the right person I will say so quickly.

Get in touch