Backends for health and device data that stay correct, traceable and private.
I'm Paweł Chraczyński, a backend engineer. I build and review backends where a record has to be correct, attributable and still provable months later: ingestion that survives being replayed, validation that says why it refused, audit trails that answer who changed what, and on whose authority.
5+ years of Python backend · previously Netguru · now independent, on regulated health data · LinkedIn · GitHub
Backend review
You arrive with: a system you do not fully trust, or an audit or integration coming up.
You leave with: the risks named and ranked, and a fix plan in the order worth doing it.
Integration delivery
You arrive with: a device, lab or third-party API that has to feed your data safely.
You leave with: an agreed scope built, with tests and documentation for the team that keeps it.
Ongoing backend support
You arrive with: steady backend work and not enough senior hands for it.
You leave with: a monthly engagement with a defined scope and availability.
Ingestion that holds up
Third-party lab and device results into a FHIR-shaped store with an auditable trail. Idempotent writes, so a retry is not a duplicate; typed rejections, so a refused record says why rather than vanishing into a log.
Regulated-shape pipelines
HIPAA and GDPR constraints treated as design inputs rather than a review at the end: retention expressed as policy instead of a cron job, least data held, and identifying fields kept out of the places that do not need them.
App-layer trust
Signing, key handling and validation that does not assume the network is friendly or the client is honest, on services and on devices that are only as trustworthy as their firmware.
Around those: API design and service boundaries, search and indexing on OpenSearch/Elasticsearch, AWS, and the performance work that turns up once a system has real data in it.
Client work stays under NDA, so the evidence here is systems I own: the same practices, in the open.
Every change to the house leaves a dated, attributable row
One audit trail for automated runs, notifications and hand edits, read by a dashboard that can write almost nothing.
3,800+ rows since July 2026
Read the case study →
A shelf of IoT devices with no vendor in the path
Tuya BK7231N controllers reflashed to ESPHome, authenticated at the device layer, and reachable from nowhere on the internet.
0 vendor accounts
Read the case study →
Knowing what every device in the house talks to
DNS and router flow records joined per device, judged by a model on my own hardware so no cloud API sees the traffic.
5.3M flow records in 18 days
Read the case study →
An ISP contract, checked by measurement rather than by complaint
A probe a minute, each outage pinned to the layer that caused it, and a monthly SLA report that arrives even when the month was clean.
0 ISP-outage minutes in 25,000+ probes
Read the case study →
Three ways to read a paper target, measured against the same ground truth
Classic CV, a vision model and a trained detector scoring photos of paper targets, each counted against what a person confirmed.
34 of 37 holes, where classic CV finds 23
Read the case study →
Your data, on your terms
Regulated or sensitive data that has to stay auditable and yours? That is the work above.
Discuss your project →
- Press Start and take a tile next to one you hold. Ringed tiles are worth more; when neither side can move, the higher score wins. The console logs every command, its latency and the verdict.
- Watch the opponent move. Its turn is computed on the server too; the browser only draws what it is told.
- Click a tile you do not border. The server refuses it and says why:
REJECTED ADJACENCY, not a silent no-op. - Try to cheat. The signing key is in devtools. Forge a move; the server keeps count.
The game is the bait; the panel beside it is the work. The browser holds no rules: every click is a command the server decides, answered with a new state or a typed reason for refusal. Every number on that panel is measured.
The same validation applies to device events, webhooks and any other request that changes state. What this does not show is FHIR or PHI handling: it is the pattern I ship in production APIs, minus the part where it touches anyone's data.
The game connection starts only when you press Start. Press it and this page opens a connection to the game server, which sees your address the way any server you connect to does. It keeps a match id in your browser so you can pick a game back up. No cookies, no analytics, nothing else about you is kept. Scores are ephemeral and reset weekly.
How the signing and the state digest work
Every command after the handshake is signed with a key the server mints for this connection and hands to this page, and carries a counter the server will not accept twice. You can read that key in devtools, so the envelope protects the session, not against the player. Anti-cheat is the server refusing illegal moves, and nothing else.
The state digest is how you check no tab is showing you a stale board: open the same match in a second tab and both print the same digest. It is not a security control: the server computes it and the client prints it.
I didn't start in software. I spent my first working years building solar farms, and the part I loved most was the SCADA cabinets and the way they talked to each other. When the company I worked for ran into cash-flow trouble, I decided to bet on myself, learned Python, and moved into backend development.
At Netguru I kept ending up on health-data projects, and over the years that became my specialisation. A breach at a Polish medical laboratory, when patients' lab results ended up online, made it personal. Since then I try to break my own applications before anyone else does.
The homelab started with a Xiaomi robot vacuum, around the time photos taken by test robot vacuums in people's homes, one of a woman on the toilet, were shared online by the contractors paid to label them. I stopped trusting companies with my data after that. If I have to be angry at someone for how it is kept, I would rather it be myself, so the house runs on hardware I control.
Away from the keyboard I listen to far too much gabber, follow everything happening in astronomy and spaceflight, and spend some weekends at the shooting range with my dad.
Discuss your project
Email me with what your system does, what is failing or missing, and your timeline.
Limited slots, and a short discovery call to confirm fit, scope and timelines before anything is agreed.