DreamHost interviewt Senior Software Engineer, …

Hinweis: Der folgende Artikel hilft Ihnen dabei: DreamHost interviewt Senior Software Engineer, …


DreamHost interviewt Senior Software Engineer, ...

Im Gespräch mit Matthew Turland aus Lafayette, LA. Matthew ist ein professioneller Softwareentwickler, Autor und Redner mit über 20 Jahren Erfahrung in der Softwareentwicklungsbranche. Matthew engagiert sich auch in Open-Source-Entwicklungsgemeinschaften und ist eine bekannte Persönlichkeit in der PHP- und GitHub-Community.

Shahzeb: Hallo Matthew, vielen Dank, dass Sie sich die Zeit für dieses Interview genommen haben. Wie wäre es, wenn Sie unseren Lesern, bevor wir beginnen, etwas über sich erzählen?

Matthew: Ich wurde in Lafayette, Louisiana, geboren und lebe dort. Bis vor Kurzem hatte ich mehrere Jahre in New Orleans gelebt, bin aber kürzlich nach Lafayette zurückgekehrt, nachdem ich mein Zuhause durch Hurrikan Ida verloren hatte. Ich habe meinen Bachelor-Abschluss in Informatik vor etwa 15 Jahren an der University of Louisiana in Lafayette erhalten.

Ich begann im Jahr 2000 zu arbeiten, nicht lange nach meinem High-School-Abschluss. Mein erster Job war bei einem Ingenieurbüro und ich beschäftigte mich hauptsächlich mit Excel-Tabellen und Access-Datenbanken unter Verwendung von Visual Basic for Applications (VBA).

Von da an wechselte ich zu einem Job bei einem Medienkonzern, der ein individuelles Content-Management-System für Nachrichtenpublikationen entwickelte. Es handelte sich um einen Microsoft-Shop: Windows 2000 Server, SQL Server 2000, IIS und klassisches ASP in VBScript. Das war, bevor .NET auf den Markt kam.

Was als nächstes geschah, passt eigentlich gut zu Ihrer nächsten Frage …

Shahzeb: Wann und wie haben Sie Ihre Karriere mit PHP begonnen? Gibt es interessante Geschichten, die Sie über Ihre Reise erzählen möchten? Vor welchen Herausforderungen standen Sie am Anfang und wie haben Sie diese gemeistert?

Matthew: Mein dritter Job war in einem PHP-Shop. Da ich damals Student war und ein wenig C/C++ beherrschte, war mir die Syntax von PHP nicht ganz fremd und ich konnte mich relativ schnell damit befassen. Zu dieser Zeit liefen bei meinem Arbeitgeber einige ältere Anwendungen auf einem Server mit PHP 3 und die neueren Anwendungen liefen auf einem Server mit PHP 4.0.3.

Alles, was Sie aus dieser Zeit über Code gehört haben, ist wahrscheinlich wahr. Das war, bevor viele der Grundpfeiler der modernen PHP-Entwicklung existierten: Autoloading, Typhinweise, Namespaces, Komponistusw. Der Code war mit require-Anweisungen übersät und weitgehend prozedural, mit sehr wenig Codefreigabe, die nicht das manuelle Kopieren von einer Site wie z. B. erforderte phpclasses.org und fügen Sie es in Ihr eigenes Projekt ein.

Dies waren größtenteils Einschränkungen der Sprache und ihres damaligen Ökosystems. Das Kernteam war im Vergleich zu heute ziemlich isoliert und operierte nach einem Karma-System. Der RFC-Prozess existierte noch nicht und die Entwicklung des Sprachkerns machte in der Regel nur sehr langsame Fortschritte.

Ich denke, das Beste, was die meisten Menschen, mich eingeschlossen, damals wirklich tun konnten, war, sich aktiv in die Gemeinschaft einzubringen, mit anderen in ihr zu kommunizieren, Beziehungen aufzubauen und die Aufmerksamkeit auf die Probleme dieser Zeit zu lenken, damit etwas passiert würde sich irgendwann ändern. Nicht zuletzt glaube ich, dass diese Erfahrungen uns einen Status quo gegeben haben, anhand dessen wir den Stand der Dinge heute beurteilen können, und ich denke, dass sowohl die Sprache als auch das Ökosystem seitdem einen langen Weg zurückgelegt haben.

Shahzeb: Mathew, du hast das Buch auch geschrieben Web Scraping mit PHP. Könnten Sie uns etwas über dieses Buch erzählen? Wer sollte dieses Buch lesen und wie hilft es Entwicklern, sich zu verbessern und effizienter zu werden?

Matthew: Im Nachhinein betrachtet kann der Titel des Buches zugegebenermaßen etwas irreführend sein.

Lesen:  TiWorker.exe Hohe Festplattenauslastung unter Windows 10

Die Erfahrungen, die mich dazu beeinflusst haben, dieses Buch zu schreiben, reichen bis zu meinem ersten Job mit PHP zurück. Ich habe dort an einem Projekt gearbeitet, bei dem es darum ging, den Prozess der Datenübernahme von einer benutzerdefinierten Benutzeroberfläche in zwei verschiedene Datensysteme von Drittanbietern zu automatisieren, deren gesammelte Daten sich teilweise überschnitten. Keines dieser Systeme verfügte über eine API – ich erinnere mich, dass sie damals bei weitem nicht so weit verbreitet waren wie heute – daher mussten wir auf alternative Methoden, nämlich Web Scraping, zurückgreifen, um die Ziele des Projekts zu erreichen.

Allerdings sollte jeder, der mehr über HTTP erfahren möchte, wie Webbrowser und Server funktionieren und miteinander interagieren, wie man mit dem Extrahieren von Daten aus Markup umgeht oder wie man mit der Automatisierung von Aufgaben umgeht, die Webanwendungen betreffen (z. B. Systemtests), lesen dieses Buch.

Als ich anfing, mit PHP zu arbeiten, war mir das noch nicht bewusst, aber ich habe die ganze Zeit HTTP verwendet, ohne mir dessen wirklich bewusst zu sein. Ich habe mein Bestes getan, um ein Buch zu schreiben, das ich mir gewünscht hätte, als ich mit der PHP-Entwicklung begonnen habe, und eines, das einige der wirklich tollen Dinge zeigt, die man mit der Sprache machen kann.

Shahzeb: Welche Art von Recherche betreiben Sie und wie lange verbringen Sie mit der Recherche, bevor Sie mit dem Schreiben eines Buches beginnen?

Matthew: Die Recherche, die ich durchgeführt habe, bevor ich mit dem Schreiben begann, war ziemlich oberflächlich: Marktanalyse, ein Elevator-Pitch (oder „Hintercover“) für das Buch, ein Inhaltsverzeichnis, das die Hauptthemen umriss, die ich behandeln würde, und so weiter.

Der Großteil der Recherche zum eigentlichen Inhalt des Buches wurde während der Entstehung des Buches durchgeführt. Dabei ging es vor allem darum, sich die verschiedenen HTTP-Client-Bibliotheken und XML-Erweiterungen der damaligen Zeit anzusehen, herauszufinden, wie sie funktionierten, und Beispiele zu entwickeln, um ihre Verwendung zu veranschaulichen. Dabei gab es sogar ein paar Fälle, in denen ich Fehler gemeldet habe, weil ich falsches Verhalten festgestellt habe.

Ich pendelte sechs oder sieben Monate lang zwischen Recherche, Schreiben und Lektorat hin und her. Das Schreiben der ersten Auflage des Buches war sehr zeitaufwändig; Im Grunde genommen war in dieser Zeit jeder freie Abend und jedes freie Wochenende diesem Thema gewidmet.

Shahzeb: Möchten Sie ein paar Tipps und Tricks für diejenigen geben, die gerade erst anfangen, PHP zu verwenden?

Matthew: Geben Sie der Sprache eine ordentliche Chance. Alles, was Sie vor fünf bis zehn Jahren über PHP gehört haben, ist mittlerweile wahrscheinlich völlig veraltet.

Schauen Sie sich Ressourcen an wie PHP der richtige Weg, php[architect] Zeitschrift, Brent Rooses Blogoder Josh Lockharts Buch Modernes PHP um mehr über das moderne Ökosystem und Best Practices zu erfahren.

Erfahren Sie mehr über die Standards, die von der PHP Framework Interoperability Group (FIG) entwickelt wurden. Dadurch erhalten Sie eine Menge nützliches Wissen, das auf eine Reihe moderner PHP-Frameworks anwendbar ist.

Gehen Sie raus und lernen Sie all die wunderbaren Menschen in der Community kennen, was meiner Meinung nach das wertvollste Angebot ist. Gehen Sie zu PHP-Benutzergruppen oder Konferenzen. Suchen Sie auf Slack, Discord, Stack Overflow oder IRC nach Subcommunities, denen Sie beitreten können. Finden Sie Projekte, die Ihnen am Herzen liegen, und tragen Sie dazu bei. Dies sind die besten Möglichkeiten zum Lernen.

Shahzeb: Es scheint, dass Sie gerne auf PHP-Konferenzen auf der ganzen Welt sprechen. Gibt es Einblicke in das Thema, über das Sie dieses Jahr sprechen werden? Und wo?

Lesen:  ACT CRM Software Review Eine gute Kontaktmanagement-Software?

Matthew: Ich habe ein paar Ideen für neue Vorträge, die ich halten werde; Ich werde mir in den Ferien wahrscheinlich etwas Zeit nehmen, um formelle Zusammenfassungen für sie zu verfassen.

Man beschäftigt sich mit SQL und seinen Zusammenhängen mit der Mengenlehre. Letzteres ist ein Thema, das ich für nützlich halte, aber ich sehe nicht, dass es auf Konferenzen häufig behandelt wird. Ich habe davon an der Universität erfahren.

Ein anderer befasst sich mit Web-Scraping. Mein Ruf als Experte für das Thema begann mit einem Artikel in PHP[architect] Magazin und entwickelte sich daraus zum Buch. Seltsamerweise habe ich noch nie einen Konferenzvortrag zu diesem Thema gehalten, also denke ich, dass es an der Zeit ist, das zu ändern.

Die letzte Idee, die ich im Moment habe, ist eine Art Nachfolger meines kürzlich populären Vortrags „How to be a Great Developer“. Der Schwerpunkt liegt auf Mentoring und es wird tiefer darauf eingegangen, wie neue Entwickler in die Branche eingeführt und ihnen dabei geholfen werden kann, sich beruflich weiterzuentwickeln.

Verbessern Sie die Geschwindigkeit Ihrer PHP-App um 300 %

DreamHost bietet Ihnen dedizierte Server mit SSD-Speicher, individueller Leistung, einem optimierten Stack und mehr für 300 % schnellere Ladezeiten.

Wo ich diese Vorträge halten werde, ist derzeit noch schwer zu sagen. Ich habe kürzlich an der Longhorn PHP – übrigens eine großartige Konferenz – in Austin, Texas, teilgenommen. Dies war die erste Konferenz, an der ich seit Beginn des COVID-19-Lockdowns persönlich teilgenommen habe. Ich gehe davon aus, dass ich für eine Weile bei nahegelegenen inländischen Konferenzen bleiben werde, zu denen ich mit dem Auto oder einem kurzen Flug reisen kann, zumindest bis sich die Bedingungen im Zusammenhang mit der Pandemie bessern.

Shahzeb: Was machen Sie gerne, wenn Sie nicht an Ihrem Laptop sitzen?

Matthew: Ich spiele gerne mit meinen beiden Hunden Sierra (ein dreifarbiger walisischer Pembroke-Corgi) und Kaylee (ein Ratterrier-Dackel-Mischling). Sie wurden nach Charakteren aus den Science-Fiction-Fernsehserien Dollhouse und Firefly benannt. Ich bin ein bisschen ein Geek, wenn man das nicht schon erkennen kann. Ich lese und schaue gerne Science-Fiction, obwohl ich nicht so oft Zeit dafür finde, wie ich möchte.

Außerdem genieße ich es, Zeit mit meiner Frau zu verbringen. Während der Pandemie begannen wir, Videos auf YouTube anzuschauen, hauptsächlich Kanäle, die sich mit Kochen und Cocktailzubereitung beschäftigten, und nutzten das, was wir in der Küche gelernt hatten.

Shahzeb: Welche Art von Webhosting würden Sie für Ihre Kunden oder Community-Mitglieder bevorzugen? Ist Ihrer Meinung nach herkömmliches Shared Hosting eine praktikable Option für Ihre Projekte?

Matthew: Ehrlich gesagt habe ich keine starke Präferenz.

Ich denke, Shared Hosting ist immer noch eine praktikable und erschwingliche Option, insbesondere für kleinere Websites oder Projekte.

In den letzten Jahren ist Cloud-Hosting zu einer immer häufigeren Option geworden, aber ich denke, dass es tendenziell besser für größere kommerzielle Projekte mit komplexeren Infrastrukturanforderungen und erfahrenem Personal geeignet ist.

Wenn sich die Qualität der Breitbandkonnektivität im Land verbessert und Technologien wie der Raspberry Pi sich wie bisher weiterentwickeln, kann ich mir auch vorstellen, dass Selbsthosting eine verbreitetere und praktikablere Option wird als heute.

Shahzeb: Was denken Sie über Hosting-Lösungen wie DreamHost? Glauben Sie, dass diese Lösungen einen Mehrwert für PHP-basierte Anwendungen darstellen?

Matthew: Ich denke, dass Lösungen wie DreamHost einen Mehrwert bieten. Ich glaube, dass viele unabhängige Entwickler und kleine Startups mehr von den Angeboten des Cloud-Hostings profitieren könnten als jetzt, aber mit der damit verbundenen Komplexität und dem erforderlichen Fachwissen zu kämpfen haben. Es gibt einen Grund dafür, dass DevOps heutzutage eine eigenständige Aufgabe ist und warum es schwierig sein kann, Leute zu finden, die darin gut sind.

Lesen:  PHP 8.1 jetzt auf DreamHost verfügbar

Shahzeb: Es kann schwierig sein, die Arbeit mit dem Privatleben in Einklang zu bringen. Was machst Du in Deiner Freizeit gerne? Irgendwelche Hobbys, die du gerne teilen möchtest?

Matthew: Ich habe immer noch Codierungs-Nebenprojekte, an denen ich in meiner Freizeit arbeite. Die aktuelle Version ist für die persönliche Finanzverwaltung bestimmt. Ich hoffe, die Quelle irgendwann für Beiträge öffnen zu können, aber sie befindet sich derzeit in einem Pre-Alpha-Stadium.

Ich habe seit vielen Jahren Spaß an Tabletop-Rollenspielen. Während des Lockdowns habe ich mich mit ein paar Freunden online getroffen und seitdem spielen wir ein paar Mal im Monat D&D. Ich bin auch einer anderen Gruppe beigetreten, die Werwolf spielt. Ich habe in der Vergangenheit eine kleine Handvoll Kampagnen durchgeführt, die nicht mehr aktiv sind. Ich bin gerade dabei, ein Modul zu schreiben, das auf einem davon basiert, aber das ist ein langfristiges Projekt.

Ich bin auch ein Gelegenheitsspieler von Videospielen. Ich spiele gelegentlich Handyspiele, zum Beispiel Best Fiends oder Wordscapes. Ich mag auch Steam-Spiele; Einige meiner zuletzt auf dieser Plattform gespielten Spiele sind SteamWorld Dig 2, ein niedliches Steampunk-Puzzle/Plattformspiel, und Darkest Dungeon, ein düsterer Dungeon-Entdecker. Ich finde, dass Spiele eine schöne Möglichkeit sind, sich zu entspannen.

Fragen Sie jeden, der mich kennt, und ich bin sicher, er wird Ihnen sagen, dass ich Karaoke, Gesang und Musik liebe. Ich kann sie nicht so oft außerhalb meines Zuhauses machen, wie ich möchte, aber ich versuche es, wann immer ich kann. Wenn Sie mich zufällig auf einer PHP-Konferenz treffen, besteht eine gute Chance, dass ich irgendwann, während ich dort bin, versuche, einen Ausflug in eine lokale Karaoke-Bar zu organisieren.

Shahzeb: Wen sollten wir Ihrer Meinung nach als nächstes interviewen und warum?

Matthew: Ihre Interviewliste ist das Who-is-Who der PHP-Community!

Es gibt wahrscheinlich eine lange Liste von Namen, die ich nennen könnte, aber wenn ich eine Person auswählen müsste, die noch nicht auf dieser Liste steht, müsste ich wahrscheinlich einen von ihnen vorschlagen Hauptentwickler des ReactPHP-Projektsinsbesondere Cees-Jan Kiewiet (@WyriHaximus) oder Christian Lück (@another_clue).

Das Kernteam von ReactPHP ist klein, aber ziemlich eng verbunden und sehr freundlich. Sie produzieren viele wirklich coole Pakete für verschiedene Formen der asynchronen Programmierung in PHP und haben wirklich dazu beigetragen, die Grenzen dessen, was mit PHP als Sprache möglich ist, zu verschieben.

Shahzeb: Um unsere Leser zu inspirieren, würde ich mich freuen, wenn Sie uns einige Schnappschüsse Ihrer Büroräume oder Ihres aktuellen Arbeitsplatzes mitteilen könnten.

Matthew: Vielen Dank, dass Sie mir einen Vorwand gegeben haben, meinen Schreibtisch ein wenig aufzuräumen. Zugegebenermaßen bin ich darin nicht immer so gut, wie ich sein sollte.

Mein Laptop hat vor nicht allzu langer Zeit den Geist aufgegeben, also verwende ich ein Leihgerät für ein Macbook Air von 2017, bis ich das Problem gelöst habe.

Mein Telefon ist ein Samsung Galaxy Note 9. Das andere Ladegerät, das Ihnen vielleicht auffällt, ist für meine Samsung Galaxy Watch3.

Das sind die Dinge, die ich am häufigsten benutze, wenn ich am Schreibtisch sitze. Der Rest besteht größtenteils aus Krimskrams: Adapter, Peripheriegeräte und ähnliches.

Shahzeb: Nochmals vielen Dank, Matthew!

Matthew: Danke schön! Es war mir ein Vergnügen.