Now working for several years I didn't get around this much, but I had some pretty interesting systems in my fingers. A SAP HR module, the hard disk organisation software on a huge VMS/OS390 box and some more during my apprenticeship. A call center application, a whole financial information website, a portal system and now an security order routing middleware afterwards.
Reflecting on this, it seems I'm pretty much addicted to Java an Linux. :-)
Here is a reversed chronological overview of the things I've done up to now:
Some time after the OnVista Group was bought by Boursorama, a french bank with the german subsidiary Fimatex, the corporate strategy changed due to influence from the new management, replacing Java as main web platform with PHP. I'm not that uncomfortable with PHP, but somehow everything felt like change. So a great opportunity was opened up at DuMont Net to build a completely new Content Management System for all newspaper pages of the publishing group. This includes several local newspapers like EXPRESS, ksta, but also national papers like Frankfurter Rundschau and netzeitung.
As a base system, DuMont decided to use the CoreMedia CMS. CoreMedia is a pure-JAVA CMS system which offers several proprietary java daemons which organize the content and most of the features neccessary to scale large websites, as well as a somewhat handy framework for the development of the web application serving all web resources. This framework is based on Spring Web MVC with a robust integration with their client api, so to say.
My focus is on core development of the web application (reads minimal templating), packaging for the deployment arifacts using maven and ant, configuration of the surrounding systems like apache 2, as well as maintaining most of the development support systems like subversion, Redmine and hudson.
After a long time with Cortal Consors I wanted to see something new so I took an assignment with the OnVista Group in Cologne. Don't get me wrong, I loved working for Cortal Consors, but six years is a pretty long time. With more than 100 million page impressions per month OnVista is the leading financial website in germany. The current website is run with PHP and hardly maintainable, so the decision was made to refactor it using Java on JBoss and Tomcat, which was my initial task there.
As it seems the french guys are hunting me: like Consors, OnVista was bougth by Boursorama, a french internet broker. Their plan is to take advantage of the name OnVista in the financial sector and promote their moderately successful subsidiary Fimatex, now named OnVista Bank, with that name, as in germany OnVista is a strong brand in the financial sector.
After the merger we found out all those Boursorama guys are PHP tinkerers. So, for political reasons, the Java rewrite was stopped and the present developers (like me) were put onto the Tradingbird financial community.
With Tradingbird I was the technical lead of a team of six developers, which resumed the development of the software from an external contractor after insourcing. The main task was to stabilize the plattform, fixing technical and functional bugs in the software, and developing new features. My responsibilities were to define the over-all architecture of Tradingbird and migrate it from the current, rather crude, implementation to a modern web application, review and control the other developers and answer technichal questions concerning the used frameworks and tools, including among others Struts2, Maven 2 and EJB 3.0. Other tools we used for development, tracking, documentation and stuff were CentOS Linux, Eclipse Europa/Ganymede, Artifactory and the Atlassian software stack consisting of JIRA, Confluence and Bamboo.
In January 2005 I switch to another team inside Cortal Consors S.A. I went to the team Middleware Development responsible for the central orderrouting systems in the different countries. This software is the interface for all available tranding frontends like the trading web application on the homepage or the Java Client "Active Trader". As the interface to the frontends is always the same, once implemented the interface to the local banking backend system, we're able to roll out all frontends already set up in other countries, what is a huge cost synergy.
Currently there is a german, french and spanish version of the middleware, based on the same codebase or kernel, with slight adjustments to meet local requirements.
Almost all my time I'm working on the german codebase. My last big shot was a MBean controlling a semi-push mechanism polling constantly a database for new order updates, transforming them into xml and then write them to a JMS queue on a certain topic so another server gets acitve and pushes the information to the appropriate Active Trader client.
Another interesting task was the so-called switch order. This is as service invoked by the frontend, swapping one deposit position to another stock. The client saves money in oppostion to separate sell- and buy orders, and we get two orders by one click. The switch order gets involvend on certain marketing campaigns where certain securities (may) underperform recently or upcoming issued certificates. So below the surface the service performs one OTC sell order and afterwards either an OTC buy or an underwriting of an IPO. This was pretty tricky, as IPOs may have certain restrictions like minimal or maximal investments either per amount to invest or pieces to sign for, or a certain step size within this range.
Time passes, and I switched to Consors Discount Broker AG. I started with a new team implementing the new website. I was assigned to the group doing the part serving financial market information, charts, news and stuff like that.
Approximatly one year after we went online I became the system responsible for the german and (meanwhile implemented) french online security information systems. Somewhere I've some screenshots of this version of the website. As soon as I find them I'll link them here.
Both (the german and french) web applications are struts-based J2EE web applications running in the Bea Weblogic Server cluster on Sun Solaris. Lots of Java open source tools have been used for it, such as:
In addition was responsible for the reporting of real time quote usage of our customers to the single exchanges, as long as they want the people who make the quotes to pay them. For this I wrote a library which implements certain restrictions of the usage of quotes from single exchanges (e.g. max. 1000 quotes per day per user) and ensures the logging of each used quote. This information has to be shared over a whole cluster which currently does not have server-sticky user sessions. For this lightweight and quick, UDP-synced protocol has been implemented to do the sync of small objects, as the size of such an object usually is not larger than 1500 bytes, what's the usual maximum size of a IP frame.
While writing my final examination the IT department of Quelle AG was outsourced, so I was employed at Itellium Systems and Services GmbH, the IT supplier of KarstadtQuelle AG.
There I wrote a call center agent application. It was done in SmallTalk, the purest object oriented language I've ever seen. The client application connects through a CICS system to a mainframe for all the contact information as well as order creation and stock queries. Per-callcenter Oracle databases were used for client configuration information as well as service requests and such crump. My main task in this year was bugfixing in the order management part of the application as well as the development of an online-background solvency check with several credit-agencies (like Schufa).
This was the first time I really learned what object oriented programming means, an i loved it.
Everything started with my apprenticeship with Quelle AG as a "Fachinformatiker Fachrichtung Anwendungsentwicklung". We got a lots of courses there in the beginning, starting with history of computer science, over threoritical information processing drawing structograms with pencil and eraser for two weeks, ending up in programming lessons for several major programming languages, e.g.
After this first part of my apprenticeship we got our first assingments to practial trainings with "real world teams". Besides others I had to set up some organization software for the storage attachted to the Quelle Mainframe, where all the data on the stock of inventory, customer relationship information, orders, well, pretty everything was kept.
Then I was assigned to the Human Resources department and had to implement a simple way to add company specific help to the online help delivered with SAP/HR, as, like on every SAP installation, a reasonable part of the default behaviour is adapted to the specifications of the implementing company.
My last IT specific assignment was with a team developing software used to organize the stock of inventory, delivery process and tour planning in the Quelle local stocks, which hold e.g. household commodities like washing machines or furniture and deliver it to the customers. This was an Oracle Forms application.
I had also, as everybody, at least one non-IT-specific assingments. Mine was with the purchasing department, where I supported the purchasing manager while creating a new product proposal for a smaller specialized cataloge for childrens' clothing. Afterwards I worked with the disposition team for this assortment to have enough of the offered goods in stock.