Technical Architect
2012 - PRESENTTubeMogul, Inc.- Worked with teams at TubeMogul to provide architectural input and guidance as well as hands-on coding to implement specific features, capabilities, and libraries.
- Designed, documented, and coded a set of low-level libraries for use by all TubeMogul Java projects to consistently implement application configuration with first-class environment support and dynamic capabilities, service discovery, standardized application packaging, a standardized maven parent POM with dependencies, and other features to allow the applications to consistently interact with their environment.
- Designed, documented, and implemented a Docker based local development environment capability to allow developers to perform more full-cycle development and testing.
- Designed, documented, and implemented TubeMogul's continuous delivery capabilities in Jenkins. This included standardizing the company's Git branching model, build process, and deployment process as well as implementing their automated integration. Worked with Operations to create infrastructure and networking rules for this capability. Continued evolving the deployment scripts and infrastructure for cleaner deployments.
- Evangelized continuous delivery with teams and assisted them with adoption.
- Worked on the Statistics team to improve and operate a large scale Hadoop-based data processing pipeline. This pipeline processed billions of transactions per day to record, process, enhance, aggregate, and report on events within TubeMogul's online advertising platform.
- Helped design, code, and integrate a new finance module into the ecosystem to allow for more accurate and fine-grained billing of accounts as well as first-class support for multiple currencies.
- Created a cloud-based database backup system to reliably back up a cluster of 100 MySQL nodes and automatically validate each backup. The system included an AngularJS web console for inspecting the status of backups and reporting any errors.
Technologies: Amazon Web Services (AWS), Kubernetes, Docker, Apache Kafka, Hadoop, Dropwizard, Jetty, JavaSenior Systems Architect
2011 - 2012Passbox, LLC- Worked with a small, dedicated team to develop the Passbox in-store loyalty network product from the ground up. The product provided convenience stores with in-store daily deals, loyalty rewards, and targeted marketing all with high consumer engagement. This product spanned many technologies including an Android application deployed on in-store tablets, an iPhone application, a cloud-based server infrastructure, and a custom Verifone POS application. The system integrated with multiple external systems including the Excentus gas loyalty network, the Twilio SMS network, and the Giftango gift certificate network.
- Designed, developed, and deployed the cloud infrastructure to create a scalable, easily updated, and reliable server environment.
Technologies: Amazon Web Services (AWS), iOS, Android, Spring, JavaSystems Architect
2007 - 2011The Codeworks, Inc.- Worked as the system architect to design, develop, deploy, and support TCWI’s VMS Express product. This product utilizes many current technologies including cloud-based deployment, RESTful web services, a custom web browser client, server-side JavaScript business rules, SOAP web services, Kapow web scraping technologies, and configurable integration routes via Apache Camel.
- Worked as the primary sales engineer to demo VMS Express for potential clients.
- Managed the development team and process for product planning and strategy.
- Managed a client team at a Forbes Global 2000 company through requirements gathering, design, and implementation of the company’s internal Intranet application. This application utilized the Vignette Content Management System and Portal products to provide personalized content delivery to the company’s employees.
Technologies: Vignette, JavaScript, REST, SOAP, Jakarta EEDirector of Engineering
2005 - 2007MechanicNet Group, Inc.- Managed a team of software engineers and technical support staff through both new development and maintenance of a custom CRM platform that mines vehicle maintenance records to send postcard and email service reminders as well as other communications.
- Designed, developed, and deployed a custom data load infrastructure to nightly load 40-80,000 vehicle maintenance records (with peaks ~350,000) from over 80 proprietary XML data representations into a single normalized database.
- Implemented engineering processes, procedures, and disciplines including version control, defect tracking, release scheduling and management, code inspections, isolated and virtualized developer environments, production-mirroring QA environments, a centralized documentation repository, and a reliable software package release system.
- Designed and developed numerous web applications including a self-service postcard promotion system.
Technologies: LXC, PerlSoftware Engineer
2003 - 2005Robert Half International, Inc.- Customized and implemented Wily Technology’s Introscope J2EE performance monitoring system.
- Designed and developed a custom Java performance monitoring infrastructure.
- Worked on a team to design and develop an enterprise J2EE application that includes a desktop (Swing) client, web services architecture, and a standard J2EE application server tier.
- Architected and developed a client-side Swing data binding and validation framework and a server-side persistence framework based on the Spring Framework and Hibernate.
- Created and customized the Ant build system for the Java infrastructure.
Technologies: Swing, Hibernate, Spring, Jakarta EEConsultant
1999 - 2003Accenture- Designed, coded, and documented various Java web application components for applications such as an online testing system, a billing system interface, and an enterprise application integration system.
- Managed development teams through requirements gathering, design, implementation, and testing.
- Worked closely with client personnel throughout project phases, including activities such as requirements gathering, design sessions, system implementation, and client relationship building.
- Wrote technical documentation covering topics such as UNIX technical architecture, web-based application architecture and design, support processes and enterprise process impact, development tools configuration and support, and other technical topics.
- Coded various computer application components including development support tools, billing system components, and web-based components.
Technologies: Jakarta EE