Deutschland: bevorzugt D0,D1
Ziel des Projektes ist die Entwicklung eines Webportals zur Meldung der verfügbaren Leistungen von Batterien und Windkraftanlagen und deren Verarbeitung in den Backendsystemen des zweitgrößten deutschen Stromversorgers.
Entwicklung einer Client/Server Anwendung mit C#/.NET zur Planung und Verwaltung der IT-Ausstattung einer Bundesbehörde.
Die seit einiger Zeit beim Kunden entwickelte Anwendungssoftware sollte eine Anwendung aus dem Jahr 2013 ersetzen. Dabei ging es zuerst darum noch fehlende Funktionalitäten (Reports, Export, Suchen/Filtern, ...) zu implementieren und Probleme bei der Darstellung/Aktualisierung der Benutzeroberfläche, sowie allgemeine Performance Probleme zu beseitigen.
Nach der Auslieferung der 1. Programmversion wird die Architektur des Clients einem Re-Design unterzogen und zusätzliche Funktionalitäten implementiert, die den Anwendern eine bessere Führung durch die zu erledigenden Aufgaben/Prozesse bieten. Zusätzlich ist ein Werkzeug in Arbeit das einer eingeschränkten Benutzergruppe die Pflege bestimmter Stammdaten ermöglicht.
Im Zeitraum 10/2017 - 02/2018 - 100% Böschungssicherheit
Im Zeitraum 03/2018 - heute - 50% Böschungssicherheit 50% Toolentwicklung
Böschungssicherheit
Im Bergbau gibt es verschiedene geotechnische Verfahren um die Standsicherheit einer Böschung zu berechnen. Ziel des Projektes war die Entwicklung einer Software, welche verschiedene Verfahren in einer Anwendung vereint und den Sachverständigen bei der Erstellung von Gutachten optimal unterstützt.
Um die die Ausführungsgeschwindigkeit der rechenintensiven Lamellenverfahren zu steigern wurde intensiv mit den JetBrains Tools dotTrace und dotMemory sowie paralleler Programmierung gearbeitet um die Perfomance zu optimieren.
Neben der Umsetzung der Rechenverfahren war es sehr wichtig den Benutzern eine konsistente Oberfläche zur Eingabe der komplexen Böschungssysteme anzubieten und mit geeigneten Visualisierungen zu unterstützen. Sehr wichtig war auch die Erstellung der Dokumentation der Ergebnisse inkl. Maßstabsgetreuer Ausgabe belibiger Ausschnitte des untersuchten Böschungssystems.
Toolentwicklung
Im Rahmen des Carve-Out's der IT eines Konzerns aus der Energiebranche wurden von der IT des neuen Eigentümers verschiedene Tools und Services benötigt.
Diese wurden als reine Client-Applikationen mit .NET und WPF (GaLite, AppPortal; Kiosk-Client) und als webbasierte Anwendungen (Asset-Mangement,IT4ITPortal) bzw. WEB-API (Kiosk-Backend) mit ASP.NET Core umgesetzt.
Das seit einigen Jahren im Unternehmen selbst entwickelte und bei verschiedenen afrikanischen Bank im Einsatz befindliche Core Banking System (CBS), wurde im Rahmen des Projekts kontinuierlich stabilisiert, optimiert und behutsam weiterentwickelt.
Darüber hinaus wurden verschiedene Schnittstellen zu Fremdsystemen wie z.B. MobileBanking (ISO 8583-Transaktionen) oder NotificationServices (SMS-Benachrichtigungen) gepflegt.
In den letzten 8 Projektmonaten realisierten das Team zusätzlich die Anbindung einer zugekauften Wallet Lösung an das Core Banking System.
Die Änderungen betrafen auf der technischen Seite den kompletten Software Stack vom WinForm‘s basierten UI, über die Business Logik, bis hin zur Datenhaltung (MSSQL); sowie WCF basierte Windows- und WebServices. Für die Anbindung der Wallet Lösung wurden WEB API‘s entwickelt und JSON.RPC Services konsumiert.
Aus Business Sicht erstreckte sich das Einsatzgebiet vom Retail- über den Creditbereich bis hin zum Accounting.
Neben vielen Tickets die im Tages bis Wochenbereich umgesetzt werden konnten, habe ich auch umfangreichere ChangeRequests bearbeiten können; im CBS zum Beispiel die Harmonisierung und die verbesserte Konfigurierbarkeit der kompletten Zinskalkulationen im Retail Bereich (Current-, Savings-, TimeDeposit-Accounts).
Beim der Anbindung der 3rd Party Wallet Lösung war ich Schwerpunktmäßig für die Anbindung an die JSON.RPC API‘s für Cash Transaktionen verantwortlich.
Neben Unittests für den Code (unter Verwendung Moq für neu entwickelten Code und Typemock um die Testbarkeit von Legacy Code zu ermöglichen) wurden Datenbank-UnitTests und automatisierte Integrationstests entwickelt.
Der eigentlich Entwicklungsprozess setzt auf dem Versionsverwaltungssystem git(TFS) und dem Konzept der Feature Branches mit PullRequest und CodeReviews auf.
Sowohl das Projektteam, als auch das gesamten Unternehmen, war sehr international aufgestellt. Die Kommunikation fand daher primär in englischer Sprache statt.
In der Rolle des Principal Developers war ich dafür zuständig die Abhängigkeiten zwischen dem CBS, den verschiedenen Services und der Datenbank zu managen. Außerdem war ich erster Ansprechpartner für die anderen Entwickler bei technischen Fragen zur .NET Entwicklung.
Ziel des Projektes war die Entwicklung einer HMI Software zur Konfiguration und Diagnose von Ultraschall-Gasdurchflussmessgeräten. Meine Aufgabe war die Entwicklung komplexer UserControls (WPF) zum konfigurieren bzw. zur Prüfung der Schnittstellen (Seriell, Analog, Digital, Pulse) der verschiedenen Gerätefamilien. Dabei wurde eine strickte Trennung von Businesslogik(Model/ViewModel) und Sicht(View) mittels MVVM Pattern realisiert. Ein zweiter Aufgabenbereich war die Übernahme und Konvertierung alter Geräteregister in das Format der neuen Gerätefamilie. Wichtig war es dabei schnell die technischen Details und Hintergründe zu verstehen und einen generischen Ansatz zu entwerfen und zu implementieren, so das eine gut zu wartende und zu erweiternde, sowie konfigurierbare Lösung entstehen konnte.
Grundsätzlich wurde in diesem Projekt sehr großer Wert auf eine testgetriebene Entwicklung (TDD) und die Einhaltung von Code-Konventionen gelegt.
In diesem Projekt wurde die im Zeitraum 04.08 - 03.10 entwickelt .NET Anwendung einem vollständigen Relaunch unterzogen. Dies betraf einerseits das die Oberfläche, WinForms wurde vollständig durch WPF abgelöst, andererseits aber auch die BusinessLogik. Große Teile der Anwendung wurden in "die Cloud" verschoben. Das bedeutet; Services (z.B. zur Dokumentaufbereitung) die zuvor lokal implementiert waren, stellten ihre Funktionalitäten nun als WCF WebServices bereit.
Darüber hinaus wurde im Projektverlauf das bestehende Retrievalsystem ersetzt. Neben verschiedenen Aufgaben im WPF-Client und dem Entwurf und der Implementierung aller Serviceschnittstellen, lag einer meiner Einsatzschwerpunkte in diesem Bereich.
Eine über mehrere Jahre gewachsenen .NET Applikation, sollte neben ihrer bisherigen Nutzung als umfangreiche Smart-Client Anwendung, in Teilen auch in verschiedenen anderen Anwendungen, der sehr komplexen Anwendungslandschaft des Kunden, verwendet werden. Darüber hinaus sollte auf WTS Systemen die Systemlast deutlich reduziert werden. Dazu wurden im ersten Projektabschnitt die Kern- und alle sonstigen Verwaltungsfunktionen, die keinen direkten Oberflächenbezug hatten, bzw. nicht Client-abhängig waren, in ein Maschinen lokalen WCF Server "ausgelagert".
Im zweiten Schritt wurden dann einige der Server Funktionalitäten noch weiter verteilt und in einem Rechenzentrum via IIS als Webservices zur Verfügung gestellt. Diese Webservices bedienten neben den Windows WCF-Clients, eine Silverlight-Anwendung und später auch eine IPhone-App.
Durch die Zerlegung der ursprünglichen Smart-Client Anwendung hatte ich in diesem Projekt in gewissem Umfang auch auch mit dem WinForms/WPF UI zu tun, mein Einsatzschwerpunkt war jedoch das Backend.
Eine Besonderheit in diesem Projekt war die Erzeugung und Bereitstellung der Remoteservices im verwendeten DI/IoC Container. Für den Verwender eines Services war es somit transparent ob dieser lokal im Client-Prozess, im Maschinen lokalen Server oder auf dem Webserver bereitgestellt wurde.
Die zweite Besonderheit war der konsequente Re-Use der Backend-Services. Im Maschinen lokalen Server, wie auch im Webserver läuft der gleich Code, der lediglich anders konfiguriert wurde. Dieser Ansatz war zwar bei der Basis-Implementierung spürbar aufwendiger, neue Funktionalitäten können nun aber in kürzester Zeit in allen Anwendungskontexten zur Verfügung gestellt werden.
Zu Beginn des Projektes ging es darum die Services richtig zuzuordnen; was gehört an den Client, was an den Server, wie sehen die Schnittstellen aus und wie erreichen wir die Zustandslosigkeit der Server-Services. Im weiteren Verlauf spielten dann Themen wie Aufruf-Optimierungen (Caching), Exceptionhandling oder Client-Monitoring ein Rolle. Zum Ende des Projektes ging es verstärkt um Security Aspekte, z.B. die Validierung der SOAP Action-Argumente via DataPower, das Handling großer Datenmengen, sowie Performance- und Speicheroptimierungen.
Entwickelt wurde eine komplett neue Software auf Basis der Microsoft .NET Platform und einer im Hause des Kunden entwickelten Framework Library (basierend auf dem CAB und weiteren teilen der Enterprise Library) die eine bestehende C++/MFC Anwendung erfolgreich ablösen konnte.
Meine Aufgabe war das Design und die Implementierung verschiedener Services zu Themen wie z.B. die Bereitstellung von Anwendungskonfiguration und deren Update-Management, die Verwaltung von Workflow-Aktionen, die Bereitstellung und das Caching von Elementen aus den im System verwalteten Dokumenten, Services zum komprimieren und dekomprimieren oder die Verwaltung von Favoriten und Notizen (inkl. GUI), um nur einige zu nennen.
Dabei wurden einerseits fachlichen Konzepte in technische Lastenhefte und umfangreiche Systemkonzepte überführt und anschliessend implementiert, andererseits aber auch rein technische Anforderungen auf Basis von UML-Modellen und einfachen Implementierungskonzepten umgesetzt.
Sämtliche Bussines-Dienste wurden per TDD (Test Driven Development) implementiert, der gesamte Entwicklungsprozess basierte auf agilen Prozessen (Scrum).
Nach Auslieferung der ersten Programmversion war es unter anderem meine Aufgabe den aktuellen IST-Zustand der Anwendungs- und Komponenten-Architekture aufzunehmen (Reverse Engineering) und im Anschluss die Beziehungen und Abhängigkeiten zwischen den Komponenten so zu modellieren das Services und Pakete im Sinne einer SOA entstehen.
Ein weiterer Schwerpunkt meines Einsatzes lag im Bereich Performance (sowohl Ablaufgeschwindgkeit, als auch Speicherverbrauch). Dieses Thema spielte im Projekt eine sehr große Rolle und wurde frühzeitig im Entwicklungsprozess sichergestellt. Multithreading war dabei gängige Praxis.
Die entwickelte Plattform stellt die Basis für die unterschiedlichsten Applikationen im Bereich Automatisierungstechnik dar(PCS7).
Sie bietet alle Dienste von der Datenhaltung, über allgemein gültige Business Logik, bis hin zu einer dynamischen Präsentationsschicht.
Das Gesamtsystem ist äusserst flexibel über XML Metadaten zu konfigurieren. Aus den beschriebenen Objektmodellen und Parametern wird dynamisch Programmcode generiert.
Meine Aufgaben im Teilprojekt FrameApplication, bestanden im Entwurf, der Spezifikation, der Implementierung und der Dokumentation von Basisfunktionalitäten
in den Bereichen Anwendungsrahmen (ToolWindows, TaskCards, Statusbar, Active-View & Active-Editor-Managment, Status-Anzeige), DataBinding (Anbindung Command-Handling,
Integration TypeEditoren), Portal (komplett), Anbindung des Projekt- & Librarymanagment und komplexe Controls (ObjektPicker).
In diesem sehr großen (>200 Entwickler, Architekten, Integrations- und Systemtester), verteilten (Entwicklungsteams an zwei Standorten in Deutschland,
in Indien, Ungarn und den USA) Projekt wurde viel Wert auf die Verwendung von Design-Pattern und allgemeinen Implementierungs und Dokumentations-Standards gelegt.
Softwarearchitekt
- WPF, WinForms, HTML 5
- ASP.NET, MVC, WEB Api
- Prism, Unity, Enterprise Library, CAB/SCSF
- Dependency Injection (DI), Inversion of Control(IoC)
- LINQ, EF (Linq to Entities)
- WCF, WebServices (SOAP/JSON)
- XML, XSD, XSL
- MFC, ATL, STL, Win SDK (16/32 bit)
- COM/COM+/DCOM ,ActiveX
- OLE Automation Client/Server, DDE
- TDD (Test Driven Development)
- Scrum, MSF, RUP, XP
- UML
- Design Pattern
- Objektorientierte Analyse(OOA), Design(OOD), Programmierung(OOP)
- strukturierte Analyse, strukturiertes Design, strukturierte Programmierung
- Datenbanken Design
o Werkzeuge:
- VisualStudio (VS 6 - 2015), Eclipse/WSAD, XEmacs, Notepad++. VS Code
- Rational Rose, IBM Visual Modeler, Visio, ObjectiF, CASE 4.x, Erwin, Innovator
- Git, TFS, ClearCase, Subversion, Mercurial, PVCS, CVS, VSS
- .NET Memory Profiler, SpeedTrace, AppSight, Purify, Quantify, Bounds Checker
- JIRA, ClearQuest, OmniTracker, BugTrapper
- Confulence
Haftpflichtversicherung:
[URL auf Anfrage]
Automatisierungstechnik
Unternehmensberatung/IT-Dienstleister
Öffentlicher Dienst/Verwaltung
Deutschland: bevorzugt D0,D1
Ziel des Projektes ist die Entwicklung eines Webportals zur Meldung der verfügbaren Leistungen von Batterien und Windkraftanlagen und deren Verarbeitung in den Backendsystemen des zweitgrößten deutschen Stromversorgers.
Entwicklung einer Client/Server Anwendung mit C#/.NET zur Planung und Verwaltung der IT-Ausstattung einer Bundesbehörde.
Die seit einiger Zeit beim Kunden entwickelte Anwendungssoftware sollte eine Anwendung aus dem Jahr 2013 ersetzen. Dabei ging es zuerst darum noch fehlende Funktionalitäten (Reports, Export, Suchen/Filtern, ...) zu implementieren und Probleme bei der Darstellung/Aktualisierung der Benutzeroberfläche, sowie allgemeine Performance Probleme zu beseitigen.
Nach der Auslieferung der 1. Programmversion wird die Architektur des Clients einem Re-Design unterzogen und zusätzliche Funktionalitäten implementiert, die den Anwendern eine bessere Führung durch die zu erledigenden Aufgaben/Prozesse bieten. Zusätzlich ist ein Werkzeug in Arbeit das einer eingeschränkten Benutzergruppe die Pflege bestimmter Stammdaten ermöglicht.
Im Zeitraum 10/2017 - 02/2018 - 100% Böschungssicherheit
Im Zeitraum 03/2018 - heute - 50% Böschungssicherheit 50% Toolentwicklung
Böschungssicherheit
Im Bergbau gibt es verschiedene geotechnische Verfahren um die Standsicherheit einer Böschung zu berechnen. Ziel des Projektes war die Entwicklung einer Software, welche verschiedene Verfahren in einer Anwendung vereint und den Sachverständigen bei der Erstellung von Gutachten optimal unterstützt.
Um die die Ausführungsgeschwindigkeit der rechenintensiven Lamellenverfahren zu steigern wurde intensiv mit den JetBrains Tools dotTrace und dotMemory sowie paralleler Programmierung gearbeitet um die Perfomance zu optimieren.
Neben der Umsetzung der Rechenverfahren war es sehr wichtig den Benutzern eine konsistente Oberfläche zur Eingabe der komplexen Böschungssysteme anzubieten und mit geeigneten Visualisierungen zu unterstützen. Sehr wichtig war auch die Erstellung der Dokumentation der Ergebnisse inkl. Maßstabsgetreuer Ausgabe belibiger Ausschnitte des untersuchten Böschungssystems.
Toolentwicklung
Im Rahmen des Carve-Out's der IT eines Konzerns aus der Energiebranche wurden von der IT des neuen Eigentümers verschiedene Tools und Services benötigt.
Diese wurden als reine Client-Applikationen mit .NET und WPF (GaLite, AppPortal; Kiosk-Client) und als webbasierte Anwendungen (Asset-Mangement,IT4ITPortal) bzw. WEB-API (Kiosk-Backend) mit ASP.NET Core umgesetzt.
Das seit einigen Jahren im Unternehmen selbst entwickelte und bei verschiedenen afrikanischen Bank im Einsatz befindliche Core Banking System (CBS), wurde im Rahmen des Projekts kontinuierlich stabilisiert, optimiert und behutsam weiterentwickelt.
Darüber hinaus wurden verschiedene Schnittstellen zu Fremdsystemen wie z.B. MobileBanking (ISO 8583-Transaktionen) oder NotificationServices (SMS-Benachrichtigungen) gepflegt.
In den letzten 8 Projektmonaten realisierten das Team zusätzlich die Anbindung einer zugekauften Wallet Lösung an das Core Banking System.
Die Änderungen betrafen auf der technischen Seite den kompletten Software Stack vom WinForm‘s basierten UI, über die Business Logik, bis hin zur Datenhaltung (MSSQL); sowie WCF basierte Windows- und WebServices. Für die Anbindung der Wallet Lösung wurden WEB API‘s entwickelt und JSON.RPC Services konsumiert.
Aus Business Sicht erstreckte sich das Einsatzgebiet vom Retail- über den Creditbereich bis hin zum Accounting.
Neben vielen Tickets die im Tages bis Wochenbereich umgesetzt werden konnten, habe ich auch umfangreichere ChangeRequests bearbeiten können; im CBS zum Beispiel die Harmonisierung und die verbesserte Konfigurierbarkeit der kompletten Zinskalkulationen im Retail Bereich (Current-, Savings-, TimeDeposit-Accounts).
Beim der Anbindung der 3rd Party Wallet Lösung war ich Schwerpunktmäßig für die Anbindung an die JSON.RPC API‘s für Cash Transaktionen verantwortlich.
Neben Unittests für den Code (unter Verwendung Moq für neu entwickelten Code und Typemock um die Testbarkeit von Legacy Code zu ermöglichen) wurden Datenbank-UnitTests und automatisierte Integrationstests entwickelt.
Der eigentlich Entwicklungsprozess setzt auf dem Versionsverwaltungssystem git(TFS) und dem Konzept der Feature Branches mit PullRequest und CodeReviews auf.
Sowohl das Projektteam, als auch das gesamten Unternehmen, war sehr international aufgestellt. Die Kommunikation fand daher primär in englischer Sprache statt.
In der Rolle des Principal Developers war ich dafür zuständig die Abhängigkeiten zwischen dem CBS, den verschiedenen Services und der Datenbank zu managen. Außerdem war ich erster Ansprechpartner für die anderen Entwickler bei technischen Fragen zur .NET Entwicklung.
Ziel des Projektes war die Entwicklung einer HMI Software zur Konfiguration und Diagnose von Ultraschall-Gasdurchflussmessgeräten. Meine Aufgabe war die Entwicklung komplexer UserControls (WPF) zum konfigurieren bzw. zur Prüfung der Schnittstellen (Seriell, Analog, Digital, Pulse) der verschiedenen Gerätefamilien. Dabei wurde eine strickte Trennung von Businesslogik(Model/ViewModel) und Sicht(View) mittels MVVM Pattern realisiert. Ein zweiter Aufgabenbereich war die Übernahme und Konvertierung alter Geräteregister in das Format der neuen Gerätefamilie. Wichtig war es dabei schnell die technischen Details und Hintergründe zu verstehen und einen generischen Ansatz zu entwerfen und zu implementieren, so das eine gut zu wartende und zu erweiternde, sowie konfigurierbare Lösung entstehen konnte.
Grundsätzlich wurde in diesem Projekt sehr großer Wert auf eine testgetriebene Entwicklung (TDD) und die Einhaltung von Code-Konventionen gelegt.
In diesem Projekt wurde die im Zeitraum 04.08 - 03.10 entwickelt .NET Anwendung einem vollständigen Relaunch unterzogen. Dies betraf einerseits das die Oberfläche, WinForms wurde vollständig durch WPF abgelöst, andererseits aber auch die BusinessLogik. Große Teile der Anwendung wurden in "die Cloud" verschoben. Das bedeutet; Services (z.B. zur Dokumentaufbereitung) die zuvor lokal implementiert waren, stellten ihre Funktionalitäten nun als WCF WebServices bereit.
Darüber hinaus wurde im Projektverlauf das bestehende Retrievalsystem ersetzt. Neben verschiedenen Aufgaben im WPF-Client und dem Entwurf und der Implementierung aller Serviceschnittstellen, lag einer meiner Einsatzschwerpunkte in diesem Bereich.
Eine über mehrere Jahre gewachsenen .NET Applikation, sollte neben ihrer bisherigen Nutzung als umfangreiche Smart-Client Anwendung, in Teilen auch in verschiedenen anderen Anwendungen, der sehr komplexen Anwendungslandschaft des Kunden, verwendet werden. Darüber hinaus sollte auf WTS Systemen die Systemlast deutlich reduziert werden. Dazu wurden im ersten Projektabschnitt die Kern- und alle sonstigen Verwaltungsfunktionen, die keinen direkten Oberflächenbezug hatten, bzw. nicht Client-abhängig waren, in ein Maschinen lokalen WCF Server "ausgelagert".
Im zweiten Schritt wurden dann einige der Server Funktionalitäten noch weiter verteilt und in einem Rechenzentrum via IIS als Webservices zur Verfügung gestellt. Diese Webservices bedienten neben den Windows WCF-Clients, eine Silverlight-Anwendung und später auch eine IPhone-App.
Durch die Zerlegung der ursprünglichen Smart-Client Anwendung hatte ich in diesem Projekt in gewissem Umfang auch auch mit dem WinForms/WPF UI zu tun, mein Einsatzschwerpunkt war jedoch das Backend.
Eine Besonderheit in diesem Projekt war die Erzeugung und Bereitstellung der Remoteservices im verwendeten DI/IoC Container. Für den Verwender eines Services war es somit transparent ob dieser lokal im Client-Prozess, im Maschinen lokalen Server oder auf dem Webserver bereitgestellt wurde.
Die zweite Besonderheit war der konsequente Re-Use der Backend-Services. Im Maschinen lokalen Server, wie auch im Webserver läuft der gleich Code, der lediglich anders konfiguriert wurde. Dieser Ansatz war zwar bei der Basis-Implementierung spürbar aufwendiger, neue Funktionalitäten können nun aber in kürzester Zeit in allen Anwendungskontexten zur Verfügung gestellt werden.
Zu Beginn des Projektes ging es darum die Services richtig zuzuordnen; was gehört an den Client, was an den Server, wie sehen die Schnittstellen aus und wie erreichen wir die Zustandslosigkeit der Server-Services. Im weiteren Verlauf spielten dann Themen wie Aufruf-Optimierungen (Caching), Exceptionhandling oder Client-Monitoring ein Rolle. Zum Ende des Projektes ging es verstärkt um Security Aspekte, z.B. die Validierung der SOAP Action-Argumente via DataPower, das Handling großer Datenmengen, sowie Performance- und Speicheroptimierungen.
Entwickelt wurde eine komplett neue Software auf Basis der Microsoft .NET Platform und einer im Hause des Kunden entwickelten Framework Library (basierend auf dem CAB und weiteren teilen der Enterprise Library) die eine bestehende C++/MFC Anwendung erfolgreich ablösen konnte.
Meine Aufgabe war das Design und die Implementierung verschiedener Services zu Themen wie z.B. die Bereitstellung von Anwendungskonfiguration und deren Update-Management, die Verwaltung von Workflow-Aktionen, die Bereitstellung und das Caching von Elementen aus den im System verwalteten Dokumenten, Services zum komprimieren und dekomprimieren oder die Verwaltung von Favoriten und Notizen (inkl. GUI), um nur einige zu nennen.
Dabei wurden einerseits fachlichen Konzepte in technische Lastenhefte und umfangreiche Systemkonzepte überführt und anschliessend implementiert, andererseits aber auch rein technische Anforderungen auf Basis von UML-Modellen und einfachen Implementierungskonzepten umgesetzt.
Sämtliche Bussines-Dienste wurden per TDD (Test Driven Development) implementiert, der gesamte Entwicklungsprozess basierte auf agilen Prozessen (Scrum).
Nach Auslieferung der ersten Programmversion war es unter anderem meine Aufgabe den aktuellen IST-Zustand der Anwendungs- und Komponenten-Architekture aufzunehmen (Reverse Engineering) und im Anschluss die Beziehungen und Abhängigkeiten zwischen den Komponenten so zu modellieren das Services und Pakete im Sinne einer SOA entstehen.
Ein weiterer Schwerpunkt meines Einsatzes lag im Bereich Performance (sowohl Ablaufgeschwindgkeit, als auch Speicherverbrauch). Dieses Thema spielte im Projekt eine sehr große Rolle und wurde frühzeitig im Entwicklungsprozess sichergestellt. Multithreading war dabei gängige Praxis.
Die entwickelte Plattform stellt die Basis für die unterschiedlichsten Applikationen im Bereich Automatisierungstechnik dar(PCS7).
Sie bietet alle Dienste von der Datenhaltung, über allgemein gültige Business Logik, bis hin zu einer dynamischen Präsentationsschicht.
Das Gesamtsystem ist äusserst flexibel über XML Metadaten zu konfigurieren. Aus den beschriebenen Objektmodellen und Parametern wird dynamisch Programmcode generiert.
Meine Aufgaben im Teilprojekt FrameApplication, bestanden im Entwurf, der Spezifikation, der Implementierung und der Dokumentation von Basisfunktionalitäten
in den Bereichen Anwendungsrahmen (ToolWindows, TaskCards, Statusbar, Active-View & Active-Editor-Managment, Status-Anzeige), DataBinding (Anbindung Command-Handling,
Integration TypeEditoren), Portal (komplett), Anbindung des Projekt- & Librarymanagment und komplexe Controls (ObjektPicker).
In diesem sehr großen (>200 Entwickler, Architekten, Integrations- und Systemtester), verteilten (Entwicklungsteams an zwei Standorten in Deutschland,
in Indien, Ungarn und den USA) Projekt wurde viel Wert auf die Verwendung von Design-Pattern und allgemeinen Implementierungs und Dokumentations-Standards gelegt.
Softwarearchitekt
- WPF, WinForms, HTML 5
- ASP.NET, MVC, WEB Api
- Prism, Unity, Enterprise Library, CAB/SCSF
- Dependency Injection (DI), Inversion of Control(IoC)
- LINQ, EF (Linq to Entities)
- WCF, WebServices (SOAP/JSON)
- XML, XSD, XSL
- MFC, ATL, STL, Win SDK (16/32 bit)
- COM/COM+/DCOM ,ActiveX
- OLE Automation Client/Server, DDE
- TDD (Test Driven Development)
- Scrum, MSF, RUP, XP
- UML
- Design Pattern
- Objektorientierte Analyse(OOA), Design(OOD), Programmierung(OOP)
- strukturierte Analyse, strukturiertes Design, strukturierte Programmierung
- Datenbanken Design
o Werkzeuge:
- VisualStudio (VS 6 - 2015), Eclipse/WSAD, XEmacs, Notepad++. VS Code
- Rational Rose, IBM Visual Modeler, Visio, ObjectiF, CASE 4.x, Erwin, Innovator
- Git, TFS, ClearCase, Subversion, Mercurial, PVCS, CVS, VSS
- .NET Memory Profiler, SpeedTrace, AppSight, Purify, Quantify, Bounds Checker
- JIRA, ClearQuest, OmniTracker, BugTrapper
- Confulence
Haftpflichtversicherung:
[URL auf Anfrage]
Automatisierungstechnik
Unternehmensberatung/IT-Dienstleister
Öffentlicher Dienst/Verwaltung
Direktester geht's nicht! Ganz einfach Freelancer finden und direkt Kontakt aufnehmen.
"[...] Aufgrund seiner hervorragenden Kenntnisse im Bereich der Softwareentwicklung mit .NET, seinen sehr guten Soft-Skills und durch die von ihm sehr schnell erworbenen Kenntnisse im fachlichen Bereich unserer Software war der Consultant neben seinen Enwicklungsaufgaben auch als Teamleiter tätig und in der letzten Projektphase als Teilprojektleiter für die Bereiche Schnittstellen und NFA (nicht funktionale Anforderungen) verantwortlich. Wir danken ihm für seine geleistete Arbeit und würden uns sehr freuen, in Zukunft erneut mit Ihm zusammenzuarbeiten."
— Projekt Hoflogistik, 08/12 - 04/13
Referenz durch Projektmanager, Softwarehersteller, vom 22.04.13
"Gerne bestätige ich dem Consultant die angenehme und konstruktive Zusammenarbeit im abgelaufenen Projekt. Im Zeitraum September 2002 bis September 2003 wurden wir bei der Entwicklung einer neuen Version unserer Client/Server Software zur Datenbankrecherche in den Bereichen Design (OOD) und Implementierung (OOP) durch den Consultant unterstützt. Eingesetzt wurde die Programmiersprache C++ unter Windows und Unix (HP-UX). Schwerpunkt war der Entwurf und die Entwicklung von Client Komponenten unter Windows 2000/XP (VC++, COM, MFC, ATL, STL, XML/XSL). Die beauftragten Komponenten wurden termingerecht und mit hoher Qualität fertiggestellt. Auf Grund der guten Erfahrungen werden wir den Consultant bei zukünftigen Projekten gerne wieder kontaktieren."
— Projekt C++ Programmierung im Bereich CMS, 09/02 - 09/03
Referenz durch Projektleiter, großer IT-Dienstleister/SW-Hersteller, vom 09.09.03
"Wir lernten den Consultant als Projektleiter im Rahmen unserer Zusammenarbeit mit einem Systemhaus kennen. Während unserer Zusammenarbeit war er an der Entwicklung eines Frameworks zur vertikalen Integration von ERP, MES und Controls Systemen über mehrere Releasezyklen beteiligt. Seine Aufgaben im Projekt umfassten Analyse und Spezifikation, Design und Implementierung, sowie Tests und Wartung verschiedener Teilkomponenten. Er unterstützte uns dabei speziell im Bereich der COM-Anwendungsentwicklung unter C++ sowie in der Verwendung von XML, wobei er in beiden Gebieten über ausgezeichnete Fachkenntnisse verfügt. Die Übernahme neuer Aufgabengebiete bedingt durch Änderungen im Projekt (Entwicklung mit dem Datenbanksystem POET, Erweiterung unserer Installationspaketes mittels InstallShield) bereiteten ihm keine Probleme. Durch seine aufgeschlossene, freundliche Art war er uns stets ein angenehmer Ansprechpartner. Wir möchten uns an dieser Stelle bei ihm bedanken und würden uns sehr freuen, wieder mit Ihm zusammenarbeiten zu können."
— Projekt Framework Entwicklung, 09/01 - 09/02
Referenz durch Projektleiter, Elektro-/IT-Dienstleistungskonzern, vom 09.12.02