First USA Bank (merged to Bank One then Chase)
April 1999 to October 2004
Role: Tech. Lead, Senior Programmer Analyst
My previous work at Infinity was being phased out from C++/MFC/COM/DCOM to Visual Basic and VB ActiveX as there was a turnover in management due to office politics. I tried to explain to the new manager who didn’t like C++ but preferred VB, that we used Visual C++ because we were doing DCOM and other work that Visual Basic wasn’t designed for, and that VB ActiveX controls were for implementing IDispatch for Visual Basic controls and not what we were doing at all. My argument was to no avail and I could see the “writing on the wall”.
A friend from a previous company at Rollins, recommended me to a few managers at First USA Bank which became Bank One, and then Chase etc. They called me and hired me over the phone with no interview as I worked for them at the JP Morgan GCM project. They offered me a nice signing bonus, good salary and a technical team lead position and furthermore, they were local in my town and I already knew the management there.
My first project was being a team lead, along with two other teams, designing the credit card collection software. Each lead could hire two developers. I brought on one of the people I mentored from the last job who was let go. This project was a major success with the bank.
Another project I worked on was a decisioning engine called “Strategy Engine”. This was a library with functions that were passed many parameters about a customer and made predictions about the customer’s payment behaviour. It also executed actions on decision nodes such as sending emails or updating databases or really anything. It was a very sophisticated and important piece of software used often by management and was used by a few systems. It interfaced with outside data sources and several databases. The decision strategies were fed in by ever changing “decision files”. The decisioning was designed by the business management and financial analysts etc.. This was one system that could really be considered “computer science” rather than data processing.
There was another project that I was asking for but warned not to take because “it was a bag of worms”. This project was a system to run credit payment programs for those behind on their payments. It was Java, servlets, JSP, Apache Tomcat then WebLogic. Another team of Java developers could not get it working in production and it was a big headache for upper management. I saw it as an opportunity to get into Java and web rather than the client server I’d been doing. That team’s manager was not technical and his developers were unable to design the system correctly, so he became the manager and I became the technical lead. I spent a month reverse engineering the code and found major threading issues so I redesigned the system. We got it successfully into production. As this project was a great success my reward was being technical lead on a much bigger system. My team stayed on with me for this new system.
The reward for previous successes was a very large project that would take a few years called “Payment Programs” to fulfill government regulations for payment programs for customers in default that went on credit programs. This system was to manage the entire process. Payment Programs had a client with Java and JFC (Swing), batch processes with Java and web with Java, servlets and JSP. Some of the tools and technologies were Java, Visual C++, MFC, Unix C++, PL SQL, Structure Builder, J2SE, J2EE, Client/Server, Thin Client, JFC (Swing), Servlets, JSP, ANT, XML, JDOM, JNI, WebGain Structure Builder, Visual Café, WebLogic, IBM AIX, Sun Solaris, Windows NT, Oracle 8, 9i , UML, IBM Tivoli Work Scheduler (TWS), Peregrine Incident Management. This project did not go into production without incident or on schedule. I made recommendations from testing statistics that the business refused such as using data from a day old warehouse instead of going the credit card handler company for instant data. The batch processes were running hundreds of thousands of transactions and it would take a half second for each call to the outside vendor. That was the issue. They brought in a team from Infosys to analyze my design and find out what went wrong with my design but they gave them the same reason. It was impossible to get instant data from the vendors to run batch processes. Eventually the system went out by using the data warehouse data as I had suggested at first. After this system went into production my career turned into maintaining and monitoring this system rather than doing new development. This was not the path that I really wanted.
As my career at Bank One as a team lead started turning into more management and babysitting systems, I thought long and hard, consulted counselors and decided that I would leave and pursue staying technical doing contracts. This was a very big decision as my position was with a good company with good compensation. I just wasn’t doing what I started out doing there though.