Marcus Schwarz
Code cleanup specialist since before it was cool
Hallo! Ich bin seit über 25 Jahren PHP-Entwickler. Mein Fokus liegt darin, Software effizient, schnell und ressourcenschonend zu machen. Wartbarkeit und Performance sind untrennbar miteinander verbunden, davon bin ich überzeugt.
Die meisten Entwickler sehen Legacy-Code eher als Hindernis oder lästige Pflicht, ich jedoch sehe darin das Potenzial, durch rigoroses Code-Cleanup und Refactoring nicht nur die Wartbarkeit zu steigern, sondern auch die TCO zu senken und den oft angedachten teuren Neubau eines Projekts überflüssig zu machen.
Dabei agiere ich gerne als Mentor, dessen Fokus darauf liegt, eine Kultur der Code-Exzellenz zu etablieren und Teams beizubringen, wie man technische Schulden aktiv managt und abbaut - die schnellste Codezeile ist die, die gar nicht erst geschrieben wird.
Das mache ich
Zur Zeit arbeite ich in einer Agentur als Magento2-Entwickler. Mein Fokus liegt dabei auf Optimierung und Stabilisierung bestehender Magento2-Shops. Außerdem beschäftige ich mich mit der Sicherung der Code-Qualität durch Unit- und Integrationtests, API-Tests, Code Profiling und Code Reviews. Natürlich setze ich gelegentlich auch neue Features um.
Dabei bin ich spezialisiert auf:
- Code-Refactoring und Modernisierung: Überführung von veralteten, nicht mehr den (Magento-)Standards entsprechenden Code-Strukturen in moderne, testbare Komponenten.
- Performance-Audits und Tuning: Analyse von Programmabläufen, Datenbankabfragen und Codegüte zur Verbesserung der Performance.
- Überwachung der Einhaltung von Coding-Standards: Wartung bestehender CI-Pipelines sowie Etablierung neuer Code Standards und Best Practices.
- Qualitätssicherung: Code-Reviews und Mentoring weniger erfahrener Kollegen und Kolleginnnen
Tech Stack
Eine Übersicht über die Tools, mit denen ich für gewöhnlich arbeite.
Das habe ich gemacht
Mit PHP arbeitete ich bereits zu einer Zeit, als das die Jahreszahl noch mit einer eins begann. Und trotzdem muss ich auch heute noch gelegentlich nachschauen, wie die Parameterreihenfolge einer bestimmten Methode ist. Verrückt!
Verrückt ist auch, was ich die letzten gut 25 Jahre an Erfahrung aufgebaut habe. In den späten 90ern habe ich mit Freunden zusammen eine "Cheatseite" betrieben, also eine Seite, bei der man sich für die verschiedensten Computer- und Konsolenspiele Tipps und Tricks (und eben Cheats) anschauen konnte.
Schon bald war das nicht mehr mit Vanilla HTML handhabbar, und so habe ich mich mit dieser seltsamen Sprache namens PHP auseinander gesetzt. Es gab ein Backend, in das man Cheats zu Spielen eintragen konnte, und rief jemand eine Seite auf, so wurde diese dynamisch erzeugt. Wahnsinn!
"Wahnsinn!" war auch das, was unser Hoster meinte. Die Last durch die Datenbank viel zu hoch, die Kosten für den Hoster absurd (Wir hatten ein Flatrate-Angebot, und nutzten es auch aus). Als er dann drohte, mit unserem Projekt eine der größten Themenseiten von seinem Servern zu werfen, war mein Interesse für Optimierungen geweckt.
In einer Nacht- und Nebelaktion baute ich das Backend so um, dass es statischen HTML-Code erzeugte und auf Platte ablegte. Der Hoster war zufrieden, wir waren zufrieden, die Nutzer waren zufrieden. Dann kam das Ende der Schulzeit, das Team ging seine neuen, eigenen Wege und das Projekt wurde verkauft.
Meinen Ausbildungsplatz zum Fachinformatiker (Anwendungsentwicklung) habe ich mir dann gesichert, indem ich beim Probetag einen wochenlangen Export/Import/Export-Prozess durch ein simples Shell-Script automatisiert und so einige Wochen Arbeit eingespart habe.
Im Anschluss an die Ausbildung habe ich das Handwerkszeug zum Mentoring sowie zum Recruiting und Ausbilden von zukünftigen Fachinformatikern und Fachinformatikerinnen während meines Studiums der Wirtschaftspädagogik mit dem Schwerpunkt Wirtschaftsinformatik gelernt.
Schon während meines Studiums habe ich als Mitarbeiter mit der Personalnummer 2 bei einer unter dem Namen "UpSim" frisch gegründeten Browserspiele-Firma angefangen. Während ich anfangs nur fertige Spiele "übersetzbar" machen sollte, wurde ich relativ zügig damit beauftragt, das Spiel "Kapiland" "ins Mittelalter" zu versetzen. Der Auftrag lautete im Wortlaut "Mach mal Kapiland, aber im Mittelalter". Der Rest wurde mir überlassen. Anstatt alles neu zu bauen entschied ich mich dazu, den Code von "Kapiland" zu übernehmen und nur dort anzupassen, wo es nötig war. Und so wurde in kürzester Zeit "Kapi Regnum" geboren.
Das Unternehmen wuchs recht schnell und benannte sich später auf den heutigen Namen "upjers" um. Ich habe noch weitere Spiele entwickelt (zum Beispiel Kapi Hospital), aber meine Aufgaben haben sich mehr und mehr in eine leitende Funktion verschoben. Zu meinen Aufgaben zählten später unter anderem das Mentoring, die Ausbildung, Partnermanagement technischer Dienstleister, Technologieanalyse und natürlich auch Qualitätssicherung und Audits unserer Produkte. Bei upjers habe ich gelernt, wie das Optimieren eines einzelnen schlechten Loops auf einen Schlag 10 Server obsolet machen kann und wie wichtig gutes und richtiges Caching sowie Lastverteilung in komplexen Produktivszenarien sind.
Bei einem kurzen Zwischenstop bei Check24 war ich als Teamleiter tätig. Auch hier zählte unter
anderem die Mitarbeit beim Recruiting zu meinen Aufgaben. Projektmanagement, Deployment und Server-
Management waren ebenso Bestandteil meiner Arbeit. Bei Check24 habe ich gelernt, dass manche
Entwickler selbst vor Code wie $foo = @eval("@new ClassWhichNeedsArguments();"); nicht
zurückschrecken. Und ja, das hat mal funktioniert in PHP, das Ergebnis war die leere Hülle einer
Klasse, die eigentlich gar nicht existieren sollte.
Bis 2020 folgte eine Station bei SCNetworks in Starnberg. Dort war ich im Team der sogenannten Workflow Engine zuständig für deren Weiterentwicklung. Interessant war der Kontrast zwischen der nach modernen Maßstäben gebauten Workflow Engine und dem Legacy-Monolithen der Hauptanwendung.
Seither arbeite ich als Magento2-Entwickler bei TechDivision. Dort betreue ich mit meinem Team "Serenity" mehrere Kunden. Mein persönlicher Schwerpunkt liegt dabei wie unter Das mache ich schon erwähnt auf der Qualitätssicherung. Viele Details darf ich hier aber leider nicht nennen.
Privates
Bei meinem aktuellen Arbeitgeber bin ich full remote beschäftigt. In 2021 habe ich mir einen langgehegten Wunsch erfüllt und einen Hund zu mir nach Hause geholt. Es hat sich schnell gezeigt, dass der Hund besondere Bedürfnisse hat, die es unmöglich machen, ihn tagweise bei Dritten in Obhut zu geben oder gar mit zur Arbeit zu nehmen. Ich bin der TechDivision sehr dankbar, dass sie auch nach dem offiziellen Ende der Corona-Zeit mir problemlos ermöglicht hat, meiner Arbeit von zu Hause aus nachzugehen. Dies ist auch eine Grundvoraussetzung für jeden zukünftigen Arbeitgeber.
Auch habe ich in den letzten Jahren schätzen gelernt, wenn ich nicht permanent nur mit Code beschäftigt bin. Regelmäßige Abwechslung z.B. durch Mentoring oder administrative Aufgaben ist für mich sehr wichtig. Gar keinen Spaß habe ich an Themen wie CSS oder reiner Softwarearchitektur.
Neben meinem Hund verbringe ich meine Freizeit mit "typischem Nerdkram" wie "Dungeons & Dragons" als Spieler oder "HeXXen 1773" als Spielleiter. Die Spielgruppen sind dabei über die halbe Welt verteilt, weshalb die Spielesessions online auf selbst gehosteten Spieleservern stattfinden. Und als ehemaliger Spieleentwickler wäre diese Liste nicht komplett, wenn nicht auch "Computerspiele" aufgelistet wären. Dabei bin ich nicht einem bestimmten Genre zugewandt. Einzig Horrorspiele sind gar nicht meins.
Kontakt
Bitte schreibe mir eine E-Mail, wenn du mit mir in Kontakt treten willst. Beachte, das +-Zeichen
und der Text dahinter gehören zur Adresse. Sie helfen mir, die allgegenwärtigen Spambots auf Distanz
zu halten.
Bitte schreibe deine Nachricht an:
marcus.schwarz+ms2025@posteo.de