Dipl.Ing.
Peter Hasitschka
Fullstack Web Developer
&
Freelancer

Web-Applications
Desktop & Mobile Applications
Websites

// Über mich

Ich bin seit 2010 beruflich als Vollblut-Web-Developer sowohl im Frontend- als auch Backend-Bereich tätig.
Die Erfahrung die ich während der Realisierung unzähliger Projekte sammeln konnte sowie mein breitgefächerter Development-Stack machen meine Qualitäten als Senior-Fullstack-Web-Developer aus.
In den letzten Jahren konnte ich auch vermehrt meine Skills als Projekt- und Teamleiter unter Beweis stellen und weiter ausbauen.

Meinen Code und Projekt-Stack halte ich gerne so schlank wie möglich, setze auf Plattformunabhängigkeit und greife auf bewährte Open-Source Technologien zurück wo auch immer es geht.
Sowohl im Frontend als auch im Backend, aber auch für native Mobile-Apps und Desktop-Applications setze ich in den letzten Jahren bevorzugt die Sprache TypeScript (als typisiertes Superset von JavaScript / ES6+) ein.

Peter Hasitschka Portrait

Ich bin kein großer Freund von unnötigen Problemen. Daher vermeide ich sie gerne in jeder Projektphase. Einerseits durch eine gute Kommunikationskultur zwischen Kunden und Projektteam, aber auch durch eine saubere technische Abwicklung.
Hier helfen die richtige Code-Verwaltung (zum Beispiel Einsatz von GIT-Flow), Clean-Code, gute Dokumentation und ein dem Projekt optimal angepasstes Test-Konzept (Unit-Testing, Integration-Tests, E2E-Testing, etc.).

Die Dev-Welt steht nicht still. Deswegen ist eines meiner Credos, dass man sich als guter Entwickler ständig weiterentwickeln muss. Life-Long-Learning sagt man ja dazu.
Ich probiere gerne neue Technologien (auch neue Sprachen) aus. Und was sich bewährt wird dann auch oft eingesetzt.

// Erfahrung & Skills

Frontend
Backend
Sprachen & DEV-Tools
Quality
DevOps / CI/CD
Mobile und Desktop
Websites
Schnittstellen

Frontend

Frontend-Applikationen, speziell mit React, sind in den letzten Jahren meine große Leidenschaft. Ich liebe es, große, gut skalierbare und hochperformante Applikationen ins Leben zu rufen, und achte dabei immer auf eine gute UX, damit der User immer eine Freude daran hat.

  •  React
    • Entwicklung vieler Single-Page-Applikationen
      • Bspw. Buchungssysteme mit komplexen Formularen, Login, etc.
    • State-Management
      • Redux
      • Redux-Sagas
      • Context-Provider
    • React Hook Form
    • Performance-Optimierung mittels Memoizing / Hooks
    • UI-Frameworks
      • MUI
      • Ant-Design
  • Gatsby.js / Next.js
    • Für hochperformante statische Websites und Applikationen mit Headless-CMS
  • Visualisierung / Animationen
    • WebGL
      • THREE.js
      • react-three-fiber
    • react-spring
    • GSAP / ScrollTrigger
    • D3.js
  • UX/UI
    • Gutes Verständnis für gängige UX-Praxis
    • Pixelgenaues Umsetzen von komplexen und dynamischen UIs
    • Gefühl für saubere UI-Umsetzung auch ohne Design-Guide

Backend

Ursprünglich komme ich aus der Backend-Ecke. Das Entwerfen von Datenstrukturen, API-Endpoints, und großen Strukturen macht mir noch immer so viel Spaß wie sicherheitsrelevante Themen und Performance-Optimierungen.

  •  NodeJS
    • Express
    • Sequelize
    • Apollo
    • React SSR
  • Laravel
    • Eloquent ORM
  • Datenbanken / Storage
    • MySQL / MariaDB / Postgres
    • MongoDB
  • ACL, Authentifizierung (JWT), uvm.

Sprachen & DEV-Tools

Früher war für mich PHP die Backend-Sprache, und das Dynamisieren von Frontends das richtige Einsatzgebiet für JavaScript.
Inzwischen ist JavaScript massiv gereift, und kann für ein breites Einsatzgebiet genutzt werden. Mit TypeScript (als Obermenge von JS) setze ich die Sprache weitgehend überall ein: Frontend, Backend, Mobile-Apps und Desktop-Apps.
Auch weitere Sprachen finden Platz in meinem Stack: Gerade im wissenschaftlichen Bereich habe ich natürlich Python benutzt, und wenn JS/TS einmal zu langsam ist, kann man noch immer auf die WebAssembly Technologie zurückgreife, und bspw. Code-Teile in RUST verfassen.

  • TypeScript / JavaScript ES6+
    • Web Workers
    • WebAssembly
  • SASS / CSS
  • PHP
  • Sonstige Sprachen
    • Python
      • Für Datenverarbeitung u. AI-Models
      • TensorFlow / Keras
    • RUST
      • Für den Einsatz von WebAssembly
    • Bash
  • Dev- und Build-Tools
    • Docker
    • Kubernetes
    • Webpack
    • Vite

Quality

Nichts ist trauriger als ein Projekt, das an seiner Qualität scheitert. Daher bin ich ein großer Liebhaber von Test-Driven-Development. Je nach Anwendung setze ich verschiedene Technologien ein, um die Qualität des Codes hoch zu halten.
Dokumentation, Coding-Standards, Linter, etc. gehören hier natürlich immer dazu.

  •  Testing
    • Unit-/Integration-/Functional-/E2E-Testing
    • Tools
      • JEST
      • Snapshot-Testing (React)
      • Mocha
      • PHPUnit
    • E2E-Testing
      • Bspw. mit JEST & Puppeteer
  • Code-Quality
    • Prettier
    • ESLint
    • TypeDefs (TypeScript)
    • JSDoc (JavaScript)
    • PHPDoc
    • BEM (SASS/CSS)

DevOps / CI/CD

Als alter Linux-Enthusiast habe ich mich immer schon gerne mit Server-Konfigurationen beschäftigt. Mit dem Aufstieg von Docker wurde meine Leidenschaft für DevOps und CI/CD-Pipelines neu entfacht. Ich ziehe Microservices den klassischen monolithischen Anwendungen jederzeit vor, da so einerseits in der Entwicklungsphase, aber auch in der Skalierbarkeit eine viel höhere Dynamik möglich ist.
Für viele Anwendungen habe ich das Hosting selbst konfiguriert, für andere bekannte Cloud-Anbieter verwendet.

  •  Microservices
    • Docker / Kubernetes
    • Kommunikation über Message-Brokers (z.B. RabbitMQ)
  • Code-Verwaltung
    • GitHub
    • GitLab
    • Verdaccio NPM Registry
    • DockerHub
  • Deployment-Tools / Pipelines
    • Jenkins
    • Azure DevOps
      • Build Pipelines
      • Testing
      • MS AppCenter
    • DeployHQ
  • Hosting / Cloud
    • AWS
    • DigitalOcean
    • Azure Cloud
    • Firebase

Mobile und Desktop

Als ich React Native kennenlernte schlug mein Herz auf Anhieb höher: Mit Technologien, die ich im Schlaf beherrsche, können performante native Applikationen für mobile Geräte entwickelt werden. React Komponenten werden dabei in native Elemente und eben nicht in HTML übersetzt. That’s it.
Genauso lieben gelernt habe ich Electron: Quasi ein Browser mit NodeJS Backend und klassischem Frontend (React) in ein installierbares Binary verpackt.
In einem sehr herausfordernden Projekt aus dem Bereich der Medizintechnik, wo Performance eine massive Rolle spielte und mehrere 1000 Operationen pro Sekunde berechnet und dargestellt werden mussten, lernte ich die Grenzen von Electron (und React) kennen. Und wie man trotzdem zum Ziel kommt.

  • React Native
    • Native Apps für iOS und Android
    • Desktop-Apps für Windows / MacOS
  • Apache Cordova
    • Wrapper für bspw. React-Applikationen in Mobile-Apps
  • Electron
    • Desktop-Applikationen für Linux, MacOS, Windows
    • Einsatz von React-Stack (s.o) im Frontend
    • Bisher bspw. Realisierung hochperformanter Charts in Medizinprodukt zur Darstellung von Echtzeitdaten.

Websites

In meiner beruflichen Laufbahn durfte ich dutzende professionelle und individuell umgesetzte Websites ins Leben rufen. Traditionell wurde dabei immer WordPress mit einem blanken Theme eingesetzt und verschachtelte Datenstrukturen in herausfordernden Designs umgesetzt.
Neuerdings setze ich – nicht zuletzt aufgrund meiner Liebe zu React – Gatsby ein. Die statische Website-Generierung ermöglicht extrem performante und sichere Seiten.
Im Bereich des technischen SEO weiß ich genau, an welchen Schrauben man drehen muss, um Google zufrieden zu stellen.

  •  Gatsby.js
    • Für statisch generierte Websites
  • WordPress
    • Entweder als Full-Stack-Framework
    • Oder als Headless CMS
    • Plugin-Entwicklung / Hooks/Actions …
  • Strapi
    • Headless CMS
  • Technisches-SEO
    • HTML-Struktur-Optimierung
    • Bildoptimierung
    • Mobile-First
    • Google-Lightspeed Analyse
  • Schema.org

Schnittstellen

Nicht nur Frontends und Backends müssen miteinander reden. Auch Prozesse und Container in Microservice Architekturen. Von klassischen REST-Calls bis zu Messaging-Brokern habe ich schon viele Lösungen kennen und lieben gelernt.

  •  REST
    • SwaggerUI / OpenAPI
  • GraphQL
  • Websockets
    • Socket.IO
  • gRPC
  • RabbitMQ