Architect / Developer Resume
SUMMARY
- Architect/developer of two - person team which developed a configurable IoT and analytic platform, along with predictive diagnostic networks. Scala / Spark Streaming / Mesos / Kafka ZK / Cassandra / AWS / custom Scala daemons / microservices. The platform processes, transforms, and stores billions of time series data points per month to make predictive analysis on industrial equipment. real time analytics and predictions based on live production stream using Spark Streaming / Kafka ZK / YARN (and Mesos) (2) user session capture and replay engines to optimize revenue from a real time bidding system fronted by a multivariate funnel (extensive Golang) (3) persistent TCP layer to replace web service calls to decrease latency to the real time bidding system (Akka IO + HAProxy) (4) “server to server” advertising server processing messages between mobile advertising partners (Akka) with microservices developed low level Android services which synchronize data between Android devices and the data cloud (CouchDB, Node.js, custom SQL technology, AWS). (2) Cloud “datasync”: Developed the data cloud which synchronizes data between SQL <-> NoSQL in both directions between stations.
- Starwood Hotels: architect and developer of the next generation $200 MIL SOA reservation system for Starwood Hotels. Developed web services which processed tens of millions of records per minute and helped develop organizational wide SOA COE
- Confidential (UK banking): platform team: architect and lead developer of SOA web services used by all of Citi; developed critical SOAP services used company wide across Citi’s banking platform and white label banks including XML digital signature
- Toyota Financial: lead architect on new insurance products and system modernization
TECHNICAL SKILLS
- Java, Scala, Go Language, javascript, C/C++., Linux, Android, iOS, Win
- IoT (1 year) Predictive analytics for industrial equipment using sensor data
- Spark Streaming (5 years) and Spark TimeSeries, SparkSQL, SparkR
- Mesos (3 years) - built from source, configured and tuned
- YARN (4 years) multiple projects, configured and turned
- AWS (7+ years) EC2, EBS, S3, VPC, SES, ELB, AWS CLI, Route53, etc. on many projects
- Google App Engine (2 years) Google GAE (Java), Google SQL, etc. used to develop Confidential SAAS app and on a personal project
- SAAS (3 years) develop the Confidential SAAS app and Confidential ’s white label SAAS banking app
- IBM WebSphere (3+ years): development of WAS AdminServer, from scratch to start of v5 (Java). WebSphere has become a billions dollar product.
- Quest Software (now Dell) Foglight/Spotlight on WebSphere/Weblogic (3 years) via acquisition of Laminar Software
- Confidential SAAS product and Confidential ’s SAAS banking system (4 years)
- Microservices (3 years): developed two microservice architectures + many services
- SOAP (4 years): Architecture and development of core web services (Citi, Starwood): JAX-WS, JAX-RS, DataPower, ObjectGrid, WSRR, Oracle XML DB, WAS, Tangosol distributed cache, Spring/Hibernate/myBatis, Guava, Mule
- REST (7+ years): Web Services development for online lead generation company, Asia Confidential, IoT project, Starwood reservation system
- Establishment of SOA governance boards and SOA Center of Excellence
- MongoDB (5+ years) install, configured, application use with Rogue, including Mongo GridFS and 2D Sphere indexing for geo-location
- CouchDB (2 years) install/configure/development of CouchDB, including dynamic CouchDB filters for replication and Changes API for development of real-time datasync
- Cassandra ( 1 year) optimized table structure for queries, writers/readers using Scala/Phantom. Processed billions of records per month
- Google Cloud Datastore / S3 / DynamoDB (5 years+)ostgres/Oracle/DB2 (10 years) on many projects, including Postgres Python triggers, DB2 Java triggers, ORM (Hibernate/iBatis)
- Android system level background services ) real time data sync
- Developed four personal published iPhone apps
- Developed one personal Android App
- Javascript
- D3 graphic library
- Angular
- Bootstrap
- HTML/CSS
- Node.js
- HAProxy nginx
- Docker
PROFESSIONAL EXPERIENCE
Confidential
Architect / Developer
Responsibilities:
- Developed Spark Streaming jobs (Scala) and infrastructure to perform calculations on full production real time data in a sliding window, store results in Hive and output to Splunk. Installed and configured Spark cluster on YARN (with an additional Mesos based cluster) to process large amounts of real time streaming production data. Installed and configured YARN cluster, HDFS, Spark, Kafka, Zookeeper and Hive. Developed Splunk queries for a custom dashboard. Developed on RHEL.
- Developed a Golang based Capture Engine (capture user sessions in real time) and a Golang based Replay Engine (replay multivariate user sessions for predictive analytics and maximizing revenue of real time bidding system). Replay engine can slow or speed up original traffic, maintains and replays end user sessions, computes browser fingerprints, masks and replaces PII, replays AJAX call, processes form submissions, and ensures a replayed session uses same A/B page (potentially containing different forms) as original session. Used Docker to replicate environments and run replay of production traffic. Developed on RHEL
- “server to server” ad conversion server between numerous advertising partners. Server used Akka Actors + Akka routing (Scala), along with microservices. Developed new internal tool using Angular / Web Services (Java) Developed on RHEL
- “Persistent TCP Communication Connection layer”, using Akka I/O, for a lead generation matching engine. This replaced higher latency HTTP WS calls enabling the user to see matching leads faster, which resulted in higher revenue. Installed and configured HAProxy + Heartbeat to create a reliable system between web clients and matching engine. Developed on RHEL
Confidential
Asia Architect / Developer
Responsibilities:
- Architect / sole developer of real time data synchronization software (Datasync) used in a major Confidential in Asia.
- Developed daemons to synchronize data from SQL <-> NOSQL <-> SQL in real-time and in both directions (for the data cloud). Written mostly in Java, along with Python scripts for PG triggers, Javascript for Node.js servers, and CouchDB filters and views (both Erlang and JS). These daemons synchronized timetable, schedule, ticketing, and user data across all the stations. Developed microservices to enable runtime configuration of DataSync (enabling/disabling certain tables for instance). Developed on Ubuntu EC2 servers.
- Developed an Android Service to synchronize data between the Android device and the data cloud (real time data synchronization in both directions). This Android Service was part of the Android App for purchasing tickets. The Android Service was coded to be reliable in all Android OS scenarios such as Android’s killing of processes in low memory conditions, network partitions, slow network conditions, etc.
- Developed Node.js modules which served as reverse proxies to Couch and microservices. Used Docker containers to test and deploy in reproducible environment
- Extensive use of AWS (EC2, EBS, etc) on Ubuntu
Confidential
Co-founder, Developer
Responsibilities:
- Co-developed multi-layered image caching for extremely fast image serving using graphicsmagick and GridFS. This system is on par with Flickr.
- MongoDB: installed, configured a clustered MongoDB environment. Created Mongo records with geo-spatial indexing, populated records using data from Google Places and Yahoo WOEID apis.
- Built DAO layer using Mongo Rogue.
- Built and configured infrastructure: Amazon EC2 cloud (EC2, EBS, VPC, SES, ELB, S3) with nginx, varnish, and MongoDB. All on Ubuntu.
- Used Docker to run services such as Redmine and a Discourse site. Used to Docker replicate across stages.
Confidential
SaaS Architect / lead developer
Responsibilities:
- Sole architect and developer of a new SaaS (Software as a Service) data warehousing application. SaaS featured a drag and drop data warehousing roadmap, D3 charting, one touch relationship matrix, and Google Docs-like spreadsheet capabilities. One code base for web, mobile web, and iPad. Full stack development
Technologies: Google GAE, Java, Google SQL Cloud, Guice, Guava, GSON, REST, MyBatis, JQuery, Velocity, Javascript, D3, CSS3, HTML5
Confidential
SOA Web Services lead - platform team
Responsibilities:
- Web Services Lead in Global Transactions Group; responsible for the architecture, design, and development of the core Web Services supporting the Citi BE next gen banking system (with SaaS white-labeling). Role included the architecture, design, and construction of SOAP and RESTful Web Services which powered UK and global payment systems.
- Developed platform-level Web Services using CXF (JAX-WS implementation), Mule, WebSphere, Object Grid (for distributed caching), Spring, Hibernate, Sharepoint (UI portal). SOA technologies include WS-*, SOAP, REST, JAXB, SOA patterns, SOAP handler/interceptor chains, XSLT. The platform Web Services are the core services for Citi web based and mobile applications.
- Recommended and helped develop XML Digital Signature infrastructure for securing banking payments (along with mSSL). Requirements and solutions for SOA specific security issues such as replay attacks, XML bombs, using validation for DOS attacks.
- Authored internal white papers on SOA. For governance, approved all WSDLs and XSDs.
Confidential - Alexandria, VA
Sr. SOA Architect
Responsibilities:
- Member of 3-person SOA Architecture group tasked with introducing an SOA stack and SOA methodology into a VB/Tuxedo shop on the AHLTA health care system (EHR).
- System architecture and deployment of the Oracle SOA stack: UDDI, ESB (Oracle OSB), Oracle Application Server, UDDI. Designed cloud deployment with VMWare for future state.
- Establishment of SOA governance board and SOA Center of Excellence. Introduced SOA governance of new and certified services.
- Designed a future state SOA Architecture to eventually decouple AHLTA Tuxedo based client from direct connection to Tuxedo legacy services. POC’d the decoupling of one Tuxedo based service.
- SOA enabled a legacy Tuxedo Service using Oracle SALT via the ESB. Architecture of Patient Web Service, Registration Service, and other Web Services using UML. Secured services with TLS and message based security.
- Provided recommendations for HL7 services such as PIX/PDQ.
- Developed an example Web Service using the Oracle SOA stack (exposed through ESB, enabled discovery via the UDDI)
- USPTO USPTO (white paper) with on-site video conference calls
- Commissioned by USPTO to write a paper for SOA security architecture recommendations for a SOA system across the IP5 offices. Participated as the SME in video conference calls with USPTO, European Patent Office, and Japan Patent Office.
Confidential - White Plains, NY
Senior SOA architect
Responsibilities:
- Sr. SOA Architect responsible for the system architecture of a new $200 Million SOA based hotel reservation system, completely replacing an existing mainframe based system. The SOA system, built using JDK 1.5 and deployed on WebSphere 6.1, provides flexibility in integrating over 1400 hotel properties using diverse property management systems, Expedia, Travelocity, Priceline, etc.
- Involved in architecture of overall SOA system, worked with SOA including DataPower, WebSphere SIB, REST vs SOAP services, JAXB and JAX-WS, WS-AT, WS-BA, WSRR, MQ.
- Authored parts of a Reference Architecture which established SOA standards and guidelines for the entire IT organization on technologies such as JAXB, REST, JAX-WS, JAX-RPC, WS-* such as WS-Policy and WS-Notification, WSDL, Java Persistence (iBatis, JPA), DataPower, SIB, Enterprise Portals, Service Interaction, security, mobile.
- Developed and deployed SOA governance using WSRR. Architecture team developed a custom lifecycle (SACL file), custom classification system (OWL files), custom WSDL validators (including WSI validation), e-mail notification, and custom user interface. Enabled SSO authorization and authentication using WebSphere, WSRR, and LDAP. This will prevent a service consumer, for example, from promoting a web service from QA to Production. WSDL and XSD development and approval based on best practices.
- Architected and developed a pipe and filter Transaction Auditing Web Search capable of processing and storing over 100 million messages a day from both DataPower (IBM's SOA hardware device) and Web Service Clients (SOAP/JMS). Used MQ series to provide guaranteed delivery in a scalable and reliable pipe and filter architecture. Provided direction on clustering and hardware configuration of Server. Created design artifacts creating using RUP.
- Optimized and helped architect MQ for Transaction Auditing Web Service (Web Service clients used SOAP/JMS). Used WMB, client concentrators, transport queues.
- Integrated WebSeal (reverse proxy) and Tivoli Access Manager with WAS to provide single sign on (SSO) for Web Services, along with mSSL. Provided SOA solutions for SOAP specific security issues such as replay attacks, XML bombs, validation DOS.
- Developed proofs of concepts (such as on WS-BA, WS-AT, Enterprise Portals, Oracle XML DB, RESTful services) and determined best of breed technologies. Proof of concept of Process Server.
- Extensive work with using Oracle XML DB to store DataPower Soap messages. Designed and performed successful proof of concept of XML DB, both in insertion time and queries using XPATH. Developed schemas for XMLType columns. Analyzed many aspects of XMLType: performance when using schema vs. non-schema, effects of schema complexity on insert and query times, ability of XMLType to evolve with changing schemas, and effect of performance when indexing via X-PATH in XMLType.
- Integrated DataPower with MQ and Oracle XML DB by using XSLT transformations and JMS calls to store DataPower messages in Oracle XML DB.
- Mentored Web Service development teams across the project on standards, guidelines, and development of their Web Services.
Confidential, Boca Raton, FL
Senior J2EE Technical Architect
Responsibilities:
- Member of a three person consulting team tasked with creating a new cloud based, DR production environment for Choicepoint’s online applications. The cloud based solution was used by Choicepoint customers to implement a 4-question challenge authorization system (ex: at which address have you never lived) New production system was spread across two data centers for disaster recovery using HP blades server and RAC technology.
- Analyzed existing production system and authored a performance report. Recommended changes to existing to increase stability. Worked with network admins, system admins, and senior management to implement these changes on the large ChoicePoint network.
- Architected and built new cloud production system based on existing traffic patterns and growth projections. Built new multi-site DR system from scratch: Machine installation and configuration, OS configuration, WebSphere 5.1 clustered environment. Installation and initial configuration performed via KickStart to provide a fast, reproducible and consistent configuration.
- Made coding changes to migrate ChoicePoint software from Websphere 4.0 to WebSphere 5.1.
- Architected a new build process to eliminate dependencies on development environment.
- Developed a monitoring and alerting tool for the new production system.
- Helped bring ChoicePoint back online after multiple hardware failures that occurred during hurricanes Wilma and Katrina. Used kickstart configuration to quickly bring ChoicePoint back to a known and reproducible configuration.
- Analyzed existing WebMethods broker system. Made a number of recommendations to change code and to reconfigure the broker using territory manager. Changes vastly improved performance and scalability.
- Performed due diligence on several logging companies to provide a central logging solution for the company.
- Helped migration from Oracle drivers to DataDirect’s Oracle drivers for improved scalability.
Confidential
Senior Software Engineer
Responsibilities:
- Second employee of pre-funding Laminar Software, a company acquired by Quest Software for its APM product.
- The core Laminar product was repackaged into Quest’s Spotlight on WebLogic ®, Quest’s Foglight on WebLogic ® (WL 6.1, WL 7.0, WL 8.1), and Quest’s Foglight on WebSphere ® (WAS 4.0, WAS 5.0). This product suite monitors a real time 24x7 clustered J2EE environment, as well provides for performance tuning, scalability analysis, and capacity planning.
- At Quest Software, productized the core Laminar technology into the Quest Foglight and Spotlight product frame (COTS).
- Used deep understanding of WebSphere administration to extract and analyze key WebSphere and J2EE metrics. This includes data on EJBs, JDBC, JMS, JVM, and AppServer internals such as execute queues.
- Developed engine rules which determined when users should be alerted of a performance problem; helped develop the appropriate performance tuning guidance and troubleshooting guidance given to users when such problems occurred.
- Helped to design and develop code to make Spotlight a COTS tool that was easily installable via a web download
- Wrote Agents for obtaining AppServer specific management information (WebLogic MBeans for WebLogic, PMI, WSCP, and MBeans for WebSphere). Collected and processed data on EJBs, JDBC, JMS, JVM, AppServer internals such as execute queues, etc. All data passed from
- AppServer to Spotlight using XML.
- Created MQ system for testing JMS monitoring technology.
- Created UML based architectural diagrams for the Control Center; wrote some of the online help which directed the actions a user should take when a particular problem was found by the software. Help initial customer debug bottlenecks in their production systems.
- At Laminar Software, led a team of three developers in the development of the initial eFlex Control Center . Responsible for the design and development of the eFlex Control Center for the complete product lifecycle (from initial design through GA release).
- The Control Center, which remains the key component of Quest’s Spotlight on WebLogic and WebSphere, collects raw management data from AppServers and then analyzes it to provide root cause monitoring and analysis for the user.
- Designed and implemented the following key components of the Control Center:
- Multi-threaded auto-discovery and connection management (making initial connection, detecting lost connections, re-establishing connection, ending connection) to multiple AppServers.
- Server side processing of incoming data from multiple AppServers
- Developed the first industry RMI Connector for JMX MBeanServer
- Analyzed current environment of several major banks; helped banks deploy a customized Eflex product into their environment.
Confidential
Advanced Member of Technical Staff
Responsibilities:
- Developed of IBM WebSphere Application Server as member of initial 20-person WAS team. Developed system management portion of IBM WebSphere Standard/Advanced runtime engine, versions beta, 3.0, 3.5, 4.0, initial development of 5.0.
- Helped design portions of the system administration and its configuration (ie. AdminServer).
- Developed portions of performance monitoring tool included with WebSphere.
- Extensive development of a common framework used by all IBM labs to plug in system management components.
- Designed and implemented the NLS (national language support) framework used by WebSphere.
- Helped develop administrative components for EJB, JDBC, JMS, Data Sources, etc. and many of the task wizards for the framework. Identified problems with various databases.
- Traveled to IBM development labs to give training on the common system administrative frameworks we built; worked with other IBM labs in integrating their code into common framework.
- 1996: Worked on performance for a secure, distributed and transactional DCE Encina Publish/Subscribe secure publishing system. This system was designed solely for JP Morgan currency trading system. Technology was integrated into MQ Series.