Résumé of Paul M. Parks
Singapore, Singapore
paul@parkscomputing.com
https://www.parkscomputing.com/
https://www.linkedin.com/in/paulmooreparks/
https://github.com/paulmooreparks/
Updated June 2023
Also available in Microsoft Word and plain HTML formats.
About Paul
I have delivered all shapes and sizes of software: graphical desktop applications, kiosk and point-of-sale systems, server applications, web applications, system services, command-line utilities, and APIs. I have also worked in professional services, where I focused on customer interaction during solution delivery. I have successfully led multiple geographically dispersed, culturally diverse development teams delivering mission-critical software to large customers.
Singapore permanent resident as of March 2022. US citizen.
Core Skills
- Software project management in full life cycle of delivery from inception through architecture, design, development, testing, delivery, and support.
- Software-development experience across multiple platforms (Windows, Linux, Unix, web, DOS, mainframe) and languages (C, C++, C#, Basic, JavaScript, Java, COBOL, Natural, among others).
- Communicating complex technical matters to a non-technical audience, as well as understanding non-technical business concerns and translating them into technical solutions.
- Leading remote, international teams in software development and support.
- Understanding and respecting cultural differences in teams that span multiple countries and time zones.
Professional Experience
Freelance Software Developer


- Customised software development and consulting.

Program Manager


- Oversees and coordinates FinTech projects for the banking industry.

Customer Success Manager



- Responsible for ensuring Code Pipes customers are successful at meeting their goals using the product. Advocate internally for the customer and their needs and focus on keeping them successful.
Senior Manager



- Led a team of retail business analysts based in various cities across the Asia-Pacific region. The business analysts are engaged with Diebold-Nixdorf customers across the APAC region in multiple retail projects for point-of-sale, self-service checkout, and loyalty solutions in the grocery, fuel & convenience, health & beauty, and fashion retail sectors.
- Led a team of software engineers based in Singapore developing and maintaining Diebold-Nixdorf's TP.Linux retail point-of-sale application.
- Active participant in the APAC Retail Professional Services management team, reporting to the director of APAC Retail Professional Services.

Technical Consulting Senior Manager



- Consulted on multiple retail projects across the Southeast Asia sub-region from pre-sales through delivery.
- Liaised between NCR’s software engineering teams and in-region professional-services teams working directly with the customer to ensure that customer solutions were delivered accurately and in a timely manner.
- Worked directly with customers in the APAC region to identify and resolve issues.
Senior Software Engineer



- Led local and offshore development teams in the design, development, testing, and delivery of self-checkout and self-service kiosk software for the retail and postal industries.
- Projects included delivering self-checkout solutions for NCR’s largest retail account and for a national post office service.
- Worked directly with customers to gather, understand, and clarify requirements.
- Created estimates and project plans for software development projects.

Senior Software Engineer, Lead



- Worked on-site at Coca-Cola, designing and developing features for the Coca-Cola Freestyle beverage dispenser.

Software Technical Lead



- Led local and offshore development teams in the development of point-of-sale, self-checkout, and self-service kiosk software.
- Worked with NCR Professional Services to gather, understand, and clarify customer requirements.
- Created estimates and project plans for software development projects.
- Architected and designed solutions to meet requirements for NCR customers.
- Designed, developed, maintained, and provided training for key software components and APIs.
- Led integration project for a self-service kiosk for the British post office, Post Office Ltd. Developed an innovative integration of NCR's self-service checkout application with a new, back-end integration to a SOAP web service rather than a point-of-sale system. The kiosk helped Post Office meet savings targets, and it provided a new platform for self-service offerings not found in other integrations of NCR''s self-service checkout.
- Led design and development of a new user interface subsystem, known as Apex, for NCR Advanced Checkout Solution (ACS) to extend my previous work with the UI. The new UI added support for touch devices, hybrid touch/DynaKey devices, and full keyboard devices, while also providing multi-language support.
- Designed, developed, and maintained the integration subsystem between NCR's self-service checkout and ACS, known as ACSIO.
- Designed, developed, and maintained a high-performance, high-reliability, configurable logging and tracing subsystem for use in ACS, ACSIO, Apex, and self-service checkout. Developed native language libraries for integrating the subsystem into C, C++, .NET, and JavaScript applications.
- Architected a new integration subsystem between NCR's self-service checkout and ACSIR, using Apex, allowing integration logic to be developed in JavaScript rather than in C++.

Application Developer



- Developed intranet web applications and native utilities for Microsoft, a Vorsite contract customer and partner.
- Developed client-side browser controls targeting HTML 4 and DOM 2 browsers, for both ASP and ASP.NET applications.

Senior Design Engineer



- Designed and implemented server products for the wireless Internet industry.
- Implemented XML-RPC specification in Java to support integration of Java server code with multiple web servers via an RPC interface.

President



- Created web host pages for Java applet-based system, Witness Systems' eQuality Release 6. Developed a Java servlet system to separate complex JavaScript validation logic from presentation markup, as well as to ease cross-browser web page development, via server-side processing of XHTML web pages containing custom design tags residing in a separate XML namespace.
- Created Java servlet to generate report data selection forms for browser-based application, using XSL stylesheets to format output of XML data. Output of the report form was sent to Actuate reporting engine.

Software Engineer



- Developed software for NCR Advanced Checkout Solution (ACS) point-of-sale systems, both platform and application.
- Designed and developed a new user interface for NCR ACS to support the NCR 7450 DynaKey.

Developer I



- Performed analysis and implementation of software designs for PC DOCS version 4.2 and 4.3.
- Served as technical liaison to customer-support department and provided on-site technical support.

Computer Programmer Analyst



- Performed programming and analysis duties for Legislative Appropriations System/Planning and Budgeting Subsystem (LAS/PBS), wrote applications in MVS/ESA environment in Natural 2.1 with ADABAS database, maintained existing COBOL applications, and wrote and maintained related JCL.
- Worked in the Personal Computer Support unit developing and maintaining PC-to-mainframe data transfer utilities in Microsoft Professional BASIC to create Lotus spreadsheets from mainframe-resident state budget data.
- Developed a character-based, windowed user interface for use in transfer utilities.
- Wrote related Windows applications with Microsoft Visual Basic 1.0 and Borland C 3.0.
- Maintained office PCs, and installed and evaluated PC software. Performed limited administration duties on a 25-node Microsoft LAN Manager network.

A Small Selection of Personal Projects
Parkscomputing.com

- A bespoke website engine in ASP.NET Razor Pages on .NET 7.0, hosted on Azure. I began writing this to replace the old WordPress implementation of my personal web site, https://www.parkscomputing.com/.

Set-Associative Cache in C#

- A C# implementation of a set-associative cache with multiple cache-replacement policies (LRU, MRU, LFU, etc.). There is
a basic generic cache interface,
ISetAssociativeCache
, which is parameterized by the key type and value type of the items stored in the cache, much like theIDictionary
interface. Implementations of the interface may use different policies for when items are evicted from the cache, such as least-frequently used or least-recently used.

Maize Virtual CPU

- This project implements a 64-bit virtual CPU called "Maize". See the file README.md for more details on the Maize CPU assembly language and the simple operating system that runs on it.
- The near-term goal is to implement a set of devices to bridge from the virtual CPU environment to the host machine, create a "BIOS" layer above the virtual devices, implement a simple OS and a subset of Unix/Linux system calls (interrupt $80), and finally port a C/C++ compiler (likely Clang or GCC) that will generate Maize machine code.

Conway's Game of Life in JavaScript

-
An example of how to write high-performance JavaScript code using the HTML
canvas
element to implement Conway's Game of Life, which is demonstration of cellular automata simulating living organisms.

Pbrain Language Interpreter and Compiler

- The pbrain programming language is an extension I made to the Brainf**k programming language that adds the ability to define and call procedures. The site linked above has an interpreter implemented in C++ and a .NET compiler implemented in C#.

EAN-13 Barcode Generator in JavaScript

- A web page that accepts HTTP GET parameters on the URL line and outputs an EAN-13 barcode generated via JavaScript and HTML DOM.
