Skill |
Years |
Skill |
Years |
---|---|---|---|
Java 2+ |
20 |
Java Web Applications |
20 |
Scala |
2.5 |
Play Framework |
1.5 |
Go |
2 |
SOA |
7 |
Angular JS |
2.5 |
Angular |
1.5 |
JavaScript |
5 |
NgRx |
1 |
SOAP |
7 |
REST |
8 |
Spring |
15 |
Hibernate |
11 |
JMS |
11 |
ReactiveX |
8 |
JEE |
19 |
ReactiveStreams |
5 |
XML |
17 |
Akka / Akka Streams |
1.5 |
JDBC |
15 |
HTML |
17 |
SQL |
28 |
NoSQL |
7 |
Cassandra |
5 |
Cloud Computing |
8 |
Amazon WS (EC2/S3/...) |
6 |
DevOps |
7 |
Infrastructure Automation |
6 |
Wireless |
2.5 |
Design Patterns |
25 |
Refactoring |
19 |
FDA Medical Device Development (510(k)) |
2.5 |
Booch/OMT/UML |
25 |
C Language |
12.5 |
C++ Language |
9 |
ODBC |
5 |
JSON |
6 |
In my role as a Principal Software Engineer I am responsible for providing technical leadership to the OrderUp team. OrderUp is essentially a UI for our Central Order Management system. It allows the store associates to create and maintain orders in the store. In this role I have been driving the following priorities:
All of this is done in juncution with my Product Management and Engineering Manager partners and requires that we work with our peers in many groups across the enterprise to realize these priorities.
As a member of the AssistedSelling OrderUp Sell application team I have been helping them develop a truly user centered design using Angular JS 1.5 and Spring Boot. The application has revolutionized the Pro-Sales experience by reducing transaction times by over 50%. The new application was rolled out to all stores by mid Q4 2017. The software is deployed in Home Depot's on premisis Privotal Cloud Foundry environment.
As the owner and CEO of this small company, I have participated in the development of several software systems and web sites for my clients. My responsibilities have ranged from developing software for small businesses to developing large enterprise systems with a large team of developers. Below are listed the longer term engagements I have participated in.
TST's product is a white labeled travel website with functionality similar to Expedia or Travelocity. The application is developed using Scala and the Play Framework for the backend and Angular for the front end. My responsibilities include participating in the product teams to implement new features and fix bugs. The system is transitioning to a microservice architecture and I have been an integral part of planning and execution of that transition.
The SUN Platform is The Weather Company's new enterprise data platoform for delivering weather and other related products to our customers. The customers of the SUN Platorm include the Weather Channel's website and mobile applications, Weather Underground's website and mobile application and other third party companies. One of which is the "Weather" app on Apple's iOS 8. Previously Apple used data they got from Yahoo! but they switched to use The SUN Data Platform. My role on the team was primarily to make sure things worked fast. Our primary performance requirement was to minimize latency. For Apple's >5 billion queries a day we average around 12ms response time when the Akamai cache misses.
In addition to being involved in optimizing the RESTful stack to be as fast as possible I am the primary engineer on the Solara Gateway. This product serves as our Authentication and Authorization Gateway to our RESTful services. Due to its unique design, Solara can make A&A decisions with less then 300 microsecond latency.
While developing these applications we utilized the following technologies within the stack: Apache Cassandra, Redis, Riak, Jersey, Varnish, RabbitMQ, EC2, S3, and many other AWS APIs.
As an Enterprise Architect I have been responsible for engaging the delivery teams to guide them in developing solutions that fit the enterprise road map. My extensive knowledge about the systems deployed throughout our infrastructure and my understanding of the enterprise vision have helped the teams I engage with develop solutions that work, are easy to maintain, and are inexpensive to operate.
As part of the Middleware & Infrastructure Team, I was responsible for designing, implementing, and supporting the Middleware & Infrastructure of the systems created and maintained by IHG's Global Technologies group. One significant accomplishment while working on this team was the wholesale redesign of their ETP Web Services layer to better suit the migration of our mainframe to a new datacenter and hardware platform. This involved extensive load testing and diagnostics to thoroughly optimize the performance of the new design. We achieved a 3 fold increase in system throughput.
During my time on this team, I helped design the architecture for IHG's new "Global Reservations System". The new system was being created to replace the ground breaking Holidex+ system that was instrumental in differentiating HolidayInn when it was introduced over 40 years ago. The new system architecture was designed to be globally distributed so that our customers and hotel operators can access the system from within the geographic region in which they are. To that end we were making use of many cutting edge distributed systems tools such as Amazon Web Services (EC2, S3, ELB, etc.), Apache Cassandra and Chef. I also conducted a POC of a novel new availability calculation technique to allow the business to describe inventory in a new way.
In this position I lead a team of developers ranging between 8 and 20 over the span of 4 years. The developers were mostly quite experienced with a few junior developers. I was responsible for mentoring all the members to produce functional, maintainable, and reusable code. The following are a few highlights of the projects I lead. All in all, I probably lead over 30 projects in the 4 years I worked with this team.
Pegasus Technical Lead - On this project I lead a team of developers responsible for developing functionality in 3 systems to support the offload of availability requests for Pegasus.
Availability Offload Lead - On this project I lead the effort to offload availability requests coming from the EndeavorSDK platform off of our Central Reservation System onto a new SOA based availability system.
Magic Migration Integration Lead - On this project I lead a group of developers in converting 40 EJB Session APIs to utilize the company's new SOA based services. The "Magic" services are a replacement for our old MVS based Priority Club Rewards system and are used to maintain and manipulate Priority Club Member data.
EBS to Endeavor Lead - On this project I lead a group of developers in converting a large number of EJB Session Beans into HTTP WebServices using CXF, Spring, and Hibernate.
Worked with the Global Distribution Technology group's Core Services team to develop core APIs for the use of various web applications. The core services API is used by websites and applications to find available rooms, create and modify reservations, and enroll and update Priority Club memberships. The software utilizes Spring 2.0, Hibernate 3.0, and many other OSS technologies.
During my time here I developed a method for tracking changes to a bean using AspectJ. I created a several APIs for sending various types of emails using JiBX, and JMS.
Worked with Matrix Projects to develop an application that helps Honda Manufacturing of Alabama with their inventory management tasks. The software allows their parts buyers to predict inventory levels and helps them manage the process of informing their suppliers of parts that will no longer be needed in the next model year's cars. The system was developed using Spring, Hibernate, Stripes, and other OSS technologies.
On this project I developed a "Query Server" that will provide a credit score based on proprietary criteria other than a person's credit history to help service the thin or no credit file customers. The interesting thing about this is that the database being searched has over 200 Million rows and we searched by name and address information (no SSN or date of birth is available in our data) so it had to be error tolerant, and it had to be extremely fast; less then a second total response time. To this end, I utilized Apache's Lucene search engine. The system was developed using AppFuse, Spring, Hibernate, and other OSS technologies.
Participated in the development of the Independence BlueCross/BlueShield of Pennsylvania IMUP project. This application allows for the entry by either the consumer or internal users of application data and the subsequent management of the application through the underwriting process. My areas of concentration included implementation of an ownership based security model and the application entry user interface. This system is implemented as a web application on IBM WebSphere v5.1 and utilizes J2EE 1.3 technologies including JSP, Servlets, EJBs, and JDBC. The database backend was Microsoft SQLServer 2000.
Participated in the customization and integration effort for the Clarify CM application for the support of Cingular Wireless's call centers. The application allows the call centers to manage customer issues and gather strategic information regarding customer issues.
Specifically, I developed the synchronization process used to keep the employee information in the Clarify CM application in sync with the PeopleSoft systems.
I also worked on a couple of R&D projects to prove the viability of technologies such as XML Beans, Xbeans, and Torque.
Participated in the analysis, design, and implementation of a Customer Relationship Management application allowing automation of insurance covered replacement processing for medical devices and related accessories.
Participated in the analysis, design and implementation of a tele-medicine product allowing the retrieval of medical data from remote medical equipment using wireless transmissions. The system allows the data to be analyzed by medical personnel to assess the patient's compliance with the prescribed usage and the efficacy of the prescription. This software has been developed to FDA standards and has been given 510(k) approval.
All projects were implemented using J2EE on BEA WebLogic v6.1 and v8.1. We used JDBC to access a MS SQL Server database. The user interfaces were created using Struts. Wireless communications were conducted using the WCTP protocol.
In this position I was the Project Lead for our tele-medicine system and the Architect for the middleware of both systems.
Most recent accomplishments include constructing a comprehensive suite of verification tools that allow us to quickly regression test our communications server technology. For this I utilized the JUnit framework and leveraged other freely available technology.
Participated in the design, development and implementation of Bellsouth Internet Services On-line and CD Registration applications. My contributions included migrating the application from a 2-tier model to a 3-tier model using Enterprise JavaBeans (EJBs) and enhancing the CD installer software to meet customer requirements.
Designed and implemented an SNMP agent application to allow the monitoring of performance and error conditions encountered by the company's EJB layer.
Enhanced the system's authorization service to allow for more authentication types.
Participated in the requirements gathering process for new features to be added to Bellsouth's Business DSL order processing and management tools.
Lead a team developing and maintaining our Business Dedicated Ordering Tool (Bdot). This tool is responsible for allowing our users to maintain customer orders for complex business services such as Dedicated Internet Access, ISDN 128K LAN Access, Managed Router Service, VPN, and Dedicated Web Hosting among others. This tool was implemented with some very nice data driven features using reflection and metadata. The application is implemented as Java Servlets utilizing Java Beans and JDBC. The GUI is implemented with JSPs that communicate with the servlets. We use XML in configuring the application to allow for extensibility.
Participated in the design and development of BellSouth's online ordering application for their FastAccess service. The application was of the "wizard" style and was implemented using JSPs, Java Servlets, Java Beans, and JDBC.
Participated in the design and development of a provisioning tool for BellSouth's Proxy Radius Authentication product. This application was the first at BellSouth's Internet Services group to utilize Java Servlets and JSPs in an MVC architecture and has been used as a model for further development in the company. Again the technology used was Java Servlets, JSPs, Java Beans, and JDBC.
Participated in the design and implementation of a Windows CE based graphical front end for IMS Health - STI's leading software product, Cornerstone (formerly SNAP/Pharma, see below). Cornerstone is a sales force automation system for the pharmaceutical industry. The front-end application is constructed from a component-based architecture utilizing COM objects implemented using ATL and MFC.
I was the Product Architectfor a Marketing Analysis and Decision Support System for airline booking data called Market Profile. After joining the team I helped to oversee the implementation of five installations that include Air Canada, Lufthansa, Qantas, United Arab Emirates, and South African Airways. The tool is used to analyze airline booking data called MIDT (Marketing Information Data Tapes) using ad-hoc and canned reports. This application was implemented utilizing the Middleware and the Component-based Client Architecture mentioned below. The software also includes an Automation/COM interface for automating processes like generating the reports into HTML documents for publishing to the web.
I participated in the analysis, design, and implementation of a "Store & Forward" style Client/Server Sales Force Automation system for the airline industry. Specifically, my duties included the development of a flexible middleware that included a database replication system capable of replicating data between heterogeneous database engines and a data abstraction layer. The system has been tested on IBM DB2, Microsoft SQL Server, Sybase SQL Anywhere, and Oracle v7.3 & v8.0. I was also given the sole responsibility for implementing a Dual Mode COM interface for our "Middleware" product that enabled users in Visual Basic or other OLE Automation aware environments to access our replication and data abstraction facility. Some of the system components that I was responsible for were implemented as Windows NT Services. In addition, all server components were multithreaded, where appropriate, in order to take advantage of the advanced servers on which our back-end software would run.
Participated in the design of a dynamic Component-based Client Application Architecture that allows the mixing and matching of multiple software UI components depending on customer needs. This architecture was based on OLE Controls, a.k.a. ActiveX Controls.
On this assignment I was responsible for the design and implementation of an application for the presentation and analysis of a customer's telephone bill distributed on either floppy disk(s) or CD-ROM. The software had to be capable of handling bills with numbers of records in excess of 1.5 million. The system was implemented using Visual C++ v1.52, CodeBase++ v5.1, and Crystal Reports. The user interface utilizes tabbed forms and MDI to allow the user to easily change criteria, sort order, and other options for canned reports that were shipped with the product.
I worked on a new SNAP product for the Consumer Packaged Goods market ( e.g. General Foods and Kraft ). This system utilizes the same technology as SNAP/Pharma.
I worked on the first version of this sales force automation product for the Pharmaceutical industry. This product was written for Windows 3.1 using Visual C/C++ v1.5, MFC v2.5, and ODBC v2.0. My responsibilities ranged from writing custom controls using the MFC to designing and implementing all of the Activity/Call management portions of the user interface. The Object Oriented Analysis and Design (OOA & OOD) were done using the Booch method and Rational Rose. Watcom SQL was used for our development but the product was designed to be database independent.
I worked on a custom pen based application for Abbot Laboratories using PenRight!, Microsoft C v7.0, and Btrieve.
While working with this start-up company on my time off, we developed a Clinical Patient Records management system for doctor's offices. We designed the system using Object Oriented methods to be 3-tier Client/Server architecture with the ability to robustly handle system crashes on the server and clients alike.
The client was implemented for both the Windows platform and the a write-top device using PenRight!. The PenRight! client was implemented using Borland C++ v4.0 and Btrieve for DOS v6.0. The Windows v3.1 client was implemented using Borland C++ v4.0, the OWL class library, and Btrieve for Windows v6.0.
The server was implemented on OS/2 using DB2/2 as a database server and coded using IBM C++ Set/2. The communications protocol used was TCP/IP. We used Winsock on Windows, Wollongong TCP/IP on DOS and IBM's TCP/IP for OS/2.
Participated in the re-write of Peachtree's Windows accounting package: Peachtree Accounting for Windows Release 2. This software won many awards including PC Magazines Editor's Choice. The program was written using MSC++ v7.0. All work was done utilizing the Windows SDK and Betrieve.
Performed the analysis, design and implementation for a group of educator productivity software programs. The programs were written in BASIC and C for the MS-DOS operating system.
Later I performed the analysis, design and implementation of a Windows version of this product using MFC 1.0 and MSC++ v7.0
This venture was my first attempt at getting paid to develop software. I designed and implemented a full screen message editor for the QuickBBS bulletin board system that allowed users to edit their messages on-line using Wordstar like commands. The program was implemented using Microsoft C v5.1 for MS-DOS.
A word about this resume: In an effort to organize my extensive work history into a manageable format, I have dispensed with the use of Word or other document formats in favor of this XHTML format. Using the embedded CSS style sheet that you can see if you "View Source" on this document, I am able to control the formatting of this document and keep the XHTML markup purely a document structure language, as it was originally meant to be. Giving credit where credit is due, please see the CSS Zen Garden for the inspiration that prompted me to do this.
Copyright(c) 1987-2017, Dana H. P'Simer, Jr.
All rights reserved. You may make copies of this document for your own use. Further dissemination of this document is forbidden without the express written and/or verbal approval of the copyright holder.
In other words, don't give this resume to anyone without getting my permission first, Thanks.