Mark D. Andrews
Mount Laurel NJ 08054
***************@*****.***
Skills Summary
Twenty-five years of professional experience in system architecture, project lead, requirements analysis, data analysis, functional and technical design, application development, database development and optimization in a variety of industries including retail sales, publication, telecommunications, entertainment, and finance.
Database design and development including Data Warehousing, Data Mining, Data Modeling, Database Design, and Performance Tuning.
Java, C/C++, SQL, UNIX Shell (Korn, Bash), PL/SQL, Perl, Python, TCL
Oracle DBMS RAC and non-RAC, DB2, MySQL, PostgreSQL
Eclipse, SQL-Developer, TOAD for Developers, Oracle Enterprise Manager, SQL-Plus
Self-motivated, excellent written and verbal communication, teamwork, and leadership skills.
Experience
Advanti Solutions, Inc., Boston, MA May 2014 – November 2016
Advanti is a consulting company serving the investment industry.
Open Aristos (OA)
Wrote the Oracle sub-component allowing OA, a Python application running on Linux servers, to communicate with Oracle databases using the SQLAlchemy framework.
Augmented SQLAlchemy providing Oracle specific functionality not provided by the framework via cx_Oracle. Accessing unique constraint information was one such augmentation.
Researched, tested, and developed the formal installation procedures for OA and all associated infrastructure (database, python, libraries, etc.) on both Windows and Linux.
Implemented REST APIs in Python. OA was designed to utilize any relational database system. These APIs provided a standard front end access to OA data.
SQL Server Upgrade Code Review and Analysis
Reviewed client's stored procedure code base of several hundred procedures to locate and categorize constructs that were incompatible with an upgraded version of SQL Server. Primarily this consisted of locating dependencies in the code on the expectation that rows returned from tables would be ordered the same as when they were inserted.
PostgreSQL and Sybase to Oracle Migration
Developed the process whereby a client's PostgreSQL database was migrated to Oracle. In addition to migrating the database proper (tables, stored procedures, etc.) the client's applications, written primarily in Java and Bash shell scripts running on Linux servers, had to be analyzed and modified. During this process a considerable amount of obsolete applications where identified and purged simplifying future maintenance.
Migrated the client's customer reporting system. This was a TCL application on Linux and Sybase database producing monthly, quarterly, and annual reports. The database was migrated to Oracle and the TCL applications were first modified to function with Oracle and then re-written in Java.
Thomson Reuters, Inc., Philadelphia, PA January 2004 – February 2014
Thomson Reuters acquired BIOSIS in 2004
Senior Systems Analyst – Content Management System (CMS) June 2007 – February 2014
Provide Oracle and Java expertise to development team which included educating and mentoring team members, reviewing team members’ code, and providing recommendations to management on improving the development process. Produced high level designs and detailed analysis of Linux applications the CMS group was charged with developing.
Re-factored the existing CMS loader, a collection of monolithic serial processing Java/Linux applications. The redevelopment stressed flexibility and extensibility. Component based architecture was chosen to allow new data sources to be added to the system with a minimum of effort. By employing Java applications and Oracle database components (stored procedures, functions, triggers, etc.) the system became both highly parallel using multiple threads and distributable allowing simultaneous operations on multiple machines. Total throughput of the system was increased significantly.
Designed and wrote the CMS extractor, a Java application running on Linux servers which uses plug-in software modules to provide dynamic behavior. The system synthesizes data from the various input sources, transforms the data into a customer defined format using XSLT processing, and packages the resulting information for delivery. The system is extremely flexible due to a design philosophy of separating customer logic from the engine that applies those rules. This allows changes to the system’s behavior to be made with a minimum of time and effort.
Collaborated on the logical and physical development of the database wherein the CMS content is stored. This is an Oracle 11g RAC database exceeding twenty terabytes.
Provided design and code review oversight of contract developers.
Analyzed and rewrote a very poorly performing Oracle stored procedure. By rewriting the SQL procedure as a Java stored procedure time of execution was reduced from 22 hours to 2 minutes.
Senior Systems Analyst – Web Utilization Reporting System (WURS) January 2004 – June 2007
Enhanced the WURS system to better utilize the database resources available. The system was analyzed to determine where inefficiencies existed. Improvements were then developed usually consisting of aggregating many small database operations into stored procedures. These changes approximately tripled the system’s throughput.
Ongoing maintenance development adding new features, monitored events, and reports.
Wrote a custom sorting library in C capable of sorting sets of proprietary data structures numbering in the millions of rows. Performance exceeded specification target of one second needed to support “two second click to paint” in the applications using this library.
BIOSIS, Philadelphia, PA December 1999 – January 2004
Senior Analyst
Designed and wrote the system by which BIOSIS’ product delivery transitioned from a proprietary format to XML. Oracle’s XML handling features along with complex nested tables and queries were used to extract data. Post processing of the XML data was done using Perl and XML/XSLT modules.
Re-wrote the data transfer component of Methodsfinder, a web based application providing experimental methods to the life sciences community. This component was a Perl/DBI interface used to extract and transform data from an Oracle 9i database using stored procedures, views, and custom Oracle functions to manage complex queries.
Ongoing analysis of both applications and database objects to improve performance of daily processing tasks.
Telesciences, Inc., Mount Laurel, NJ July 1998 – December 1999
Member Technical Staff
Designed, modeled, and wrote a set of C++ classes to provide a universal interface to various libraries such as Microsoft Foundation Classes, Rogue Wave, and the Standard Template Library.
Designed, modeled, and wrote a set of C++ classes to encapsulate operating system services. These classes allowed applications to be ported to multiple hardware platforms and operating systems.
Appointed to “SWAT” team. This team was formed by project management to investigate and learn new technologies then instruct and mentor developers in their application. The members of this team were selected based on their demonstrated ability to work independently and assume leadership roles in team environments.
PepBoys, Philadelphia, PA September 1996 – July 1998
Senior Programmer/Analyst
Wrote Visual Basic and C applications to automate and safeguard the administration of data delivery between Pep Boys stores, back office systems, and external data feeds from vendors.
Performed analysis and developed corrective actions to remedy a corporate wide data corruption problem related to Universal Product Codes where approximately fifty percent of items in stores failed to scan at points of sale. Corrective actions included developing applications to fix incorrectly formatted data and the development of user interface applications to prevent recurrence of the problem.
Automatic Data Processing, Mount Laurel, NJ November 1994 – September 1996
Senior Member Technical Staff
Restructured the Back Office File Distribution system, a middle ware application between stock brokerage back office and front office systems. The application was changed from a monolithic application into a framework of parallel processes that broke the work into collections of simple tasks. The reliability of the system was increased from less than ten percent, failure and manual intervention was required almost daily, to greater than ninety-nine percent. In the first three months of operation the system suffered no unscheduled downtime or processing errors.
Designed and implemented the Filter component of a client/server-oriented Broker Contact/Portfolio Management system written in Visual Basic.
Developed Back-Office File Distribution server for a brokerage information system in C and UNIX shell scripts. This system received files from client back office systems and stored the data in a Sybase database. The data was then processed according to clients’ needs and distributed to the front end systems being serviced.
Prysm Technologies, Inc., Englewood, CO May 1992 – August 1994
Programmer
Wrote a Touch Screen point-of-sale system for the movie theater industry integrating ticketing and concession sales. The system was also integrated with the back office system. Real time communication ensured that all POS nodes had current seat availability. A double-checked locking strategy was used to reduce contention when seat availability for a particular showing was plentiful.
Pacer/CATS, Denver, CO March 1990 – May 1992
Programmer
Developed a suite of utilities to remotely manipulate indexed audio files. This significantly reduced long distance charges when updating the audio message files for Teleticket, a dial-up movie ticket ordering system hosted in several locations nationwide. Prior to this, support personnel were required to download entire files at modem speeds, edit the file locally using vendor supplied tools, and upload the modified files. Time to Market of new information was reduced to near real time.