Katarzyna Stępień
Portrait of Katarzyna Stępień

Kacha · Warsaw

Open to new roles

KatarzynaStępień

I design telecare software for the people who wear the devices, the carers who visit them and the municipalities that pay for it.

70,000+people use the apps I designed
1stplace in a national AI challenge
3years as the sole designer in digital health

I build models and pipelines for the human side of products: flagging manipulative copy, catching frustration in clicks, and turning health data into something people read.

0.936F1, dark-pattern detection
0.976ROC AUC on the same task
2,356labelled interface texts
01

Featured case study

SiDLYHealth

One record, three people

Three apps around one care visit. I lead UX/UI across mobile and web.

Lead UX/UI / Web + mobile / React prototype / Medical device, MDR IIa

Carers list in the care manager app
Carer's home screen in the Planner
Resident's home screen
Visit in progress in the Planner
Resident rating a visit

A visit belongs to all three

A visit moves from the care manager who plans it, to the carer who makes it, to the resident who rates it, and back into the manager's record Care managerplans the visit and the care card Carerscans in, does the tasks, scans out Residentsees who came and rates the visit back into the manager's record of work and the carer's hours

The screens

Carers screen of the care manager app
CarersWho is on the team, who is active and when each person works today.
Carer profile screen of the care manager app
Carer profileResidents, today's hours, today's visits and access, on one screen.
Working hours screen of the care manager app
Working hoursSet per weekday, with several ranges a day for split shifts.
Today's visits screen of the care manager app
Today's visitsEach visit with its care hours, editable from the list.

Mobile screens shown in English for this page; the product ships in Polish. All names and data are test data.

Key design decisions

  1. A visit starts with a scan

    The carer starts and ends each visit by scanning the resident's NFC tag with their phone. Work time is recorded as it happened, not as it was planned, and carers' hours are settled from it.

  2. The care card has a lifetime

    Before a visit the care card is the plan. During the visit the carer fills it in. After the visit it becomes the record that the resident and the office read, so it is locked as it was when the visit ended.

  3. The resident's home screen answers three questions

    Am I all right, what do I need to do today, and when is someone coming? Large text, large touch targets, few words, and SOS always on top.

  4. Urgent first, then the day

    The manager's dashboard opens with what needs a reaction, then today's visits in the field, the week ahead and equipment. Each block leads to the screen where that issue gets solved.

  5. Recurring visits stay ordinary visits

    A series is a set of normal visits that share a tag, so any single one can be moved or cancelled without breaking the rest.

  6. Prototype in code, not in frames

    The flows are built as a clickable React/TypeScript prototype with realistic test data, so managers and carers test whole visits instead of single screens.

02

Case study

Redesigning the ERP that runs public telecare

The platform municipalities and care providers use to order telecare bands, assign them and keep consent in order. I lead its redesign.

Lead designer1,000+ client organisationsReact/TS prototypeIn progress
The problem and how I workedHide

The problem

Most of the work in the ERP is routine: activating a batch of bands, swapping a broken one, attaching a signed consent form. Mistakes in these tasks are easy to make and hard to notice. A band can be activated for the wrong client, or keep sending data under a person who no longer wears it.

The system also serves two very different clients. A Polish municipality works in złoty, uploads documents from its social-welfare office and tracks coverage of its residents aged 60+. An export client sells across borders, invoices in euro and needs dialling codes per country.

How I worked

Weekly project meetings with stakeholders, plus research with municipal and foreign clients about how they order, assign and renew devices.

I built the redesign as a clickable prototype in React and TypeScript with realistic test data, so whole flows can be tested instead of static mockups.

Where the decisions sit

How an order becomes active bands in the ERP, with the design decisions marked where they applyORDERBANDAwaitingsignatureSignedSIM cardsShippedDeliveredbands arrive at the municipality or care providerUnassignedAssignedto a residentActiveSuspendedRenewedor ended03consent scan02bulk import01undo04renew from the dashboard

The life of an order and its bands, simplified. Numbers match the decisions below.

Key design decisions

  1. Confirm only what is expensive

    Asking twice for everything trains people to click through. A confirmation now appears only for a new paid year or a change to many devices at once. A single suspend or resume is reversible, so it gets an undo instead.

  2. Read the file back before acting on it

    Bulk activation comes in as a spreadsheet, with columns in a different order every time. Rows are matched on the device number, and nothing runs until each line has been shown back with what it will do. The template you download is the file you can upload.

  3. Keep a rule where it matters

    Health data needs signed consent, but the clerk entering a resident rarely has the scan at hand. Blocking the form only taught people to upload placeholder files. Now the resident can be saved, is flagged "no consent" everywhere, and cannot receive a band until the scan arrives.

  4. Every number opens its list

    Each count on the dashboard opens exactly the devices it counts, and each bar in the renewals chart renews what it shows. Nothing on the dashboard sends you hunting elsewhere.

  5. Show what an action will touch

    With a mixed selection, each action states how many of the selected devices it would change and switches off at zero. The selection bar used to be the one dark element on the screen, which made ticking three rows feel like a warning. It is now calm, with one obvious next step.

  6. Never rely on colour alone

    Every status carries an icon and a label as well as a colour, because green and amber are hard to tell apart for colour-blind users.

Unreleased and confidential, so no screens here. Happy to walk you through the prototype in an interview.

03

AI products & hackathons

1st place · AI Place Challenge 2025 · Team lead

We built GovBot, an AI chatbot for mObywatel that cuts through the bureaucracy and helps people get official matters done.

Set by the Polish Ministry of Digital Affairs · Econverse Smart Cities Hackathon, Warsaw

Katarzyna presenting GovBot with her team on the AI Place stage at Econverse Fuse 2025
On stage at Econverse Fuse 2025
The hackathon hall at Econverse Fuse 2025 in Warsaw

lemi

Health guide · demo · iOS, Android, web

Health care without the stress

A friendly lemur for before, during and after a doctor's visit. Built at HackYeah 2026.

Claude API / ElevenLabs Scribe / TypeScript / Flutter / health data stays on the phone

Hi! I'm Lemi.
I'll keep you company at the doctor's.
Lemi welcome screen with demo accounts
StartPick a demo account by age, or start your own.
Lemi Today screen with mood, next visit and a relative's pulse
TodayMood, the next visit, and a grandmother whose pulse has been higher for days.
Lemi visit preparation screen
VisitsBefore, during, after: questions and a folder for the doctor.
Lemi health screen with sleep, pulse, HRV and steps
HealthSleep, resting pulse, HRV, steps and mood over time.

Shown in English for this page; the demo runs in Polish.

04

More work

Design + code · Live

sidly.eu

Designed and built end to end: information architecture, UI and a React/TypeScript front-end, in seven languages.

Brand · Packaging

Rebrand & Vital Care

Led the rebrand across the apps, the website, the Vital Care smartwatch packaging and events.

Research · B.A. thesis

Dark patterns, measured

NLP that detects manipulative UX copy. B.A. thesis, SWPS University.

Research · B.Eng. thesis

Health insights from wearables

An AI health summary from a medical wristband. B.Eng. thesis.

01

Featured project

Unmasked: catching manipulative UX copy with NLP

Dark patterns live in the words: "Only 2 left!", "43 people are viewing this". I trained a classifier to spot them and shipped it as a Chrome extension.

Binary F10.936
Binary ROC AUC0.976
By category, macro F10.891
Logistic RegressionLinear SVMRandom ForestNaive BayesGradient Boosting
Unmasked · live demo

Linen overshirt, sand

249 zł

A simplified version of the extension's rules, running in your browser. Nothing is sent anywhere.

Method: data, features and why rules in the extensionHide
2,356 texts · 50/50 balanced · Mathur et al., 2019TF-IDF · 1–2-grams · 5,000 featuresSWPS University · Psychology & CS

What the model learned

Dark patterns use their own vocabulary: urgency ("hurry", "limited"), scarcity ("only", "left", "stock") and social proof ("people", "purchased"). Classical models on TF-IDF did surprisingly well; the rare categories suffered from too little data.

Why rules in the extension

The top features of the trained model were encoded as explicit rules, so the extension classifies fully offline, with no API calls. It highlights flagged copy on the page by severity and explains the psychological mechanism behind each one.

02

Applied AI

HealthPlatform: a health summary from a medical wearable

Wristband data and medical documents in; a readable health summary and recommendations out.

SiDLY bandbiometric data from the medical IoT wristband
SupabasePostgreSQL, auth and storage for medical documents
RAG in Langflowdocuments embedded in AstraDB, retrieved per question
LLMsGPT-4 and Groq for answers and recommendations
VoiceWhisper to listen, ElevenLabs to speak back
What it does and the stackHide
  • Integration with the SiDLY medical wristband.
  • An AI assistant with RAG over the user's medical documents.
  • Machine-learning recommendations for personal health advice.
  • Voice analysis: speech recognition and symptom analysis from recordings.
  • A place to store and analyse medical documentation.
React 18TypeScriptViteTailwindshadcn/uiSupabaseLangflowAstraDBOpenAIGroqElevenLabs

The code is private; happy to show it in an interview.

03

Data engineering

UX friction detection, in real time

Rage clicks, abandoned sessions and stuck screens, flagged as they happen.

UX events flow from a Python simulator into PostgreSQL, are captured by Debezium, streamed through Kafka, processed by Spark Structured Streaming, and stored in Delta Lake on MinIO, with friction signals flagged UX simulatorpython PostgreSQLlogical replication DebeziumCDC Kafkatopics Sparkstreaming Delta Lakeon MinIO (S3) rage clicks abandonment long screen time

Data model

Users, screens, sessions and interactions, with every event scored for friction.

Mini data platform

The same stack as a one-command template, with bronze, silver and gold layers on MinIO.

04

Analytics engineering

Where do users drop off?

Raw tracker events in, clean funnel metrics out. SQL on DuckDB.

The funnel, shape only

Data-quality rules in Silver

  • DQ-1Drop rows with a null session or user id
  • DQ-2Normalise device names that come in mixed case
  • DQ-3Null out durations below 0 or above two hours
  • DQ-4Parse timestamps safely instead of failing the load
  • DQ-5Catch sessions that point to pages that don't exist
  • DQ-6Rebuild idempotently so re-runs never duplicate rows
05

AI products & hackathons

1st place · AI Place Challenge 2025 · Team lead

We built GovBot, an AI chatbot for mObywatel that cuts through the bureaucracy and helps people get official matters done.

Set by the Polish Ministry of Digital Affairs · Econverse Smart Cities Hackathon, Warsaw

Katarzyna presenting GovBot with her team on the AI Place stage at Econverse Fuse 2025
On stage at Econverse Fuse 2025
The hackathon hall at Econverse Fuse 2025 in Warsaw

HackYeah 2026

Lemi

Reads health devices from a photo and turns a recorded visit into three summaries. Claude API and ElevenLabs.

Internship · 2025

Conversational AI at PerfectBot

Improving conversational AI chatbots for IKEA, LPP, x-kom and US creator stores.

Product design side

SiDLY Health

70,000+ people across 16 countries. The apps are in the design view.

↔

Where the two worlds meet

  1. 01 · Design

    People first

    Every project starts with what people actually do. Psychology taught me to listen; research with municipal and foreign clients shaped the SiDLY ERP before a single screen was drawn.

    SiDLY ERP →
  2. 02 · Design

    Design it, then build it

    I design the flow and build it as a clickable React prototype with realistic test data, so people test whole visits, not single screens.

    SiDLY Health →
  3. 03 · Data

    Measure what happens

    Behaviour leaves data, and I model it: a classifier that catches manipulative copy, a stream that flags rage clicks as they happen.

    Unmasked →UX friction →
  4. 04 · Both

    Where they meet

    My best work sits in the overlap: AI products designed for real people. A health guide for anxious patients, an assistant for public services, a RAG assistant over medical records.

    Lemi →HealthPlatform →
—

About

Psychology and computer science, studied in parallel; now data science alongside management. I start from what people actually do and build prototypes real enough to argue with.

Experience

  • Dec 2023 – now
    UX/UI Designer & ResearcherSiDLY Healthcare · sole designerLeads UX/UI of SiDLY Health and the ERP redesign for 1,000+ municipalities, plus the rebrand and sidly.eu in 7 languages.
  • Mar – Jun 2025
    Chatbot Developer InternPerfectBot · IKEA, LPP, x-komAnalysed real customer conversations to close knowledge gaps in production chatbots.
  • Oct – Dec 2023
    UX/UI Design InternSiDLY HealthcareSole designer on the team: concepts, rapid prototypes and Vital Care smartwatch visuals.

Education

  • 2026 – 2028
    now
    SGH Warsaw School of EconomicsM.Sc. Business / Managerial Economics
  • 2025 – 2027
    now
    Polish-Japanese Academy of ITM.Sc. Computer Science, Data Science
  • 2021 – 2026
    SWPS UniversityB.A. Psychology & CS, UX/UI Research & Design
  • 2021 – 2025
    Warsaw School of Computer ScienceB.Eng. Computer Science, Data Science

Stanford Code in Place (2026) · Google UX Design Certificate

Design

UX/UI designUser researchUsability testingPrototyping in codeAccessible designBrand identityFigmaReact · TypeScript

Data

PythonNLPMachine learningLLMs & agentsn8nKafka · SparkSQL

Languages

Polish · nativeEnglish · C1