Genetec
Rafal Dabek, Back End Developer at Genetec
Description
Rafal Dabek von Genetec erzählt im Interview wie er zum Programmieren gekommen ist, was das Spannende an seiner aktuellen Arbeit ist und spricht darüber, was seiner Meinung nach wichtig für Beginner ist. Mehr zum Team von Genetec: https://devjobs.at/team/genetec devjobs.at IT Career Days Playlist: https://www.youtube.com/playlist?list=PLxwoARCP1-pStxUV52y__-iN43N8BMJ2P
Beim Videoaufruf stimmst Du der Datenübermittlung an YouTube und der Datenschutzerklärung zu.
Video Zusammenfassung
Im Talk 'Rafal Dabek, Back End Developer at Genetec' berichtet Speaker Rafal Dabek von seinem Weg vom ersten Spiel mit 16 über C und C++ bis zu 2,5 Jahren bei Genetec, wo er Videoverarbeitungspipelines für das Produkt Privacy Protector entwickelt. Er schildert den Reiz des Backends – Architekturaufbau und Einblick hinter die UI – sowie die Herausforderung, neuartige Probleme ohne Online-Lösungen zu knacken. Als Learnings für Entwickler nennt er C++ und Docker, den Mut, einfach mit einem eigenen Projekt zu starten, analytisches Denken und Problemzerlegung sowie kontinuierliches Lernen über CppCon und neue Compiler-Features.
C++ im Backend: Architektur, Videopipelines und Problemlösung – Einsichten aus „Rafal Dabek, Back End Developer at Genetec“
Warum diese Session hängen bleibt
Wenn eine Entwicklergeschichte so prägnant und klar erzählt ist wie in „Rafal Dabek, Back End Developer at Genetec“, entsteht ein seltener Fokus: kein Buzzword-Bingo, keine ausschweifenden Anekdoten – nur die Essenz dessen, was tägliche Backend-Arbeit ausmacht. Wir bei DevJobs.at haben zugehört, welche Stationen, Denkweisen und Werkzeuge den Weg von der ersten Zeile C bis zum produktiven C++-Backend prägen. Und wir haben festgehalten, was wir dabei über Lernpfade, Architekturgestaltung, Videobearbeitungspipelines und Problemlösung im Alltag mitnehmen konnten.
Gleich zu Beginn setzt die Session die Grundlage: Rafal Dabek ist Back End Developer bei Genetec und arbeitet seit 2,5 Jahren im Unternehmen. Sein Produktfokus: „Privacy Protector“. Seine Hauptaufgabe: eine Pipeline für die Verarbeitung des Videobildes zu bauen. Dazu kommt eine klare technologische Präferenz: C++ – das ist nicht nur sein wichtigstes Werkzeug, sondern auch seine Lieblingssprache. Ergänzend setzt er auf Docker und das Ökosystem rund um C++.
Es ist eine Story, die bei 16 Jahren beginnt – mit einem kleinen Spiel außerhalb der Schule, geschrieben zuerst in C und anschließend in C++. Genau hier liegen die Fäden, die sich durch die gesamte Session ziehen: praxisnah starten, Probleme in Teile zerlegen, Architektur aufbauen und entwickeln sehen, mit Herausforderungen umgehen, die nicht „ergoogelt“ werden können, und lernbereit bleiben – etwa über CppCon und die Recherche aktueller Compilerfeatures.
Der frühe Funke: Ein kleines Spiel, große Wirkung
Rafals Einstieg war pragmatisch und persönlich: Mit etwa 16 schrieb er ein kleines Spiel – „einfach für mich“, wie er sinngemäß sagt. Das ist mehr als eine Nostalgie-Note. Es ist ein Muster, das sich für viele später erfolgreiche Entwicklerinnen und Entwickler zeigt: Der erste Kontakt ist oft projektgetrieben, eigeninitiativ und frei von formalen Zwängen.
- Erste Sprache: C – ein direkter Zugang zur Maschine, Speicher, Laufzeitverhalten, Präzision.
- Nächster Schritt: C++ – das Werkzeug, in dem er heute produktiv ist und das er bevorzugt.
„Just find yourself a very cool project that you want to work on and just do it.“
Dieser Rat gilt nicht nur für den Anfang. Er ist eine wiederkehrende Lernstrategie: Statt auf den perfekten Kurs oder die perfekte Roadmap zu warten, entsteht Fortschritt, wenn man an einer Sache baut, die man wirklich „cool“ findet. Genau das spiegelt sich später in seiner Rolle im Backend wider – Pipeline statt PowerPoint, Architektur statt Abkürzungen.
2,5 Jahre Back End Developer bei Genetec: Fokus auf „Privacy Protector“
Die Session benennt einen klaren Produktbezug: „Privacy Protector“. Dazu das Kernmandat: „die Pipeline für die Verarbeitung des Videobildes“ zu schaffen. Ohne in Produktdetails abzutauchen, steht eines fest: Das Backend, das Videobilder verarbeitet, ist mehr als eine Service-Schicht – es ist eine Abfolge von Rechenschritten, Pufferungen, Zuständen und Kantenfällen, die sich im UI nicht zeigen, im Ergebnis aber den Unterschied machen.
Was bedeutet das für die tägliche Arbeit?
- Datenorientiertes Denken: Frames und Bildströme folgen einem Takt, der verlässlich und performant verarbeitet werden muss.
- Architektur über Zeit: „You also get to experience building the architecture and seeing it develop.“ Architektur ist kein Diagramm, sondern eine Evolution unter Produktionsdruck.
- Fehlersuche im Unsichtbaren: „You get to see how much stuff is actually going on behind the UI.“ Die Komplexität liegt in Pipelines, Zustandsautomaten, Puffern, Latenzen – nicht in Buttons und Ansichten.
Auch ohne zusätzliche Details zum Produkt zeigt der Auftrag „Pipeline für Videobilder bauen“ exemplarisch, was Backend-Entwicklung in echt bedeutet: Daten bewegen, Entscheidungen deterministisch treffen, Performance und Zuverlässigkeit sichern – und all das in einem Design, das reifen darf und muss.
Hinter der UI: Die unsichtbare Komplexität
Rafal sagt, was viele spüren, wenn sie einmal ernsthaft ins Backend eintauchen: Hinter einer scheinbar einfachen Oberfläche verbirgt sich „so viel Zeug“. Genau das macht den Reiz aus – und die Verantwortung.
- Die UI ist der Endpunkt; das Backend ist der Motor. Was als „Klick“ beginnt, wird zu Logging, Validierung, Routing, Queueing, Scheduling, Verarbeitung und Persistenz.
- In Videopipelines kommt hinzu: Zustellgarantie, Reihenfolge, Pufferstrategie, Qualität vs. Latenz – Entscheidungen, die den Benutzerinnen und Benutzern verborgen bleiben, aber ihr Erlebnis bestimmen.
- Architektur „entwickeln sehen“ heißt, bewusst Zwischenzustände zu tolerieren: Versionen koexistieren, Module reifen unterschiedlich schnell, und dennoch muss das System immer „laufen“.
Dieser Blick hinter die UI ist es, der für viele Backend-Profis so motivierend ist: Man gestaltet das Verhalten des Systems im Kern – nicht unbedingt das Aussehen, aber die Substanz.
Herausforderungen: Wenn es keine StackOverflow-Antwort gibt
Ein zentraler Satz in der Session lautet sinngemäß: Viele Probleme sind neu – und „auch sehr schwer im Internet zu finden“. Genau hier zeigt sich die professionelle Reife. Wer im Backend arbeitet, trifft auf Fragen, die spezifisch für den Kontext sind: Protokolle, Datenmengen, Zeitverhalten, Edge Cases, reale Lastsituationen. Statt Antworten zu suchen, muss man oft Fragen präzisieren, Hypothesen bilden, Experimente bauen.
Probleme, „die ich noch nie gesehen habe“, verlangen, „wirklich nachzudenken“.
Das ist ein nüchterner, aber enorm wichtiger Punkt: Gute Backend-Entwicklung ist kein Copy-Paste-Handwerk. Sie ist analytische Arbeit am System, die mit Unschärfe, Ambiguität und Unterbestimmtheit umgehen kann – und diese in reproduzierbare Lösungen übersetzt.
Werkzeugkoffer: C++, Ökosystem, Docker
Rafal benennt seine Favoriten klar: C++ und die Tools rundherum – plus Docker. Die Kombination passt zur Art von Aufgaben, die er beschreibt.
- C++ als Hauptsprache: direkte Kontrolle, Performance, deterministisches Ressourcenmanagement – genau das, was daten- und zeitkritische Pipelines benötigen.
- Tools rund um C++: Build-Systeme, Paketmanager, Linter, Profiler – die Session nennt keine Namen, aber macht deutlich, dass es ein lebendiges Ökosystem ist.
- Docker: Containerisierung „und in diesem Fall Virtualisierung“ findet er „sehr cool“. Container dienen der Reproduzierbarkeit und Isolation – essentiell, wenn man Pipelines baut, die robust gegen Umgebungsunterschiede sein müssen.
Die Botschaft: Technologie folgt der Aufgabe. Wer Videobilder in einem produktiven Kontext verarbeitet, braucht verlässliche Laufzeitkontrolle und ein sauberes Deployment – C++ plus Container ist dafür eine klare und naheliegende Wahl.
Lernpfad und Community: CppCon und Compiler-Features
Um am Puls der Sprache zu bleiben, nutzt Rafal den CppCon-YouTube-Kanal. Außerdem „recherchiert“ er „die neuesten Versionen und Features von C++-Compilern“. Das klingt unspektakulär, ist aber eine wirksame Praxis: Sprach- und Toolchain-Entwicklung schreitet voran, und wer in Performance- und Systemszenarien arbeitet, profitiert direkt von Compiler-Fortschritten und neuen Sprachmitteln.
- CppCon als Quelle für „die neuesten Verbesserungen und Ideen“ in C++.
- Fokus auf Compiler-Versionen und -Features: reale Effekte auf Codegröße, Optimierung, Diagnosequalität und Sicherheitsfeatures.
Diese Haltung ist ergebnisorientiert: Nicht Trends folgen, sondern konkret bessere Werkzeuge für reale Probleme nutzen.
Vom Hobbyprojekt zum Produktionssystem: Die Übersetzung
Zwischen dem kleinen Spiel mit 16 und der Videopipeline im Produkt liegt kein Bruch, sondern eine Linie: bauen, lernen, verfeinern.
- Projektorientierter Einstieg: C lernen, C++ übernehmen, ausprobieren.
- Produktionsfokus: Verantwortung für Architektur, Stabilität, Performance.
- Fortlaufendes Lernen: CppCon schauen, Compiler erforschen, Tools nutzen.
Wer diesen Weg geht, erlebt zwei Dinge gleichzeitig: Erstens macht die Arbeit Spaß, weil man sieht, „wie viel tatsächlich hinter der UI passiert“. Zweitens wächst das eigene technische Urteilsvermögen – weil man Probleme löst, die nicht in Tutorials stehen.
Fähigkeiten eines Back End Developers: Analytik und Zerlegung
Rafal formuliert zwei Kernfähigkeiten, die wir sofort unterschreiben:
- Analytisches Denken
- Probleme in kleinere Teile zerlegen und diese kleinteilig lösen
Diese Doppelkombination ist universell und doch hochpraktisch. Zerlegung ohne Analytik führt zu Aktionismus; Analytik ohne Zerlegung bleibt abstrakt. Im Backend – insbesondere in Pipelines – wird aus beidem ein Arbeitsmodus: Input in Stufen denken, Verantwortlichkeiten klar schneiden, Schnittstellen definieren, Fehlerdomänen isolieren, und dann jedes Teilstück sauber implementieren.
Praktische Ableitungen: Was wir konkret mitnehmen
Aus „Rafal Dabek, Back End Developer at Genetec“ leiten wir folgende Handlungsimpulse ab – ohne über die Session hinauszugehen:
- Projekt zuerst: Wähle eine Aufgabe, die dich wirklich interessiert. Der Lernfortschritt folgt dem Nutzen, nicht umgekehrt.
- C++ bewusst nutzen: Wenn Latenz, Durchsatz oder präzise Ressourcenverwaltung kritisch sind, passt C++ – mitsamt seinen Tooling-Möglichkeiten.
- Container als Standard: Docker sorgt für reproduzierbare Umgebungen – besonders wichtig, wenn Medienpipelines stabil laufen müssen.
- Architektur als Prozess: „Seeing it develop“ bedeutet, Architektur in Iterationen zu bauen und zu beobachten, wie Entscheidungen im Betrieb wirken.
- Suche nicht nur nach Antworten – formuliere bessere Fragen: Wenn Probleme nicht „im Internet“ stehen, wird Hypothesenbildung zur Schlüsselkompetenz.
- Bleib nah an der Community: CppCon und Compiler-Release-Notes sind praktische Hebel, um Produktcode Schritt für Schritt zu verbessern.
- Zerlege Probleme: Kleine, klar definierte Teilaufgaben bringen dich zuverlässig voran – besonders bei Pipelines.
Videopipelines denken: Allgemeine Muster (kontextualisiert)
Die Session geht nicht in technische Tiefen der Videopipeline – das respektieren wir. Dennoch lässt sich aus dem Begriff „Pipeline für die Verarbeitung des Videobildes“ ableiten, worauf es typischerweise ankommt. Diese Punkte verstehen wir als allgemeine Leitplanken, nicht als Beschreibung des konkreten Produkts:
- Stufen statt Monolith: Einlesen, Vorverarbeiten, Transformieren, ggf. Anonymisieren/Markieren, Ausgeben – klar getrennte Verantwortlichkeiten erleichtern Testbarkeit.
- Zeit und Speicher: Video ist zeitkritisch; Puffer und Latenzbudgets sind zentrale Entscheidungen.
- Fehlerdomänen isolieren: Fällt eine Stufe aus, muss die Pipeline kontrolliert reagieren – Rückstau und Datenverlust vermeiden.
- Reproduzierbarkeit: Containerisierte Umgebungen reduzieren „works on my machine“-Effekte und beschleunigen Debugging.
- Sichtbarkeit schaffen: Metriken, Logs und Traces machen die unsichtbare Arbeit sichtbar – entscheidend bei Problemen, „die man im Internet nicht findet“.
Diese Muster unterstützen genau die Fähigkeiten, die Rafal nennt: analytisch vorgehen, zerlegen, sauber lösen.
Lernen wie Rafal: Ein kompakter Praxisfahrplan
Wer den Einstieg so direkt wählt wie in der Session beschrieben, kann sich an folgendem, pragmatischen Plan orientieren – inspiriert von den genannten Prinzipien:
- Woche 1–2: Kleines „cooles“ Projekt definieren (z. B. ein einfaches Bild- oder Videotool). Ziel: etwas, das dich wirklich interessiert.
- Woche 2–3: C++-Grundgerüst aufsetzen, Tooling wählen (Build, Tests, Lint). Schritte kleinteilig planen.
- Woche 3–4: Docker-Container bauen, um Entwicklungs- und Laufzeitumgebung reproduzierbar zu machen.
- Fortlaufend: CppCon-Vorträge anschauen und 1–2 Features aus aktuellen Compiler-Versionen bewusst ausprobieren.
- Jeden Sprint: Probleme in Teilaufgaben zerlegen, Messpunkte einziehen, Ergebnisse dokumentieren.
Der Kern bleibt immer gleich: bauen, beobachten, verbessern – und weiterlernen.
Motivation: Freude an der Architektur und am „Unsichtbaren“
Rafal betont, wie erfüllend es ist, „die Architektur zu bauen und ihre Entwicklung zu erleben“. Diese Freude ist in Backend-Teams ein oft unterschätzter Motivator. Der Fortschritt ist nicht immer sichtbar, aber er ist spürbar: Wenn eine Pipeline stabiler läuft, wenn Latenz sinkt, wenn Logs klarer sprechen. Genau dieser Funke, der mit 16 an einem kleinen Spiel beginnt, verwandelt sich später in professionelle Befriedigung an robusten Systemen.
Mentale Modelle für den Alltag
Basierend auf der Session kristallisieren sich drei mentale Modelle heraus, die wir für die Backend-Praxis empfehlen:
- Pipeline-Denken: Daten fließen – gestalte den Fluss. Definiere Knoten, Kanten, Puffer und Messpunkte.
- Fehler als Information: Wenn du keine Lösung „im Internet“ findest, ist das ein Zeichen für echtes Lernen – messe, grenze ein, formuliere Hypothesen.
- Toolchain-Kompetenz: Sprache, Compiler, Container – je besser du deine Werkzeuge verstehst, desto verlässlicher wird dein System.
Diese Modelle stützen genau jene Fähigkeiten, die in der Session benannt werden.
Ein Wort an Einsteigerinnen und Einsteiger
Der pragmatische Tipp der Session ist klar und motivierend:
„Just get into it. … find yourself a very cool project … and just do it.“
Dem ist wenig hinzuzufügen. Wer wartet, bis alle Fragen geklärt sind, verpasst die Lernkurve. Wer baut, gewinnt Klarheit im Tun.
Konkret heißt das:
- Thema wählen, das dich fesselt – nicht das, was „man“ gerade lernt.
- Klein starten, aber in Produktionsdimensionen denken: Logging, Tests, Container.
- Regelmäßig reflektieren: Was hat funktioniert? Wo war die Reibung? Welche nächste Teilaufgabe ist sinnvoll?
Schluss: Was wir aus „Rafal Dabek, Back End Developer at Genetec“ mitnehmen
Diese Session ist eine prägnante Erinnerung daran, worauf es im Backend ankommt:
- Freude an der Arbeit hinter der UI – dort, wo die eigentliche Komplexität liegt.
- Architektur als lebender Organismus – Planen, Bauen, Beobachten, Verbessern.
- C++ als bewusstes Werkzeug für anspruchsvolle, performancekritische Aufgaben.
- Docker als pragmatischer Weg zu Stabilität und Reproduzierbarkeit.
- Lernen als Routine – Community-Vorträge (CppCon) und moderne Compilerfeatures.
- Problemlösung als Denkhandwerk – analytisch, zerlegend, explorativ.
Wir haben in „Rafal Dabek, Back End Developer at Genetec“ eine klare, menschliche Entwicklergeschichte gehört: früh mit C/C++ losgelegt, heute mit C++ im Produkt Verantwortung für eine Videopipeline übernommen, täglich echte Probleme gelöst – und nie aufgehört, aus Interesse zu lernen. Genau diese Mischung ist es, die Backend-Teams stark macht.
Weitere Tech Lead Stories
Genetec Florian Matusek, Product Group Director at Genetec
Product Group Director bei Genetec Florian Matusek erzählt im Interview über die Aufgaben des Teams und woher der Spitzname "Wrecking Crew" für die Abteilung kommt.
Jetzt ansehenGenetec Stephan Sutor, Product Group Director at Genetec
Product Group Director bei Genetec Stephan Sutor spricht im Interview über Domain Driven Design und wie dieses Prinzip im Team angewandt wird.
Jetzt ansehen
Weitere Dev Stories
Genetec Moemen Saad, Senior Software Developer at Genetec
Moemen Saad von Genetec spricht im Interview über seine Anfänge mit C#, was ihm an seiner aktuellen Arbeit am besten gefällt und gibt Tipps für Neueinsteiger.
Jetzt ansehenGenetec Ilia Gutu, Mobile Developer at Genetec
Ilia Gutu von Genetec erzählt im Interview über seinen Werdegang, angefangen mit Delphi, über Umwege im Embedded Development bis hin zu seiner aktuellen Arbeit als Mobile Developer und gibt Tipps, wie man am Besten up to date bleibt.
Jetzt ansehenGenetec Spandana Kanadam Ravindranath, Computer Vision Developer at Genetec
Spandana Kanadam Ravindranath von Genetec redet im Interview über ihre ersten Berührungspunkte mit dem Programmieren, was ihre aktuelle Arbeit als Computer Vision Developer umfasst und gibt Tipps für Leute, die ebenfalls in diesem Berufsfeld starten möchten.
Jetzt ansehen