curriculum vitae

advertisement
CURRICULUM VITAE
Name:
Kai Hackemesser
Address:
225A Karori Road
Karori, Wellington 6012
04 973 6667
Home phone:
Work phone:
Cell phone:
021 078 77 46
Email Address:
kai@hackemesser.de, kai.hackemesser@gmail.com
Work status:
I am a citizen of Germany. I am in New Zealand on a restricted Work
Visa which is valid until 6 June 2011. (PR application issued
December’09). I am permitted to work as Senior Java Developer in
Wellington.
EMPLOYMENT HISTORY
Dates:
May 2008 – current
Organisation:
Energy Intellect Ltd., Wellington
Energy Intellect is a company with more than 10 years history in
building managed meters and managing them with their own
applications. They are the only company worldwide that have the
hardware as well as the software developed inhouse. Their customers
are mainly in the NZ and AU markets.
The software team has about 15 members, including testers. Agile
Development was used to manage the team targets.
Position:
Senior Java Developer
Reported to:
Project Manager
Responsibilities:
As Senior Java Developer I was responsible for maintaining and
further development of four products, three of them were web
applications, one was a standalone Java application. I’m handling
problem support in second level support and training junior
developers.
Project Clariti
I was responsible to improve performance issues of the web interface.
Clariti is a web front-end that allows customers to display graphs of
metering data in various ways to compare and analyze data streams
related to meters and connection points. I improved performance by
adding filters to the web page to add cache-enabling, compression
and script-optimizations to reduce the number of required connections
and amount of data to be transferred per page call.
Project iBO
I was responsible to add new features to many reports and to improve
performance of database queries that feed them. iBO is a
management web application that allows to create reports on meter
configurations and customer-related data, as well as automated
billing; it is used to configure meters and their communication data
and associate meters with locations and responsible organizations,
too. Most of this data has a time dimension.
Both applications are written as JSP container using common
frameworks as Struts, Spring and Hibernate to connect to the
database back-end. They run in Tomcat web containers using SQL
Server instances as database back-end. The test and production
environments are Linux systems, the development systems mainly
Windows XP.
Project CSV Importer
I was building a new application to import external metering data in
two different CSV formats into the companies’ databases. The
Importer runs as a scheduled job with a file scanner that upon
detection of a new file starts its processing. It is able to automatically
handle files that are compressed in any of the major formats. It is
able to import multiple files in parallel threads and creates
automatically Metering configurations for unknown meters on
detection. The Importer is a module of the company's Scheduler
application that runs standalone using Spring and Quartz frameworks.
Project ECG Gateway
The Gateway is a linux based device that communicates to meters
connected to it via TCP/IP, RS485 and other protocols and provides
relay functionality to customers accessing these meters via Modbus
protocol or TCP Rs485 emulation. I was working on the administrative
web interface and on improvements on the emulation features.
Major
achievements:
Speeding up t-SQL stored procedures used in critical reports that tend
to time out after minutes to run in less than 20 seconds.
Improving access speed to Clariti web application for customers in
foreign countries by 60%+.
The team appreciated my troubleshooting skills.
Exposure to state of the art technologies as JPA, Spring, Hibernate.
Used tools like Eclipse, Maven2 in Windows and Linux
Dates:
September 2007 – March 2008
Position:
Senior Java Developer (freelancing, contract with Hays Germany)
Reported to:
Project Manager
Responsibilities:
Project BOB Text – September 2007 to February 2008
“BOB Text” stands for a new application in the Kreditwerk application
suite “BOB”, which is the result of a large scale transformation
process from old 3270 terminal based mainframe applications written
in Cobol/Assembler to a new Client/Server application with a
comfortable GUI written in Java. As there are many application
moving into the new framework step by step, the framework still
needs to bridge to old mainframe components and an emulated 3270
terminal.
The project team size was about 25 to 30 people working on different
tasks, we had a team for COBOL/MVS development, a team for Java
development, a team for the web administration tool development, a
domain experts team for testing and take over, and a team for letter
design.
Kreditwerk uses JBF (Java Banking Framework) API V1.0.6 as base for
their own framework “XBF” (extended Banking Framework). JBF
allows easy binding between the data model and the defined GUI
fields or command buttons.
They have developed a framework for MVS RMI called ORBX2
(http://www.orbx.de/). The definition of method signatures and the
data model is done by modifying a Rational Rose UML model, followed
by an automated code generation process for both the COBOL
copybooks for MVS and the corresponding Java interface.
The target application server was a BEA Weblogic V8.1 running on
AIX.
The letter editor was “Formstation” from “Invaris”
(http://www.invaris.com/k2_technology/k2_frameset_e/k2_frameset_
e.htm) which we implemented as custom swing component in our
framework.
The source code and library repository used by all Kreditwerk projects
was Rational ClearCase.
The project task was the development of an application to create
automated business letters.
There where following mayor requirements (to the Java developer
team):
● Letters consist of prepared text blocks but the Account
Manager is able to modify the letters by adding/removing text
blocks and even add text manually in a visual editor.
● All given text blocks contain variables which can be replaced
with actual data from the clients accounts, stored in the
mainframe database.
● The Account Manager can see a letter in preview with sample
data before further inputs.
● The Account Manager could decide between a German or a
French version of the letter, depending on the receiver.
● The Account Manager can select between different types of
data holders to fill the variables in the letter accordingly.
● A letter could be sent to up to 19 receivers, either as a 1:1
copy or as a reduced one without attached forms.
● The resulting letters could be bundled to be sent to one or
more receiver by address, for instance the Account Manager
who visits the customer.
● The letters could be sent additionally by email or fax, too.
● All paper letters will be processed in a batch job at the the end
of the business day.
● Development for JDK 1.4 Environment on client and server
side, but with Java 5 compatibility in mind.
The team size of Java developers was actually three persons. The
team leader was responsible mostly for communication with the
domain experts about mask design and the business process, and he
was working with Invaris people for required new features in
Formstation and to get it error free; I was almost responsible for UML
model design, database table design and Java implementation. The
third person was drawn to some task outside of this project, so I took
over his responsibilities soon.
Each application in this JBF/XBF framework is called a “makro step” or
“MAKS”, while each mask that the user has to pass in this application
is called a “mikro step” or “MIKS”. The user enters data into each
step's mask and proceeds. Our MAKS consisted of five “MIKS”. The
first one was for selection of the required letter and language, with a
search function for letters by keyword, a browse function to view
letters organized by business case and a preview function. The second
one ask the Account Manager for the source for variables, which could
be a clients account number, a loan identifying number, a bank code
number, an Account Managers ID and some others. Another number
was required to identify the receivers address. Some letter may need
more identifying numbers for special text blocks. It was even possible
to proceed this mask without a number for the address, but then an
extra step has to be passed to enter an address manually. Between
this step and the next step, the letter's raw data was retrieved from
the mainframe system, using the prepared ORBX interface, sending
data entered so far. On mainframe side the retrievers address data
was prepared into finished postal address lines, the variable data was
retrieved using the parameters given. As return data we retrieve a
kind of raw ASCII format describing the required letter base, the used
text blocks and set variables within. This data has to be send to an
Invaris DCS Server using a special EJB call. The main purpose of the
DCS server is to read an incoming request document and handle upon
it, for example returning a refined document or creating files for
further processing. In this case the call returned a binary “DDO” file
which the visual component of Invaris can display and modify.
Since “Invaris Formstation” is written in VB they delivered only a
automatically generated Java API which does the native calls to VB
DLL's in background. This leads to method signatures which where
looking awful to Java developers, for instance they use integer 0 and
1 for boolean values, or they use pointers to VB objects which we had
to convert into basic Java objects each time we had to modify
anything in the letter. So I suggested and implemented a helper API
to encapsulate the basic API, making it more transparent,
documented and comfortable to other developers. This saved us much
time in later development and made our code more readable.
The third MIK step of our application was splitted to two screens, one
for the Editor component and one for the actual MIK. Here the
Account manager can see the letter, as well as creating copies to
other receivers, how many printouts should be made, if transport
should be made by fax or email, if an TXT information should be sent
to a mobile. If the Account Manager wants to create copies to other
receivers, a forth MIK mask was presented to him to enter a receivers
account number or comparable to retrieve the address from
mainframe, or he could enter an address manually, like in second
step.
Almost all business logic behind the masks on client and on server
side was created by me. Just things happening behind the mainframe
or the DCS server haven't been influenced by me. The GUI design was
partly made by me. I was responsible for the JBF data model and the
method signatures to the mainframe server.
At the end of the business day a batch triggered process should start
the processing of the letters written that day. This means all letters
staying in the database table so far should be sent to the DCS servers
to be prepared for the printer queues and the stamping algorithms.
Since there were four DCS servers available this batch job should be
running multi threaded to become up scalable. I decided to use the
BEA CommonJ API to have a Workmanager handling this
multithreading work queue on the BEA Weblogic server. BEA V8.1
doesn't come with a workmanager built in, so we installed an open
source implementation called XcommonJ. We found on testing that
this implementation is not able to handle more than some hundred
jobs coming in at the same time. There were serious problem when
serializing the work units in the JMS queue. I took the sources from
XcommonJ, made some deep changes like don't saving EJB handles in
the queue but serialized work items. This lead to an performance
increase since before the change the XcommonJ Workmanager
created one stateful EJB for each incoming work item and stored the
handle. This lead to a need of a huge number of EJB's to be hold
either in memory or serialized on the hard disk. We removed this
completely but decided to make our work items serializable and put
them into the queue directly. This lead of course to changes in the
message driven bean that had to receive the work. After all it got a
very fast and stable Workmanager implementation, that can stand a
work list of the expected 20,000 letters per day. The number of active
MDBs of this workmanager implementation can be modified by the
deployment descriptor, so if in future there are more DCS servers
installed, our side of the system is upscalable. I also was responsible
for the class that selects and sends the work to the workmanager, as
well as doing the expected communication with the DCS server.
The database in background was a DB/2 for MVS, V8. The production
requirements were to use SQLJ for any kind of query to the database,
and all statements have to be bound to the database before they can
be used. This version of DB/2 wasn't able to handle stored
procedures. I had to write accessor classes for our modules which
needed to be interpreted by a SQLJ preprocessor.
Kreditwerk uses a slightly modified EJB 2 system. Beside of the
common EJB interfaces they defined a factory and a worker class.
The factory decides upon application configuration, how the worker
has to be called. It can be running as standalone rich client, doing all
the work on client side, or it can call an Application Server EJB for
function calls. This lead to the common problem that each methods
defined once had to be defined manually in seven classes or
interfaces. I suggested to use XDoclet for automated interface
creation, but the deployment process of Kreditwerk is somehow
written in stone and can't be modified so easy.
After end development phase in January we had a month of deep
testing by the domain experts, who brought up about 90 smaller to
mayor bugs or missing requirements which we fixed together in about
20 days.
Project Framework Upgrade to JBF V2 / Java 5 – March 2008
My responsibility was to find and remove problems in code resulting
from an upgrade to a new version of JBF/XBF. I could remove all
incompatibilities, beside of two where the JBF designers have to come
with a patch/update.
Project Framework Enhancement: View Manager – March 2008
JBF is build to handle all MIK steps in a single Window/JFrame. Our
Application BOB-Text had the requirement to show a separate editor
window. We solved that using some basic swing components and
emulating the bindings between the JBF model and our GUI. This
created the requirement in the Frameworking team to present a
common solution which makes the developer independent on the
information where the GUI component is in fact presented. I got
responsible to create this solution. I created a small API where users
can call the so called “View Manager” to show a visual component
(swing or heavyweight), together with some properties telling the
view manager how it should be displayed. The view manager can but
isn't forced to use all of this properties to decide in what kind of
Displayer the component is finally displayed. I defined three basic
displayers: a JFrame displayer who displays each component into a
new JFrame. The displayer can be configured for the left or the right
screen. Another displayer was the tabbed displayer, who would show
the components tabbed in a single Jframe. The third displayer was the
dialog displayer, who could display components as modal dialogs. The
displayer configuration is made by the framework on application
startup. Each component registered to the View manager gets a
unique Id which can be used by the application to show or hide the
component using a view manager method. If the component isn't
needed anymore it can be removed from the view manager. All
occurring window events where encapsulated into View Manager
Events which can be used by the application to monitor the state of
their component.
After creation of this View Manager API I had to do a demo
implementation in BOB-Text where we had made use of separate
windows. The implementation proved the usability of my code and it
also led to some nice simplicity in the code because all GUI logic
about Frame/Event handling could be removed.
Major
achievements:
Finished BOB-Text in given time, with some 20 days bug fixing while
test phase.
Exposure to banking domain, BEA Application Server, Developing
Framework API for Invaris Document Editor and self designed View
Manager.
Deep exposure to J2EE techniques and banking domain background
Dates:
May 2007 – August 2007
Organisation:
Avitech AG, Friedrichshafen, Germany
Avitech AG is one of the leading international technology developers
of IT systems for the aviation industry. They employ about 400
permanents.
Their software “AviSuite” is used bei Deutsche Bundeswehr and on
multiple international airports for management of flight data. It
creates reports for pilots, giving them important waypoint instructions
and information on starting and landing airports – as well as
important information about weather and dangerous things they will
encounter on route.
Position:
XML Report Designer (freelancing, contract with ASSPro, Germany)
Reported to:
Project Manager
Responsibilities:
“Avisuite” was using FOP 0.20.5 in that development phase, which
was deprecated. My first task there was to replace it with the most
current version 0.94. Since the API has changes significantly between
those versions it took some effort to reproduce the used functionality.
For instance the new FOP API is changed to fit to the
javax.xml.transform API, the old was more independent.
FOP was used to preview PDF reports before printing as well as
creating and printing these reports.
My next task was to reproduce some reports. The older version of
AviSuite created simple formatted ASCII reports from given database
data. The version we were working on created the data in XML
format, so it should be possible to customize the resulting reports on
demand for several customers around the world. For instance
Bundeswehr want's the output using a document format identical to
their manual forms. My task was so to create at first ASCII reposts
similar to the ones from old AviSuite using XML-XSLT transformation,
but also doing some special requirement reports for certain
customers. This was sometimes a very complex task, because XSLT
V1 doesn't give all means to do calculations, groupings and sortings
that were needed there. Instead I had to create XSLT “methods”
doing some calculations for me. I one case I even had to create an
external Java class to solve a requirement.
I created a URL resolver which could lookup files placed in external jar
files. The software architecture of AviSuite was planned in a kind that
resources should be placed outside of the application code in separate
jar files or directories. So customers could add their own resources
(reports for instance) as needed. The default URL resolvers used by
SAX and FOP created problems resolving all kind of URL's. My version
was more flexible and helped much resolving all kind of URL's from
application or from inside the reports.
I also created a test JDBC driver for the application testing. Because
sometimes it was needed to redirect some queries to another DB to
do some monitoring/measuring, but the software forced a fixed JDBC
datasource, I created the so called “MockupJDBCDriver”. From outside
it was instanciated with a target DB connection and a Driver class to
knock out. I then removed that Driver class from The JDBC driver
manager and replaced it with itself. So as soon as the application tries
to use that other driver (for instance an oracle driver) it actually uses
the mockup driver with its fixed target datasource.
Major
achievements:
Learned much about Maven 2 in Software architecture. Exposure to
aviation domain. Deep exposure to XSLT processing and possibilities
of Apache FOP 0.94
Dates:
February 2007 – March 2007
Organisation:
Service Zentrum Bayern (SZB), Nueremberg, Germany
SZB is the largest service partner for savings banks in Germany and
is handling transactions between 120 mandants in 8 German
countries, resulting in ca. 160 million transactions per year.
Position:
Web Designer (freelancing)
Reported to:
Team leader
Responsibilities:
SZB had the requirement of an administrative application to allow
some actions their current software doesn't offer. These requirements
where:
● All ATM machines report every night their current fill state.
They want to see which ATM machines didn't send or if their
report was not complete transmitted
● Their software created automatically refill orders to be sent to
client banks and their money transport companies. They want
to preview that orders with possibilities to void them, and then
the rest should be sent by fax or email to the corresponding
partners.
● They want some statistics pages for different business data,
like orders per money transport company and such
● They want a respond link page where the money transport
company specialist can confirm the order reception and later
can mark it as accept and completed.
This project was a pilot, means, we should only create basic
functionality to prove the ability and possibility of the application.
The projected time range was 5 weeks, the team size was four
people, my responsibilities was the setup of a Websphere application
server and needed resources. Then I had to prepare the web pages as
described in the requirements, using JSP and JDBC. Since time was
short we decided not to use advanced techniques like tag libraries,
but the application backbone should be designed with SOA in mind.
We had some trouble setting up our development environment
properly, since RAD 7 had some flaws and bugs, what lead to some
reoccurring misconfiguration's. The project organization was not well
dome, because results were expected very early. I had to do the
website design about three times, first time a simple blender with
static data behind to present a first frontend, a second one with a
finished model, and a third time after we found that the designed data
model wasn't representing the customers model in a right way. Of
course only some loops and queries had to be redone, the HTML/CSS
design wasn't affected.
The pilot project was finished successful almost in time, but the
expected following assignment wasn't made, since SZB started a
merger/relocation process and their project was put on ice.
Major
achievements:
Exposure to JSP, RAD 7 and IBM Websphere Application Server 6
Dates:
September 2006 – January 2007
Organisation:
DB Systems, Frankfurt a. M., Germany
Position:
Senior J2EE Developer (freelancing)
Reported to:
Team Leader
Responsibilities:
DB Systems is the IT system partner of Deutsche Bahn Group and is
supporting 80.000 users in about 380 productive IT systems. It is
maintaining thousands of user desktops and software products, as
well as creating DB specific applications.
Project Trassenportal – September 2006 – December 2006
Deutsche Bahn is in a changing progress from a before governmental
owned monopole railway corporation into a private owned company
that has to deal with competition. They now have to make their
railroad network available for other companies, that need to purchase
passing rights on certain network passages for either a single time or
on a regularly base. This led to the requirement to create an
administrative application where these other companies can enter
their passage wish or could change it later on.
My task was to help creating this application. Their domain experts
already had made a good analysis on the expected business cases
and supported us with many charts and decision tables and
documentation describing all possible flows and we only had to code
it.
The team size at DB systems for Java Application Development was
about 10 persons. About 3 – including myself - where responsible for
the part of the application described now:
A customer had first to select a train number. These where either
drawn from a number pool reserved for the customer or it has to be
an individual, free number, depending on the customer type. Our
software had to check if the customer selected an appropriate
number. (We created an administrative tool, too, to assign train
number pools to customers.) Then the customer had to enter
parameters for the requested train route for later use, as a starting
and ending train station, number of locomotives, power of the
locomotive, its braking capabilities, number of wagons, kind of load
and many others. These parameters must have been entered by the
customer to proceed.
If the values make sense, his order was accepted and forwarded into
a “task box” of an route specialist. The customer could see in his
“task box” all his requests and their state. The specialist uses the
given parameters in another part of the application (were I wasn't
involved) to define the actual possible train route, exact start and end
times, conditions and of course a price. Or he could deny the request
because it wouldn't fit into existing route usage.
I was working together with my two colleagues to implement these
requirements, designing GUI, handling distant server calls, JDBC to an
Oracle DB, and so on. All methods we created were tested against
JUnit tests while developing.
The application is running on a Bea Weblogic Server and functionality
on distant servers was called using RMI via dynamic proxy classes. All
code was written in Java 1.4. DB Systems used a self made GUI
framework to make it more easy handling data tables on screen and
to provide a unique designed front end for all application parts for
Deutsche Bahn.
Project Functionality Test – January 2007
When our Application was finished I was transferred to the testing
team. We had to simulate request of routes, creation of routes,
accepting/denying of routes in hundreds different variations.
Major
achievements:
Exposure to transportation domain, Java development, working with
Proxy calls.
Dates:
August 2006
Organisation:
Pixel GmbH, Munich, Germany
Position:
Web Developer (freelancing)
Reported to:
Project Manager
Responsibilities:
Project “e-gas”
Pixel is a software consulting company with about 100 permanent
employees. They are creating applications for private companies and
governments.
I was substituting a person going on vacation in a project that was
ending shortly in future. About 8 People were working on the final
development of the application.
“e-Gas” is a web application for management of transactions in the
European natural gas market. Anyone in Europe who is dealing with
natural gas has to care for a transportation route between source and
sink via certain pipes and knot stations. The gas must not be mixed
with gas from other customers, because each load has certain
parameters of pureness or mixture, so a route also contains
information about the time of transportation. This application is made
for the management of gas transportation contracts. My part of the
work was creating a few dynamic web pages using JSP and Struts.
The complexity within this project lies in a data model where any
change of almost any data has a timed validity. For example if a
company name changes, one record had to be updated about when
the name gets invalid, and another record contains information about
when the new name gets valid. You could change the view date of a
contract to a point in past and all data you see is then what was valid
at this time point in past. On one hand this lead to great flexibility, on
other hand it makes database queries more complex. I helped
designing the queries for extracting timed data, too.
The view page of contracts also showed a time table when and how
much gas from a certain quality has to be transported per day from
where to where. For dates in the past it has to be shown how much
actually was transported. These values are recorded hourly at every
knot in the net. The contract data also define how much this values
are allowed to differ.
The application was backed with stateful EJB's, and I had to create
some EJB methods for my web pages. Pixel used XDoclet and Ant to
do an automatized code generation.
Beside of the simple display of these contract/actual data, I had to
create an export functionality to an MS Access application as well as a
PDF report page. I made both of these Exports by first generating a
xml source file containing all relevant data, and then creating a XSLT
transformation file for it. The transformation was done on server side,
and then the result was shown to the client. Of course my http
response used the correct information to let the web browser start the
right application for it.
Major
achievements:
Exposure to the Energy Market domain, Handling data with timed validity,
development of JSP using Struts, XDoclet, EJB.
Dates:
March 2004 – July 2006
Organisation:
UGS Solutions GmbH, Stuttgart, Germany
UGS is a leading global provider of product life-cycle management
(PLM) software and services with nearly 4 million licensed seats and
46,000 customers worldwide. They were recently bought by Siemens,
Germany. One of their leading products is “TeamCenter Enterprise”
(TCE, earlier named “Metaphase”) for management of product data.
Position:
Senior IT Consultant (employed)
Reported to:
Project Manager
Responsibilities:
TCE is very customizable in its data structures, methods and front
ends. It supplies a basic thin client (web front end), a Java based rich
client (for CAD data management) and a Background Server, which
are connected through a three-tier-architecture. TCE needs a servlet
container like Apache Tomcat for Rich and Thin Client functionality, or
any modern Application Server. This architecture supplies customers
with about 80% of all what they need for their product data lifecycle
management. The missing 20% of features can be customized into
either by the client itself or by trained customizers like me.
UGS arranged further education to me to make me able to customize
and administrate TCE. After two month of training and even a three
week period working together directly with software developers in
their development center in Minnesota, USA I was sent to customers
to support them in customizing their requirements into TCE.
Project Wörwag, February 2006
I was needed as expert for the TCE reporting engine. Wörwag was a
pilot project, since it was the first customer in the varnish and color
domain using TCE for management of its color recipes. A team of
three people was working on fulfilling the basic requirements for this
project. The data model had to be modified, the web front end had to
be extended, and there should be a report output comparable to their
forms used to that date. My task was beside of helping with
installation and administration to create these reports using the
available XML output from TCE to create XSL-FO stylesheets for the
final reports. I've learned XML/XSLT/XSL-FO transformation for this
project, and the reports were looking acceptable to the customer. I
can't tell if this project was a success finally, when I left UGS they
were still in decision process.
Project BEHR January 2005 – July 2006
BEHR is a leading international company producing climate
aggregates for automotive usage with more than 60,000 people
employed. When I was needed there they had a software release
upgrade going on from an older TCE version. They have built in house
their own rich client application for TCE. For TCE I installed a new
Websphere Application Server installed on a Sun Solaris platform and
was responsible for administration and deployments for the next few
months. After the new Version was going live, I was taken into a 5
head development team to implement new features into their local
rich client application. For me this was almost GUI building, doing
some basic business logic tasks and calling the backing server
methods for any kind of data.
Beside of these tasks there was a major pain about TCE at BEHR side,
because they had large performance problems. I got the task to
deliver some solutions. At first I tried to optimize the local client
application. The start up time of the client was about two minutes at
the beginning. By paralleling some of the startup procedures as well
as optimizing the classloader algorithms I could half the startup time
to about a minute. I also found some bad code style in some
component preparations, so I could for instance speed up the filling
time of some combo boxes by factor 30. On the way I also optimized
some GUI focus problems to make it more comfortable, as well as
reducing some memory needs. This was very appreciated by the
BEHR employees.
Another performance problem was caused by a huge amount of data
that was exchanged between the TCE server and the client
application. After measure we found that about 10MB of data was
transferred transparently – just on log on. Since some of the clients
from other continents were connected to the server just via a small
shared 2MBit connection or even just a ISDN dialup connection, this
was a huge bottleneck. I designed a small proof of concept application
in Java using a compressed channel via TCP connection. It works like
a SSH tunnel, but it had a small monitoring web interface to display
the average compression rate and the amount of data that was
compressed in a browser, as well as to open/close channels. I used
Java channel technology instead of streams to make use of faster I/O.
After all this tunnel created less then 10% delay for the transfer, but
compressed the transferred data by more than 90%, resulting in a 9
times faster startup of clients behind small bandwidth connections.
The results where so impressing that they took the tool at once into
production.
Another area where I was responsible for was the creation of HTML
reports from the TCE XML reporting engine. The reporting engine at
this time created a flat list of product part data and their relations to
other parts (parent-child relations almost). In my reports I had to
reorder that data some times to create a hierarchical tree structure
and then to display it in a dynamic HTML report that need to be
printable. BEHR was a very satisfied customer when I left the project.
Project Daimler-Chrysler April 2004 – December 2005
Daimler-Chrysler is a large automaker in Germany with a large R&D
department. They use TCE for many years in their development lifecycle.
I was there to help them customizing the new TCE Rich Client for use
at their CAD development. My first task was to be the single point of
contact (SPOC) between Daimler developers in Germany, EDS/UGSDevelopers in the USA and Daimler developers in India. I collected the
requirements Daimler wanted to implement in the rich client and took
them with me to the developers in Minnesota, to see what is possible,
what not, and how long an implementation would take. Together with
another developers in USA we modified the Rich Client API for some
of the features, that weren't so difficult to realize, but some of the
requirements were not easy to implement and I hat to report later to
Daimler that it would take many more man-days then expected to
implement that. Daimler decided to not implement these features and
I supported them until end of the year with other customization tasks.
Major
achievements:
Good understanding of J2EE, Web services, Web applications in JSP,
Servlets. Various Application Servers, Deep exposure to TeamCenter
Enterprise Software.
Deep Exposure to XML transformation.
Dates:
February 2003 – February 2004
Organisation:
Nestlé Globe Center, Frankfurt a. M., Germany
Nestle Globe is a project to unify the nestle IT infrastructure between
all facilities.
Position:
Middleware Expert
Reported to:
Team Manager
Responsibilities:
2nd Level support, Middleware Administration
Major
achievements:
Understanding of MQ Series / Websphere MQ, Middleware architecture,
AIX administration, AS/400 Administration
Dates:
July 2002 – January 2003
Organisation:
Ton & Tronic GmbH, Darmstadt, Germany
Ton & Tronic was a small software forge, creating hard-/software to
smaller companies.
Position:
Visual Basic Developer, Crystal Reports Designer
Reported to:
CEO
Responsibilities:
Creating a VB application using an old Foxpro application as pattern.
Creating Reports comparable to old Foxpro reports.
Major
achievements:
Visual Basic Development, MS Access knowledge, Chrystal Reports
Reporting Engine
Dates:
Organisation:
Activest, Munich, Germany
The Activest Group was the asset manager in the HVB Group, the
second largest bank in Germany.
Position:
Java Developer
Reported to:
Team Leader
Responsibilities:
Creating a performance test program to simulate user access to a
web application, with interpretation of the server response,
automated form filling and sending. The program should measure
response times and should fire its requests in parallel with a
configurable number of simulated users at the same time.
Major
achievements:
HTTP, DOM, HTML, JDBC, Interbase SQL
Dates:
May 2001 - April 2002
Organisation:
Deutsche Bank, Frankfurt a.M., Germany
Deutsche Bank is one of the world’s leading international financial
service providers.
Position:
Cobol Developer
Reported to:
Team Leader
Responsibilities:
Creating a conversion program to convert customer accounts from
local european currency to EUR currency in a batch job using a MQ
Series API.
Creating an administrative module to modify online banking card
holders data.
Major
achievements:
Cobol Development, MQ Series, MVS, DB/2
Dates:
November 1999 – May 2001
Organisation:
Deutsche Telekom AG, Frankfurt a. M., Germany
Deutsche Telekom is one of the world's leading telecommunications
companies.
Position:
Network Engineer / External IP Specialist
Reported to:
Team Leader
Responsibilities:
Management of custom IP networks, Setup of VoIP servers and
networks, writing a administration application for RAS-configurations,
writing an application to record project related work time.
Major
achievements:
ASP, JSP, Java, Scripting, IP Networking, DB2, MSQL
EDUCATION/QUALIFICATIONS
Completed qualifications:
Institution:
City/Country:
Qualifications:
Year completed:
Sun Certification
Institution:
City/Country:
Qualifications:
Year completed:
Specialized high school
Stuttgart
Sun Certified Java Programmer (SCJP)
2006
Nidda, Germany
Specialized university-level graduation in electrical engineering
1994
Partially completed qualifications:
Certification as “Sun Certified Java Developer” – in process, will be finished 2010
Study for a German Diploma in “Applied Computer Science and Mathematics” at “University
of Applied Sciences” in 1998 in Fulda, Germany – will not finish this but may try to use
reached papers to get a comparable Bachelor qualification degree.
TRAINING COURSES ATTENDED:
2006 – LP IT Training course “Enterprise Java Beans” in Germany
PROFESSIONAL MEMBERSHIPS
Mena in NZ - www.mensa.org
HOBBIES/INTERESTS
Reading (History, economy, politics, technical books, science fiction)
Internet, Further Education, Family, Genealogy, Handwork, Electronics
Download