Skip to content
Maciej Senderowski - back to top

Applied AI · Automation · Integrations

Maciej Senderowski

Senior Software Engineer

const engineer = {

experience: "20 years turning business problems into software",

focus: ["applied AI", "automation", "integrations"],

engineering: ["full-stack", "system design", "product engineering"],

business: ["13 years as a founder", "client-facing", "team leadership"],

dna: ["ownership", "problem solving", "business thinking"],

work: ["remote-first", "hybrid-friendly"]

Maciej Senderowski

What I do

Software that does real work

Four areas I work across. Every example below comes from a client system or one of my own products.

How I build

From business problem to working product

The same seven steps every time. AI is step six, not step one - that ordering is the whole point.

01

Understand the business problem

Before any technical decision: what does this cost today, who feels it, and what does 'solved' look like in numbers.

Why work with me

What you can hold me to

  • 01

    Business problem first

    I spent 13 years running a software business while writing code. Nobody handed me finished specifications - I had to understand the problem, cost and expected outcome first. If a spreadsheet solves it, I will say so.

    RRS Deweloper came out of a client's statutory duty: the same flat prices retyped into four places, each one a chance to publish a wrong number. The plugin now publishes them from a single source.

  • 02

    Fast MVP, production mindset

    I can turn an idea into a working MVP quickly, without confusing a prototype with a finished product. I also build systems meant to stay in production for years - with releases, integrations, security and maintenance.

    DlaStrzelca: the shooting licence exam had one paid app and no alternative. From an empty repository to a deployed product with accounts, a question bank and an admin panel in one day. MostIn went further inside HackYeah's 24 hours - 39 pages, 39 tables and retrieval that cites the page it quoted.

  • 03

    AI where it earns its place

    AI helps me build faster, but I add it to products only where it creates real value. Deterministic problems stay deterministic; LLMs handle the parts where ordinary code is not enough.

    In Vegvis the model powers one feature: Aza, the assistant. She reads a vet's visit or lab results from a photo into the health record, and answers questions by calling read-only tools on the user's own token. Records, adoptions and synchronisation run on ordinary code.

  • 04

    I build for failure, not just the demo

    Retries, idempotency, validation, reconciliation and access control are part of the design. A system should keep behaving correctly when APIs time out, webhooks arrive twice or something fails overnight.

    RRS SmartSell takes payments from three providers: a notification sent twice does not charge the customer twice or duplicate the invoice, and one that never arrives is reconciled without anybody filing a complaint.

Selected projects

Systems I designed and shipped

I designed and built every one of these myself. Each card opens into the problem, the architecture and the decisions behind it.

6 projects

Ask my CV

Interrogate my experience directly

Deliberately built without a language model. Answers are assembled from a curated knowledge base, so there is nothing here that could invent a credential - on a CV, one hallucination costs the interview.

Experience

What the years since 2006 went into

Recent roles in full, earlier ones condensed.

  1. Graphic Designer

    OTCF / 4F
    07.2015 - 01.2016

    Graphic design and DTP across print, large-format materials, e-commerce, events and advertising campaigns.

  2. Web Developer & Graphic Designer

    MK Group
    04.2014 - 07.2014

    Designed and developed websites alongside graphic design and digital materials.

  3. DTP / Graphic Designer

    Artpress
    04.2013 - 11.2013

    Graphic design, DTP and web development, alongside brand identity, marketing and client-facing work.

Technology

What I know, and how well

No percentages and no progress bars - those are invented numbers. Every item carries an evidence level instead. The list opens on the core stack; each category expands to everything, gaps included.

Evidence map

Select a level to filter the list below.

35 skills

Languages

  • TypeScript · Strong
  • PHP · Strong

    Commercial WordPress plugins on 8.1+, strict types, PSR-4

  • SQL · Strong

Frontend

  • React · Strong
  • Next.js · Strong

Backend

  • Node.js · Strong
  • REST API design · Strong
  • Deno · Working

    Supabase Edge Functions in production - TypeScript on the Deno runtime

Databases

  • PostgreSQL · Strong
  • Supabase · Strong

    Postgres, Auth, Storage, Edge Functions - and row level security on every table

  • Row Level Security · Strong

    Authorization enforced in the database, not in client code

  • Vector databases · Working

    pgvector inside Postgres rather than a separate vector service: the embedding sits next to the row it describes, so there is no second store to keep in sync and no extra bill

  • Hybrid search · Working

    In MostIn document chunks merge vector and full-text rankings by reciprocal rank fusion. For innovations RRF lost on long descriptions, so a weighted score and a separate search on rare words replaced it, measured on a real scenario: eighth place to first

APIs & Integrations

  • REST · Strong
  • Webhooks · Strong

    Signature verification, idempotency and a reconciler for missed deliveries

  • OAuth 2.0 · Strong
  • Authentication & authorization · Strong

    Two-factor login, API tokens compared in constant time, database-level policies

  • Two-way system sync · Strong

    Queue, loop protection, stable identifiers across retries, sandbox mode

  • Open data (OpenStreetMap, city datasets) · Working

    Two sources joined in Odkrywamy Kraków: transit stops from the city's open data, toilets and drinking water from OpenStreetMap, read through Overpass with throttling, retries, a fallback server and a cache, so the whole report rebuilds from scratch. Measuring what the data cannot carry mattered as much - the wheelchair tag covered 9.5% of candidate objects, so players now fill the gap with surveys on site

Payments & invoicing

  • Stripe · Strong

AI

  • Anthropic API · Strong

    Tool use scoped by database policies, not by prompt

  • AI agents · Strong

    Tool calling against real business systems, scoped by database policies

  • Tool calling · Working

    Custom tools in Vegvis's assistant using a tool_use → tool_result loop, with data access scoped by user-level RLS

  • Structured outputs · Working

    JSON Schema enforced across LLM-powered API routes, with explicit handling of model refusals and malformed outputs

  • AI-assisted development · Strong

    Persistent project instructions in CLAUDE.md files, reusable global commands, and a pre-edit hook that refuses to write into a plugin copy and names the source instead. It fails open by design: a hook is there to prevent a mistake, not to stop the work when the hook itself breaks

  • RAG · Working

    Two products. RedAgent's consultant: lexical retrieval before every turn, citations verified server-side, refusal below the relevance threshold. MostIn: PDF, DOCX and ZIP packages chunked with page ranges, so an answer cites the document and the page it came from

  • LLM cost control · Strong

    Per-model pricing, monthly spend ceiling, usage log

  • Embeddings · Working

    Per chunk, not per document, so an answer can point at the passage it used. Re-embedded only where the content hash changed, which turns a full library import into cents on the next run

  • MCP · Working

    My own server now, not only someone else's wired in: twelve tools for shipping WordPress themes and working on production MySQL over SSH. Nothing destructive runs on the model's word - a tool returns a plan, and applying it needs a PIN typed into a Windows dialog the model cannot see. Credentials sit in a vault that only that PIN unlocks, because the agent runs on my account and could otherwise read any file it checked against

Automation

  • Cron & schedulers · Strong
  • Event-driven workflows · Strong
  • Idempotent sync · Strong

    Repeated runs cannot duplicate or reverse a completed record

WordPress

  • WordPress plugin development · Strong

    Commercial plugins with licensing, an update channel and release discipline

Infrastructure

  • Git · Strong
  • CI/CD · Working

    GitHub Actions across every plugin repository, calling one shared composite action so the logic is not copied per repository. Syntax gate only - no test suite and no deployment stage

Hiring? Get in touch.

Tell me what you are looking for and I will answer plainly whether it is a role for me. If I am not the right person, I will say so.

Kraków, Poland · CET (UTC+1) · Available now · B2B