David Stöckl

(Web-) Programmierer & Software Entwickler

Mein Ziel ist es für Sie Webangebote/Software zu erstellen und zu optimieren sowie ihre Unternehmensprozesse zu automatisieren und zu vereinfachen. Damit Sie in Zukunft Zeit und Geld sparen, mehr Kunden gewinnen und perfekt nach außen im Web auftreten können.

Seit über 15 Jahren bin ich erfolgreich als (Web-) Programmierer, Freelancer und Software-Entwickler im Bereich Wien und Umgebung tätig.

In dieser Zeit wurde eine große Zahl an mitunter umfangreichen und anspruchsvollen Projekten erfolgreich und qualitativ hochwertig umgesetzt.

Angebot

Web- & Programmierung

Egal ob einfache Websites oder umfangreiche Webangebote wie Shops oder Communities, egal ob Java-Applikationen oder Lösungen für spezielle Endgeräte - ich erschaffe aus Ihren Wünschen und Ideen saubere, effiziente und gut dokumentierte Software.

Beratung & Planung

Meinem Einsatz als Leiter, Koordinator und Entwickler in verschiedensten Software- und Web-Projekten verdanke ich einen recht passablen Erfahrungsschatz. Planung, Anforderungsanalyse, Interaktions-Design, Umsetzung, Qualitätssicherung - gerne begleite ich Ihr Projekt vom Anfang bis zum Ende.

Wartung & Optimierung

Feedback, Erweiterungsmöglichkeiten und ständige Änderungen der Internet-Landschaft bewirken, dass erfolgreiche Software-Projekte heutzutage einer Evolution unterliegen. Auch nach der Fertigstellung eines Projektes stehe ich gerne weiterhin für Modernisierung und Erweiterung Verfügung.

Partner-Netzwerk

Mit verschiedensten Experten und Unternehmen aus dem Bereich Medien und Internet bin ich gut vernetzt. So können je nach Anforderung Spezialisten für ein Projekt engagiert werden, beispielsweise wenn es um Design-Fragen oder Fotografie geht.

Ausbildung

Studium Software Engineering & Internet Computing

Master of Science, Informatik

seit 2011

Nebenberuflich studiere ich im Masterstudium "Software Engineerung & Internet Computing" an der technischen Universität Wien. Theoretische Informatik, Algorithmik, Programmierkonzepte & -sprachen, sowie weiteres einschlägiges Fachwissen bilden eine starke Basis für erfolgreiche Software Entwicklung.

Studium Medientechnik

Bachelor of Science

2008 - 2011

Dreijähriges Studium an der Fachhochschule St. Pölten, ausgiebige Beschäftigung mit Informatik-Grundlagen und Web-Entwicklung im Zweig interaktive Medien. Weitere Schwerpunkte der Ausbildung waren Design, Usability, Journalismus sowie Audio/Video.

Berufsweg

Freelancer (Software- und Web-Entwicklung)

2008 - heute

Firmenwebsites, Online-Shops, komplexe Platformen und Speziallösungen. Von Beratung und Planung, über Software-Architektur, Software-Design und Programmierung bis hin zu Deployment, Server-Administration und Wartung.

Brainformance IT-Services GmbH

Senior Fullstack Web Developer (Teilzeit)

seit 2019

Web- und Software Entwicklung hauptsächlich mit Pimcore DXP und Symfony (MDM, PIM, CDP, DAM, CMS und eCommerce). Außerdem Java EE, API-Integrationen, DevOps, Prozessoptimierung, Präsentationen und Planung.

ready2order GmbH

Senior Fullstack Web Developer (Teilzeit)

2017 - 2019

Web- und Software Entwicklung bei einem der führenden SaaS Kassensysteme

Calasoul IT Dienstleistungs- & HandelsgmbH

Developer (TZ)

2015 - 2017

Fullstack Development für Online Marketplaces und Shops im E-Commerce Umfeld

SiriusHawk Software GmbH

Developer

2014 - 2015

Single-Page Web Application Development & CMS Websites

Visual Propaganda (TZ)

Developer

2009-2013

Entwicklung von Webplattformen und Business-Websites

Limesoda

Developer

2011

WordPress & Web-Projekte

Weitere

Verschiedene weitere einschlägige Berufserfahrungen aus selbstständigen Projekten, Mitarbeiter bei der Desaio GmbH, sowie als Assistent der Fachhochschule St. Pölten und Praktikant der Werbeagentur Kuse waren ebenfalls eine Bereicherung.

Sprachen & Frameworks

Jedes Projekt ist anders und daher müssen auch für jedes Projekt individuell die besten Werkzeuge, Techniken und Technologien gewählt werden. Gerne stelle ich eine kleine Auswahl der von mir häufig genutzten Programmierspachen & Frameworks vor.

PHP

Die populäreste aller Skriptsprachen für die Web-Entwicklung hat sich von einer einfachen Template-Sprache zu einer voll funktionsfähigen objektorientierten Programmiersprache weiterentwickelt. Mittlerweile lassen sich mit PHP und modernen Frameworks (z.B. wie beispielsweise Symfony oder Laravel) fantastische Ergebnisse in vergleichsweise kurzer Zeit erzielen.

Die meistgenutzten CMS sind allesamt PHP-basiert. Bei größeren PHP-Projekten braucht man allerdings vor allem talentierte Programmierer, da PHP sich durch vergleichsweise lasche Regeln auszeichnet und daher auch schlechten und schwer wartbaren Code erlaubt.

Java

Die Programmiersprache Java ist ein starker Allrounder, der sowohl im Web- als auch für Desktop-Zwecke plattformübergreifend für die Entwicklung eingesetzt werden kann. Java hat vergleichsweise strenge Regeln und setzt stark auf Objektorientierung.

Web-Projekte die mit dem beliebten auf Java basierenden Spring-Framework umgesetzt werden sind stabil, skalierbar und in der Regel gut wartbar. Da ein gewisser Aufwand hinter großen Java-Projekten steckt, wird Java häufig im Enterprise-Bereich eingesetzt.

Python

Python ist eine sehr schöne Allzweck-Programmiersprache und laut Tiobe-Index die Sprache mit der am schnellsten wachsenden Benutzerzahl. Python legt wie Java viel wert auf schönen und lesbaren Code, ist allerdings von den Regeln her nicht ganz so streng.

Man kann Python also quasi als Kompromiss zwischen Java und PHP betrachten. Für Python Web-Projekte wird am liebsten das Django-Framework verwendet das sich selbst als "Framework für Perfektionisten mit Deadlines" bezeichnet.

Haskell

Die funktionale Programmiersprache Haskell ist funktional und unterscheidet sich daher grundlegend von den objektorientierten Sprachen. Da viele funktionale Elemente auch in Sprachen wie PHP, Java und Python Einzug gehalten haben ist es unbedingt empfehlenswert auch eine funktionale Sprache zu beherrschen, da es einem über Projektgrenzen hinweg viel flexibler in der Implementierung bestimmter Anforderungen macht.

SQL

Hinter fast jeder Anwendung/fast jedem Web-Projekt befindet sich eine Datenbank, die für das Speichern der Daten verantwortlich ist. Die Datenbank wird durch ein Datenbank Management System verwaltet (DBMS). Dieses zeichnet sich in der Regel dadurch aus, dass es für die Einhaltung bestimmter Prinzipien in der Datenspeicherung sorgt wie beispielsweise das AKID-Prinzip (Atomarität, Konsistenz, Isolation und Dauerhaftigkeit).

Um mit der Datenbank zu kommunizieren braucht es eine Abfragesprache, für die meisten Datenbanken ist das nach wie vor SQL (Structured Query Language). SQL ist standardisiert und ist für die unterschiedlichen DBMS (MySQL, PostgreSQL, Oracle, MSSQL) in unterschiedlichen Dialekten implementiert. Auch wenn Datenbanken immer öfter hinter ORMs (objektrelationalen Mappern) wie Doctrine (PHP) oder Hibernate (Java) liegen, gehören fortgeschrittene SQL Kentnisse zum Grundwerkzeug jedes Backend-Programmierers.

HTML 5, CSS 3 und SASS

Virtuoser Umgang mit HTML und CSS sind eine Grundvorraussetzung für das Erstellen sauberer Web-Interfaces. Und das ist schließlich das, was Benutzer in aller Regel zu sehen bekommen. HTML 5 & CSS 3 sind im engeren Sinn keine Programmiersprachen, sondern deklarative "Domain-spezifische" Sprachen.

Heutzutage gibt es viele Tools und Angebote die fertiges HTML & CSS generieren. Das ist nur bedingt empfehlenswert, da häufig nur ein geringer Teil des Codes genutzt wird und die Projekte Gefahr laufen unflexibel, überladen und schwer wartbar zu sein. Sauberes HTML & CSS von Anfang an ist bei größeren Projekten unabdingbar, ansonsten kann die Wartung der Projekte später sehr teuer und aufwändig werden. Im Gegensatz zu visuellen Generatoren sind CSS Preprocessors wie beispielsweise SASS durchaus empfehlenswert. Sie ermöglichen kompakteren und flexibleren Code, sowie mehr programmiererische Freiheit.

JavaScript (ES6)

JavaScript ist nach wie vor alternativlos für dynamische Programmierung in Web-Browsern (abgesehen von CSS-Animationen). JavaScript eignet sich sowohl für ganz kleine Aufgaben als auch für die Erstellung komplexer Single-Page Web Applikationen. Auch JavaScript (von Java abgeleitete Skriptsprache) hat sich von einer vergleichweise "eingschränkten" Sprache zu einer relativ mächtigen Sprache weiterentwickelt (ECMAScript 6). ECMAScript 6 kann zu klassischem JavaScript umgewandelt werden, so dass alle wichtigen Webbrowser damit umgehen können.

Viele große Projekte (oder zumindest deren Frontend) basieren auf modernen JavaScript Frameworks wie Angular oder React, während für kleine Aufgaben oft das jQuery Framework verwendet wird. Bei JavaScript ist der Einsatz von Frameworks je nach Aufgabe grundsätzlich empfehlenswert.

CMS & DXP

Pimcore (DXP inkl. CMS)

Pimcore ist eine auf Symfony basierende Digital Experience Platform mit der Software Entwickler auch die komplexen Strukturen großer Unternehmen digitalisieren und automatisieren können. Es ist dabei derart flexibel, erweiterbar und performant, dass es mitunter mehrere andere Systeme komplett ersetzen kann.

Sollten Sie ein größeres Web- oder Automatisierungsprojekt planen können Sie sich gerne an mich wenden. Auf Basis meiner langjährigen Erfahrungen berate ich Sie gerne. Je nach Projektgröße setze ich ihr Projekt direkt um oder vermittle Sie an meinen derzeitigen Arbeitgeber Brainformance IT-Services GmbH.

Pimcore Developer Senior - Zertifizierung 2020
Pimcore Developer Junior - Zertifizierung 2020

WordPress (CMS)

WordPress ist das meistgenutzte Content Management System der Welt, angeblich basiert fast ein Drittel des gesamten WWW auf WordPress. Der Grund dafür ist, dass WordPress für fast alle kleineren und mittelgroßen Projekte eine gute Basis bildet, mit der Projekte in Rekord-Zeit umgesetzt werden können. Als WordPress-Experte habe ich viele Erweiterungen geschrieben, Bücher gelesen, ein eigenes Shop-System implementiert und sogar eine wissenschaftliche Arbeit über WordPress verfasst.

Für WordPress gibt es aufgrund der weiten Verbreitung viele "Out-of-the-Box"-Lösungen, weswegen sich technisch unerfahrene Personen oft als "WordPress-Entwickler" bezeichnen. Dadurch ist das System teilweise zu Unrecht in Verruf geraten. Man muss aber ehrlicherweise auch sagen dass die Firma Automattic, die hinter dem Open-Source CMS steht, gelegentlich Entscheidungen trifft die professionelle Entwicklung nicht gerade begünstigen.

Sprecher am WordCamp Vienna 2020

Weitere

Grundsätzlich arbeite ich auch mit weiteren CMS. Beispielsweise Shopware (für Shops) oder October CMS. Unterschiedliche Projekte haben unterschiedliche Anforderungen und anhand der Anforderungen sollte das passende Tool ausgewählt werden. Manche Projekte benötigen überhaupt kein CMS und werden allein mithilfe bestimmter Frameworks umgesetzt.

Tools & Techniken

In der Programmierung geht es um weit mehr als nur Programmiersprachen und Frameworks. Ein erfolgreiches Projekt (je größer, umso mehr) braucht gutes Projektmanagement, koordinierte Arbeitsabläufe und Zeitplanung, eine ausgeklügelte Deployment-Strategie (z.B. Docker + Gitlab) und eine ordentliche Versionsverwaltung (Git) - um nur ein paar Dinge zu nennen. Gute Kommunikation zwischen allen beteiligten Parteien ist dabei unabdingbar. Bei Bedarf gebe ich dazu gerne mehr Auskunft.