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 →
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
1 min

Compile-time Markdown in Phoenix

Parsing every post at build time removes a whole category of problem: no database, no cache, no cold render.

24 Aug 2026
5 parts
Series

A Nerves system for the IOT-DIN gateway

Writing a custom Nerves base image for a CompuLab IOT-DIN-IMX8PLUS by hand: the packaging bugs, the flashing dead end, and the DDR failure that stopped it booting.

20 Jul 2026
4 parts
Series

A custom Nerves gateway on the STM32MP1

Building a Nerves system from scratch for the STM32MP157F-DK2: the boot chain, device trees, and the first attempt at a working build.