I am extremely active on GitHub and love interacting with the community on open source projects. My latest large endeavour is Hyla, which I am using as an opportunity to expand my skillset with new technologies like CouchDB and RabitMQ. I often use personal projects to impose new challenges upon myself with technologies that I would not be able to experiment with during regular work hours.
Senior Server Engineer
(2012 - present)
Improved and maintained the in-house PHP framework. Improvements included removing XSS vulnerabilities, replacing the Database abstraction layer, implementing a logging library that would allow for shipping logs to a central service (Kibana, Graylog, or others), and improving the error handling.
Led the initial efforts to write a "v2" of the PHP framework which turned into a set of shared APIs to be used by game teams. The team (Services Engineering) now devlops multi-tenant services for game teams to use that handle things like user authentication, payment processing, and integration with various game publishing platforms like iOS, Android, and Facebook.
Currently handling the DevOps responsibilities for the Services Engineering team. I led the effort to move from bare metal machines to being fully powered by AWS in order to handle the bursts in traffic caused by game events. My responsibilities include automating deployments using Packer, Puppet, and Docker; managing the CI environment with Bamboo; maintaining the AWS infrastructure including EC2 instances, Auto Scaling Groups, CloudWatch alerting (tied to PagerDuty), and CloudFormation templates; and leading the load testing efforts in order to optimize the usage of AWS resources.
Senior Software Engineer
(2011 - 2012)
Developed the two main applications with KohanaPHP, BackboneJS, and MongoDB. Set up and managed the server infrastructure and local development environments using Chef, Vagrant, and Amazon Web Services. Put coding practices in place in order to improve the development process of the team.
(2009 - 2011)
Developed web applications using Kohana, JQuery, and MySQL. Gained knowledge about managing Linux servers, setting up continuous integration with Hudson, and deploying with Capistrano and Webistrano. Some of the projects I worked on included amberalert.com, bodetree.com, and onsurg.com.
Florida International University
(2006 - 2008)
Helped manage a domain/web server running on Windows Server 2000. Maintained the machines and wrote a few applications to facilitate various tasks for the labs.
Projects & Contributions
This is a list of some of the Open Source projects I have worked on over the last decade. Most of them are pet projects that were used to explore new technologies before implementing them at work. Some of these projects are fairly popular and used by the Open Source community.
My main contributions have been to the ORM, Minion, and Validation (in core) libraries. I've been very active in the Kohana community for years and was made a core developer. I've also written quite a bit of documentation related to the features I've worked on, as well as Unit Tests (using PHPUnit).
Hyla was a project manager. I used the project as an opportunity to expand my skillset with new technologies like CouchDB and RabitMQ.
This Kohana module helps in defining dependencies between Views and css/js files. It works well in applications that utilize sub-requests (HMVC) or when multiple views must be rendered independently. It was born out of the necessity of an assets class that was not static.
The Kohana Media module is used for leveraging Kohana's great cascading filesystem to serve media files. It supports versioning of media files (by altering the url) and caching to public directories. When properly set up, media files are only served through PHP once, then cached and moved to a public directory where your web server can serve them directly, eliminating the overhead of serving files through PHP. Coupled with a deployment script, the user will never be served a media file through PHP.
YForm is a form generation module for Kohana. Although torn on the idea of generating forms from PHP, we needed something at Synapse Studios for quickly creating forms in our projects. I wanted a module that did not restrict the outputted HTML and did not include unnecessary features like built-in validation and saving. I've grown to like YForm quite a bit and have many ideas for future features. YForm was inspired by another internal module written by Jeremy Lindblom.
Minion is a CLI tool written for Kohana applications. I've helped support it since first being written by Matt Button and have created a number of additional components, like the Repository Tasks. Since Kohana v3.3, Minion is officially supported by Kohana (where I am one of the main maintainers).