// Financial Services Client

Client:  Fortune 500 financial services
Users:  Analysts, accountants, managers, directors

Working on a small team, I refactored and patched legacy code, designed and built custom applications, and analyzed operating data for senior management.  I coached less experienced developers and implemented improvements in both technical and business processes.

Contents
Core System Modifications #
Production Reporting Applications #
Tactical Data Analyses #
Process Improvement #


Core System Modifications #

I coded, tested, and integrated modifications to the legacy production system in response to performance issues, defect reports, and user requests.  As feasible, I restructured the database schema to improve data integrity and refactored the code base to rationalize module dependencies.

Library-Level Changes

  • New module to re-link tables automatically, with an option to switch easily among dev, test, and prod file sets
  • New function to round currency computations correctly

Framework-Level Changes

  • New error logging and error reporting infrastructure to replace manual logging
  • New user log-in infrastructure with Windows-aware auto-login and escalation functionality for privileged accounts
  • New reporting infrastructure to standardize parameter-passing methods and viewing / printing techniques
  • New Excel export infrastructure to enable code re-use

Feature-Level Changes

  • Various patches to address performance issues and logic errors in automated batch-processing of credit card payments and client remittances
  • Various patches to existing reports and extracts to fix defects or modify functionality
  • Re-implementation of incentive compensation reports for sales management, meeting complex requirements with flexible layouts and custom parameter input forms
  • Re-implementation of “Accept-Payment” use case, including code and UI, to fix errors in balance computation and payment distribution
  • Re-implementation of “Add-Comment” use case, including code and UI, to fix defects in database updates and improve keyboard-based usability
  • Re-implementation of “View-Comment” UI to fix defects in data sorting and screen updating

Production Reporting Applications #

I developed two mission-critical reporting applications to meet the requirements of daily operations in the payment processing and customer service areas:

  • Payments Collected Reporting #
  • Gross Client A/R Reporting #

I collaborated closely with the end users to construct reliable solutions in the face of anomalous source data and volatile requirements.

Payments Collected Reporting #

This standalone application extracts payment activity from the core production database, remediates data anomalies and data quality issues, and then creates internal and external reports according to a complex set of business rules.

The payment processing area relies on this application to reconcile and balance its internal sub-systems each day.  It then utilizes the system to generate hundreds of individual pdf’s, each showing the payment activity for a particular client.

The system creates a control file of email parameters and hands off the pdf’s to an enterprise job, which sends out the reports in two service windows each day.  The system archives the reports to the client portal web site as well.

Features of the application include:

  • Support for complex use cases with overrides for internal users
  • Support for complex client-specific content generation rules and exceptions
  • Support for complex client-specific formatting rules and exceptions
  • Smart UI:  date aware, remit interval aware
  • Detailed progress reporting
  • Diagnostic warning messages
  • Detailed logging for technical trouble-shooting

Gross Client A/R Reporting #

This dedicated application provides specialized accounts receivable functionality for so-called “gross” clients—those who contracted with the company under gross remittance terms.  The application extracts payment data from the core production database and produces agings and invoices, taking into account the gross remit arrangement.

Agings are used internally by corporate accounting to ensure that escrow liabilities are maintained at the appropriate level.  Invoices are sent to gross clients for collection of fees due to the company.

Features of the application include:

  • Aging reports, detail and summary, for corporate accounting
  • Invoicing for fees due, sent to external clients
  • Diagnostic scans of recent payment activity to flag errors
    • Check for incorrect payment distribution caused by credit-card auto-post routine
    • Check for payment application contrary to external client policy

Tactical Data Analyses #

I analyzed inventory and revenue data in support of operating activities and executive decision-making.  I populated dimensional data models and created interactive workbooks to deliver cross-tabulations, agings, and reconciliations.


Process Improvement #

I implemented improvements in business and development processes, introducing team members to better practices in the areas of data modeling, procedural coding, and system testing.  I led by example in raising standards for technical design and technical documentation.

Development Process Improvements

I improved development processes via formal recommendations to management, by providing concrete examples in my work product, and through one-on-one coaching of less experienced developers.

I provoked discussion of big-picture concepts and situation-specific techniques:

  • Trade-offs in technical architecture and design, the value of planning, the cost of haste.
  • Realities of RAD, the importance of developer discipline in this context as to organization, standards, and conventions.
  • Fundamental concepts in relational database design and implementation, e.g., concepts of normalization, criticality of data types, keys, constraints, DRI, etc.
  • Fundamental concepts in procedural coding, separation of concerns, modularization, cohesion / coupling.
  • Accepted good practices in VBA coding, Option Explicit, naming conventions, commenting conventions, error handling, etc.
  • Accepted good practices in data access coding, parameterized queries instead of SQL strings, temp tables to facilitate debugging, etc.
  • Fundamental concepts in UI design, adhering to standards, maintaining consistency.
  • Long-term importance of adequate technical documentation, consideration of the next person to touch the code.
  • Value of of automation in reducing man hours and error incidence, via third party tools to facilitate impact analysis and generate technical documentation, via home-grown utilities for patching production code.