Experienced, detail-oriented software engineer focused on cloud computing.
Python | Shell | Django | J2EE | Java SE | Servlet | JSP | JMX | JNDI | Ant | JUnit | Spring Security | Spring | JDBC | Maven | Hibernate | JAX-WS | JAXB | Jackrabbit | JCR | Ruby
Databases/App Servers/Operating Systems
MySQL | MongoDB | Cassandra | Couchbase | Redis | Oracle | SQL Server | PostgreSQL | JBoss AS | Tomcat | CAS | ApacheDS | Active Directory | Windows | Ubuntu | Mac OS X
Amazon EC2 | Amazon EBS | Amazon S3 | AWS Elastic Beanstalk | OpenStack Keystone, Nova, Neutron, Glance, Cinder, Swift, Horizon, Trove | OpenShift | Heroku | Chef | Puppet | Fabric | RabbitMQ | Corosync | Pacemaker
Git | VirtualBox | Jenkins
MTS 2, Software Engineer
eBay, Inc. (Austin, TX)
- As part of eBay Inc's Global Platform Infrastructure, providing products and services to the entire eBay Inc. family, developed, deployed, and supported database-as-a-service, an OpenStack Trove-based service providing on-demand standalone and clustered MySQL, MongoDB, Couchbase, Cassandra, and Redis datastores.
- Contributor to the open-source OpenStack Trove project (and other OpenStack projects) including code, bugs, documentation, and infrastructure debugging. See stackalytics.com.
- Speaker at OpenStack Trove Day, a one-day conference on Trove in Cambridge, MA coinciding with the Trove Juno mid-cycle meeting. Co-presented on the present and future of Trove at eBay.
- Developed git-push-based OpenStack developer workflow, which was eventually open-sourced as "git-push-devstack." This workflow streamlines the code-publish-test cycle. Also open-sourced "getchange", a script to automate Gerrit change testing and modification with change dependencies. Authored or co-authored a number of closed-source development and deployment scripts specific to eBay.
MTS 1, Software Engineer
Magento, an eBay company (Austin, TX)
April 2012-November 2013
- Deployed multi-node, private OpenStack cluster on bare-metal from forked GitHub repositories for OpenStack (Nova, Keystone, Glance, Swift, and Cinder). Used customized Chef cookbooks for automated deployment.
- Lead effort to replace floating IP-based failover solution with Corosync and Pacemaker-based cluster for VM high availability (HA). New solution deployed to production was faster, more robust, and had higher test coverage than the previous solution.
- Wrote Python scripts to automate everything from generating OpenStack resource reports to booting VMs with hypervisor anti-affinity to rebooting a hypervisor with graceful guest shutdown and volume-related bug workarounds.
- Created cloud engineering knowledge base (KB), seeded it with articles, and shared with other eBay, Inc. cloud teams. KB grew to contain countless runbooks used by the cloud engineering and operations teams.
- Served as part-time scrum master running ceremonies, leading backlog grooming sessions, and creating stories.
- Improved the continuous integration and continuous delivery platform built using Jenkins, Cloud Foundry, and OpenStack by making the Ruby-based pipelines more robust, easier to configure, and more secure.
Senior Software Engineer
Pentaho Corporation (Orlando, FL)
October 2006-April 2012
- Designed and implemented next generation repository for storing secured BI artifacts such as reports and ETL transformations across all products. Repository implemented using Spring and Jackrabbit with custom node types and access control logic. Multi-tenanted repository supported artifact versioning, locking, undeleting, and ownership. Used Spring's aspect-oriented programming (AOP) to implement the cross-cutting concerns of security and transactions.
- Served as primary point of contact for feature addition, support, and defect resolution for the product's security system. Created thorough documentation and numerous HOW-TOs, making the product's security one of the best-documented areas on the public wiki. Provided extensive assistance to support, training, and sales departments by participating in numerous security-related engagements. SpringOne Americas 2008 speaker.
- Integrated company products with various cloud (IaaS and PaaS) providers. Created process for launching company product suite on Amazon EC2 without the use of a custom image. Process used for testing and training. Also open-sourced on GitHub.
- Completed implementation and new feature additions on the product's license system--code that restricts execution of enterprise software to authorized customers.
- Participated in Spring Security, Apache Jackrabbit, CloudInit, and other open source communities including opening defects and providing patches. Addressed numerous technical questions from users on the company's public forums.
- Developed exclusively with Linux since 2007.
Application Software Developer
Wyndham Vacation Ownership (Orlando, FL)
October 2003-September 2006
- Designed and implemented extensible web application security infrastructure according to best practices. Used Acegi Security to provide transparent authentication and authorization. Encapsulated user management (e.g. registration, password retrieval, administration) into a separate web application whose services were shared by client web applications. Designed security infrastructure to support users from heterogeneous datastores such as Microsoft Active Directory and relational databases like Oracle with graceful degradation for unsupported operations. Provided verbose auditing. Account lockout was implemented using the Observer pattern. Created custom single sign-on (SSO) implementation that seamlessly integrated with Acegi Security's authentication mechanism.
- Served as the primary implementer of initial data layer, business facade, and reusable UI elements for company's primary external web site using established enterprise design patterns. Used Hibernate for object-relational mapping and Spring DAO support for data access objects. Wired dependent objects together using Spring's bean factory functionality while also providing per-environment "override" configurations. Designed common, reusable page elements using Tiles. Followed Spring conventions of judicious use of Java interfaces and runtime exceptions. Introduced transformation layer to allow Hibernate POJOs to differ from the business objects, allowing design of data layer and business facade to proceed independently and in a manner convenient for each.
- Assisted operations personnel with the configuration of development, integration, and staging environments in addition to a production environment. Configured clusters and servers in WebSphere including virtual hosts, datasources, and shared libraries.
- Served as a build engineer for application builds using Ant, administrator for version control and continuous integration systems (ClearCase and CruiseControl respectively), and system administrator of shared development machines.
MS in Computer Science, 2003
University of Central Florida
BS in Computer Science, 2001
University of Central Florida
GPA: 3.9, Magna Cum Laude