Web-Applikationen, Ruby on Rails, NodeJS, TypeScript, ReST, HTML, CSS / web3, ICP, Motoko
Aktualisiert am 15.05.2024
Profil
Referenzen (2)
Freiberufler / Selbstständiger
Remote-Arbeit
Verfügbar ab: 15.05.2024
Verfügbar zu: 50%
davon vor Ort: 0%
Full-Stack Web-Entwicklung
low-level
hardwarenahe Programmierung
Deutsch
Englisch
fließend
Russisch
gut

Einsatzorte

Einsatzorte

Deutschland, Österreich, Schweiz
möglich

Projekte

Projekte

7 Monate
2023-08 - 2024-02

Entwicklung einer Wett-Platform im Web3 (Internet Computer)

Konzeption und Entwicklung TypeScript HTML CSS ...
Konzeption und Entwicklung
  • Diese dApp läuft auf dem Internet Computer. 
  • Das Backend ist in Motoko programmiert. 
  • Die Anonyme Authentifizierung erfolgt mit Internet Identity. 
  • Zahlungen werden ausschließlich in Crypto abgewickelt. 
  • Die erste Frontend-Version der dApp war bereits zu 80% mit Svelte entwickelt als die Entscheidung fiel, alles auf React umzustellen. 
  • Dadurch kam es zwar zu einer Release-Verzögerung, aber für mich persönlich ergab sich eine wunderbare Gelegenheit, die beiden Frameworks vergleichend unter die Lupe zu nehmen und meine React-Kenntnisse ganz wesentlich aufzufrischen und zu erweitern.
IC SDK
TypeScript HTML CSS ReactJS Motoko Svelte
dApp-Entwicklung
4 Monate
2023-04 - 2023-07

Entwicklung von 2 Android Apps

Entwickler TypeScript HTML CSS ...
Entwickler
  • Es waren keine sehr anspruchsvollen Apps und wir haben uns hier auf Android beschränkt, aber sie boten einen sehr guten Einstieg in die App-Entwicklung mit Ionic / Capacitor. 
  • Auch ein Plugin als Interface zur Media Store API habe ich selbst entwickelt (in Java). 
  • Die erste App wurde mit React entwickelt, die zweite mit Svelte. 
  • Die zweite, etwas umfangreichere App konnte sowohl als PWA als auch mittels .apk installiert werden.
Android SDK
TypeScript HTML CSS Svelte Java ReactJS
App-Entwicklung
1 Jahr 2 Monate
2022-02 - 2023-03

Portierung einer Web2-App nach Web3 (Internet Computer)

Fullstack-Entwickler
Fullstack-Entwickler
  • Am Anfang wollten wir ?nur? Blockchain-Technologien für Teile der bestehenden Webapp verwenden. 
  • PDF-Zertificate durch NFTs ersetzten. 
  • Unhackbare Einkaufsjournale implementieren. 
  • IPFS zur Dateiablage. 
  • Passwortlose Logins und keinerlei (persönliche) Kundendaten auf unseren Servern. 
  • Das und mehr haben wir uns von dem versprochen, woran die Dfinity Foundation arbeitet. 
  • Nach ca. 9 Monaten, als wir das Licht am Ende des Tunnels sahen, kam die Entscheidung ?aufs Ganze? zu gehen ? keine Outcalls mehr vom Kanister zu unserer frischen alten Web2-App, sondern? alles ist dezentralisiert und läuft auf ICP. 
  • Oh ja!.. Dummerweise gingen dem Startup die Finanzen aus und nach einer maximal zumutbaren Wartezeit bin ich nun zurück zur freiberuflichen WebX-Entwicklung.
Linux ICP / Svelte / Motoko TypeScript HTML CSS
Software-Entwicklung
4 Monate
2021-09 - 2021-12

Weiterentwicklung einer Plattform für Fahrtauskünfte

Frontend-Entwickler
Frontend-Entwickler
  • In diesem Projekt galt es, eine ältere React-Applikation sowie ihre jüngere, mobile Variante in VueJS zu erweitern. 
  • Währen ich an der React-App arbeitete, schrieb ich alle neuen Komponenten in TypeScript. 
  • Auch alle vorhandenen Komponenten, die ich ?anfasste?, portierte ich zu TypeScript (und sah die Vorteile von TS mal wieder sehr deutlich). 
  • Was in diesem Projekt neu für mich war, war die extensive Verwendung von Queues für fast alle Kommunikation mit dem Backend. 
  • Automatisiertes Testen war eher rudimintär hier, so habe ich die Testing Library eingeführt (mit Jest) und auch für ?meine? Komponenten verwendet. 
  • Mein besonderes Interesse galt unseren Experementen, Code-Sharing zwischen React und VueJS zu ermöglichen. Vue-Komponenten in einer React-App! Es gibt ja immer was neues zu lernen ? zum Glück.
Linux / React Vue / TypeScript HTML CSS RabbitMQ
Software-Entwicklung
2 Monate
2021-06 - 2021-07

Entwicklung einer Beratungsplattform

Fullstack-Entwickler
Fullstack-Entwickler
  • Nach einer längeren Pause war ein Wiedersehen mit meinem ehemaligen Favoriten VueJS willkommen. 
  • Auch wenn die TypeScript Integration der eingesetzten Version 2 zu wünschen übrig lässt, ist es doch ein beeindruckendes Framework. Neues gab es im Backend-Teil zu entdecken. 
  • Von Swagger habe ich viel Positives gehört, jedoch erst jetzt eigene Erfahrungen damit gesammelt. 
  • Auch waren die CI/CD Pipelines des Kunden sehr interessant, allerdings habe ich diese wegen der kurzen Projekt-Laufzeit nur oberflächlich (als Nutzer) kennengelernt.
Linux / NodeJS Swagger / Vue TypeScript HTML CSS ReST
Software-Entwicklung
9 Monate
2020-09 - 2021-05

Stabilisierung und Weiter-Entwicklung diverser Svelte-Apps

Entwicklung, Monitoring, Administration und Maintenance
Entwicklung, Monitoring, Administration und Maintenance

  • Es war schön, die Vorzüge von Svelte wieder auszukosten, wenn auch meine Auslastung in diesem Projekt nur 50% betrug. 
  • Viel Aufwand entfiel auf das Thema Monitoring, insbesondere auf den automatischen Neustart von Services, detailliertes Logging sowie aussagekräftige devops Emails. 
  • Beim Portieren einer Applikation von Svelte2 auf Svelte3 hatte ich die Gelegenheit, noch tiefer in das Thema Reaktivität einzusteigen und teilweise ganz neue Erkenntnisse zu gewinnen. 
  • Aber das wirklich Neue und Faszinierende war die Einführung einer Graph-Datenbank - Neo4j. 
  • Cypher als Abfrage-Sprache ?mit Mustern (Pattern)? ist sicher erfrischend anders als SQL, aber am meisten beeindruckt war ich von dem enormen Performance-Gewinn (zugegebenermaßen war der Einsatzfall wie für eine Graph-DB geschaffen).

Linux / Ansible Neo4j NodeJS Koa Svelte Rollup / JavaScript TypeScript Cypher HTML CSS ReST
Umweltschutz
3 Monate
2020-03 - 2020-05

Weiter-Entwicklung von React-Apps

Entwicklung Linux TypeScript HTML ...
Entwicklung

  • Nach einer längeren Pause war ein Wiedersehen mit React sowie das Kennenlernen von Redux Saga und TypeScript eine willkommene Abwechselung. 
  • Keine neue Erkenntnis war, dass man mit jedem Werkzeug / Framework gute, aber auch weniger gute Software schreiben kann. 
  • Die vorhandene Code-Basis war ?historisch gewachsen? und wies viel Optimierungs-Potential auf. 
  • Was aber wirklich anspruchsvoll an diesem Projekt war, war seine sehr hohe Dynamik. 
  • Unterschiedliche User haben im Rahmen ihrer ganz eigenen Workflows und mit Hilfe unterschiedlicher UIs Daten erzeugt und manipuliert. 
  • Die von uns zu entwickelnden Applikationen mussten möglichst zeitnah auf diese Änderungen reagieren und das angezeigte UI entsprechend aktualisieren. 
  • Dieses haben wir mit Hilfe von Technologien und Werkzeugen wie WebSockets, Pusher und Amazon SQS erreicht.

React Redux Saga Pusher Amazon SQS
Linux TypeScript HTML CSS WebSockets
Software-Entwicklung
1 Jahr 6 Monate
2018-08 - 2020-01

Einführung eines Partner-Programms

Entwicklung, Administration und Maintenance Linux JavaScript ReST ...
Entwicklung, Administration und Maintenance

In diesem Projekt habe ich mich als Fullstack-Entwickler wieder sehr wohl (und produktiv) gefühlt. Zum einen ist eine ganze Reihe neuer Server und Services dazugekommen (die ich mit NodeJS implementiert habe). Zum anderen sind einige ganz neue SPAs entstanden, für deren Implementierung ich Svelte verwendet habe. Nicht, weil Vue oder React schlecht sind - einfach nur um was Neues auszuprobieren und ?Betriebsblindheit? zu verhindern. Und Svelte hat auf eine erfrischend neue Art alles an Funktionalität mitgebracht, was ich gebraucht habe. Folgende Liste soll die Vielseitigkeit der Aufgaben andeuten, die ich zu lösen hatte:

  • mehrere Linux Server und ihre NodeJS-Services am Laufen halten und ständig weiter entwickeln
  • Redis-basierse Queues implementieren und administrieren
  • PDF-Dateien mit Puppeteer erzeugen
  • neue SPAs mit Svelte entwickeln
  • diese mit Cypress und Cucumber testen
  • Benachrichtigungen beim Empfang bestimmter Emails implementieren
  • vorhandene Daten-Modelle erweitern, neue erstellen (MySQL)
  • Legacy-Systeme in die neue Infrastruktur einbinden
Docker Redis Ansible Svelte rollup Cypress Cucumber Sequelize MySQL
Linux JavaScript ReST AJAX HTML CSS
Umweltschutz
10 Monate
2017-09 - 2018-06

Webinterface zu einem modernen Energie-Management-System

Entwicklung
Entwicklung
  • In einer industriellen Umgebung ging es darum, einerseits Daten (Messwerte) aus der Produktion zu erfassen, zu speichern und geeignet zu präsentieren, andererseits Konfigurations-Daten an die Steuerung zu übertragen. 
  • Es bestanden hohe Sicherheits-Anforderungen und so habe ich einiges über Netzwerk-Programmierung (Proxies), Authentifizierung und User-Management dazu gelernt. 
  • Neu und beeindruckend fand ich auch die anspruchsvollen Graphiken, die heute mit Hilfe von Bibliotheken wie d3.js auch im Browser sehr gut darstellbar sind (hier über Predix-UI). 
  • Das Wiedersehen mit Polymer ließ mich allerdings erkennen, dass ich es für eigene Projekte heute bestimmt nicht mehr einsetzen würde. 
  • Die mehr und mehr verbreitete native Unterstützung von Web-Komponenten durch moderne Browser finde ich aber nach wie vor vielversprechend.
Windows / NodeJS / Web Komponenten (Polymer) Predix IoT JavaScript gulp ReST AJAX HTML5 CSS3(SASS)
Software-Entwicklung
5 Monate
2017-03 - 2017-07

Webshop Weiterentwicklung und Umzug

Entwicklung, Deployment und Wartung
Entwicklung, Deployment und Wartung
  • In diesem Projekt galt es, einen bereits vorhandenen Web-Auftritt zu optimieren und durch neue Funktionen zu ergänzen. 
  • Vor mir haben bereits mehrere Programmierer am Projekt mitgearbeitet, die jeweils nur für kurze Zeit dabei waren? aber es war für einen guten Zweck (Umweltschutz). 
  • Das Frontend war mit Backbone / Marionette programmiert.
  • Nostalgischer Wehmut ungeachtet, nahm ich die Gelegenheit wahr, unter Beweis zu stellen, dass man auch mit recht betagten Werkzeugen durchaus ?ordentliche? Software erstellen kann. 
  • Neuland betrat ich mit Docker, mit dessen Hilfe ich die Deployment-Strategie ganz neu aufsetzte und dabei noch eine ganze Menge über Container-Systeme und Webserver dazu lernte.
Docker / NodeJS / PHP MySQL JavaScript gulp ReST AJAX HTML5 CSS3(SASS)
Software-Entwicklung
9 Monate
2016-06 - 2017-02

Diskussions-Plattform für Experten

Entwicklung
Entwicklung
  • Es sollte ein ausgefeiltes Redaktions-System einschl. einer Diskussions-Plattform für Experten auf unterschiedlichen Fachgebieten entwickelt werden. 
  • Autoren veröffentlichen kurze Artikel, die von anderen Experten gelesen, kommentiert und bewertet werden können. 
  • Technisch anspruchsvoll war der modulare Aufbau, der nachträgliche Erweiterung durch z.B ein Statistik-Modul ermöglichen sollte. 
  • Auch das flexible System für Echtzeit-Benachrichtigungen war konzeptionell anspruchsvoll. 
  • Unglücklicherweise kam es während der Projekt-Laufzeit immer wieder zu finanziellen Engpässen bei hoher Fluktuation in der Chef-Etage, was auch auf die technische Realisierung einen negativen Einfluss hatte.
Linux / NodeJS / JavaScript gulp koa React Redux Ramda FRP Vue ReST AJAX HTML5 CSS3(SASS)
Software-Entwicklung
7 Monate
2015-11 - 2016-05

Web-Interface für ein Eye Tracking System

Entwicklung und Test
Entwicklung und Test
  • Der Kunde hat ein innovatives Eye Tracking System entwickelt, welches auf einem SBC mit Debian basiert. 
  • Meine Aufgabe bestand darin, ein Web-Interface für dieses Gerät zu entwickeln, mit dessen Hilfe vor allem Administration und Daten-Management vom PC aus (im Browser) durchgeführt werden konnten. 
  • Zum einen war das Projekt technisch sehr anspruchsvoll und interessant, denn es galt viele system-nahe und proprietäre Schnittstellen und APIs mit Hilfe von Web-Technologien ?anzuzapfen?. 
  • Zum anderen hatte ich wieder das Glück, verschiedene Technologien und Frameworks zu evaluieren, um eine ?passende? Auswahl treffen zu können. 
  • So habe ich meine Kenntnisse vertiefen und mein Horizont sowohl im Backend als im Frontend erweitern können. 
  • Zum ersten Mal durfte ich ?auf der grünen Wiese? eine komponenten-basierte Web-App unter einsatz von Werkzeugen und Technologien bauen, die vollständig meinem Geschmack entsprachen.
Linux / NodeJS / CoffeeScript Cucumber mocha chai gulp Vue koa WebComponents ReST AJAX HTML5 CSS3(SASS)
Mikroelektronik / Embedded
8 Monate
2015-03 - 2015-10

Automatisiertes Testen für Web und Mobile

Konzept und Entwicklung
Konzept und Entwicklung
  • Der Kunde betreibt eine Vielzahl von internationalen Websites und bietet seinen Nutzern sowohl eine iOS- als auch ene Android-App an. Der fachliche Anspruch beim Testen war zweigeteilt:
    • die HTML-Struktur der internationalen Sites ist teilweise sehr unterschiedlich (locators/selectors)
    • die Test/Deployment/CI-Strategien des Start-Ups steckten noch in den Kinderschuhen; Jenkins-Jobs überlebten nicht immer die wilden Deployments und ?braking changes?. Dazu kam der Anspruch, das mobile Testen so weit wie möglich mit dem Browser-basierten zu ?verheiraten?.
  • Die einzige neue (und faszinierende) Technologie, die ich in diesem Projekt kennen gelernt habe, sind Web Komponenten. Damit ist es viel einfacher, Wirklich gut entkoppelte und in Isolation testbare(!) Sowtware-Module zu bauen.
Ruby Sinatra Cucumber Watir Capybara Jenkins / Web Components (Polymer) CoffeeScript HTML5 CSS3
Software-Entwicklung
10 Monate
2014-03 - 2014-12

kunden-spezifisches Software-Management System

Entwickler
Entwickler
  • Projekt-Gegenstand war ein kunden-spezifisches Software Management System für eine Test-Platform für drahtlose Geräte. 
  • Meine Aufgaben dabei waren Design/Spezifikation der ReST Interfaces sowie die Entwicklung der FE-Applikation ? eine SPA basierend auf dem Dojo-Toolkit. 
  • Ich hatte das Glück, im Rahmen dieses Projektes neue Vorgehensweisen, Werkzeuge und Technologien zu recherchieren, zu evaluieren und zu vergleichen. 
  • Im Ergebnis dessen verstehe ich jetzt viel besser, was ich/wir in der Vergangenheit falsch gemacht haben und wie man die Fallen vermeidet, die für eine komplexe Web-Applikation typisch sind (mit dem Schwerpunkt auf FE-Entwicklung). 
  • Dinge wie Flux, React, Polymer (Web Components) sowie eine Reihe anderer, faszinierender Projekte sind sicher Wegweiser zur besseren (Web-)Software. 
  • Interessant war auch meine Test-Umgebung, die Unit- und Integrations/Akzeptanz-Tests beliebig miteinander kombinieren lies ? und zwar sowohl für Node- als auch für Browser-basierte Tests.
NodeJS / CoffeeScript / dojo Cucumber(Yadda) mocha chai sinon HTML5 CSS3(SASS)
Mess- und Regeltechnik
4 Monate
2013-10 - 2014-01

KPI Modul für eine Auftrags-Verwaltung

Entwickler
Entwickler
  • Für eine Auftrags-Verwaltung habe ich ein Modul zur Berechnung und graphischen Darstellung von KPI-Werten (Key Performance Indicator).
  • Zusätzlich wurden KPI-bezogene Berichte wöchentlich generiert und per Email als Excel-Dateien versandt.
Linux Ruby on Rails / Ruby CoffeeScript / Cucumber rSpec jQuery HTML5 CSS3
Software-Entwicklung
3 Monate
2013-06 - 2013-08

Integration von Partner-Services

Entwickler
Entwickler
  • In diesem Projekt habe ich folgende Teilafugaben realisiert
    • Integration von Partner-Services (mit OAuth2)
    • Erweiterung des internen Admin-Tools durch neue Module
  • Schwerpunkt lag hier eindeutig auf der Ruby-basierten Entwicklung im Backend – CoffeeScript wirklich nur am Rande. Es war interessant, mal wieder mit rSpec zu arbeiten.
OS X Ruby on Rails / Ruby CoffeeScript / rSpec Capistrano jQuery HTML5 CSS3
Software-Entwicklung
7 Monate
2012-10 - 2013-04

ReST-Schnittstelle für Dating-Services

Entwickler
Entwickler
  • Für native Apps unter iOS und Android sowie für mobile Browser galt es, eine ReST-API zu erweitern bzw. neu zu entwickeln.
  • Nach einer längeren Pause war ich sehr froh, mal wieder fulltime in Ruby entwickeln zu dürfen.
  • Es war ein agiles Projekt, bei dem ich meine Kenntnisse auf dem Gebiet Ruby-basierter Frameworks und BDD aufgefrischt und vertieft habe.
  • Es war aber auch ein vielseitiges Projekt, denn ich war auch in folgende Themen stark involviert:
    • Deployment- und Release-Strategien
    • Monitoring von System-Resources
    • Qualitäts-Management
    • automatisiertes Testen
  • Für mobile Browser habe ich eine schlanke Rails-App entwickelt, die eine Vermittler-Rolle zwischen dem Frontend und der Sinatra-basierten ReST API übernimmt.
  • Dabei habe ich erstmalig jQuery mobile kennengelernt.
Linux Sinantra Ruby on Rails / (j)Ruby CoffeeScript / Cucumber Capistrano Mina Capybara Poltergeist phantomjs jQuery HTML5 CSS3
Software-Entwicklung
1 Jahr 2 Monate
2011-06 - 2012-07

Web-Interface für einen Fernseh-Sender

Entwickler
Entwickler
  • Der technische Anspruch in diesem Projekt bestand darin, ein Browser-Interface für Geräte- Steuerung zu implementieren, das auch über eine langsame Verbindung (GSM / GPRS) noch „vernünftig“ zu bedienen war.
  • Den ersten funktionsfähigen Backend-Prototypen habe ich zwar in Java entwickelt, dann aber das hervorragende Produkt NodeJS für mich und das Projekt entdeckt und ab dann sowohl Frontend als auch Backend in JavaScript bzw. CoffeeScript programmiert.
  • Neben dem NodeJS-Backend habe ich auch einen zweiten Server in C++ realisiert, der nach „unten“ hin unter Einsatz proprietärer Bibliotheken mit dem Gerät kommuniziert, nach „oben“ hin aber ein HTTP- und JSON-basiertes Interface (über ein NodeJSGateway/ DBus) zur Verfügung stellt.
  • Ich hatte das Glück, bei diesem Projekt einem aufgeschlossenen und innovations-freudigen Projekt-Manager zu begegnen.
  • Mit ihm gemeinsam haben wir das Neuland (für den Kunden) des Behavior Driven Development (BDD) betreten, wodurch der Kunde eine andere Art der Projekt- Durchführung, -Dokumentation bzw. -Spezifikation und natürlich auch des Testens kennengelernt hat.
  • In JavaScript habe ich eine Web-Anwendung – Cucumber Workbench – gebaut, die eine Browser-basierte Verwaltung (erstellen / editieren / ausführen) von Feature-Files ermöglicht.
  • Besonders stolz bin ich auf den integrierten Wire-Server (s. Cucumber wire protocol), der „unter einem Dach“ das interaktive Testen von Software ermöglicht, die in Java, JavaScript oder in C++ geschrieben ist. Ruby on Rails kam in diesem Projekt viel zu kurz und über das Stadium einer Vorlage / eines Prototypes nicht hinaus.
Linux Java EE NodeJS Ruby on Rails / C++ Java CoffeeScript Ruby / jQuery Ajax HTML5 CSS3 WebSockets
Mess- und Regeltechnik
4 Monate
2011-01 - 2011-04

Web-Applikation für TV-Geräte und Digitalempfänger (set-top boxes)

Entwickler
Entwickler
  • Es handelte sich bei diesem Projekt um eine Web- Applikation mit Tapestry im Backend und mit einem „Standard-basierten“ Browser-Frontend.
  • Eine Besonderheit des Backendes war es, dass Daten nicht aus einer Datenbank stammen, sondern über Web-Services „live“ gesammelt wurden.
  • Für das Fronend bestand die Besonderheit darin, dass das User-Interface über eine Fernbedienung zu bedienen sein musste.
  • Zum einfacheren Management von recht umfangreichen und vor allem Geräte-abhängigen CSS-Definitionen wurde SASS (SCSS) eingesetzt.
  • Dabei konnte ich meine Erfahrung aus dem Ruby-Umfeld umsetzen und SCSSTransformationen mit einem Ruby-Script automatisieren.
  • Das wirklich Anspruchsvolle aber war bei diesem Projekt die starke Geräte-Abhängigkeit.
  • Unsere Applikation musste auf ganz unterschiedlichen TV-Geräten bzw. Digital-Empfängern laufen. D.h. nicht nur in verschiedenen Browsern, sondern auch in unterschiedlichen Bildschirm-Auflösungen auf stark variierenden Hardware Plattformen funktionieren – von ganz „schwachen“ mit wenig RAM ausgestatteten bis hin zu recht performanten , PC-ähnlichen Systemen.
Linux Java EE Spring Tapestry / Ruby Java JavaScript jQuery Ajax HTML CSS
Unterhaltung
5 Monate
2010-07 - 2010-11

iPhone Application mit einem Ruby on Rails Backend

Entwickler
Entwickler
  • Das Dienstleistungs-Spektrum eines großen Anbieters in der Unterhaltungsbranche sollte um eine iOS-Applikation (für iPhone und iPod touch) erweitert werden.
  • Dabei sollten sowohl die iOS-Applikaion selbst als auch ein extra dafür vorgesehenes Ruby on Rails Backend neu entwickelt werden.
  • Das neue Backend lag allein in meiner Verantwortung.
  • Aber auch in das faszinierende Thema der Applikations-Entwicklung für mobile Geräte von Apple habe ich bei diesem Projekt einen guten Einblick bekommen und sogar eine kleine Test-Applikation für Apple Push Notification Service (APNS) selbst entwickelt.
  • Der Schwerpunkt meiner Arbeit lag hier eindeutig auf der Realisierung der Backend-Funktionalität mit Ruby on Rails - auch wenn das kleine Browser-basierte Frontend zum Test der JSON-Interfaces ebenfalls ganz "witzig" geworden ist.
OS X Ruby on Rails 2.3 / JavaScript jQuery Ajax HTML CSS
Unterhaltung
2 Monate
2010-05 - 2010-06

Internationalisierung eines Homepage Baukastens

Entwickler
Entwickler
  • Eine vorhandene Web-Applikation sollte hier in eine weitere Sprache übersetzt werden.
  • Was man im Hinblick auf Internationalisierung seinerzeit
    versäumt hat (es handelte sich um eine recht betagte Software), haben wir in diesem Projekt nachzuholen versucht.
  • Mein Beitrag bestand einerseits in der Entwicklung einiger Ruby-Scripte (Kommando-Zeilen Utilities) zum Export von zu übersetzenden Texten aus XML-Dateien sowie zum anschließenden Re-Import der Übersetzungen, andererseits in der Unterstützung des Redaktionsteams durch Erweiterung einer existierenden WebApp - Java im Backend und JavaScript im Frontend.
Linux Ruby Java TomCat / JavaScript jQuery qooxdoo Ajax HTML CSS
Software-Entwicklung
2 Monate
2010-03 - 2010-04

Initial Shipment Planning System

Coach und Entwickler
Coach und Entwickler
  • In diesem Projekt hatte ich das Vergnügen, ein dreiköpfiges Entwickler-Team in die Entwicklung von Web-Applikationen mit Ruby on Rails einzuführen.
  • Die größte Freude war es für mich zu sehen, wie das Team – nach Überwindung anfänglicher Schwierigkeiten – die Ausdrucksstärke und knappe Schönheit von Ruby sowie die Leistungsstärke und Komfort von Rails entdeckt hat und
    mit viel Freude und Elan einzusetzen begann.
  • Es galt dann, gemeinsam eine Vorverkaufsplanung sowie eine Aufteilung / Lieferung von Musik-Artikeln an Großkunden zu realisieren.
  • Import von Konfigurations-Daten erfolgte direkt aus Excel-Tabellen. Berichte wurden mit Hilfe eines PDF-Generators aus HTML erstellt.
Windows Ruby on Rails Oracle / rSpec Cucumber Capybara Selenium JavaScript jQuery ExtJS Ajax HTML CSS
Unterhaltung

Aus- und Weiterbildung

Aus- und Weiterbildung

  • Diplomingenieur für Verfahrenstechnik

Kompetenzen

Kompetenzen

Top-Skills

Full-Stack Web-Entwicklung low-level hardwarenahe Programmierung

Produkte / Standards / Erfahrungen / Methoden

CSS
Cucumber
HTML
React
Redis
ReST
Blockchain / Internet Computer Protocol ICP
Motoko

Zur Person

  • Bereits seit 40 Jahren bin ich ein begeisterter Programmierer. Meine Erfahrungspalette reicht von der Low-Level-Programmierung in Assember und C zur Entwicklung anspruchsvoller WebApplikationen unter Einsatz modernster WebTechnologien. Dazwischen lagen einige Jahre von OOP in C++ und Java, DB-Design und eine Menge IPC für verteilte Systeme. Nach dem Jahrtausend-Wechsel war es aber fast ausschließlich Web-Programmierung ? sowohl Backend als auch Frontend. Neben der "reinen" Softwareentwicklung gehörte in den Jahren 1992 - 2000 auch Produkt- und Kundenbetreuung zu meinen Aufgaben. Einige Projekte habe ich als Teamleiter realisiert, eines als Coach.
  • Mit Vorliebe übernehme ich anspruchsvolle Aufgaben, die eine gewisse Herausforderung darstellen. Ich betrete gern Neuland und lerne ständig dazu. Mein Motto ist: Gut ist nur die untere Grenze.


Folgende Aussagen über mich selbst mögen es verdeutlichen, wie ich ticke: 

  • egal wie toll andere (selten ich selbst) meinen Code finden, glaube ich fest daran, dass es noch besser geht ? immer; diese Überzeugung macht es möglich, die ?nächste Ebene? zu erreichen
  • begründete Kritik ist bei weitem willkommener als Lob; das ist der einfachste Weg, beruflich zu wachsen
  • Kunden-Projekte ?im Feld? erfordern Kompromisse ? technische Exzellenz muss nur zu oft praktischen/finanziellen Aspekten weichen; allerdings kämpfe ich für meine Ideale


Skills
  • system- und hardwarenahe Programmierung
  • Netzwerkprogrammierung
  • IPC (InterProcess Communication), verteilte Systeme
  • embedded Systems, Microcontroller
  • BDE (BetriebsDatenErfassung)
  • DB Design
  • Client/Server-Programmierung
  • Internet-Programmierung
  • CASE Tools, OOA, OOD, OOP
  • Entwurf und Entwicklung von Web-Applikationen (sowohl Frontend als auch Backend)


Frontend-Entwicklung

  • JavaScript / TypeScript
  • HTML + CSS
  • React
  • Redux / Saga
  • VueJS
  • Svelte


Backend-Entwicklung

  • NodeJS
  • Ruby on Rails
  • Java
  • Messaging queues
  • Websockets
  • SQL / Sequelize
  • ReST APIs 


Automatisiertes Testen

  • Vitest + Testing Library
  • Cucumber
  • Cypress


Web 3 (smart contracts)

  • Motoko


App Entwicklung

  • Ionic / Capacitor

Betriebssysteme

CP/M
HPUX
nur im Rahmen EINES Projektes
LINUX
Mac OS
MS-DOS
OS X
OS/2
Unix
Windows

Programmiersprachen

AJAX
Assembler
C
C++
CoffeeScript
Delphi
Forth
Java
JavaScript
Modula-2
Paradox
Pascal
PHP
Ruby
mein derzeitiger Liebling
TypeScript
Motoko

Datenbanken

BDE
Borland Database Engine
BTrieve
dbVista++
JDBC
MySQL
Neo4j
NoSQL
ODBC
Oracle
POET
PostgreSQL
SQL

Datenkommunikation

Ethernet
Internet, Intranet
Message Queuing
parallele Schnittstelle
Pipes
RS232
Semaphores
Shared Memory
UNIX IPC
TCP/IP
auch FTP, HTTP, SOAP etc.
WebSockets
Windows Netzwerk
Winsock

Hardware

embedded Systeme
Hardware selbst entwickelt
Mikrocontroller
Mikroprozessoren
Modem
PC
SPS / Steuer- und Regelsysteme

Design / Entwicklung / Konstruktion

Pro/ENGINEER

Branchen

Branchen

  • Bau
  • Automatisierungstechnik
  • Behörden
  • Handwerk
  • Schiffahrt
  • Luft- und Raumfahrt
  • Maschinenbau
  • Systemhäuser / Softwarehersteller
  • Mikroelektronik / Chip Design
  • Mess- und Regeltechnik
  • Unterhaltung
  • Energiewirtschaft
  • Umweltschutz

Einsatzorte

Einsatzorte

Deutschland, Österreich, Schweiz
möglich

Projekte

Projekte

7 Monate
2023-08 - 2024-02

Entwicklung einer Wett-Platform im Web3 (Internet Computer)

Konzeption und Entwicklung TypeScript HTML CSS ...
Konzeption und Entwicklung
  • Diese dApp läuft auf dem Internet Computer. 
  • Das Backend ist in Motoko programmiert. 
  • Die Anonyme Authentifizierung erfolgt mit Internet Identity. 
  • Zahlungen werden ausschließlich in Crypto abgewickelt. 
  • Die erste Frontend-Version der dApp war bereits zu 80% mit Svelte entwickelt als die Entscheidung fiel, alles auf React umzustellen. 
  • Dadurch kam es zwar zu einer Release-Verzögerung, aber für mich persönlich ergab sich eine wunderbare Gelegenheit, die beiden Frameworks vergleichend unter die Lupe zu nehmen und meine React-Kenntnisse ganz wesentlich aufzufrischen und zu erweitern.
IC SDK
TypeScript HTML CSS ReactJS Motoko Svelte
dApp-Entwicklung
4 Monate
2023-04 - 2023-07

Entwicklung von 2 Android Apps

Entwickler TypeScript HTML CSS ...
Entwickler
  • Es waren keine sehr anspruchsvollen Apps und wir haben uns hier auf Android beschränkt, aber sie boten einen sehr guten Einstieg in die App-Entwicklung mit Ionic / Capacitor. 
  • Auch ein Plugin als Interface zur Media Store API habe ich selbst entwickelt (in Java). 
  • Die erste App wurde mit React entwickelt, die zweite mit Svelte. 
  • Die zweite, etwas umfangreichere App konnte sowohl als PWA als auch mittels .apk installiert werden.
Android SDK
TypeScript HTML CSS Svelte Java ReactJS
App-Entwicklung
1 Jahr 2 Monate
2022-02 - 2023-03

Portierung einer Web2-App nach Web3 (Internet Computer)

Fullstack-Entwickler
Fullstack-Entwickler
  • Am Anfang wollten wir ?nur? Blockchain-Technologien für Teile der bestehenden Webapp verwenden. 
  • PDF-Zertificate durch NFTs ersetzten. 
  • Unhackbare Einkaufsjournale implementieren. 
  • IPFS zur Dateiablage. 
  • Passwortlose Logins und keinerlei (persönliche) Kundendaten auf unseren Servern. 
  • Das und mehr haben wir uns von dem versprochen, woran die Dfinity Foundation arbeitet. 
  • Nach ca. 9 Monaten, als wir das Licht am Ende des Tunnels sahen, kam die Entscheidung ?aufs Ganze? zu gehen ? keine Outcalls mehr vom Kanister zu unserer frischen alten Web2-App, sondern? alles ist dezentralisiert und läuft auf ICP. 
  • Oh ja!.. Dummerweise gingen dem Startup die Finanzen aus und nach einer maximal zumutbaren Wartezeit bin ich nun zurück zur freiberuflichen WebX-Entwicklung.
Linux ICP / Svelte / Motoko TypeScript HTML CSS
Software-Entwicklung
4 Monate
2021-09 - 2021-12

Weiterentwicklung einer Plattform für Fahrtauskünfte

Frontend-Entwickler
Frontend-Entwickler
  • In diesem Projekt galt es, eine ältere React-Applikation sowie ihre jüngere, mobile Variante in VueJS zu erweitern. 
  • Währen ich an der React-App arbeitete, schrieb ich alle neuen Komponenten in TypeScript. 
  • Auch alle vorhandenen Komponenten, die ich ?anfasste?, portierte ich zu TypeScript (und sah die Vorteile von TS mal wieder sehr deutlich). 
  • Was in diesem Projekt neu für mich war, war die extensive Verwendung von Queues für fast alle Kommunikation mit dem Backend. 
  • Automatisiertes Testen war eher rudimintär hier, so habe ich die Testing Library eingeführt (mit Jest) und auch für ?meine? Komponenten verwendet. 
  • Mein besonderes Interesse galt unseren Experementen, Code-Sharing zwischen React und VueJS zu ermöglichen. Vue-Komponenten in einer React-App! Es gibt ja immer was neues zu lernen ? zum Glück.
Linux / React Vue / TypeScript HTML CSS RabbitMQ
Software-Entwicklung
2 Monate
2021-06 - 2021-07

Entwicklung einer Beratungsplattform

Fullstack-Entwickler
Fullstack-Entwickler
  • Nach einer längeren Pause war ein Wiedersehen mit meinem ehemaligen Favoriten VueJS willkommen. 
  • Auch wenn die TypeScript Integration der eingesetzten Version 2 zu wünschen übrig lässt, ist es doch ein beeindruckendes Framework. Neues gab es im Backend-Teil zu entdecken. 
  • Von Swagger habe ich viel Positives gehört, jedoch erst jetzt eigene Erfahrungen damit gesammelt. 
  • Auch waren die CI/CD Pipelines des Kunden sehr interessant, allerdings habe ich diese wegen der kurzen Projekt-Laufzeit nur oberflächlich (als Nutzer) kennengelernt.
Linux / NodeJS Swagger / Vue TypeScript HTML CSS ReST
Software-Entwicklung
9 Monate
2020-09 - 2021-05

Stabilisierung und Weiter-Entwicklung diverser Svelte-Apps

Entwicklung, Monitoring, Administration und Maintenance
Entwicklung, Monitoring, Administration und Maintenance

  • Es war schön, die Vorzüge von Svelte wieder auszukosten, wenn auch meine Auslastung in diesem Projekt nur 50% betrug. 
  • Viel Aufwand entfiel auf das Thema Monitoring, insbesondere auf den automatischen Neustart von Services, detailliertes Logging sowie aussagekräftige devops Emails. 
  • Beim Portieren einer Applikation von Svelte2 auf Svelte3 hatte ich die Gelegenheit, noch tiefer in das Thema Reaktivität einzusteigen und teilweise ganz neue Erkenntnisse zu gewinnen. 
  • Aber das wirklich Neue und Faszinierende war die Einführung einer Graph-Datenbank - Neo4j. 
  • Cypher als Abfrage-Sprache ?mit Mustern (Pattern)? ist sicher erfrischend anders als SQL, aber am meisten beeindruckt war ich von dem enormen Performance-Gewinn (zugegebenermaßen war der Einsatzfall wie für eine Graph-DB geschaffen).

Linux / Ansible Neo4j NodeJS Koa Svelte Rollup / JavaScript TypeScript Cypher HTML CSS ReST
Umweltschutz
3 Monate
2020-03 - 2020-05

Weiter-Entwicklung von React-Apps

Entwicklung Linux TypeScript HTML ...
Entwicklung

  • Nach einer längeren Pause war ein Wiedersehen mit React sowie das Kennenlernen von Redux Saga und TypeScript eine willkommene Abwechselung. 
  • Keine neue Erkenntnis war, dass man mit jedem Werkzeug / Framework gute, aber auch weniger gute Software schreiben kann. 
  • Die vorhandene Code-Basis war ?historisch gewachsen? und wies viel Optimierungs-Potential auf. 
  • Was aber wirklich anspruchsvoll an diesem Projekt war, war seine sehr hohe Dynamik. 
  • Unterschiedliche User haben im Rahmen ihrer ganz eigenen Workflows und mit Hilfe unterschiedlicher UIs Daten erzeugt und manipuliert. 
  • Die von uns zu entwickelnden Applikationen mussten möglichst zeitnah auf diese Änderungen reagieren und das angezeigte UI entsprechend aktualisieren. 
  • Dieses haben wir mit Hilfe von Technologien und Werkzeugen wie WebSockets, Pusher und Amazon SQS erreicht.

React Redux Saga Pusher Amazon SQS
Linux TypeScript HTML CSS WebSockets
Software-Entwicklung
1 Jahr 6 Monate
2018-08 - 2020-01

Einführung eines Partner-Programms

Entwicklung, Administration und Maintenance Linux JavaScript ReST ...
Entwicklung, Administration und Maintenance

In diesem Projekt habe ich mich als Fullstack-Entwickler wieder sehr wohl (und produktiv) gefühlt. Zum einen ist eine ganze Reihe neuer Server und Services dazugekommen (die ich mit NodeJS implementiert habe). Zum anderen sind einige ganz neue SPAs entstanden, für deren Implementierung ich Svelte verwendet habe. Nicht, weil Vue oder React schlecht sind - einfach nur um was Neues auszuprobieren und ?Betriebsblindheit? zu verhindern. Und Svelte hat auf eine erfrischend neue Art alles an Funktionalität mitgebracht, was ich gebraucht habe. Folgende Liste soll die Vielseitigkeit der Aufgaben andeuten, die ich zu lösen hatte:

  • mehrere Linux Server und ihre NodeJS-Services am Laufen halten und ständig weiter entwickeln
  • Redis-basierse Queues implementieren und administrieren
  • PDF-Dateien mit Puppeteer erzeugen
  • neue SPAs mit Svelte entwickeln
  • diese mit Cypress und Cucumber testen
  • Benachrichtigungen beim Empfang bestimmter Emails implementieren
  • vorhandene Daten-Modelle erweitern, neue erstellen (MySQL)
  • Legacy-Systeme in die neue Infrastruktur einbinden
Docker Redis Ansible Svelte rollup Cypress Cucumber Sequelize MySQL
Linux JavaScript ReST AJAX HTML CSS
Umweltschutz
10 Monate
2017-09 - 2018-06

Webinterface zu einem modernen Energie-Management-System

Entwicklung
Entwicklung
  • In einer industriellen Umgebung ging es darum, einerseits Daten (Messwerte) aus der Produktion zu erfassen, zu speichern und geeignet zu präsentieren, andererseits Konfigurations-Daten an die Steuerung zu übertragen. 
  • Es bestanden hohe Sicherheits-Anforderungen und so habe ich einiges über Netzwerk-Programmierung (Proxies), Authentifizierung und User-Management dazu gelernt. 
  • Neu und beeindruckend fand ich auch die anspruchsvollen Graphiken, die heute mit Hilfe von Bibliotheken wie d3.js auch im Browser sehr gut darstellbar sind (hier über Predix-UI). 
  • Das Wiedersehen mit Polymer ließ mich allerdings erkennen, dass ich es für eigene Projekte heute bestimmt nicht mehr einsetzen würde. 
  • Die mehr und mehr verbreitete native Unterstützung von Web-Komponenten durch moderne Browser finde ich aber nach wie vor vielversprechend.
Windows / NodeJS / Web Komponenten (Polymer) Predix IoT JavaScript gulp ReST AJAX HTML5 CSS3(SASS)
Software-Entwicklung
5 Monate
2017-03 - 2017-07

Webshop Weiterentwicklung und Umzug

Entwicklung, Deployment und Wartung
Entwicklung, Deployment und Wartung
  • In diesem Projekt galt es, einen bereits vorhandenen Web-Auftritt zu optimieren und durch neue Funktionen zu ergänzen. 
  • Vor mir haben bereits mehrere Programmierer am Projekt mitgearbeitet, die jeweils nur für kurze Zeit dabei waren? aber es war für einen guten Zweck (Umweltschutz). 
  • Das Frontend war mit Backbone / Marionette programmiert.
  • Nostalgischer Wehmut ungeachtet, nahm ich die Gelegenheit wahr, unter Beweis zu stellen, dass man auch mit recht betagten Werkzeugen durchaus ?ordentliche? Software erstellen kann. 
  • Neuland betrat ich mit Docker, mit dessen Hilfe ich die Deployment-Strategie ganz neu aufsetzte und dabei noch eine ganze Menge über Container-Systeme und Webserver dazu lernte.
Docker / NodeJS / PHP MySQL JavaScript gulp ReST AJAX HTML5 CSS3(SASS)
Software-Entwicklung
9 Monate
2016-06 - 2017-02

Diskussions-Plattform für Experten

Entwicklung
Entwicklung
  • Es sollte ein ausgefeiltes Redaktions-System einschl. einer Diskussions-Plattform für Experten auf unterschiedlichen Fachgebieten entwickelt werden. 
  • Autoren veröffentlichen kurze Artikel, die von anderen Experten gelesen, kommentiert und bewertet werden können. 
  • Technisch anspruchsvoll war der modulare Aufbau, der nachträgliche Erweiterung durch z.B ein Statistik-Modul ermöglichen sollte. 
  • Auch das flexible System für Echtzeit-Benachrichtigungen war konzeptionell anspruchsvoll. 
  • Unglücklicherweise kam es während der Projekt-Laufzeit immer wieder zu finanziellen Engpässen bei hoher Fluktuation in der Chef-Etage, was auch auf die technische Realisierung einen negativen Einfluss hatte.
Linux / NodeJS / JavaScript gulp koa React Redux Ramda FRP Vue ReST AJAX HTML5 CSS3(SASS)
Software-Entwicklung
7 Monate
2015-11 - 2016-05

Web-Interface für ein Eye Tracking System

Entwicklung und Test
Entwicklung und Test
  • Der Kunde hat ein innovatives Eye Tracking System entwickelt, welches auf einem SBC mit Debian basiert. 
  • Meine Aufgabe bestand darin, ein Web-Interface für dieses Gerät zu entwickeln, mit dessen Hilfe vor allem Administration und Daten-Management vom PC aus (im Browser) durchgeführt werden konnten. 
  • Zum einen war das Projekt technisch sehr anspruchsvoll und interessant, denn es galt viele system-nahe und proprietäre Schnittstellen und APIs mit Hilfe von Web-Technologien ?anzuzapfen?. 
  • Zum anderen hatte ich wieder das Glück, verschiedene Technologien und Frameworks zu evaluieren, um eine ?passende? Auswahl treffen zu können. 
  • So habe ich meine Kenntnisse vertiefen und mein Horizont sowohl im Backend als im Frontend erweitern können. 
  • Zum ersten Mal durfte ich ?auf der grünen Wiese? eine komponenten-basierte Web-App unter einsatz von Werkzeugen und Technologien bauen, die vollständig meinem Geschmack entsprachen.
Linux / NodeJS / CoffeeScript Cucumber mocha chai gulp Vue koa WebComponents ReST AJAX HTML5 CSS3(SASS)
Mikroelektronik / Embedded
8 Monate
2015-03 - 2015-10

Automatisiertes Testen für Web und Mobile

Konzept und Entwicklung
Konzept und Entwicklung
  • Der Kunde betreibt eine Vielzahl von internationalen Websites und bietet seinen Nutzern sowohl eine iOS- als auch ene Android-App an. Der fachliche Anspruch beim Testen war zweigeteilt:
    • die HTML-Struktur der internationalen Sites ist teilweise sehr unterschiedlich (locators/selectors)
    • die Test/Deployment/CI-Strategien des Start-Ups steckten noch in den Kinderschuhen; Jenkins-Jobs überlebten nicht immer die wilden Deployments und ?braking changes?. Dazu kam der Anspruch, das mobile Testen so weit wie möglich mit dem Browser-basierten zu ?verheiraten?.
  • Die einzige neue (und faszinierende) Technologie, die ich in diesem Projekt kennen gelernt habe, sind Web Komponenten. Damit ist es viel einfacher, Wirklich gut entkoppelte und in Isolation testbare(!) Sowtware-Module zu bauen.
Ruby Sinatra Cucumber Watir Capybara Jenkins / Web Components (Polymer) CoffeeScript HTML5 CSS3
Software-Entwicklung
10 Monate
2014-03 - 2014-12

kunden-spezifisches Software-Management System

Entwickler
Entwickler
  • Projekt-Gegenstand war ein kunden-spezifisches Software Management System für eine Test-Platform für drahtlose Geräte. 
  • Meine Aufgaben dabei waren Design/Spezifikation der ReST Interfaces sowie die Entwicklung der FE-Applikation ? eine SPA basierend auf dem Dojo-Toolkit. 
  • Ich hatte das Glück, im Rahmen dieses Projektes neue Vorgehensweisen, Werkzeuge und Technologien zu recherchieren, zu evaluieren und zu vergleichen. 
  • Im Ergebnis dessen verstehe ich jetzt viel besser, was ich/wir in der Vergangenheit falsch gemacht haben und wie man die Fallen vermeidet, die für eine komplexe Web-Applikation typisch sind (mit dem Schwerpunkt auf FE-Entwicklung). 
  • Dinge wie Flux, React, Polymer (Web Components) sowie eine Reihe anderer, faszinierender Projekte sind sicher Wegweiser zur besseren (Web-)Software. 
  • Interessant war auch meine Test-Umgebung, die Unit- und Integrations/Akzeptanz-Tests beliebig miteinander kombinieren lies ? und zwar sowohl für Node- als auch für Browser-basierte Tests.
NodeJS / CoffeeScript / dojo Cucumber(Yadda) mocha chai sinon HTML5 CSS3(SASS)
Mess- und Regeltechnik
4 Monate
2013-10 - 2014-01

KPI Modul für eine Auftrags-Verwaltung

Entwickler
Entwickler
  • Für eine Auftrags-Verwaltung habe ich ein Modul zur Berechnung und graphischen Darstellung von KPI-Werten (Key Performance Indicator).
  • Zusätzlich wurden KPI-bezogene Berichte wöchentlich generiert und per Email als Excel-Dateien versandt.
Linux Ruby on Rails / Ruby CoffeeScript / Cucumber rSpec jQuery HTML5 CSS3
Software-Entwicklung
3 Monate
2013-06 - 2013-08

Integration von Partner-Services

Entwickler
Entwickler
  • In diesem Projekt habe ich folgende Teilafugaben realisiert
    • Integration von Partner-Services (mit OAuth2)
    • Erweiterung des internen Admin-Tools durch neue Module
  • Schwerpunkt lag hier eindeutig auf der Ruby-basierten Entwicklung im Backend – CoffeeScript wirklich nur am Rande. Es war interessant, mal wieder mit rSpec zu arbeiten.
OS X Ruby on Rails / Ruby CoffeeScript / rSpec Capistrano jQuery HTML5 CSS3
Software-Entwicklung
7 Monate
2012-10 - 2013-04

ReST-Schnittstelle für Dating-Services

Entwickler
Entwickler
  • Für native Apps unter iOS und Android sowie für mobile Browser galt es, eine ReST-API zu erweitern bzw. neu zu entwickeln.
  • Nach einer längeren Pause war ich sehr froh, mal wieder fulltime in Ruby entwickeln zu dürfen.
  • Es war ein agiles Projekt, bei dem ich meine Kenntnisse auf dem Gebiet Ruby-basierter Frameworks und BDD aufgefrischt und vertieft habe.
  • Es war aber auch ein vielseitiges Projekt, denn ich war auch in folgende Themen stark involviert:
    • Deployment- und Release-Strategien
    • Monitoring von System-Resources
    • Qualitäts-Management
    • automatisiertes Testen
  • Für mobile Browser habe ich eine schlanke Rails-App entwickelt, die eine Vermittler-Rolle zwischen dem Frontend und der Sinatra-basierten ReST API übernimmt.
  • Dabei habe ich erstmalig jQuery mobile kennengelernt.
Linux Sinantra Ruby on Rails / (j)Ruby CoffeeScript / Cucumber Capistrano Mina Capybara Poltergeist phantomjs jQuery HTML5 CSS3
Software-Entwicklung
1 Jahr 2 Monate
2011-06 - 2012-07

Web-Interface für einen Fernseh-Sender

Entwickler
Entwickler
  • Der technische Anspruch in diesem Projekt bestand darin, ein Browser-Interface für Geräte- Steuerung zu implementieren, das auch über eine langsame Verbindung (GSM / GPRS) noch „vernünftig“ zu bedienen war.
  • Den ersten funktionsfähigen Backend-Prototypen habe ich zwar in Java entwickelt, dann aber das hervorragende Produkt NodeJS für mich und das Projekt entdeckt und ab dann sowohl Frontend als auch Backend in JavaScript bzw. CoffeeScript programmiert.
  • Neben dem NodeJS-Backend habe ich auch einen zweiten Server in C++ realisiert, der nach „unten“ hin unter Einsatz proprietärer Bibliotheken mit dem Gerät kommuniziert, nach „oben“ hin aber ein HTTP- und JSON-basiertes Interface (über ein NodeJSGateway/ DBus) zur Verfügung stellt.
  • Ich hatte das Glück, bei diesem Projekt einem aufgeschlossenen und innovations-freudigen Projekt-Manager zu begegnen.
  • Mit ihm gemeinsam haben wir das Neuland (für den Kunden) des Behavior Driven Development (BDD) betreten, wodurch der Kunde eine andere Art der Projekt- Durchführung, -Dokumentation bzw. -Spezifikation und natürlich auch des Testens kennengelernt hat.
  • In JavaScript habe ich eine Web-Anwendung – Cucumber Workbench – gebaut, die eine Browser-basierte Verwaltung (erstellen / editieren / ausführen) von Feature-Files ermöglicht.
  • Besonders stolz bin ich auf den integrierten Wire-Server (s. Cucumber wire protocol), der „unter einem Dach“ das interaktive Testen von Software ermöglicht, die in Java, JavaScript oder in C++ geschrieben ist. Ruby on Rails kam in diesem Projekt viel zu kurz und über das Stadium einer Vorlage / eines Prototypes nicht hinaus.
Linux Java EE NodeJS Ruby on Rails / C++ Java CoffeeScript Ruby / jQuery Ajax HTML5 CSS3 WebSockets
Mess- und Regeltechnik
4 Monate
2011-01 - 2011-04

Web-Applikation für TV-Geräte und Digitalempfänger (set-top boxes)

Entwickler
Entwickler
  • Es handelte sich bei diesem Projekt um eine Web- Applikation mit Tapestry im Backend und mit einem „Standard-basierten“ Browser-Frontend.
  • Eine Besonderheit des Backendes war es, dass Daten nicht aus einer Datenbank stammen, sondern über Web-Services „live“ gesammelt wurden.
  • Für das Fronend bestand die Besonderheit darin, dass das User-Interface über eine Fernbedienung zu bedienen sein musste.
  • Zum einfacheren Management von recht umfangreichen und vor allem Geräte-abhängigen CSS-Definitionen wurde SASS (SCSS) eingesetzt.
  • Dabei konnte ich meine Erfahrung aus dem Ruby-Umfeld umsetzen und SCSSTransformationen mit einem Ruby-Script automatisieren.
  • Das wirklich Anspruchsvolle aber war bei diesem Projekt die starke Geräte-Abhängigkeit.
  • Unsere Applikation musste auf ganz unterschiedlichen TV-Geräten bzw. Digital-Empfängern laufen. D.h. nicht nur in verschiedenen Browsern, sondern auch in unterschiedlichen Bildschirm-Auflösungen auf stark variierenden Hardware Plattformen funktionieren – von ganz „schwachen“ mit wenig RAM ausgestatteten bis hin zu recht performanten , PC-ähnlichen Systemen.
Linux Java EE Spring Tapestry / Ruby Java JavaScript jQuery Ajax HTML CSS
Unterhaltung
5 Monate
2010-07 - 2010-11

iPhone Application mit einem Ruby on Rails Backend

Entwickler
Entwickler
  • Das Dienstleistungs-Spektrum eines großen Anbieters in der Unterhaltungsbranche sollte um eine iOS-Applikation (für iPhone und iPod touch) erweitert werden.
  • Dabei sollten sowohl die iOS-Applikaion selbst als auch ein extra dafür vorgesehenes Ruby on Rails Backend neu entwickelt werden.
  • Das neue Backend lag allein in meiner Verantwortung.
  • Aber auch in das faszinierende Thema der Applikations-Entwicklung für mobile Geräte von Apple habe ich bei diesem Projekt einen guten Einblick bekommen und sogar eine kleine Test-Applikation für Apple Push Notification Service (APNS) selbst entwickelt.
  • Der Schwerpunkt meiner Arbeit lag hier eindeutig auf der Realisierung der Backend-Funktionalität mit Ruby on Rails - auch wenn das kleine Browser-basierte Frontend zum Test der JSON-Interfaces ebenfalls ganz "witzig" geworden ist.
OS X Ruby on Rails 2.3 / JavaScript jQuery Ajax HTML CSS
Unterhaltung
2 Monate
2010-05 - 2010-06

Internationalisierung eines Homepage Baukastens

Entwickler
Entwickler
  • Eine vorhandene Web-Applikation sollte hier in eine weitere Sprache übersetzt werden.
  • Was man im Hinblick auf Internationalisierung seinerzeit
    versäumt hat (es handelte sich um eine recht betagte Software), haben wir in diesem Projekt nachzuholen versucht.
  • Mein Beitrag bestand einerseits in der Entwicklung einiger Ruby-Scripte (Kommando-Zeilen Utilities) zum Export von zu übersetzenden Texten aus XML-Dateien sowie zum anschließenden Re-Import der Übersetzungen, andererseits in der Unterstützung des Redaktionsteams durch Erweiterung einer existierenden WebApp - Java im Backend und JavaScript im Frontend.
Linux Ruby Java TomCat / JavaScript jQuery qooxdoo Ajax HTML CSS
Software-Entwicklung
2 Monate
2010-03 - 2010-04

Initial Shipment Planning System

Coach und Entwickler
Coach und Entwickler
  • In diesem Projekt hatte ich das Vergnügen, ein dreiköpfiges Entwickler-Team in die Entwicklung von Web-Applikationen mit Ruby on Rails einzuführen.
  • Die größte Freude war es für mich zu sehen, wie das Team – nach Überwindung anfänglicher Schwierigkeiten – die Ausdrucksstärke und knappe Schönheit von Ruby sowie die Leistungsstärke und Komfort von Rails entdeckt hat und
    mit viel Freude und Elan einzusetzen begann.
  • Es galt dann, gemeinsam eine Vorverkaufsplanung sowie eine Aufteilung / Lieferung von Musik-Artikeln an Großkunden zu realisieren.
  • Import von Konfigurations-Daten erfolgte direkt aus Excel-Tabellen. Berichte wurden mit Hilfe eines PDF-Generators aus HTML erstellt.
Windows Ruby on Rails Oracle / rSpec Cucumber Capybara Selenium JavaScript jQuery ExtJS Ajax HTML CSS
Unterhaltung

Aus- und Weiterbildung

Aus- und Weiterbildung

  • Diplomingenieur für Verfahrenstechnik

Kompetenzen

Kompetenzen

Top-Skills

Full-Stack Web-Entwicklung low-level hardwarenahe Programmierung

Produkte / Standards / Erfahrungen / Methoden

CSS
Cucumber
HTML
React
Redis
ReST
Blockchain / Internet Computer Protocol ICP
Motoko

Zur Person

  • Bereits seit 40 Jahren bin ich ein begeisterter Programmierer. Meine Erfahrungspalette reicht von der Low-Level-Programmierung in Assember und C zur Entwicklung anspruchsvoller WebApplikationen unter Einsatz modernster WebTechnologien. Dazwischen lagen einige Jahre von OOP in C++ und Java, DB-Design und eine Menge IPC für verteilte Systeme. Nach dem Jahrtausend-Wechsel war es aber fast ausschließlich Web-Programmierung ? sowohl Backend als auch Frontend. Neben der "reinen" Softwareentwicklung gehörte in den Jahren 1992 - 2000 auch Produkt- und Kundenbetreuung zu meinen Aufgaben. Einige Projekte habe ich als Teamleiter realisiert, eines als Coach.
  • Mit Vorliebe übernehme ich anspruchsvolle Aufgaben, die eine gewisse Herausforderung darstellen. Ich betrete gern Neuland und lerne ständig dazu. Mein Motto ist: Gut ist nur die untere Grenze.


Folgende Aussagen über mich selbst mögen es verdeutlichen, wie ich ticke: 

  • egal wie toll andere (selten ich selbst) meinen Code finden, glaube ich fest daran, dass es noch besser geht ? immer; diese Überzeugung macht es möglich, die ?nächste Ebene? zu erreichen
  • begründete Kritik ist bei weitem willkommener als Lob; das ist der einfachste Weg, beruflich zu wachsen
  • Kunden-Projekte ?im Feld? erfordern Kompromisse ? technische Exzellenz muss nur zu oft praktischen/finanziellen Aspekten weichen; allerdings kämpfe ich für meine Ideale


Skills
  • system- und hardwarenahe Programmierung
  • Netzwerkprogrammierung
  • IPC (InterProcess Communication), verteilte Systeme
  • embedded Systems, Microcontroller
  • BDE (BetriebsDatenErfassung)
  • DB Design
  • Client/Server-Programmierung
  • Internet-Programmierung
  • CASE Tools, OOA, OOD, OOP
  • Entwurf und Entwicklung von Web-Applikationen (sowohl Frontend als auch Backend)


Frontend-Entwicklung

  • JavaScript / TypeScript
  • HTML + CSS
  • React
  • Redux / Saga
  • VueJS
  • Svelte


Backend-Entwicklung

  • NodeJS
  • Ruby on Rails
  • Java
  • Messaging queues
  • Websockets
  • SQL / Sequelize
  • ReST APIs 


Automatisiertes Testen

  • Vitest + Testing Library
  • Cucumber
  • Cypress


Web 3 (smart contracts)

  • Motoko


App Entwicklung

  • Ionic / Capacitor

Betriebssysteme

CP/M
HPUX
nur im Rahmen EINES Projektes
LINUX
Mac OS
MS-DOS
OS X
OS/2
Unix
Windows

Programmiersprachen

AJAX
Assembler
C
C++
CoffeeScript
Delphi
Forth
Java
JavaScript
Modula-2
Paradox
Pascal
PHP
Ruby
mein derzeitiger Liebling
TypeScript
Motoko

Datenbanken

BDE
Borland Database Engine
BTrieve
dbVista++
JDBC
MySQL
Neo4j
NoSQL
ODBC
Oracle
POET
PostgreSQL
SQL

Datenkommunikation

Ethernet
Internet, Intranet
Message Queuing
parallele Schnittstelle
Pipes
RS232
Semaphores
Shared Memory
UNIX IPC
TCP/IP
auch FTP, HTTP, SOAP etc.
WebSockets
Windows Netzwerk
Winsock

Hardware

embedded Systeme
Hardware selbst entwickelt
Mikrocontroller
Mikroprozessoren
Modem
PC
SPS / Steuer- und Regelsysteme

Design / Entwicklung / Konstruktion

Pro/ENGINEER

Branchen

Branchen

  • Bau
  • Automatisierungstechnik
  • Behörden
  • Handwerk
  • Schiffahrt
  • Luft- und Raumfahrt
  • Maschinenbau
  • Systemhäuser / Softwarehersteller
  • Mikroelektronik / Chip Design
  • Mess- und Regeltechnik
  • Unterhaltung
  • Energiewirtschaft
  • Umweltschutz

Vertrauen Sie auf Randstad

Im Bereich Freelancing
Im Bereich Arbeitnehmerüberlassung / Personalvermittlung

Fragen?

Rufen Sie uns an +49 89 500316-300 oder schreiben Sie uns:

Das Freelancer-Portal

Direktester geht's nicht! Ganz einfach Freelancer finden und direkt Kontakt aufnehmen.