Hi, I’m Dmytro.

I’m a software engineer working in the energy sector.

I am fascinated by systems where software is only one part of a much larger machine.

Networks, communication protocols, operating systems, security, devices, physical infrastructure, operators, and regulations can all meet inside one system. Each part may be understandable on its own. But when everything begins working together, the behaviour of the whole system becomes surprisingly difficult to see.

Rebuilt is where I try to make these systems less mysterious.

For me, reading documentation is not enough. I do not want to rewrite it in friendlier words and call that understanding.

I want to build a smaller version of the system. Follow a real mechanism through its layers. Start with an intentionally incomplete design, see what breaks, and then discover why the missing pieces exist.

This approach started when I built my own web server.

At first, it looked like a relatively small project. But following HTTP led me through sockets, TCP, concurrency, and operating-system interfaces. Later, I went further into cryptography and TLS.

There, I started with something that only looked secure. Then I added encryption, integrity, key exchange, certificates, and trust—one problem at a time.

Now I am following the same path into networking and the electrical grid.

I want to understand what happens below the familiar application APIs. How packets move through Ethernet, IP, Linux, and industrial networks. And how all this machinery connects software to substations, protection devices, control centres, and, eventually, the physical power system.

These subjects may look separate. For me, they are connected by the same questions:

How does this system actually work?

Where are its boundaries?

Which layers depend on each other?

What assumptions are hidden behind the abstraction?

What happens when one of them fails?

And what becomes visible only after we try to rebuild part of the system ourselves?

Whenever possible, I place code, experiments, diagrams, packet captures, and references next to the explanation.

The systems I build are intentionally small and incomplete. They are not meant to replace production technologies or specialist engineering knowledge. Their purpose is different: to expose the decisions, dependencies, and constraints that finished technologies often hide.

Professionally, I build software in the energy sector and work close to critical infrastructure. I am especially interested in systems that connect software with networks, devices, physical processes, reliability, and security.

I also write and speak about these subjects. I am open to conversations about technical writing, talks, and selected collaborations around complex software systems and critical infrastructure.

Where to start

If you are new here, the Start Here page maps the main projects and reading paths.

My current project is Networking in the Power Grid for Software Developers.

I am following networking from physical links, Ethernet, and IP into Linux, substations, industrial protocols, and secure remote access. The goal is not to collect a few useful commands or protocol definitions. I want to understand the machinery beneath them and how its layers fit together.

You can also begin with:

A Developer’s Map of the European Power Grid

Rebuilding TLS From Scratch

Rebuilding Cryptography From Scratch

You can find my code and experiments on GitHub, follow my work on LinkedIn, or contact me at dmyhuz@gmail.com.

If this kind of work interests you, subscribe to Rebuilt and follow the next system as I take it apart and rebuild it.

User's avatar

Subscribe to Rebuilt

Complex systems, rebuilt from first principles. Software, networks, infrastructure, devices, and the physical world.

People