Software-Entwicklung – nur vom Feinsten!
Ein Projekt mal schnell runter hacken? Kann man machen. Will man aber nicht, wenn es langfristig Spaß machen soll.
Selbst bei einem Prototypen für den ersten Markt-Check sollte man rechtzeitig auf eine zukunftsfähige Software-Entwicklung achten. (Andernfalls wird es später so richtig teuer.)
Ihr sucht einen erfahrenen PHP-Experten? Dann bin ich genau der Richtige. Wollt ihr euer Team agil und nachhaltig ausrichten, unterstütze ich euch gerne auch in der Rolle als Software-Architekt und/oder Team-Lead.
-
PHP-Entwicklung: Mit dem PHP-Ökosystem bin ich sehr gut vertraut und in der Community vernetzt. Ich verfüge über langjährige Erfahrung mit PHPUnit, Symfony, Doctrine und Docker unter Linux sowie anderen, gängigen Bibliotheken oder Frameworks.
-
Test-Driven Development: In jahrelanger Praxis habe ich gelernt, wie “test first” zu besserem Design und Code führt. Von den langfristigen Vorteilen ist hoffentlich jeder überzeugt. Und es rechnet sich mit einer intelligenten Teststrategie schon kurzfristig.
-
Refactoring: Refactoring ist ein ständiger Begleiter in der Software-Entwicklung. Nicht nur, wenn der Code einem Spaghetti-Gericht gleicht; sondern auch bei den besten Teams, die ein System von Beginn an mit hoher Expertise umsetzen.
-
Objekt-Orientierung / Design-Patterns & Clean Code: Eigentlich ist Objekt-Orientierung ganz einfach (von der Syntax), aber nicht leicht (für eine nachhaltige Umsetzung). Meinen Ansatz bezeichne ich gerne als Clean Code aus der Perspektive des Domain-Driven Designs.
Thomas lebt Clean Code. Er ist für jedes Projekt eine enorme Bereicherung!
-
Qualitätssicherung: Software-Qualität ist mehr als automatisierte Tests. Gerne zeige ich euch weitere QA-Tools, etwa zur statischen Code-Analyse oder auch Mutationstests.
-
Performance-Analyse und -Optimierung: Ich analysiere Flaschenhälse sowohl im PHP-Code als auch bei Datenbank-Anfragen. Für die drängendsten Themen gibt es in der Regel kurzfristig umsetzbare Quick-Wins.
-
DevOps: Bei Bedarf erstelle ich eine gemeinsame, Container-basierte Entwicklungsumgebung oder implementiere Pipelines für Continuous Delivery.
Diese Bausteine bilden ein solides Fundament für langfristig agile Software-Entwicklung. Und so vermeidet ihr die üblichen Fallen von Legacy-Systemen – oder behebt diese im Laufe der weiteren Entwicklung.