A successful software developer experienced in object-oriented techniques and the software development lifecycle including software development, design, configuration management, testing and implementation. Has spent over 25 years writing software with notable depth integrating disparate systems into smartphone and web based solutions. Operating as JMS Consulting, Inc. providing software consulting services since 2002.
-
3 years of iOS and Android experience including new development, maintenance, and app submission to the App Store, TestFlight, and Google Play.
-
Over 5 years of experience designing and developing J2EE/JEE applications using Java 5-8, JSF 1.x/2.0, Oracle ADF, Hibernate 3/JPA 2, JavaScript, CSS, and HTML.
-
Experienced developing applications using Facade, Data Access Object, Service Object, Loaner, and MVC patterns.
-
Experienced using JSF, ADF, JPA, and Hibernate as frameworks supporting various design patterns.
-
Experienced with Junit 4 as testing framework for many facets of an application.
-
Experienced with SQL across Oracle, DB/2, Postgres, MySQL, and sqlite.
-
Experienced with Xcode 7, Android Studio 1.4, IntelliJ IDEA 16, Eclipse 4, JDeveloper 11, RAD 6/7.
-
Most recent experience with iOS 6/7/8, Android 4/5, Objective C, Java, dabbling in Swift, Scala 2.10.1, Play Framework 2.1, JSON, Oracle VM VirtualBox, and Amazon Web Services EC2, S3, and Route 53.
A short resume is available in the following formats: Word, PDF, OpenOffice Writer.
A more detailed version is available in the following formats: Word, PDF, OpenOffice Writer.
A long version is available in the following formats: Word, PDF, OpenOffice Writer.
USA Technologies provides a mobile payment application similar to Square called ePort Mobile. My role was to integrate additional card readers into ePort Mobile, add features to meet credit card processor requirements, and provide regular maintenance.
Responsibilities:
- Integrated new mobile card reader with iOS and Android application.
- Updated version of QuickConnect API being used by iOS and Android application.
- Added geocoding of payment locations per payment processor certification standards.
- Added degree of iOS and Android operating system integrity checks per payment processor certification standards.
- Created CVS repositories to manage the iOS and Android applications. Established release documentation and release mechanism suitable for environment.
- Tools/Techniques Summary: iOS 6/7/8, Android 4/5, Xcode 7, Android Studio, Objective C, Java, CVS, iOS Location Services, Android Location Services.
USA Technologies provides a loyalty program to its customers. The More Mobile iOS and More Mobile Android apps are the smartphone interface to the loyalty program. My role was to maintain the iOS application and write the Android application. The apps can be found by searching for 'More Loyalty' in iTunes or Google Play.
Responsibilities:
- Wrote Android implementation of the application from scratch.
- Created CVS repositories to manage the iOS and Android applications. Established release documentation and release mechanism suitable for environment.
- Used TestFlight for iOS app testing.
- Used More SDK API
- Documented and packaged More SDK
- Tools/Techniques Summary: iOS 7/8, Android 5, Xcode 7, Android Studio, Objective C, Java, CVS, iOS Location Services, iOS Core Bluetooth, Android Location Services, Android Bluetooth LE API, TestFlight.
The effort was primarily a java server integration project to enable USA Technologies support for additional credit card readers. The integration involved EMV capable credit card readers and the existing USA Technologies java server application. The server application was modified to accept card data from the readers and process real time payments with the data.
Responsibilities:
- Wrote java based card reader integration tool which implemented RS232 communication among other features to interface with credit card readers.
- Make changes to the java server application to support various card readers.
- Used UL Brand Test Tool to simulate presenting credit card data via swipe, insert, and tap.
- Used the USAT QuickConnect API to communicate with the server application.
- Tools/Techniques Summary: Java 7/8, Oracle, Postgres, Eclipse, CVS, UL Brand Test Tool, various credit card readers, USAT QuickConnect API, RS232, iMac and Mac OSX.
Computer Software, Inc. provides municipal government management software. The Magnet Mobile Inspector is an iPad app which provides many useful features to inspectors while out in the field. Features include scheduling, reporting, and information gathering. My responsibility was to provide more detail to numerous aspects of scheduling, reporting, and information gathering.
Responsibilities:
- Added greater detail to existing scheduling functionality.
- Added more detail and improved organization of clipboard capabilities.
- Tools/Techniques Summary: iOS 6, Xcode, Objective C, and JSON.
This mobile app provides wound care documentation and assessment capabilities.
My role in this effort was to integrate In App Purchase capability as well as add
functionality to share an HL7 CDA Level 1 document with electronic health record
systems.
Responsibilities:
- Used iOS StoreKit framework to make purchases which unlocked various features within the app.
- Learn quite a bit about HL7 CDA in order to create and transmit a CDA Level 1 document. This effort is not complete.
- Implement a mock server to receive CDA documents transmitted by the app.
- Git was used as a source code repository.
- Tools/Techniques Summary: Objective C, iOS, Xcode 5, Scala, Play Framework, Eclipse, Ubuntu on an Amazon Web Services EC2 instance, git.
This was a proof of concept effort involving iOS Bluetooth LE and a Raspberry
Pi device. The goal was to prove data values from a Raspberry Pi could be
displayed on an iOS device using bluetooth as the transport. Multiple
developers were involved in this effort.
Responsibilities:
- Used iOS Core Bluetooth framework to code app requesting data from Raspberry Pi
- Coded python scripts to do bluetooth communication on Raspberry Pi.
- Tools/Techniques Summary: Objective C, iOS, Xcode 5, iPhone 5, iPad Mini, python, Raspbian (debian linux), vi, Raspberry Pi, bluetooth LE dongle.
The iOS mobile app provides public facing product advertising tool. The app
presented various customer products, product vendors, and social network
integration. This app involved approximately five developers.
Responsibilities:
- Coded various views in the application.
- Integration various remote APIs
- Coded social network integration for Facebook and Twitter. Email was also implemented as a sharing medium.
- Git was used as a source code repository.
- Tools/Techniques Summary: iOS, Xamarin, C#, git, json over http.
The PCN TV iOS mobile app provides a mobile application for the Pennsylvania
Cable Network. The app integrates schedule information as well as provides a
video feed for PCN TV subscribers. The effort was primarily a two person effort.
Responsibilities:
- Involved in the coding of core functionality including API integration to backend services for schedule information and video feed metadata.
- Created a mock backend service to facilitate mobile app development while backend API was under development.
- Git was used as a source code repository.
- Code to the video server api to obtain video and camera information.
- Git used as source control.
- Tools/Techniques Summary: iOS, Xamarin, C#, git, json over http, Eclipse, Scala, Play Framework.
Gardener's Journal is an iOS application which keeps a photo and text record of your garden in as little or as much detail as desired. It allows capture of photos and text over time to track progress over time. The app can be found in iTunes by searching for Gardener's Journal. An Android version is planned but not yet implemented.
Responsibilities:
- Created idea with my wife's help after seeing the desire to compare pictures of garden from prior years to pictures of garden in current year.
- Designed and implemented app using a minimalist design philosophy.
- Added iAd Network advertising to app.
- Added In-App Purchase to remove advertisements.
- Maintained app over time with 7 versions released as of this writing.
- Tools/Techniques Summary: iOS, Objective-c, git.
iOS and Android Video Integration is an effort which incorporated video feeds into the end
client's existing native iOS and Android applications. The existing mobile applications present
cameras available within the client's system. The integration effort involved modifying the iOS and
Android applications to present video at appropriate points in the mobile applications. The video
camera server api was used by the mobile applications to retrieve video and camera information. Use of
the video camera server api was a new addition to the mobile applications.
Responsibilities:
- Design and code video integration using existing iOS application.
- Design and code video integration using existing Android application.
- Created and maintained test environment which included VirtualBox running on linux, Windows 7 in the VirtualBox, end client's system running in Windows 7.
- Code to the video server api to obtain video and camera information.
- Git used as source control.
- Tools/Techniques Summary: Objective C, iOS, Xcode, Java, Android, Eclipse, REST api, xml, git, Virtualbox, Amazon Route 53.
Moving 4 Health is a website which encourages children to live healthy lives. Children
earn points and badges for recording activities which encourage healthy behavior. The site
presents summarized results of children's activities at class and grade levels for a given school.
Each school can run the contest for a different period of time. Primary responsibilities included
database design and back end programming to support the recording of activity information and present
contest results as points, badges, and graphs. The site is publicly accessible at
www.moving4health.org.
Responsibilities:
- Design database from discussions regarding expected site behavior. MySQL is the database server supporting the implementation.
- Design application architecture. MVC, Data Access Object, and Service Object design patterns were used as part of the design.
- Coded back end logic to implement numerous rules per design discussions. PHP with PDO support was used to code the logic.
- Used jQuery, CSS, and HTML to present activity information.
- Used Subversion as a source control repository. Subversion provided a nice integration point between the developers and user interface designers.
- Tools/Techniques Summary: MySQL, Eclipse, PHP, MVC, DAO, Service Object pattern, jQuery, CSS, HTML, Subversion.
ASIS is a cost setting application for products in Carpenter's inventory. Carpenter is a stainless steel and specialty alloy manufacturer. ASIS models the manufacturing process in order to cost the raw and processed materials comprising the each product. ASIS provides a means to value constituent materials, combine materials as a product chemistry, and cost a product based on values and weight ratios of constituent materials. What-if scenarios are also supported in order to predict future product costs.
Responsibilities:
- Design, code, and unit test application from high level design documents.
- Coded application model tier using Java 6, JPA 2.0, and Oracle 10 under JDeveloper 11 with ClearCase as a source repository.
- Unit test model tier using JUnit 4 framework.
- Create user interface using Oracle ADF and jQuery.
- Create Excel and PDF reports using POI and iText java libraries.
- Interact with end customer to determine functionality where high level design documents were not clear.
- Tools/Techniques Summary: Oracle, Java, JPA, Oracle, Jdeveloper, ClearCase, JUnit, Oracle ADF, jQuery, POI, iText.
The Garden Web App is an Android app that facilitates posting images to
www.gardenweb.com. The app takes images from an Android device and provides a means to directly post to any forum on the Garden Web site. The existing means for posting images is not optimal and the app greatly simplifies the process. An iOS version of the application is currently under development.
Responsibilities:
- Created idea for app after seeing existing process.
- Architected, designed and implemented a multi-tier design.
- Used IntelliJ IDEA 11, Scala 2.9.1, Play Framework 2.0.1, MySQL 5, and Subversion 1.6 to develop service tier.
- Service tier runs on an Amazon EC2 instance running ubuntu linux and java 7. Amazon's Route 53 service provides dns services for the EC2 instance.
- Used Eclipse 3.7, Java 6, SQLite 3, and recent Android SDK to develop Android app. Amazon's S3 service hosts images posted from the Android device.
- Service tier communicates with device using JSON. This design facilitates easier implementation of other device specific apps like the iPhone and iPad.
- Tools/Techniques Summary: Scala, IntelliJ IDEA, Play Framework, MySQL, Subversion, Amazon EC2, linux, Amazon Route 53, Eclipse, SQLite, Android, Java, iOS, Objective C, Amazon S3, JSON.
Oscar is a furnace scheduling system. The purpose of the scheduling system is to maximize resource utilization during Carpenter's manufacturing of steel products. Oscar takes a feed of orders from an order system and applies scheduling algorithms to the orders considering variables such as order size, furnace capability, and operator inputs. The result is a schedule that heats units of steel to a given specification in a fashion which minimizes expensive operations. An example of an expensive operation is reheating a furnace to an appropriate temperature.
Responsibilities:
- Modify the application to support an additional furnace.
- Modify an application report to present additional information.
- Reorganize application source code as a set of JDeveloper 11.x projects under one JDeveloper application.
CTI is a web application used by customer service representatives handling phone calls for United Concordia Dental Insurance. CTI serves various call centers around the US. It presents customer insurance information from several disparate mainframe systems in one easy to use web application. CTI significantly reduces training time for customer service representatives. This is the second CTI implementation in which I was involved. The initial release was in 2005 and is described with the 2005 work experience. The 2010 implementation reordered process flows for efficiency gains and made more customer information accessible through the app.
Responsibilities:
- Reverse engineered application using Rational Software Architect (RSA) 7.5 to better understand and document the existing application.
- Used RSA to design and document the new data and processes being added to CTI.
- Provided UML documents and guidance to the development team throughout the effort.
- Used java 5, RSA 7.5, Struts 1.1, MQ Series, JDBC, DB/2, javascript, CSS, and HTML to code and test additions to CTI.
Lab 73 Autoentry is a utility program in a Carpenter metallurgy test lab. It automates the entry of numerous test data points into mainframe systems. It minimizes the amount of keying which increases accuracy by reading output data from test devices and using "screen scraping" techniques to place data in mainframe systems.
Responsibilities:
- Perform periodic maintenance when a new test device is installed with a new data format.
- Perform periodic maintenance to support mainframe screen changes due to the fragile nature of "screen scraping" techniques. The customer does not feel providing a more robust communication mechanism to mainframe systems is cost effective.
- Used Microsoft Visual Studio 2008 and HLLAPI to support the application.
The nature of this effort was to setup infrastructure supporting the deployment of a JBoss application within the Alchemy Ventures network. As a result of this effort, a JBoss sandbox and production environment were established.
Responsibilities:
- Installation of java 5, MySQL 5.x, and the JBoss 5 Application Server on a linux OS.
- Establish both a sandbox and production environment for the application.
DART is a web application used by customer service representatives handling phone calls for United Concordia Dental Insurance. DART was an effort specifically designed to support customer service for members in the US military and their families. DART functionality was required in order to obtain a dental insurance contract with the US military.
Responsibilities:
- Worked as part of a team of user interface developers
- Coded and tested various web pages using java 5, RAD 7, JSF 1.2, Richfaces 3.1.x, and Harvest.
- Delivered requested functionality under a very tight deadline.
The nature of this effort was to setup infrastructure supporting the deployment of a JBoss application. JMS Consulting hardware and infrastructure hosted this deployment environment.
Responsibilities:
- Prepared an Ubuntu linux server with MySQL 5.x, java 5, and JBoss 5 Application Server.
- Configured appropriate networking to safely expose the JBoss Application Server to the internet for testing purposes.
- Push deployments of the application to the application server as needed by the development team.
eAppoint was a web application which automated an existing paper form. This online version of the form automated a large portion of the paperwork required to appoint United Concordia insurance brokers in the United States. eAppoint was notable since rules to appoint a producer vary from state to state. The web site accommodated many of these rules. Information regarding the rules were mostly database driven and accessible via an EJB interface to another system.
Responsibilities:
- Provided guidance for developers on the team.
- Coded portions of the application using java 5, RAD 6, Hibernate 2.x, and Harvest.
eCommerce was a web based vendor product that provided online quoting of insurance policies. Insurance brokers were a primary customer of this app. Brokers would use the application to provide real time insurance policy quotes. Integrating the vendor product into the Highmark infrastructure was a notable portion of this effort.
Responsibilities:
- Integration of vendor product's user information with Highmark user information.
- Tools used include java 5, RAD 6, DB/2, JDBC, EJB 2.x, and Harvest.
- Involved in implementing deploy process for vendor application.
Scale Automation was an effort to reduce errors when reading weights from scales and keying weight information into mainframe systems. Scales were positioned at workspaces on the manufacturing floor. Technicians would take readings from the scales and key them into the appropriate mainframe system. The Scale Automation application involved the use of a barcode reader and TCP/IP communication with the scale. The user would scan a barcode to initiate the reading of weight information. The application would in response to the scan, read weight and other related information from the scale, present the information to the user, and place the information in the appropriate mainframe system. The application greatly minimized keying errors during the process.
Responsibilities:
- Interact with Mettler Toledo folks to obtain various protocol documents for the Mettler Toledo scales.
- Determine appropriate communication protocol for the needs of the application. A telnet like protocol over TCP/IP was selected to communicate with the scales.
- Implement a client for the telnet like protocol using C#.
- Design, code, and test the Scale Automation application.
- Used Microsoft Visual Studio 2008, C#, and IBM Rational ClearCase to create the various parts of the application.
The task involved performing maintaining across the many GSI eCommerce applications. Maintenance included minor bug fixes as well as instrumenting apps with web analytics.
Responsibilities:
- Instrumented numerous apps with SiteCatalyst, AvenueA, and RedSheriff web analytics.
- Used Eclipse 3.x, java, WebLogic 8.x, Oracle DB, jsp/servlet, javascript, and CVS to maintain the apps.
- Patterns essential to understanding structure of apps included MVC and Session Facade.
CTI is a web application used by customer service representatives handling phone calls for United Concordia Dental Insurance. This effort was the initial CTI implementation. CTI serves various call centers around the US. It presents customer insurance information from several disparate mainframe systems in one easy to use web application. The web application significantly reduces training time for customer service representatives. Prior to CTI's implementation customer service representatives needed to navigate the various mainframe systems during the phone interaction with the customer. The system was well designed, which made development and implementation an enjoyable and straightforward task.
Responsibilities:
- Coded and tested many pages from existing design documents
- Used WebSphere Application Developer 5.x, Struts 1.1, MQ Series, EJB, JDBC, DB/2, QMF, javascript, and Harvest in the course of coding and testing the application.
- Provided technical direction as requested throughout the effort.
- Provided guidance during network bandwidth testing in an effort to determine bandwidth usage of the new application.
PBE provided IBC internal clients a mechanism to manage rules which dictate edits invoked by a claims pre-adjudication process on a per provider basis. The web application facilitated IBCs HIPPA compliance efforts. The system was delivered on time and received rave reviews from the internal clients. This was a great project... thanks to all involved. You know who you are.
Responsibilities:
- Technical lead role providing J2EE architecture and WebSphere Application Developer mentoring and guidance for team members.
- Used WebSphere Application Developer 5.x, Struts 1.1, CVS, Oracle, DB/2, java 4, jdbc, javascript CSS2, html, and Bourne shell scripting to implement various facets of the application.
- Established an understanding of the various infrastructure groups within the IBC organization for the development team. Infrastructure groups involved were administrators of WebSphere Application Servers, Tivoli Access Manager, Oracle, DB2, Solaris, and CVS.
CCP was a real time credit card processing system. It exposed web service interfaces to the production applications at Patron Solutions.
Responsibilities:
- Architect, design, and code the credit card processing system.
- Coded the CCP using JBoss 3.2.x, java, servlet/jsp, EJB 2.0, html, some javascript, MS SQL Server, Linux, Windows, and Eclipse 2.x.
wellinvested.com was an equities and futures trading strategy web application, www.wellinvested.com.
Responsibilities:
- Provided application maintenance as needed.
- Provided system administration as needed. The site was housed in California while I resided in Pennsylvania.
- Used WebObject 4.5.1, WebObjects 5.2, java, objective-c, Oracle 8.1.6, Solaris, Mac OSX, Red Hat Linux, CVS, HTML, CSS2, GNU Mailman, bash/tcsh scripting for the maintenance of the application.
- Also provided availability monitoring tools, system performance analysis and trending to diagnose and resolve issues.
ServiceNet was a web application which provided work order placement, invoicing, and reporting for the vehicle maintenance portion of client's business.
Responsibilities:
- Coded and tested additional functionality as needed.
- Used java, Eclipse, Visual Age C++ for AS400, IBM DB2 (AS400), DB2 Stored Procedures, iPlanet Application Server (Solaris), jsp, html, javascript, and Microsoft Visual SourceSafe.
One of two principals involved in starting etreasure consulting, inc. Provided groundwork for a solid software development environment leveraging skills from 12 years in corporate IT arena to build a sound infrastructure.
Responsibilities:
- Establish software development infrastructure for etreasure consulting.
- Increase knowledge and expertise in various technologies including J2EE, EJB 2.0, WebObjects, Oracle, Linux, and CVS.
CarpenterCare was a web based customer order and inventory site. It provided customers with a view of existing orders as well as order statuses.
Responsibilities:
- Coded and tested a process which listened for XML messages in an MQ Series queue, extract data, and inserted it into an Oracle database.
- Provided java application performance analysis and profiling.
- Used IBM Visual Age for Java, IBM MQ Series, XML, Jprobe, IBM WebSphere on AIX, Rational Rose ClearCase, IBM WebSphere Studio, IBM SecureWay (LDAP Server), LoadRunner to code, test, and implement the system.
- Helped establish a configuration management policy.
- Implemented the configuration management policy.
The goal was to maintain parametric data gathered from manufacturing process of data communication components as well as maintain existing data gathering systems.
Responsibilities:
- Propose architectures to standardize the collection of tracability and parametric data from the manufacturing process.
- Maintain existing systems using java, Perl, Korn shell scripting, apache, jserv, XML, Oracle iAS, HP-UX, Jbuilder 3.5, and CVS.
Provided maintenance and development services for new and existing applications.
Responsibilities:
- Used perl and javascript on a Windows and Solaris platform to provide services.
Part of a technology assessment team at GPU Energy. The team was responsible for exploring newer IT technologies in an effort to determine the use of these technologies within the corporate IT environment.
Responsibilities:
- Evaluate and recommend tools and architectures for Internet/Intranet software development infrastructure within GPU.
- Tools included Java, Visual C++, Perl, MS Internet Information Server 3.0 and 4.0, MS FrontPage97/98, MS InterDev 1.0/6.0, COM/DCOM, Bright Tiger ClusterCATS, and familiarity with LDAP and it's use.
- Maintain employee self serve intranet site using ISAPI and ASP.
- Implement secure EDI data exchange over Internet. Tools included Visual C++, Perl, PGP, MS Internet Information Server, and Oracle.
Part of team implementing financial accounting data warehouse.
Responsibilities:
- Explored use of a web front end on data warehouse.
- Implement web front end on data warehouse saving the cost of hundreds of client licenses.
- Ported database architecture from DB2/2 on OS/2 Warp to DB2/2 on Windows NT 4.0.
- Used DB2/2, Visual Age C++, MS Internet Information Server v3.0, IBM Internet Connection Server 4.1, CGI, REXX, Windows NT Server 4.0, OS/2 Warp, SQL, and ODBC to code, test, and deploy.
Maintained in-house financial software package as an employee of York International.
Responsibilities:
- Used Borland C++, Borland Paradox, and Microsoft Visual SourceSafe to perform maintenance.
Employee of Roadnet (a wholly owned subsidiary of UPS) providing embedded system development skills, software design skills, and programming skills for various groups within the company.
Responsibilities:
- Design and implementation of OO based client/server driver dispatching system. Tools included OS/2 2.0, IBM C++ Set 2.0, TCP/IP, APPN LU 6.2 , and DB2/2.
- Implement Loop Composition software. Tools included Unix, ObjectStore OO database, ObjectStore C++, and Rumbaugh's Object Modeling Technique.
- Design and implementation of electronic driver timecard. Tools included Intel C, VRTX/OS, proprietary embedded system hardware, DEC Workstations and in-circuit emulators.
- Implement electronic driver package delivery system. Tools included MS C 5.x, proprietary embedded operating system and hardware.
- Implement driver training module for electronic driver package delivery system. Tools included OS/2 1.x, MS C 5.x, proprietary embedded operating system and hardware.
Employee of Soft Systems Engineering providing software development for applications which assisted in programming the ladder logic in a variety of programmable logic controllers (PLCs).
Responsibilities:
- Design and implementation of PLC communications software for various applications.
- Tools used included MS Windows 2.04, MS-DOS 3.2, Unix, MS C v5.0, Fluke Touch Control Screens, and PLCs from Allen-Bradley, Honeywell, and TI.
Attended Millersville University in Millersville, PA from 1983 to 1987.
Obtained a bachelor of science degree in computer science
with a concentration in physics and digital electronics.