David Stöckl

(Web-) Programmierer & Software Entwickler

Hallo, seit mehr als 10 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 SW Engineering & Internet Computing

Master of Science, Informatik

2011 - jetzt

Derzeit studiere ich berufsbegleitend 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, Interaktive Medien

2008-2011

Dreijähriges Studium an der Fachhochschule St. Pölten, ausgiebige Beschäftigung mit Informatik-Grundlagen und Web-Entwicklung. Weitere Schwerpunkte der Ausbildung waren mitunter die Felder Design, Usability und Journalismus.

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.

ready2order GmbH

Senior Fullstack Web Developer (TZ)

2017 - heute

Web- und Software Entwicklung im E-Commerce Umfeld

Calasoul IT Dienstleistungs- & HandelsgmbH

Developer (TZ)

2015 - 2017

Entwickler im E-Commerce Umfeld mit Fokus auf Frontend

SiriusHawk Software GmbH

Developer

2014 - 2015

Leitender Software-Entwickler

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. 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

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 sehr viele Tools die einen Großteil des HTML & CSS generieren. Das ist nur bedingt empfehlenswert, da häufig nur ein geringer Teil des Codes genutzt wird und die Projekte eher Gefahr laufen schwer wartbar zu sein. Sauberes HTML & CSS von Anfang an ist bei größeren Projekten unabdingbar, wenn das Projekt nicht unwartbar werden soll. Manche Frameworks wie beispielsweise SASS für CSS sind trotzdem empfehlenswert, wenn sie richtig genutzt werden.

JavaScript

JavaScript ist nach wie vor der Alleinherrscher für dynamische Programmierung in Web-Browsern (abgesehen von CSS-Animationen), was es seit jeher entsprechend wichtig macht. JavaScript eignet sich sowohl für ganz kleine Aufgaben als auch für das erstellen kompletter, komplexer Applikationen die im Prinzip nur mit einer Datenbank kommunizieren. Auch JavaScript (von Java abgeleitete Skriptsprache) hat sich von einer vergleichweise "eingschränkten" Sprache zu einer relativ mächtigen Sprache weiterentwickelt (ECMAScript 6).

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 oder Coffeescript verwendet wird. Das ist im Grunde sehr begrüßenswert, unsauberer JavaScript-Code der ohne Framework umgesetzt wurde wird nämlich schnell nahezu unwartbar.

WordPress

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 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.

Professionellere Alternativen (je nach Projekt) wären beispielsweise Django (Python) oder October CMS (Laravel), solche Projekte sind aber häufig auch aufwändiger da man bessere Entwickler braucht und es eben weniger "Out-of-the-Box"-Lösungen gibt.

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, gute Kommunikation, ausgeklügeltes Deployment-Management (z.B. Docker + Gitlab), Versionsverwaltung (meist Git), ständigen Kontakt mit Usern und Kunden, u.v.m. Bei Bedarf gebe ich dazu gerne mehr Auskunft.