Portfolio

W Energy Software ERP System
May 2018 - present
Client W Energy Software
Description Enterprise Resource Planning (ERP) software solution for oil and gas energy clients including modules such as expense reporting system, payroll and timesheet processing module, tax processing for various states, financial reporting, contract management, transportation, land management, asset management and general oil pipeline tracking system
Responsibilities and Accomplishments Designed and implemented software modules within the W Energy Software ERP system. Utilized Ruby on Rails along with Active Record, BackboneJS, MomentJS, Bootstrap, HandlebarsJS were used for rapid application development and rich UX. In addition, to provide clients blazing performance, Go was used to provide both batch/data processing along with grid pagination within the UI screens. I was responsible for development and designing modules such as Expense Reporting, Labor Distribution (including payroll/timesheet/employee hierarchy funcitonality), Contract Management, and Tax processing.

Technologies, Libraries, Development tools and Platforms
  • Ruby on Rails
  • Active Record
  • Go
  • Vim/Tmux environment
  • AWS ec2 instances
  • Coffeescript
  • BackboneJS
  • MomentJS
  • Bootstrap
  • Handlebars

Bug Bonanza
July 2014 - April 2018
Client Ludiem
Description Matching puzzle game on Android platform called Bug Bonanza available in the Google Play store with over 1,000 downloads. Multiple worlds to play and different bugs to discover.
Responsibilities and Accomplishments Envisioned, created, designed and released the game “Bug Bonanza” to the Google Play store. I Formulated and implemented business model to produce revenue through micro transactions using in-app content as well as non-intrusive optional in-app advertising using Google AdMob. I utilized Android SDK/NDK via Java/JNI/C/C++ and integrated Google Play Billing Java Library and Google Admob Java Library for monetization and Google Play Game Services (C++) for player integration. Ubuntu Linux server within a tomcat container to automatically compile and build Java/C/C++ code using Gradle and CMake from Git repositories and running unit tests via Google Test and Google Mock. I developed game engine library following Entity Component System design patterns and integrated C/C++ open source software solutions including Ogre3D, CEGUI, OpenAL, Freetype, GLM, and STB. I used open source art tools such as GIMP, Blender, Tiled, LMMS, and Audacity to create 3D models, animations, graphics and sound effects and music for use in game.

Technologies, Libraries, Development tools and Platforms

Masterpass (by MasterCard)
August 2013 - June 2014
Client MasterCard
Description Masterpass is an online digital wallet where consumers could register and securely store PII information including credit cards and shipping addresses. Masterpass integrates with Merchants and/or associated Service Providers in order to integrate websites and services utilizing Masterpass Digital Wallet. This is an easy and secure payment method for merchants and vendors providing a seamless integration the Masterpass Digital Wallet and a consistent and familiar workflow for digital wallet users.
Responsibilities and Accomplishments Technical lead providing direction and vision for Masterpass development team with focus on backend services for merchant and consumer checkout process. Developed REST services for the digital wallet and the merchant checkout process using Hibernate and Spring allowing customers to purchase items from merchants with their Masterpass Digital Wallet accounts. The REST API services that are implementing 3-legged OAuth 1.0a between MasterPass, consumer and the merchant using Java and Spring based services.

Technologies, Libraries, Development tools and Platforms
  • Springframework 4.0
  • Hibernate 4.1
  • Implemented 3-legged OAuth 1.0a
  • JBoss EAP
  • IntelliJ IDEA (Java IDE)

MasterCard Developers (Open API)
July 2011 - August 2013
Client MasterCard
Description MasterCard Open API gateway that will expose internal Mastercard services to external clients through a common and secure REST API using OAuth 1.0. Developers or clients are able to access these services through Developer Platform via Mastercard Developers site where they can register an account, request service access and create applications to integrate MasterCard Developer services
Responsibilities and Accomplishments Implemented the MasterCard Open API gateway that will expose internal Mastercard services to external clients through a common and secure REST API using OAuth 1.0. The service itself implements the OAuth 1.0a specification including logic validation of the Authorization header, consisting of the consumer key, signature, timestamp and nonce. I setup several different stress test and performance testing scenarios using JMeter to measure and improve the Open API Gateway to handle different backend service loads.

Technologies, Libraries, Development tools and Platforms
  • Springframework 3.2
  • Implemented OAuth 1.0a
  • Spring Security
  • Hibernate 4.1
  • JMeter
  • JBoss EAP
  • IntelliJ IDEA (Java IDE)

MasterCard BankCard Notification Services
July 2010 - July 2011
Client MasterCard
Description MasterCard service that would allow for Banks to register their customers for alerts and notifications through means such as email and text message. Those alerts could be scheduled or event driven types for things such as low balance, exceeding number of transactions, daily/weekly balance information or others. Bank customers would provide both events and time based alerts information for card holders.
Responsibilities and Accomplishments I designed and implemented software that was used for sending different types of notifications to card holders. I created high level and detail design documents and was the sole technical lead that managed developers to properly implement the technical design specification by daily code review and guidance. The design was done by decoupling the software into multiple components to reduce resource intensive processing by distributing compute cycles across multiple application servers. The first service was to interface with the bank customer data. This service processed bank customers information and persisted the events into the Oracle database. A second service would register any loaded events via Java Quartz schedule and trigger an action based on the event type. If conditions were met and alerts and notifications were needed then a JMS message was produced via Websphere MQ. The final service would consume JMS messages alerting the customer with an SMS or email notification. The decoupled services acted together as a cohesive solution to alert and notify bank customers of their bank card status. The design was done in a scaleable distributed manner.

Technologies, Libraries, Development tools and Platforms
  • Springframework 3.6
  • Java Quartz Scheduler
  • Spring Security
  • Hibernate 3.6
  • JMS via WebSphere MQ
  • IBM Rational Application Developer (RAD)

Cross Store Label Printing Application
August 2009 - January 2010
Client Brown Shoe Retail Stores
Description Tool utilized by stores to handle all printing for every different type of label needed by the stores. The labels include UPC for items, binclip for displaying item information, bintag for also displaying item information in a different format, original price, sale price and size information labels. The web based label printing application created a central point of printing for in-store labels across all different Brown Shoe stores.
Responsibilities and Accomplishments Lead architect and developer utilizing a Springframework and Hibernate java stack using the itext java library for PDF output of labels. I worked with store operations team and store managers to fully gather understanding of all label requirments needed by stores all stores. The label printing application could be accessed from both the stores office PC as well as the store hand held devices. This allows the store associates to perform their job function much more quickly and efficiently. This label printing application could also search by brands or item category and also show useful inventory information such as on hand quantity, in coming quantity (on its way to the store), and on reserve quantity.

Technologies, Libraries, Development tools and Platforms
  • Springframework 3.0
  • Spring Web Flow 2.0
  • Spring Security 3.0 (using Active Directory via LDAP)
  • Hibernate 3.3 (with Hibernate Annotations 3.4 using JPA)
  • Facelets and xhtml
  • MyFaces JSF 1.2
  • AOP using AspectJ
  • iText PDF library
  • RSA 7.5 IDE, Websphere 6.1, AS/400 DB2, Oracle
  • Apache Ivy for dependency management

Corporate Budget
November 2008 - March 2009
Client Brownshoe finance department
Description Tool for allowing finance department to add, modify and delete daily budgeting information for Naturalizer, Famous Footwear and Canada Stores.
Responsibilities and Accomplishments Introduced as a low risk proof of concept application to move development framework from traditional JSP/Servlets to a modern Springframework and Hibernate solution. Architected the new application development stack using Springframework and hibernate for this projects and to be a model for any future projects going forward. Dealt with searching/loading/saving/modifying/deleting different budgeting information for different types of stores across multiple databases. The application allows finance administrators to select different stores, hence transparently swapping databases, and accessing the different budgeting data. The data is kept to the detail of a single day estimations. This also allows a UI screen to upload MS Excel document that is parsed, validated, and loaded via Apache POI.

Technologies, Libraries, Development tools and Platforms
  • Springframework 3.0
  • Spring Web Flow 2.0
  • Spring Security 3.0 (using Active Directory via LDAP)
  • Hibernate 3.3 (with Hibernate Annotations 3.4 using JPA)
  • Facelets and xhtml
  • MyFaces JSF 1.2 (using Tomahawk for JSF file uploading component)
  • Apache POI (3.0)
  • RSA 7.5 IDE, Websphere 6.1, AS/400 DB2

INSIGHT - Integrated Network Status
Indicator (and) Growth Highlighting Tool
March 2007 - March 2008
Client AT&T Communications, St Louis MO
Description Insight is a capacity planning and management dashboard tool to manage IP router capacity. Using this tool the planners will be able to track router/router card logical resource capacity at a high level, identify usable capacity subject to the engineering constraints that are implemented in INSTAR as well as those proposed by Network Engineering Team, and, have the ability to adjust the logical resource engineering constraints. INSIGHT acquires IP router/router card inventory, IP router/router card logical resources, IP router uplink utilization and IP router VRF data then establish look-up tables for router engineering rules and models the data. Algorithms are performed to adjust engineering constraints and create IP router logical capacity and IP router VRF management Reports.
Responsibilities and Accomplishments
Investigated OLAP technology and designed multidimensional database structures such as dimensions and cubes. I utilized the Java OLAP API from Oracle to successfully retrieve measures for given criteria from cubes. I wrote a simple framework that utilized Oracle's OLAP API to quickly and efficiently query data from cubes and retain it in a multidimensional bean. I also introduced the JSR 220 standard, Java Persistence API (JPA) to the group to fulfill RDBMS requirements.

Technologies, Libraries, Development tools and Platforms
  • Oracle Olap 10g
  • Hibernate 3.X using JPA
  • Struts 1.2
  • JSP
  • Eclipse IDE, JBoss, SunOS, Oracle 10g

Switch Demand and Capacity
January 2006 - March 2007
Client SBC Communications, St Louis MO
Description The Switch Demand Capacity(SDC) management consolidation effort will replace existing legacy systems in three regions (ACIMS (MW), LSDF/APB (SW), ISIS/LSDNC (W), and Genesis), with a common Single Suite application that will allow Network Design Engineers to track and plan Central Office switches, capacity and utilization. SDC provides a view of the current end office capacity and the forecasted demand of the wire center. Provides switch capacity monitoring tools for switch capacitators. Includes timing and sizing of switching capacity. This information is used to formulate end office relief plans, track relief plans and analyze the utilization of an existing office.
Responsibilities and Accomplishments Solutions Architect Lead that introduced Springframework to be utilized within the team for the first time. Utilized Spring's IoC capabilities by integrating Hibernate, JSP, Spring MVC, AspectJ, DWR, Quartz, and other various libraries. Setup an architectural design and completed proof of concept solution to be mirrored throughout the application by other developers as a model. Fulfilled business requirements of interfacing with older systems limiting to older architectural approaches by using setting up Java quartz timers to extract, process data, and dynamically ftp data using output streams. Utilized newer architectural approaches whenever possible. Developed a Service Oriented Architecture model utilizing web services to interface with an external application to instantaneously transfer information giving live results. Researched and utilized both Axis and XFire to complete these tasks. Implemented software using cutting edge technology such as DWR's comet (reverse Ajax) or server push techniques to broadcast quickly changing information to business clients.

Technologies, Libraries, Development tools and Platforms
  • Springframework 1.2
  • Hibernate 3.0
  • JSP and Tiles
  • AOP using AspectJ
  • Java cron scheduler using Quartz
  • Webservices using Axis and XFire
  • Ajax using DWR
  • Eclipse IDE, Apache Tomcat, Linux (dev), SunOS (test and prod), Oracle 9i

Single Point Login (SPL)
January 2005 - March 2006
Client SBC Communications, St Louis MO
Description Single Point Login application is written to address a company wide initiative to meet SBC security standards. The standards included things such as password strength checking, password expiration, secure login, encrypted storage, and validation of users.
Responsibilities and Accomplishments Application architecture lead that thoroughly investigated solutions to create a single point login service for web based applications. Applications such as NWCF, SDC, MTFS, VRF, PESOS, Nortel SSOP, Siemens SSOP, Lucent SSOP and others were modified to utilize a SPL interfacing with both Java and Coldfusion technology. Formulated a design that permitted an SSL encrypted connections, changing of passwords, resetting of passwords, validating passwords, accessing SBC user information from the SBC Phone Database, and created an application list that shows the available applications users have access to within the organization. Evaluated, tested, and adopted open source framework solution Central Authentication Service (CAS) to perform core login services. Modified Spring Web Flow definitions within the CAS framework to allow for required functionality beyond the simplistic login procedure.

Technologies, Libraries, Development tools and Platforms
  • Springframework 1.2
  • Spring Web Flow 1.0
  • Central Authentication Service CAS 3.0
  • Hibernate 3.0
  • JSP and Tiles
  • SOA architecture with Axis and XFire
  • SSL
  • Eclipse IDE, Apache Tomcat, SunOS (test and prod), Oracle 9i

Network Wire Center Forecasting
June 2004 - January 2005
Client SBC Communications, St Louis MO
Description Network Wire Center Forecasting (NWCF) is an application that allows for Network Capacity Managers to view and distribute wire center forecasts that drive the decisions for timing and sizing switch equipment jobs. NWCF is an interface between an internal wire line tool(SWIFTS) and capacity management applications (ACIMS (MW), LSDF/APB (SW), ISIS/LSDNC (W)). NWCF tracks wire center forecasts to a single switch and processes billing actuals with SWITCH actuals to provide accurate information.
Responsibilities
Utilized the Struts application framework along with Apache Velocity and Apache OJB to formulate an MVC architectural approach. Investigated and pursued other architectural design options to benefit the development process such as an Aspect Oriented approach. Determined that AspectJ would be beneficial to perform logging, error handling, authentication, and authorization. I compared and contrasted several view component options such as JSP, Apache Velocity, Freemarker and others, presented differences, informed developers, and made a conclusive decision. Worked with clients to complete implementation as specified in the business requirements.

Technologies, Libraries, Development tools and Platforms
  • Apache Struts 1.2
  • Apache Object Relational Bridge (OJB) 1.0
  • Apache Velocity 1.4
  • AspectJ 1.2
  • Sitemesh 2.3
  • Eclipse IDE, Oracle 9i, Eclipse 3.0, Apache Tomcat 5.0, SunOS 5.8