FS Frank Stuhec · Laravel & Symfony Freelancer | Legacy PHP modernisieren
ProjekteÜber michStackLogbuchKontakt
Teilweise verfügbar · auf Anfrage
Projekte/03Über mich/04Stack/05LogbuchKontakt/07
Teilweise verfügbar · auf Anfrage
01 · Was ich mache

Alte PHP-Codebase, die keiner mehr anfassen will?
Lass uns reden.

Ich übernehme, analysiere und modernisiere — ohne dass Production stehen bleibt. Kein Rewrite wenn es nicht sein muss. Kein Subunternehmer. Dein Team weiß jederzeit, woran ich gerade arbeite.

Projekt anfragen → Projekte anschauen
25+
Jahre Web-Entwicklung
Ø 8 Jahre
Mandatsdauer
48 h
Antwort — Ja oder Nein, immer
src/Controller/UserController.php PHP 5.6 → 8.3
@@ -12,6 +12,7 @@ UserController::show()
12 − class UserController extends Controller {
13 − function show($id) {
14 − $r = mysqli_query($conn,
15 − „SELECT * FROM users WHERE id=$id“);
16 − $user = mysqli_fetch_assoc($r);
17 − return $this->render(‚user.tpl‘, $user);
12 + #[Route(‚/user/{id}‘, name: ‚user_show‘)]
13 + public function show(
14 + int $id, UserRepository $users
15 + ): Response {
16 + return $this->render(‚user.html.twig‘, [
17 + ‚user‘ => $users->find($id) ?? throw new NotFoundHttpException(),
18 + ]);
Beispiel-Refactor · PHP 5.6 → Symfony 7 mit Attributes, DI, typed args Im laufenden Betrieb, mit Tests
01 · Was ich mache

Alte PHP-Codebase, die keiner mehr anfassen will?
Lass uns reden.

Ich übernehme, analysiere und modernisiere — ohne dass Production stehen bleibt. Kein Rewrite wenn es nicht sein muss. Kein Subunternehmer. Dein Team weiß jederzeit, woran ich gerade arbeite.

Projekt anfragen → Projekte anschauen
25+
Jahre Web-Entwicklung
Ø 8 Jahre
Mandatsdauer
48 h
Antwort — Ja oder Nein, immer
Kunden, mit denen ich arbeiten durfte
sportpark-kelkheim
djmconsulting
eduversum
dystar
02 · Zwei Beispiele

Zwei alte Systeme. Eins läuft heute noch, eins ist sauber abgelöst.

Einmal war Neubau die einzige vernünftige Antwort. Einmal war er es nicht — 28 Jahre, kein Rewrite, kein Feature-Freeze. Den Unterschied erkennst du nur, wenn du den Code kennst.

01 Modernisierung
[ modernisierung · angular × laravel ]
2017 ──────── 2026
Overnight-Logistiker · 2017 – heute · Lead Development

Altes System komplett ersetzt durch eine Angular/Laravel-Plattform. Modular gewachsen seit 9 Jahren.

Plattform komplett neu gebaut auf Basis des alten Systems des Kunden. TDD seit dem ersten Tag, CI bei jedem Commit. Heute läuft das gesamte Tagesgeschäft darüber.
Angular REST PHP · Laravel TDD Continuous Integration
02 Langlauf
Sport-Onlinehändler · 1998 – 2025 · Lead E-Commerce + WaWi

28 Jahre eine Codebase. Drei Generationen Frontend-Frameworks. Schritt für Schritt modernisiert.

Mehrere Shop-Frontends plus Waren­wirtschaft eines Sport-Onlinehändlers. Seit über 20 Jahren gepflegt und Schritt für Schritt modernisiert — kein Rewrite, kein Feature-Freeze.
Live seit
1998
28 Jahre durchgehend
Storefronts
multiple
+ Waren­wirtschaft
Methode
TDD seit Tag 1
kein Feature-Freeze
Frontend
Bootstrap-Responsive
3 Framework-Generationen überlebt
Eine Codebase überlebt drei Generationen Frontend-Frameworks nicht zufällig. Sondern weil sich jemand kontinuierlich darum kümmert.
PHP MySQL / MariaDB Bootstrap SCSS TDD Continuous Integration
03 · Projekte

Was ich aktuell und zuletzt gemacht habe.

Projekte über Jahre, nicht Sprints. Immer als Lead. Viele laufen noch, andere habe ich sauber übergeben. Konkrete Zahlen (Last, Nutzer, Transaktionen) sag ich dir gern im Gespräch — die stehen unter NDA.

2024 – heute
E-Government Öffentlicher Sektor
PHP-Entwicklung. Ich analysiere und erweitere eine Behörden-Anwendung — viel Code-Archäologie, viel Migration.
PHP Legacy-Analyse REST
aktiv
2017 – heute
Overnight-Logistik Mittelstand
Lead Development. Plattform komplett neu gebaut auf Basis des alten Systems. Modular gewachsen, TDD und CI seit dem ersten Commit.
Angular REST PHP · Laravel TDD CI
✦ Highlight
1998 – 2025
Sport-Onlinehändler Retail
Lead. Mehrere Shop-Frontends plus Warenwirtschaft. Über die Jahre Schritt für Schritt modernisiert, immer im laufenden Betrieb. 28 Jahre, eine Codebase.
PHP MySQL Bootstrap TDD SCSS
✦ Highlight
2013 – 2020
Online-Customer-Portal Banking
Lead Development. Komplett selbst entwickelt — Bootstrap-Frontend, durchgehend TDD und CI. 2020 sauber ans interne Team übergeben.
Angular REST PHP TDD CI Bootstrap
übergeben · 2020
04 · Über mich

Der, den du rufst wenn keiner mehr ran will.

Die meisten Codebases, die ich übernehme, hat vorher jemand anderes aufgegeben.

Portrait Frank Stuhec
Verfügbarkeit
Teilweise verfügbar · auf Anfrage
Standort Rhein-Main · CET
Modus Remote, weltweit
Seit 1998 hauptberuflich
Auslastung 2 Projekte aktiv
Tagessatz auf Anfrage
Vertrag AV nach DSGVO möglich

Ich baue Webanwendungen seit Ende der 90er — was bedeutet, dass ich CSS noch ohne box-sizing kennengelernt habe.

Das Ziel ist immer dasselbe: ein System, das morgen noch läuft — ohne dass heute alles stillsteht. Was läuft, lass ich laufen und räume nach und nach auf. Was nicht mehr passt, tausche ich Schritt für Schritt aus, im laufenden Betrieb, mit Tests. Das Werkzeug wähle ich nach dem Problem — nicht nach Gewohnheit.

Seit über 20 Jahren — Banking, Logistik, Retail, öffentlicher Sektor — kenne ich die typischen Muster: warum Legacy-Projekte scheitern, wie Codebases veralten, welche Entscheidungen sich rächen. Ich rede direkt mit deinem Team, stelle die Fragen, die intern niemand gestellt hat — und schreibe Code, der auch nach mir noch lesbar ist.

Wenn wir zusammenarbeiten: Ich frag erst, bevor ich was umbaue. Wenn ich was nicht weiß, sag ich das — statt zu raten. Und ich halte Termine ein, auch wenn die Antwort „nein“ ist.

Was du nicht von mir bekommst
  • Greenfield-Rewrites, wenn Modernisierung reicht
  • Subunternehmer — an deinem Code arbeite ich selbst
  • Jemand, der nach dem Go-live verschwindet — meine Projekte laufen seit Jahren
05 · Stack

Womit ich arbeite.

Alles hier hab ich produktiv im Einsatz — meistens über ein Jahr. Die mit Punkt nutze ich gerade aktiv in einem laufenden Projekt.

Sprachen
TypeScript PHP JavaScript SQL HTML CSS · SCSS
Frameworks
Laravel Symfony Angular React.js Node.js WordPress
Frontend-Systeme
Tailwind CSS Responsive Design
Daten
MySQL MariaDB REST · API SOAP
DevOps & Methodik
Docker Kubernetes TDD Continuous Integration
Legacy-Erfahrung
PHP 5.x → 8.x Symfony 3.x → 7 Zend Framework CakePHP Drupal Bootstrap LESS Material Design
Mit Punkt = nutze ich gerade in einem laufenden Projekt. Ohne Punkt = hab ich produktiv im Einsatz gehabt, aktuell nicht. Legacy-Erfahrung ist explizit für Übernahmen alter Codebases — nicht für Neubauten.
06 · Logbuch

Logbuch und Learnings.

Hier schreib ich auf, wo es bei Symfony-Migrationen, Laravel-Updates und PHP Legacy oder WP-Multisite-Übernahmen immer wieder hakt.

22. Mai 2026

Characterization Tests: Wie ich Legacy-PHP teste, das ich noch nicht verstehe

Da hatte ich mal wieder so einen ganz typischen Fall: Zugriff aufs Repository, und drin – PHP 7.2, 38.412 Zeilen Code und kein einziger Test. Mittendrin thront ein OrderProcessor::handle(), schlanke 823 Zeilen, neun verschachtelte if-Bäume und ein freundliches // TODO: refactor (2019). Der Vorgänger? Längst weg. Die Doku? Drei Confluence-Seiten (immerhin) aus dem März 2017. […]

Lesen →
18. Mai 2026

Das Strangler-Fig-Pattern: Legacy-PHP ablösen, ohne Production anzuhalten

Wie ich alte PHP-Codebases Route für Route durch modernes Symfony ersetze — ohne Big-Bang-Release, ohne Freeze, ohne das System anzuhalten.

Lesen →
25. Mai 2025

PHP 8.4 · Nullable-Parameter richtig deklarieren

Eine winzige Regeländerung in 8.4 macht aus einem stillen Pattern einen Deprecation-Sturm. In typisierten Codebases ist das ein halber Tag Arbeit. In untyped Legacy-Code ist es der Anlass, endlich Typen anzufassen. Mein Vorgehen, ein konkretes Diff und die Stolperfallen, in die ich selbst schon getreten bin.

Lesen →
07 · Kontakt

Lass uns reden. Eine Mail reicht.

Teilweise verfügbar · auf Anfrage

Drei Zeilen reichen: was läuft heute, was soll laufen, ab wann. Ich melde mich innerhalb von zwei Tagen — ehrlich, mit Ja oder Nein.

projekte@stuhec.de → oder 30-Min-Slot buchen
Antwort in 48 h · AV nach DSGVO möglich · Teilweise verfügbar · auf Anfrage
FS Frank Stuhec

Laravel & Symfony Freelancer aus dem Rhein-Main-Gebiet. Ich übernehme alte PHP-Codebases und modernisiere sie im laufenden Betrieb — kein Rewrite-Reflex, kein Subunternehmer.

Kontakt

  • projekte@stuhec.de
  • 30 Min Erstgespräch buchen
  • LinkedIn

Seite

  • Projekte
  • Über mich
  • Stack
  • Logbuch

Standort

Rhein-Main-Gebiet
CET (UTC+1)
Remote weltweit
© 2026 Frank Stuhec
Impressum Datenschutzerklärung
projekte@stuhec.de · kopiert