Projects

Senior Architect Development Architecture at IT-Systemhaus der Bundesagentur für Arbeit, Nürnberg

(January 2014 – April 2015)

One of my main tasks was to provide a build and continuous integration environment for several development teams. In particular, I was responsible for installation and administration of Jira, Hudson and SonarQube. Both Jira and SonarQube were connected via SSO to our system wide Active Directory. This was realized via plugins implemented in Java. The development and further enhancement of these plugins was one of my tasks.

In order to fulfill the individual requirements of the various teams within the agency, a lot of administrative and configuration tasks had to be done. Especially regarding Jira, where the adjustment of e.g. workflows, screen schemes or fields was an almost daily business. I was also supporting the teams in establishing and configuring Hudson jobs in order to have a continuous build process to deploy artifacts to the Nexus repository or to provide build results for being evaluated and calculated by SonarQube.

The Linux systems we were using for hosting our build infrastructure were configured using Ansible. The initial implementation and further enhancement of the Ansible configuration was done by me.

For providing a common build process for all future projects, another main issue for me was to implement a new software API in Java which was capable of handling all Maven projects within a project’s team. With this API it was possible e.g. to create tags or branches of all Maven projects with just a single command. The API was designed to use different underlying SCM systems. In our case we were using Git and Subversion. In order to have an easy way for using this API, I also developed a Maven plugin which provided a kind of high level access to the API and made using it quite comfortable.

Quick facts of technology:

Ansible, IOC, Jira, Jira-Plugins, SonarQube, Sonar-Plugins, Hudson, Java, Maven 3, Eclipse, SuSE-Enterprise-Linux, Subversion, Continuous Integration, Ant, Tomcat, Junit, TestNG, Git, Gerrit, Groovy, Mutation Testing

Release and configuration management at eSailors IT Solutions GmbH, Hamburg

(April 2010 – December 2013, Freelancer)

The software solutions that was developed by my client contained several webshops that were connected to different back-end system gateways/interfaces (databases, administration tools, data mining, e.t.c) as well as to external systems (banks, Schufa). Component parts of the new versions of the systems had to be deployed in regular intervals within the updates. Databank updates had to be carried out automatically as well. A coordinated approach was required here to take into account the dependencies of the components.

My main task in the project consisted of the complete new implementation of a tool so that the processes of deployment and updates were automated to the greatest possible extent. After sufficient analyses and design, an approach that permitted later automatic implementations by means of Hudson and Jenkins was chosen for this purpose. The implementation was carried out in Java. For this purpose, the system (components, applications and their individual versions, servers and interfaces) was portrayed completely in a XML-model that respectively depicted a complete environment for the operation/business. Through this approach, developer and test systems as well as production systems themselves could be depicted.

Along with the afore mentioned part of the main project, I also established the following systems:

  • Facilitation of the entire infrastructure for the configuration management based on Puppet. Here, the new implementation and maintenance of all Test, QA and CI-Hardware of respective virtualizations was put into practice.
  • Facilitation of the complete surveillance of Test, QA and CI-Hardware by means of Icinga.
  • Collaboration with the facilitation of a high-availability cluster (HA cluster). The repositories for Maven and Subversion were made available through the cluster. (RHEL 6, Linux HA)
  • Development of a storage service that allowed an already existing Maven repository relating to its artefacts and the programme versions that these artefacts use to analyse and artefacts that are no longer needed to be stored. (Java, Maven Plugin)
  • Implementation of tools needed for automatic creation and modification of CI jobs to Jenkins and Hudson. The job configuration was kept on the ready by means of Velocity templates, adapted through complying variable replacement and fitted to the CI systems through HTTP. (Java, Velocity, Maven Plugin)
  • Implementation of various tools for the automation of different tasks within the day-to-day operations with Java.

Along with the tasks described, assistance with the day-to-day operations was also given to error analysis on test systems, provision and maintenance of CI systems as well as the support of QA and development in different areas.

Quick facts of technology:

Red Hat Enterprise Linux, Solaris, Maven 2, Maven 3, Maven-Plugins, Subversion, Hudson, Jenkins, Java, Continuous Integration, Eclipse, Shellscript (bash), Ant, Velocity, XMLBeans, Puppet, Geppetto, Oracle, Apache HTTPD, Tomcat, Junit, TestNG, Icinga, Spring, Linux HA, PNP4Nagios

Build and release management as well as configuration management at InterComponentWare AG, Walldorf

(July 2008 – March 2010, Freelancer)

The existing software of approximately 120 modules is permanently built automatically in line with Continuous integration and is monitored with respect to Quality criteria. An extensive server farm exists for this purpose with whose help the individual code lines are managed, built and deployed. The eradication of automatic web service tests are also carried out in line with this framework

The main function was to monitor the, for that purpose, necessary infrastructure ( both software and hardware) as well as to upgrade and adjust to new data ( Modules, Unit-Tests, Branches, Deployment-Scenarios, etc.). The build and deployer servers are exclusively conducted under Linux. The maintenance and update takes place predominantly through Cfengine as well as through specifically developed tools, mainly Maven Plug-ins, that , guided over a central configuration, carry out the systems’ updates. The monitoring of the servers is carried out through Nagios.

The migration of a product( approximately 66 modules) was carried out next to the main task from Maven 1 unto Maven 2. For this, all existing functionalities like the administration of SQL scripts in line with the unit test or the construction of multi-artefacts that had been implemented with Maven 1, Jelly and where applicable auxiliary tools, were carried out, complete with the Standard-Maven „ functionalities as well as the new development of Maven 2-Plug-ins were reproduced. Furthermore, the construction of Assemblies (WAR Data, consisting of all modules) were also converted. The steps that were necessary to conduct a later Migration to Maven 3 were also evaluated in line with the Migration.

Also, the support of the developers and the architects concerning the development tools were a part of the daily tasks

Quick facts of technology:

Maven 1, Maven 2, Maven 3 (beta), Subversion, Cruisecontrol, Hudson, Java, Continuous Integration, Linux, Eclipse, Cfengine 2+3, Shellscript (bash), Development of Maven 2-Plugins, VMWare, ESX, Ant, Jelly, Glassfish, Velocity.

Deployment and configuration management of Software applications at the BMW Bank, Munich

(December 2006 – June 2008, Freelancer)

A large amount of software systems (>25) that were bound together through a service oriented architecture was available for the operation of technical business transactions . These SOA were technically put into effect with Seebeyond, Elnsight and MQ- Series and also partially with JAVA CAPS. The principal task of the project was to conduct the deployment of Seebeyond and Elnsight as well as for test, integrations and productive systems. The supply of software versions was conducted through external service providers. Before the deployment of the software, the Configuration management that assured that all deliveries and Release positions were reproducible were carried out. SynergyCM was introduced for this task.

Shell script programming/coding with the KSH and the Bash was often necessary in context with Deployments. In the process , scripts that served the automation purpose of deployment or the support of trouble-shooting were generally developed or improved. Besides the deployment, I carried out maintenance checks and expansions of existing J2EE Applications that were in line with smaller projects.

Quick facts of technology:

Seebeyond, eInsight, SynergyCM, SOA, Java CAPS, Deployment, configurations management, Kammlinienmanagement, Java, Eclipse, Solaris, Linux, HP-UX, MQ-Series, Shellprogrammierung in ksh and bash, Nagios, RRD, Cacti, Subversion.

Continuous Integration as well as Release management and deployment within a software development team at ComBOTS AG, Karlsruhe

(October 2005 – September 2006, Employee Inovex GmbH)

The customer’s project consisted of the new development of service to private communication and for the transmission of large data in the internet. The launch of the product took place in July. My task was on the one hand the automatic construction of the product and its respective back-end-systems and on the other hand the deployment and the integration of the product in the productive environment. The documentation of the test covers as well as the release management belonged to them as well.

Quick facts of technology:

Java, Eclipse, Maven, Cruisecontrol, Junit, Log4J, Linux, Nagios, Windows, Subversion, CVS, Jelly

Maintenance and further development of internet presence of Gaggenau Hausgeräte GmbH

(June 2004 – August 2005, Employee Inovex GmbH)

For an existing J2EE- Internet application on the basis of BEA Web-logic and Oracle, new modules meant for the expansion of the application were to be implemented. Here, amongst other things, following functionalities were created and accordingly expanded : Newsletter distributions, Teasers, dealer platforms, modules for customer opinion surveys, and statistical analysis of the responses, Geodata systems for dealer searches as well as a secure Intranet domain for employees. The for the application used Content management system expansion was part of the project.

Quick facts of technology:

Java, J2EE, Oracle, XML, HTML, JSP, Bea Weblogic, Junit, JWebUnit, Cactus, Struts, Log4J, SuSE Linux, Ant, Eclipse, Cruisecontrol, CVS.

Access and departure controlling system of plant security at the ZF Friedrichshafen AG, Friedrichshafen

(December 2002 – February 2003, Employee TRIVIT AG)

The goal of the project was to port all already existing systems that were based on out-of-date technology to uniform and modern standards. The existing functionality was adapted to:

Servlets and Applets as View
Apache to Linux as Web server
Tomcat as Servlet engine
Oracle as data base.

Quick facts of technology:

J2SE, Oracle, Servlets, Applets,code re-factoring, Test procedure, development model, Apache Web server, Tomcat Servlet Engine, Java-Script, Swing, Log4J, Swing, CVS.

Implementation of quality data base at the ZF Friedrichshafen AG, Friedrichshafen

(August 2002 – November 2002, Employee TRIVIT AG)

The main aim of the project was the code re-factoring of existing base classes upon which the quality data base was built. A matrix or rather an applications programming interface was created in line with the code re-factoring through remodelling and modelling of source codes and the application of development models. Existing as well as data bases that were to be newly implemented fell back on these applications programming interface. The realisation included the analysis of complete already existing source codes and the location of vulnerability. Automated metrics were applied to some extent. Additionally, some newly set up requests were achieved.

Quick facts of technology:

Java 2 Standard Edition V. 1.3, UML, Oracle-SQL, Servlets, Applets, code re-factoring, Software Metrics, Development models, process models, Swing, Log4J, Test procedure, SuSE Linux, Vim, Forte (Netbeans), Xfig (f. Diagramme), Together

Process and Function trace system for the support of planning and development of transmission systems at the ZF Friedrichshafen AG, Friedrichshafen

(January 2001- July 2002), Employee TRIVIT AG)

I initially created a functional specification based on a very detailed specification and requirements analysis created by a customer. The realisation of the project involved the installation of the data model as well as the software design and the subsequent implementation of the software itself.

Quick facts of technology:

J2SE, UML, XML, MS-SQL, Java Webstart, AWT, Log4J, Apache Web server, SuSE Linux, Vim, Ant, Forte (Netbeans), Xfig (f. Diagramme), CVS.

University lecturer occupation (Freelancer)

University of cooperative education, Stuttgart, for the winter semester in 2003: XML and databases
University of applied sciences, Isny, for the summer semesters from 2004 – 2007, Subject: Applied data processing with XML