GREGORY K. PIETSCH
Ewing, New Jersey 08618
609-***-**** (home), 609-***-**** (cell)
********@*******.***
SUMMARY:
30+ years of IT experience with 25 years of C/C++ including analysis, design, programming, testing, and maintenance of software applications; Demonstrated experience in understanding product requirements and functionality, in order to design appropriate test plans and test cases to verify features and functionalities; Experience with white box testing: reading, understanding and analyzing other developers' code in C/C++; Track record for identifying bugs through systematic testing; Experience with scripting languages.
SKILLS :
C (ANSI/ISO 1989, 1999, 2011, 2014), C++ (ANSI/ISO 1998, 2011, 2014), Visual C++ (Microsoft Visual Studio), COBOL, HTML, XML, XSLT, Unix shell scripts such as ksh and bash, Perl, Java, AWK, Pascal, BASIC, 80X86 Assembler, Python, lex, yacc
Unix (AIX, SCO, Sun Solaris, HPUX, POSIX environments, many different versions), Linux (IBM PC and embedded environments), MS Windows (3.1, 3.11, 95, 98, NT, 2000, ME, XP, Vista), MS-DOS, FreeDOS, OS/2, Stratus VOS, Cygwin
Multi-threading, Three-tier programming, Object-oriented programming, Linear programming, Low Latency; Socket programming using protocols such as TCP/IP and UDP, and Serial Communications in Unix, Linux, and MS Windows; Optimization; SQL, Oracle (10g and 11g), Oracle Replication Technology, Pro*C, PL/SQL, Embedded SQL, MS SQL Server, MS Access, DB2, ODBC; Algorithms, Data structures, Linear Algebra, Market Data
Linux kernel programming; Device driver programming in MS-DOS, MS Windows, and Linux
MFC, wxWidgets, STL, Swing, AWT, W32API, Qt, other libraries
GNU utilities, make, makefiles, autoconf, automake, ANT, CVS, Subversion, ClearCase, Asterisk, SOAP, WebLogic, Sun Studio, SIPtap, SMPP, SNMP
Object-Oriented Design, Rational Unified Process, UML, Use Case Analysis, Data Structures, Design Patterns, Rational Rose, Jude; IBM PC compatibles, Sun SPARC Workstations, Stratus
MS Office, MS Visio, Libre Office, Open Office, AbiWord, Lotus Notes; Contributed to several open-source projects, including newlib, the FreeDOS project, and wxWidgets; Wrote many of the answers to the questions in Kernighan and Ritchie's The C Programming Language, 2nd Edition, that are posted on http://www.clc-wiki.net .
Wrote and maintained FreeDOS Edlin for the FreeDOS project; Experience in various application architectures such as client-server, three-tiered, distributed component, and multi-tiered architectures.
Experience in Telecommunications, Financial (including Banking), and Electronic Data Interchange applications; Experience in high-scale Production Systems; Experience in migration; Experience in Automation.
Strong work ethics, self-motivated, and a good team player. 1
PROFESSIONAL EXPERIENCE:
VIVA/Fiserv, Inc./Berkeley Heights, NJ September 2023 to December 2023 Consultant/Software Engineer
Duties included maintenance of three legacy software programs (DICE, ASET, and ARCO) written in C and Bash shell for this financial services company. These programs were being ported from a Solaris environment to a Linux environment. A program called Fortify was used to check for memory leaks in the software, and the software was modified to pass Fortify. Hardware used included PCs running Windows 10 and PuTTY to communicate with the Linux and Solaris boxes.
DISYS/Comcast, remote from home/Philadelphia, PA August 2022 to October 2022 Consultant/Software Engineer
Duties included programming in C and C++ on a contractual basis for Comcast in Philadelphia. The project involved maintenance of embedded software on set-top boxes, including open source projects such as AAMP. Made suggestions for improvement of the product. The hardware included PCs with Windows, and Ubuntu Linux via Virtual Box. The Software included JIRA and Ubuntu Linux. Cygwin was used as an alternate environment. An Agile methodology may have been used for this project. Infosys, remote from home September 2021 to February 2022 Consultant/Software Engineer
Duties included programming in C and C++ on a contractual basis on a Linux box. Participated in a few meetings. This project did not go far and was terminated due to funding issues. Data Intelligence, L.L.C., Moorestown, NJ January 2021 – March 2021 Consultant/Software Engineer
Enhanced, debugged, and maintained the Display subsystem of the Aegis Weapon System for ASRC Federal, working closely with specialists from Lockheed Martin. Acquired an interim secret security clearance for this role; maintained strict secrecy. The system was written in C++ on Linux boxes; the methodology used was Agile. Dollar Tree/Family Dollar, Inc., remote from home April 2020 to June 2020 Consultant
Enhanced and maintained the company’s Catalyst warehouse tracking system. The system used a proprietary windowing library built on top of the ncurses character-based windowing library and an Oracle SQL database managed with Pro*C embedded within the C code. The system was written in C89 and worked on a Linux box. Purvis Systems, Inc., New York, NY and Middletown, RI July 2019 to October 2019 Consultant
Worked on a software project to get two executable programs that were running on Red Hat Enterprise Linux 3 running on a Red Hat Enterprise Linux 8 virtual box. The programs were 32-bit ELF binaries that needed to be running on a 64-bit Linux system without modification. The software was originally written in C89 and C++98 on a Unix/Linux system. Searched online for ten-year-old shared libraries that the binaries needed. This project was done under contract from the Fire Department of New York. Verizon Wireless, Piscataway, NJ November 2018 to February 2019 Consultant
Wrote and maintained software written in C11 and C++14 using Makefiles on a Unix system. The systems included several different versions of Unix, including AIX, Solaris, HPUX, and SCO; part of the job was to write portable software that would work on all of these. The software included STL and the Boost libraries along with multi- threading components. The environment was an Agile environment with many stories, sagas, and a hierarchy of 2
assigning modifications to maintainers. Refactored existing software. Added comments where necessary. Implemented algorithms.
Orion, Inc., Monmouth Junction, NJ and Edison, NJ July 2017 to April 2018 Software developer (C/C++/Unix shell) and maintainer Wrote, maintained, and ported software written in C89 and C++11 (part was in Unix shell scripts such as ksh and bash and PERL) under contract to AT&T. The software was for CMT (Capacity Management Tool), part of the PMOSS application.
This software was part of a project to report on data about routers in a large network.
Attended lectures about the software in preparation for taking over its maintenance.
Refactored existing software.
Downloaded data on a daily basis.
Ported software from Solaris to Linux.
EmpireCLS, Secaucus, NJ Dec 2015 to Jan 2016
Software developer (C/Unix shell) and architect
Wrote and maintained software written in C89 on a Unix system for this limousine service. The software was for the reservation system. Also used bash on a daily basis.
This software used Curses as a GUI component.
Identified bugs.
Refactored existing software.
Wrote detailed reports about daily activities.
Implemented algorithms in software.
Verizon Wireless, Piscataway, NJ and Warren, NJ Sep 2014 to Feb 2015 Third-party consultant, software developer (C/C++11/Unix shell) and architect Wrote and maintained software written in C89 and C++11 using Makefiles, STL, and Boost on Solaris and HPUX environment for the POS division. Also used Asterisk for telephony applications. Also used bash on a daily basis.
Wrote a script to convert COBOL programs to OpenCobol. Using this script saved the company $1.2 million in licensing fees.
Wrote a program that scans text files and outputs missing information. The program automated a difficult task rather instantly and saved hours of manual work.
Wrote shell scripts that gathered data from various computers and put them into a format for e-mailing. This was done using an external program that used socket protocols such as TCP/IP and UDP for communication and messaging queues.
Filled data into spreadsheets that were later used in decision-making.
Implemented algorithms in software and used data structures. AT&T, Middletown, NJ Jun 2014 to Aug 2014
Third-party consultant/Senior Lead Programmer (C/C++11)/Architect Maintained software written in C11 and C++11 and Makefiles on Unix/Linux environment. The project involved added to existing code that implemented an answering machine in software. Used STL and Boost libraries. Also used ODBC and Asterisk and bash.
Responsible for coding, testing, and maintenance, including optimization of existing code.
Divided business requests into groups for the purpose of assigning teams of coders to tackle them.
Programming was in C and C++ on Linux.
3
J. P. Morgan Chase, New York, NY/Dublin, OH Dec 2013 Consultant/Programmer (C/C++11)
Worked on a project to rewrite existing C89 code in C++11. The environment was a low-latency Linux/Unix. Used OOP and OOD skills and bash.
Harris Corporation, Lynchburg, VA May 2013 to Oct 2013 Consultant/Programmer/Architect (C/C++/Windows)
Assisted in project to port Harris’s Maestro IP software platform to their Symphony hardware platform. Wrote several sections of the design document for the project and drew accompanying UML diagrams using Miscrosoft Visio. Learned ClearCase and MS Visio on the job. The software was written under Microsoft Visual C++ using the native API (W32API) and Visual Basic on PCs running various versions of Microsoft Windows including 32-bit Version 7. Also worked on resolving bugs found in existing software. Maintained communications with teams in both Lynchburg, Virginia and Rochester, New York during the course of this project.
Responsible for requirements analysis, application design, coding, testing, and maintenance, including optimization of existing code.
Programming was in C99 and C++11 on Microsoft Windows using Microsoft Visual Studio 2010. Used STL, Boost libraries, three-tier architecture, data structures, design patterns, serial communications, multi- threading, linear programming, linear algebra, and socket programming, including protocols such as TCP/IP and UDP. Also used messaging queues.
The product was an embedded police dispatch unit.
At every tier, every application had a layered software design such as presentation layer, distributed access layer, business logic layer, data access layer. This would facilitate down the line replacing one layer with another; for example, one could replace the distributed access layer with another distributed access layer technology with great ease.
Participated and contributed in meetings for release planning.
Developed UML class diagrams, sequence diagrams, collaboration diagrams.
Leader and contributor to a four-person software architecture team. Hewlett Packard/Credit Suisse, New York, NY Oct 2012 to Nov 2012 Consultant/Programmer (C/C++03/Unix shell)
Ported software and databases from a Sun Solaris environment to a Linux environment at Credit Suisse under contract from Hewlett Packard. The software was written in C99 and C++03 on Sun Solaris with makefiles that also had to be rewritten for Linux, as there were minor differences between the two environments. Those makefiles were now portable and could be used with either environment. Also used bash. The environment was PCs connected to a Linux box via a terminal program. Also attended lots of meetings. This was a low-latency E-trading platform. UBS, Inc. Weehawken, NJ June 2011 to Sep 2011
Consultant/Programmer (C/SQL)
Developed and maintained software for this large Swiss bank. The software was written in C89 and SQL on Sun Solaris boxes under contract. The environment was PCs connected to Sun Solaris (Unix/POSIX) boxes via Exceed. Also used bash on Cygwin as an environment. The shop used OOP and used C++03, ODBC, socket programming, serial communications, and multi-threading.
Responsible for requirements analysis, application design, coding, testing, and maintenance.
Programming was in C++ on Unix. Used three-tier architecture, data structures, design patterns, serial communications, multi-threading, and socket programming.
At every tier, every application had a layered software design such as presentation layer, distributed access layer, business logic layer, data access layer. This would facilitate down the line replacing one layer with another; for example, one could replace the distributed access layer with another distributed access layer technology with great ease.
4
Service-enabled the applications by identifying, designing, and implementing services that the applications could provide to other applications.
Participated and contributed in meetings for release planning.
Interacted with users, did requirements analysis and object-oriented design. Used customized subset of RUP. Performed Use Case Analysis to elaborate requirements.
Developed class diagrams, sequence diagrams, collaboration diagrams. DiMi, Inc. New York, NY Sep 2010 to Dec 2010
Senior Lead Programmer/Analyst (C/Unix shell)
Developed and maintained proprietary software for this security and building monitoring company. The software was written in C89 under contract, and automated the monitoring. Learned much about embedded systems on Unix/Linux, cloud computing, as well as programming on small devices such as SheevaPlugs. Wrote makefiles for original programs written in C89 as well as configure scripts using Autoconf and Automake. Used gSOAP as a SOAP library with XML, as well as serial communications libraries and Asterisk. The environment was PCs running various versions of Unix/Linux as well as specialized hardware.
Responsible for requirements analysis, application design, coding, testing, and maintenance.
Learned embedded Unix software while on the job.
Programming was in C on Unix/Linux. Used three-tier architecture, data structures, design patterns, and socket programming. Also used bash on a daily basis.
Programmed the Linux kernel and customized device drivers. Brown Brothers Harriman, Jersey City, NJ Aug 2010
Consultant (C++98/Unix shell)
On a week-long project, developed and maintained EagleStar software, written in C++98 on a Unix platform. This project was to identify bugs in the EagleStar engine, a piece of software that sits between the BBH website and databases of financial information, including market data. The environment was PCs running Windows XP connected to Solaris boxes with Sun Studio used as an IDE.
Responsible for requirements analysis, application design, coding, testing, and maintenance.
Learned EagleStar software while on the job.
Programming was in C++98 on Unix. Used low latency, three-tier architecture, data structures, design patterns, and socket programming. Also used bash.
Burlington Coat Factory, Inc. Burlington NJ Aug 2007 to Feb 2008 Senior Lead Programmer/Analyst/Architect (C/Unix shell) As a Senior Lead Programmer/Analyst, performed coding, testing, and maintenance. The work environment was PCs running Windows XP connected to various Unix boxes, including Solaris.
Responsible for requirements analysis, application design, coding, testing, and maintenance.
Learned Electronic Data Interchange programming while on the job.
Programming was in C89 on Unix. Used three-tier architecture, data structures, design patterns, and socket programming. Also used bash.
Used socket programming libraries.
Participated and contributed in meetings for release planning.
Worked closely with Quality Assurance Department; Decided test strategies. Tested early and tested often. Merrill Lynch, Inc. Hopewell NJ Jan 2006 to Jan 2007 Senior Lead Programmer/Analyst/Architect (C/C++98/Windows) The Retirement Group had several applications that provide functionality for administering and managing various retirement accounts. The applications have various modules for plan setup, contributions, administration, 5
investments (in stocks, fixed income instruments, bonds, etc.), reports, inquiries, loan processing, profitability analysis, etc. The environment was PCs running Windows XP with Microsoft Visual C++98 and Microsoft Excel connected to the Solaris machines using Solaris's Exceed.
Responsible for requirements analysis, application design, coding, testing, and maintenance.
Programmed applications in C89 and C++98 with embedded SQL using multiple versions of Oracle (10g and 11g) on PCs running Windows XP and mainframes running Solaris
Used Oracle Replication Technology, ODBC
Used three-tier architecture, data structures, design patterns, and socket programming library
Used MFC as GUI library
Guided, mentored, and led a team of four programmers. Assigned tasks, reviewed code, mentored junior developers, laid out policies for coding guidelines, etc.
Performed technical interviews to help choose programmers for the team. Conducted technical screening interviews on phone followed by in-person interviews
Participated and contributed in meetings and discussions for release planning.
Decided test strategies. Tested early and tested often
Wrote shell scripts in Unix (Solaris) for the manipulation of data
Wrote programs in Microsoft Visual C++ to address a security concern for a critical software component
Wrote many small programs to assist with a data conversion project
Works with business, application developers, and enterprise architects to determine how the application architecture will optimally meet business needs, while promoting adherence to analysis, design, development standards and object oriented methodologies
Reverse-engineered existing applications to produce standard UML design documents.
Recommend improvements to existing application architecture; Optimize the technical performance of an application architecture, including networking, database, and application server performance.
Develop procedures that ensure application components are consistent with each other and are executable.
Implemented algorithms in software and used data structures.
Won Hero of the Month awards, 8/2006 and 12/2006. Jai Guru Capital Management NYC June 2001 to December 2005 Senior Lead Programmer/Analyst/Architect (C/C++98/Windows) This small capital management firm was in the business of stock trading and analysis of market data. The environment was PC compatibles with Microsoft Windows XP and Microsoft Visual C++ with Microsoft Excel and its Visual Basic interpreter.
Wrote and debugged programs as needed in C89 and C++98 using Microsoft Visual C++ (Microsoft Visual Studio 6) on PCs running Windows XP for this small capital management company
Used libraries such as MFC and data structures
Learned Excel spreadsheets and Visual BASIC on the job
Wrote programs in C and C++98 to manipulate data from Excel spreadsheets
Works with business, application developers, and enterprise architects to determine how the application architecture will optimally meet business needs, while promoting adherence to analysis, design, development standards and object oriented methodologies
Reverse-engineered existing applications to produce standard UML design documents
Recommend improvements to existing application architecture.
Implemented algorithms and data structures in software.
Optimize the technical performance of an application architecture, including networking, database, and application server performance; Develop procedures that ensure application components are consistent with each other and are executable.
AT&T Middletown NJ July 2000 to June 2001
Senior Software Engineer (C/Unix)
SMART is Service Management And Research Tool. The system provides functionality for viewing, analyzing, researching on different services rendered by AT&T to its clients for service quality, profitability, and future growth. The environment was PCs running MS Windows connecting to Sun Solaris boxes via xterm. 6
Did requirements analysis, OOD, coding, testing, and maintenance
Designed, developed, tested, and implemented new APIs written in C89 and Pro*C
Developed recommendations and suggestions on various issues
Prepared, developed, tested, and documented test cases for the new APIs. TERI Research, Inc. NJ July 1998 to July 2000
Software Developer (C/C++/Windows/Linux)
TERI Research was a military research firm. The projects worked on included Teri Research’s Continuous Speech/Dictation and Natural Language Speech products. Much of this design was client/server based and used message queues for communication.
Created the communications protocol used in the design of the Natural Language Speech products.
Created multi-threaded and tightly integrated client/server applications; Used socket programming and TCP/IP
Used wxWindows library (now wxWidgets) as a replacement for MFC
Works with business, application developers, and enterprise architects to determine how the application architecture will optimally meet business needs, while promoting adherence to analysis, design, development standards and object oriented methodologies
Recommend improvements to existing application architecture.
Optimize the technical performance of an application architecture, including networking, database, and application server performance; Develop procedures that ensure application components are consistent with each other and are executable.
Implemented algorithms and data structures in software.
Tested other products such as “Speech in High Noise”. The environment was PC compatibles with Microsoft Windows NT, Windows 98 and Windows 95 with Microsoft Visual C++ (Microsoft Visual Studio 6).
IBM/Nortel Rochester NY February 1996 to June 1998 Software Developer (C++/Unix)
C++ software from AIX 4.1.3 to AIX 4.2.5 and documented any modifications made as a result of the port.
Compiled, built and debugged the ported software.
Prepared, developed, and documented test cases; Provided support on an as-needed basis. Environment: AIX 4.2.5 with C89, C++, and X Windows on a Sun Workstation. Wave Systems Corporation NJ January 1995 to January 1996 Programmer/Analyst (C/C++/MS-DOS/Windows)
Wrote and maintained code written in C89 for the preparation of data in the MS-DOS, MS Windows and OS/2 environments; Wrote programs in C translating data from an 80-column format to a free-form text format for the purpose of selling the data on an as-needed basis; Developed procedures for shipment of product.
Environment: IBM PC compatibles with C89, C++ (Borland), MS-DOS, MS Windows, OS/2, and Lotus Notes. JBS Associates/National City Processing Corporation NJ February 1993 to January 1995 Programmer/Analyst (C/COBOL/Stratus VOS)
Wrote, maintained and modified various database management systems; Developed new systems using C89 and existing programs were written in COBOL; Wrote detailed run books and user documentation 7
describing all newly created functionality; Maintained heavy communication with end users throughout all new programming and modifications to meet needs quickly and effectively. Environment: Stratus with C and COBOL.
EDUCATION:
B.S. in Computer Science, Rowan University 1992.
Several courses in Java programming, 2002-present, Mercer County Community College and Space Age. 8