01About
Dmytro Hryniuk
Cloud & Platform Engineer | AWS, Kubernetes, Terraform | IoT & Embedded Systems
I design, ship and run cloud platforms, as observable, reproducible and quiet at 3 a.m. as the job needs, without reinventing the wheel.
Five years on AWS taught me to own a system from the first CDK stack to the last runbook: serverless platforms, data pipelines on Athena and Iceberg, a benchmarking fleet that launches and terminates itself, LLM features in production.
At home the same habits run on a k3s cluster I built from scratch on Hetzner, with GitOps delivery, private networking behind an SSH tunnel, Prometheus and Loki alerting, and per-project Supabase tenants with a tested disaster-recovery drill. It is also the backend for my hardware projects, from LoRa nodes in the garage to an e-ink device on the desk, on boards I design and solder myself. I keep a journal of what broke, what I broke (more often the second), what I decided and what I measured along the way.
On the other bench I rewire and mod guitars, from rare vintage pickups to HSH wiring on a 10-way switch with more knobs than strictly necessary, and saddle-stitch vegetable-tanned leather goods. Same habit, different materials.
- Based
- Figueira da Foz, Portugal.Lisbon time
- Experience
- 5+ years on AWS. Building software since 2019
- Education
- MSc Computer Science, BSc Software Engineering
- Platform
- Self-hosted k3s on Hetzner, running hw/sw projects backend
- Hardware
- ESP32-S3, nRF54L15, RAK3172. PCBs designed in KiCad, SMD assembly, enclosures in Onshape
- Languages
- ENB2PTB1UAnative
- Workshop
- Guitar mods and leathercraft
02Stack
Cloud & IaC
Platform
Data & backend services
Languages & apps
IoT & Embedded
Hardware
03Projects
Self-Hosted Platform: k3s on Hetzner
1 control plane + 3 workers on Hetzner Cloud, managed entirely via GitOps; per-project Supabase releases, nightly pg_dump backups with a validated restore drill, decisions recorded as ADRs.
Bobinarca: PCB Component Inventory
Electronic-components inventory for the home lab, formerly Componentry: v1 in Flutter on Supabase, self-hosted from a VPS to k3s; v2 rewritten on Next.js and Postgres, shipping as Bobinarca.
ChirpMesh: LoRa Network
Off-grid garage and mailbox monitoring on RAK3172 / RAK3112 nodes; hardware bring-up complete, P2P link verified and field-tested; k3s backend.
Palabrino: Desk Companion
E-ink vocabulary device for learning Spanish on ESP32-S3 with a Spectra 6 panel; content pipeline covering Wiktextract import, Piper TTS on k3s, an image pipeline and the device API.
Gym Companion
Four-node wearable on nRF54L15 + nPM1300 (two wrists, two ankles): IMU rep counting, rest detection, bilateral-symmetry analysis, offline keyword spotting with TFLite Micro.
Wrist Companion
Wear OS and watchOS standalone data app; name pending.
MySpool
Companion app for a family of Wi-Fi sensor devices on an AWS Amplify backend: React Native first, then Flutter, 1.0 in 2021; asked back in 2024 – 2025 for the web application.
PetTrack: End-to-End IoT Tracking System
Raspberry Pi remote pet-monitoring and live-streaming system with cellular connectivity, RTMP/HLS video, a Firebase and AWS backend and a Flutter app; three generations of the client, field-tested, never on a public store; built as an independent contractor for a German pet-tech startup.
Robot-Cleaner Control (Dynamic Division)
Control app for a fleet of industrial cleaning robots: Cognito sign-in, live robot state and commands over MQTT, cleaning plans and reports. A native Android proof of concept in 2019, rebuilt in Flutter in 2021 for the startup's seed-stage product.
Sensorium
Android app for Fourier's einstein Tablet+ classroom science tablets: physics and chemistry lessons as live experiments, driven by built-in sensors, lab probes and Bluetooth sensors through the vendor SDK.
SHERP spare-parts catalogue
Parts catalogue for a Canadian all-terrain-vehicle dealer: exploded-view drawings with clickable image maps, revision-aware part tables, a parts basket sent by e-mail; three vehicle models plus a landing page, built alone in four months.
Rhymenition
Rhyme finder that shows a definition for any word you tap; on Google Play from July 2020 for about three years.
FindAge
Age calculator with a custom numeric keyboard and shake-on-error feedback; first native Kotlin app, built in five days and published on Google Play in May 2020.
DESPI-C73 clone
LastaKit adapter clone
SPI Molex breakout
FPC extender
PriceSnap
Offline OCR currency converter.
LiveTrack
GPS and health monitoring for cattle: nRF + u-blox GPS nodes, LoRa uplink, k3s edge. Concept defined, not built.
LVGL Touch Device
IR Remote Bridge
04Courses
Being worked on now
Booked into the plan
05Journal
Authorisation moves back into the app
Why the rewrite trades row-level security for one data-access layer and a test suite.
Dropping Supabase, keeping Postgres
The Next.js rewrite of the parts inventory moves to plain Postgres, Drizzle and Better Auth.
Wait on quota, don't fail the shape
Quota as a scheduling signal rather than an error.
The vendor feed came back empty
A weekly refresh that trusted an upstream feed, and the abort gate it earned.
The chart that printed blank
A race between chart animation and a screenshot, diagnosed from both sides in one day.