Lead Engineer/Architecture Team Lead
September 2006 – August 2007
Team lead for the Passport Architecture Team, which consisted of sub-system team leads. Responsible for standardizing global system architecture and developing a technology roadmap for the product and development tools. Also responsible for identifying training needs and developing training strategies.
Directed the implementation of Payment Card Industry (PCI) security standards for cardholder data processing rules and system security. Worked with external auditors to determine compliance requirements and oversaw the implementation of software changes and security enhancements across multiple subsystems. Developed and maintain C# objects that provide AES encryption and key management capabilities for integration into existing payment processing applications.
Presented PCI Implementation Guidelines and Best Practices training at the inaugural Gilbarco Retail Systems User Conference at the Pinehurst Convention Center in July 2007. Led training sessions that guided users of the Passport POS system through deployment within their retail environments and provided best practices for using the Passport system within the larger security context as governed by the PCI standards.
Examined software processes to identify inefficiencies and improved response times to customer and market requirements. Worked to shorten time-to-market for new feature implementation and improve agility of the software development process by improving documentation and design strategies and coordination between business analysts, software designers and developers.
Evaluated and recommended software design tools and methodologies. Also kept up with changes to software design techniques such as UML to identify go-forward strategies for our design teams.
Led development efforts for new features that require integration of multiple subsystems and 3rd party tools.
Developed design specifications and UML models for new feature integration.
Senior Software Engineer
February 2001 – August 2006
Software engineer on payment processing applications for Passport, an open-architecture point-of-sale system. Passport is a Windows-based, 2-tier software system written in Visual Basic, Visual C++ and Java using MS SQL Server 2000 as the RDBMS.
Member of the design and architecture team as the network sub-system team lead. Primary responsibility was oversight of customer-specific implementations of payment processing applications using Visual C++, SQL Server stored procedures and MS COM/DCOM components. Led multiple development efforts and was responsible for ensuring optimal performance and reliability.
Re-designed GRiPPS middleware that provides interface between generic POS clients and customer-specific network payment service providers. Migrated COM/DCOM interfaces to TCP/IP communications using an XML-based command-response-event messaging model. New architecture provides the foundation for multi-network routing. This allows card payments to be routed to different payment processing applications based on factors such as processing rates and allows operators to define local cards for house accounts and loyalty programs.
Re-designed architecture of payment processing applications using OO design patterns. New design improved quality, reduced implementation time and allowed incremental development. The generic framework provides a standard pattern for multiple customer-specific applications that allows for easier maintenance and shorter training times. After the first implementation, the number of field sites increased from less than 30 to more than 600 within two years from 2002 until 2004.
Designed and implemented XML-based back office application that interfaces to customer’s global site management system. The application receives inventory and price book data via XML import files and loads data into the Passport database. Application also processes daily sales, configuration and fuel inventory data for export. Application was written using Visual C++ and MS COM technologies.
Designed and implemented a new system for creating system reports for store configuration and sale totals. The system used the XML capabilities of ADO to convert SQL result sets to XML that could be merged with XML Style Sheet (XSLT) files to replace legacy Crystal Reports system.
Designed communications framework for TCP and UDP protocols. Implemented a generic serial communications component that used the same callback interface as the IP protocols and served as the foundation for implementing serial and dial protocols. Common object interfaces allow for easy implementation of dual IP and dial protocols as requested by customers for redundancy.
Designed generic components for identifying and processing card data using standard database schema and SQL stored procedures. Moving card identification from the application to the database improved efficiency and made maintenance easier.
Designed and implemented conversion utility to convert proprietary data formats to industry standard XML schemas. This was used to convert site configuration data from our legacy G-SITE system to Passport.
Trained other engineers on software architecture, development tools and methodologies. Led training program for our first off-shoring initiative, which created a remote development office in Buenos Aires, Argentina.
Maintained applications and corrected software defects that reduced field calls and improved product stability.
Software Engineer/Project Lead
August 1998 – January 2001
Led development team in the development and testing of customer-specific, embedded, legacy point-of-sale applications for Intel x86 platforms.
Implemented new features including integration with back office systems and new payment card types.
Facilitated customer certification process for new software versions.
Coordinated with customers to arrange installation of beta test sites and monitored sites during beta period.
Maintained build environment and source code control system for engineering group of 50 developers.
Trained new system administrator upon returning to full-time software development.