$ whoami

Florian Voit

Full-Stack-Entwickler mit Herz für PHP und Symfony – und genauso SysAdmin. Als Teamlead Storage bei Hetzner bringe ich die Storage Box und Storage Share gemeinsam mit dem Team voran – vom Betrieb der Server bis zur Software, die daraus Produkte macht.

1<?php
2
3namespace Eu\Voit;
4
5use Com\Hetzner\Attribute\AsTeamLead;
6use Com\Hetzner\Employee;
7use Com\Hetzner\Storage\Product;
8use Eu\Voit\Florian\Idea;
9
10// Team Lead Storage at Hetzner
11#[AsTeamLead(team: 'Storage', at: 'Hetzner')]
12final readonly class Florian extends Employee
13{
14 public function __construct(
15 public array $code = ['PHP', 'Symfony', 'Rails', 'Go'],
16 public array $ops = ['Debian', 'Ubuntu', 'Puppet'],
17 public string $fs = 'ZFS',
18 public string $servers = '2000+',
19 public string $scale = '200+ PB',
20 public array $products = ['Storage Box', 'Storage Share'],
21 public array $offline = ['dog', 'travel', 'homelab'],
22 ) {}
23
24 public function __invoke(Idea $idea): Product
25 {
26 return $this->build($idea, withTeamwork: true)->ship();
27 }
28}
PHP · UTF-8 · LFZeile 26, Spalte 64

// infrastructure at scale

Tausende Server. Betrieben mit Code.

Als Team entwickeln und betreiben wir die Storage Box und Storage Share – auf einer Infrastruktur aus mehreren tausend Servern unter Debian und Ubuntu. ZFS hält die Daten zusammen, Puppet die ganze Flotte in Form.

2.000+
Server im Betrieb
200+ PB
Storage im Betrieb
ZFS
Dateisystem unter allen Daten
2 Produkte
Storage Box & Storage Share

// 01 über mich

Entwickler. SysAdmin. Beides.

Florian Voit – Schwarz-Weiß-Porträt im Anzug

Seit 2013 bin ich in der IT – angefangen mit der Ausbildung bei Hetzner, erst als Systemintegrator im DC-Support, dann in der Anwendungsentwicklung. Beim Code bin ich geblieben: PHP und Symfony sind mein Werkzeug der Wahl, vom Datenmodell bis zur Oberfläche. Ruby on Rails kenne ich gut, und Go schaue ich mir gerade genauer an.

Den Systemintegrator habe ich dabei nie abgelegt: Debian und Ubuntu, ZFS als Fundament und Puppet für alles, was reproduzierbar sein muss, gehören genauso zu meinem Handwerkszeug wie PHP.

Bei Hetzner bin ich Teamlead im Storage-Team. Als Chef sehe ich mich dabei nicht: Ich bin weiter gern hands-on, verstehe mich als Mentor – und vor allem als Teil des Teams, das gemeinsam das Produkt voranbringt. Wir verantworten die Storage Box und Storage Share komplett: Weiterentwicklung, Betrieb und Support, von der Provisionierung bis zur Kundenanfrage.

Was mich antreibt? Zu sehen, wie viele Server und Daten wir als Team zuverlässig betreiben – und wie gut die Produkte bei den Kunden ankommen. Beim Entwickeln zählen für mich saubere Arbeit, gute Reviews und Tests. Und der Mut zur 80-%-Lösung: Die letzten 20 % kosten meist mehr, als sie bringen. Pareto wäre stolz.

rolle
Teamlead Storage
arbeitgeber
Hetzner
produkte
Storage Box, Storage Share
standort
Zwickau
alter
29 Jahre
in der IT
seit 2013
sprachen
Deutsch · Muttersprache
Englisch · Fließend
Französisch · Grundkenntnisse
privat
Verheiratet, Hund Theo, Reisen, Zocken, Homelab

// 02 stack

Code und Infrastruktur. Aus einer Hand.

Die Software schreiben und die Server betreiben, auf denen sie läuft – beides mit derselben Sorgfalt.

Programmierung

src/
PHP

Meine Hauptsprache – PHP 8.4, strikt typisiert, mit Codeception getestet.

Symfony

Mein Hauptframework – für Managementinterfaces, Konsolen-Tools und APIs, viel mit Symfony Messenger.

// Ein Symfony-RateLimiter schützt die Leckerli-Dose vor Theo. (Beispielcode)

namespace Eu\Voit\Dog;

use Eu\Voit\Dog;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\RateLimiter\RateLimiterFactory;

final readonly class TreatDispenser
{
    public function __construct(
        private RateLimiterFactory $treatsLimiter,
    ) {}

    public function __invoke(Dog $dog): Response
    {
        $limit = $this->treatsLimiter->create($dog->name)->consume();

        return $limit->isAccepted()
            ? new Response('Treat dispensed.')
            : new Response("Nice try, {$dog->name}.", 429);
    }
}
GitVersionierung, Reviews, saubere Historie
LTS
BashKleine Helfer und Automatisierung im Betriebsalltag
LTS
SQLSchemas entwerfen, Abfragen optimieren, Analysen & Reporting
LTS
Ruby on RailsBestehende Anwendungen weiterentwickeln – vor allem im Backend
stable
HTML, CSS, JavaScriptFunktionale Frontends, gebaut aus dem Backend heraus
stable
RedisCaching, Sessions, Queues und Locks
stable
RabbitMQAsynchrone Jobs und Entkopplung von Diensten
stable
GoBackend, Tools & Services – gerade im Fokus meiner Weiterentwicklung
beta

Betrieb

/etc/
Debian / UbuntuMehrere tausend Server – plus ein paar zu Hause
LTS
DockerDienste und Builds in Containern
LTS
PuppetDie Flotte als Code – gelegentlich mit eigenen Modulen
stable
ZabbixÜberwachung und Alarmierung – meist im Einsatz, Templates und Trigger bauen wir auch selbst
stable
GitLab CI/CDTests, Builds und Deployments als Pipeline – auch für diese Seite
stable
PackerOS-Images automatisiert und reproduzierbar bauen
stable
NGINXWebserver und Reverse Proxy – auch hier für voit.eu
stable
Grafana & PrometheusDashboards und Metriken – im Job wie im Homelab
stable

Storage & Datenbanken

/srv/
ZFSSnapshots, Prüfsummen, Replikation
LTS
Storage BoxIm Team als Lead – und privat selbst Kunde
LTS
Storage ShareIm Team als Lead – und privat meine eigene Cloud
LTS
NextcloudDie Basis von Storage Share – Betrieb und Weiterentwicklung im Team
LTS
MariaDB / Galera ClusterHochverfügbare Datenbank-Cluster betreiben
stable
PostgreSQLFür Anwendungen – beruflich und privat
stable
MongoDBWenn das Schema flexibel bleiben muss
stable

// TODO?Ehrlich gesagt: Mein Full-Stack hört beim Design auf – UI/UX ist nicht mein Steckenpferd. Deshalb hat eine KI diese Seite gestaltet – der Inhalt ist von mir. Überhaupt gehört KI für mich inzwischen fest zum Werkzeugkasten: Bei Konzepten und ersten Ideen ist sie stark, dem generierten Code vertraue ich aber nie blind. Von reinem Vibe-Coding halte ich nichts – *hust* außer vielleicht beim Design dieser Seite.

// 03 werdegang

Mein Werdegang als Traceroute.

Jeder Hop ist eine Station. Wähle einen Hop für Details.

$ mtr --report florian.voit.eu
#HOSTLoss%SntVonBis
Ziel erreicht. Ein Umweg mit Paketverlust – die Route über die Praxis war stabiler.

hop 7

Teamlead Storage

teamlead.storage.hetzner.fsn.de · 07/2025 – heute

Mit dem Wachstum wurde Storage im Juli 2025 ein eigenes Team. Seitdem Lead: gemeinsam Weiterentwicklung, Betrieb und Support von Storage Box und Storage Share.

  1. Teamlead Storage 07/2025 – heute · teamlead.storage.hetzner.fsn.de

    Mit dem Wachstum wurde Storage im Juli 2025 ein eigenes Team. Seitdem Lead: gemeinsam Weiterentwicklung, Betrieb und Support von Storage Box und Storage Share.

  2. Studium Wirtschaftsinformatik (abgebrochen) 06/2021 – 06/2025 · business-informatics.iu.online.de

    Neben dem Job habe ich an der IU (online) Wirtschaftsinformatik studiert und gut die Hälfte geschafft. Dann habe ich bewusst abgebrochen: Die Praxis liegt mir einfach mehr.

  3. Software Developer / DevOps Engineer · Storage ~2020 – 06/2025 · devops.storage.hetzner.fsn.de

    Mit ein paar Kollegen entstand die Idee, Storage Shares auf Basis von Nextcloud anzubieten – das Management-Backend habe ich mit aufgebaut. Danach Fachverantwortlicher für Storage im Team, der den Überblick behält. Großprojekt: die Migration der Storage-Systeme auf ein neues Betriebssystem, dessen OS-Image automatisiert in einer Pipeline gebaut wird.

  4. Software Developer / DevOps Engineer · interne Softwareentwicklung 07/2016 – ~2020 · devops.development.hetzner.fsn.de

    Federführend in der Entwicklung des internen Warenwirtschaftssystems. Daneben Tagesgeschäft im Betrieb – Storage Boxen und, ganz früher, die alten vServer der VQ-/VX-Reihe – samt Kundenanfragen. Außerdem Betrieb der zentralen internen Kommunikationsplattform.

  5. Ausbildung Fachinformatiker Anwendungsentwicklung 08/2015 – 07/2016 · fiae-apprentice.development.hetzner.fsn.de

    Fachrichtungswechsel in die Anwendungsentwicklung – vom Rechenzentrum in die interne Softwareentwicklung bei Hetzner.

  6. Ausbildung Fachinformatiker Systemintegration · DC-Support 08/2013 – 07/2015 · fisi-apprentice.dc-support.hetzner.fsn.de

    Start bei der Hetzner Online GmbH: Ausbildung zum Fachinformatiker für Systemintegration im Rechenzentrums-Support.

  7. Realschulabschluss — – 07/2013 · realschulabschluss.pestalozzischule.zwi.de

    Realschulabschluss an der Pestalozzischule in Zwickau.

// 04 privat

Abseits vom Rack.

Ich lebe nicht nur für den Job: Ich bin verheiratet, Hundemensch, zocke gern, liebe die Harry-Potter-Filme, steige ab und zu aufs Fahrrad – und schraube nach Feierabend am Homelab.

$ cat ~/privat/travel.txt18 Reiseziele · 7 Länder · 3 Kontinente

Wo ich schon war

Land wählen zum Hineinzoomen

Am liebsten Städtetrips – und am allerliebsten in die USA: Die schiere Größe des Landes beeindruckt mich genauso wie seine Städte, und in Nordmichigan haben wir so etwas wie eine zweite Heimat samt zweiter Familie. Die Ostküste haben wir gut abgegrast, als Nächstes ist die Westküste dran. Auf der Wunschliste: Kanada, Australien, Japan. Strandurlaub? Nur, wenn es sein muss.

Weltkarte mit besuchten Ländern
Wähle unten ein Land – die Karte zoomt hinein und zeigt die Orte.

Hundemensch

~/privat/theo.txt

Theo, unsere Französische Bulldogge (geboren im Mai 2025), ist ein echtes Energiebündel: Agility und Targettraining sind seins – ab 19 Uhr mutiert er pünktlich zur Couchpotato. Gerade steckt er mitten in der Pubertät, ist ein rassetypischer Sturkopf und hält uns ordentlich auf Trab.

name
Theo
rasse
Französische Bulldogge
geboren
Mai 2025
$ fetch --ball → läuft nur mit --treat zuverlässig
in memoriam Maylo Französische Bulldogge · 2013 – Nov. 2023

Unser erster Hund. Bevor er im Dezember 2017 zu uns kam, hatte er es nicht leicht – bei uns war er dann eine Couchpotato durch und durch. Außer uns und unseren engsten Freunden konnte er so ziemlich niemanden leiden.

$ zfs set readonly=on voit.eu/personal/maylo → Read‑only. Für immer.

Homelab

~/privat/homelab.md

Was im Rechenzentrum funktioniert, probiere ich zu Hause im Kleinen aus – und umgekehrt. Smart Home, Fotos, Dokumente, Mail, Passwörter und Single Sign-on laufen bei mir selbst gehostet. Am meisten stolz bin ich auf mein Smart Home: Erstaunlich viel in der Wohnung läuft inzwischen von allein. Wie genau, bleibt im LAN.

$ nmap homelab.voit.internal — Failed to resolve.

// 05 terminal

Frag die Shell.

Ein kleines Terminal mit eigenem Dateisystem. Probier ls, cd und cat – Tab vervollständigt Befehle und Pfade.

flo@voit: ~ · bashTab ⇥ vervollständigt

// 06 kontakt

ping florian

Antwortzeit schwankt, Paketverlust gering. Für einen unverbindlichen Austausch – über PHP, Storage oder Homelab – am besten per Mail oder LinkedIn. Recruiting-Anfragen enden mit 403 Forbidden: Ich bin glücklich bei Hetzner. Und Support zu Hetzner-Produkten gibt es über die offiziellen Kanäle.

// professionell

mail Per Klick – Schutz vor Spam-Bots
linkedinin/florian-voitöffnet in neuem Tab
xingFlorian_Voit3öffnet in neuem Tab

// privat

instagram@N4IR0öffnet in neuem Tab
githubN4IR0öffnet in neuem Tab