Branimir Georgiev

Engineer. Hacker.Vibe Coder. Builder.

Dipl.-Ing. alumnus of Karlsruhe Institute of Technology (KIT). 15 years on industrial plant floors and in software. Built protocol SDKs, industrial historians, and control systems for some of Bulgaria's largest plants and global manufacturing firms.

About

Walk on fire, breathe ammonia (2009 – 2019)

Branimir started as an automation engineer at Solvay Sodi, one of Bulgaria's largest chemical plants. Not the kind of job where you sit in front of a screen — the kind where you bail water by hand to keep PLCs alive during a flood, climb 180-metre chimneys in wind, and witness the destructive power of a multi-tonne steam head punch through a metre-thick concrete wall.

He automated compressors, utilities, and process units on both Honeywell and Siemens hardware, ported Honeywell control blocks to Siemens SCL, and cleaned up after consultants who left systems broken. He learned what industrial software actually costs when it fails. When things went wrong, external companies would say: "If Branko is here, everything will be all right." In technical terms: Branimir had achieved bhai status — the one certification no university awards.

Break it until you make it (2019 – 2025)

At Hilscher, Branimir moved into software and discovered Python. He hit a gap no existing library could fill: protocol stacks built ONLY for communication, not for testing. You cannot craft malformed packets. You cannot simulate edge cases the spec does not cover.

That gap is where the work began. An SDK grew to cover DeviceNet, CAN, Modbus, OPC-UA, and MQTT. Brutal deadlines from tier-1 American semiconductor equipment manufacturers. Impossible milestones. All delivered. The model was lean: developer and tester working in parallel, every artifact shipped already tested.

Branimir had a penchant for crashing things on a Friday afternoon, or right before a public holiday — because that is when developers reveal their true dedication. He trained six engineers and earned the nickname the bastard from heaven in tester mode and master-blaster in developer mode.

The best collaboration is through conversation (2025 – Present)

At Heidelberg Materials, Branimir worked on PxTrend — an industrial historian built by Paranext. When the setup stalled, he drove to the nearest plant in Devnya, talked to the operators, learned from the clients, learned from the creator, and built understanding the only way that works — by experimenting, using it, and solving problems. The understanding of what a historian should do became the foundation for what came next.

A special thanks to Edgar Poth, founder of Paranext, for sharing his knowledge directly — shadowing him from 4am to 11pm through installations, upgrades, and live migrations of PxTrend was worth more than any technical book. It was an eye opening experience with a showcase of real problems on the plant floor.

Experience

Heidelberg Materials Digital Hub Varna Senior Software Engineer
2025 – Present · Varna, Bulgaria

Providing L3 support for PxTrend, a legacy data historian from Paranext — delivering hotfixes and new features. Developing agent-based ETL pipelines to transfer data from OT to IT systems. Extending GitLab CI/CD pipelines for quality control automation. Authoring technical documentation in arc42 format.

PythonFlaskFastAPIAzureDockerGitLabElasticSearchpytestpydanticarc42
Hilscher Development and Test Center Senior Python Developer
2019 – 04/2025 · Varna, Bulgaria

Authored production-quality industrial protocol libraries in Python (MQTT, DeviceNet, OpenModbus over TLS). Built comprehensive and scalable test frameworks. Refactored legacy code into maintainable architecture using clean code principles. Created and maintained training programs for new recruits covering Python, OS, multi-threading, version control, and testing.

PythonnetXFlaskunittestDockerGitSVNDeviceNetCANMQTTModbus
Solvay Sodi Industrial Automation Engineer
2009 – 2019 · Devnya, Bulgaria

Adapted Honeywell control blocks for Siemens S7 PLCs using SCL. Built real-time cooling tower simulations based on 1D Merkel models with custom psychometric libraries. Implemented a Mamdani Fuzzy Logic Controller for carbonisation columns. Automated fly-ash and brine purification installations including HMI. Implemented an NH3 ammonia station and NH3 ammonia analyzer under ATEX/IECEx compliance.

SiemensHoneywellProfibusProfinetModbusSCLMatlabSciLabVisual BasicC#
X2E GmbH Software Developer Intern
2005 – 2007 · Karlsruhe, Germany

Implemented a MOST-protocol demonstration platform using VHDL and C. Built a flash library for firmware updates in C and C++. Developed an automatic testing system for company products using Ruby.

CC++VHDLRuby

Skills

Technical

Software EngineeringQA EngineeringTDDBDDSOLID PrinciplesDesign PatternsPythonCGoDockerCI/CD Pipelines

Industrial Automation

Siemens PLCsTIA PortalHoneywellSCLHMIPID TuningAdvanced Process ControlATEX/IECEx

Protocols & Interfaces

CANCANopenCIPDeviceNetEtherNet/IPHARTIO-LinkProfibusProfinetModbusMQTTSparkplugOPC-DAOPC-UAMOSTFlexRayLoRaWANZigbeeRESTgRPC

Software & Tools

PostgreSQLTimescaleDBElasticSearchDockerPodmanAzureGrafanaGitLabGitHubarc42MermaidJIRA

Professional

Project OwnershipProject ManagementMentoringTrainingDocumentationLean Agile

Languages

Bulgarian (Native)English (Professional)German (Conversational)French (Limited)

Showroom

Showroom

braboj.me

Personal portfolio and engineering profile

This site — a minimal portfolio built with Astro, showcasing experience, skills, and projects. Open source and deployed via GitHub Pages.

View →

imbra.io

Home of industrial software for the OT/IT boundary

The company site for Imbra — home of Imbra Connect, a suite of industrial protocol SDKs covering DeviceNet, Modbus, OPC-UA, and MQTT.

View →

wuseria.com

Pick the right Fujifilm lens with lab data, not marketing

A lightweight, offline-friendly web tool that ranks 243 Fujifilm lenses by optical quality across nine photography genres — landscape, portrait, wildlife, and more. Also covers camera comparisons, accessories, and a wiki.

View →

braboj.me/tutorial-git

Concepts before commands — Git for engineers

A structured Git tutorial in nine chapters that teaches the model before the muscle memory. Includes a 17-recipe playbook and a glossary for fast lookup.

View →

braboj.me/tutorial-python

Learn Python by Example — 200+ runnable examples

A practical Python reference for junior, intermediate, and senior developers — over 200 examples covering syntax, idioms, and design patterns. Built to be read by running it.

View →

Demos

demo-randomgen

Random number generator REST API with Flask

A minimal REST API demo built with Flask — clean starting point for API design patterns.

View →

demo-sensor-app

Simulated sensor data sampling with REST and Angular

A full-stack demo app simulating industrial sensor data — REST API built with Flask, visualised with Angular.

View →

demo-the-great-wall

REST API with multiprocessing and Django

A REST API demo using Django and multiprocessing — built to demonstrate parallel workload handling patterns.

View →

demo-hvlp

Simplified MQTT protocol demo for training

A simplified MQTT protocol implementation used for training engineers on industrial messaging patterns.

View →

demo-state-machines

State machine implementation in C

A sample implementation of state machines in C — a fundamental pattern in embedded and industrial control systems.

View →

Academic Publications

Design and industrial implementation of fuzzy logic control of level in soda production

Engineering Science and Technology, an International Journal

Snejana Yordanova, Milen Slavov, Branimir Georgiev — Vol 23, Issue 3, pages 691–699

Parallel distributed compensation for improvement of level control in carbonization column for soda production

Control Engineering Practice

Snejana Yordanova, Milen Slavov, Branimir Georgiev — Vol 71, pages 53–60

Optimization of Parallel Distributed Compensation for Real Time Control of Level in Carbonization Column

Automatic Control and Computer Sciences

Snejana Yordanova, Milen Slavov, Branimir Georgiev — Vol 54, pages 379–390