Lives and works in Maribor, Slovenia

Notes from the workshop floor

Full-stack IoT, mostly in Elixir: the device at the edge, the cloud services behind it, security in the middle, and OTA updates that actually land. I came to it through cloud, microservices and SaaS — the last four years have been spent a lot closer to the hardware.

The interesting part of IoT is that it is one system pretending to be two. A gateway in a cabinet and a service in a datacentre have to agree about identity, about what is trusted, and about what is true when they have not spoken for a week. Most of the hard problems live in that gap rather than at either end of it.

So I work across the whole of it: the firmware and the Elixir on the device, the platform and the services it talks to, the security that has to hold at both ends and in between, and the update path — because a fleet you cannot safely update is a fleet you will eventually be afraid to touch.

That habit came from years of cloud, microservices and SaaS, where those questions are the entire job. For the last four years I have been following the same questions downwards, into gateways and embedded hardware — lately NXP i.MX8M and ST STM32MP1, before that other things. The architecture problems turn out to be the same ones, with far less room to be wrong about them.

Alongside all of it I teach — not as a main line of work, but consistently, for as long as I have been doing this. I live and work in Slovenia, and always have, mostly remotely for clients elsewhere.

Tomaž Bračič
Taken in Skagen, Denmark

Teaching

2 courses

Recent writing

all posts →
23 Sep 2026
8 parts
Series

Secure boot and a verified root filesystem on an STM32MP157F-DK2

Four links of an authenticated boot chain on an STM32MP157F-DK2 — ROM, TF-A, U-Boot FIT and dm-verity — built, signed, broken on purpose and put back, with the one-time-programmable fuses left completely blank the whole way through.

11 Sep 2026
5 parts
Series

Driving the display on an STM32MP157F-DK2 with Elixir and Scenic

Getting a real, touchable user interface onto the DK2's 4-inch MIPI DSI panel from Elixir on Nerves, with no GPU — the display stack, host previewing, a drift-free timer, and the Scenic gotchas that compile cleanly and fail on the device.

11 Sep 2026
15 min

Beyond mTLS: identity for a fleet of IoT devices

Certificates and mTLS are the easy part. The hard part is identity over a device's whole life: first enrolment, rotation, power loss mid-rotation, and a gateway that was offline for two years.

03 Sep 2026
5 min

Compile-time Markdown in Phoenix, and why I reversed it

I built this blog to parse every post at compile time, wrote up why it was the right call, and then reversed it three weeks later. Both of my premises were false. Here is what replaced it, and how it keeps every property the compile-time version actually earned.