Summary

I feel very comfortable working with PHP, MySQL, and Javascript. I also enjoy learning about other languages and the differences in their design. Even though PHP is the language we use at work, I love writing small tools in Python when given the chance. Most recently, I've been working a great deal with mongoDB and Backbone.js.

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.

Employment

Senior Server Engineer
KIXEYE

(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
Tinypay Inc.

(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.

Software Engineer
Synapse Studios

(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.

SERC Department
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.

  • Kohana PHP Framework

    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).

  • ScriptFoo

    ScriptFoo was my entry for the GitHub Game Off in 2012. It was my first attempt at making an HTML5 video game. The game teaches you Javascript by letting you interact with the world by writing scripts (spells). The latest version of the game can be seen at scriptfoo.github.io. We built ScriptFoo with Backbone, Crafty.js (a game engine), and the Ace editor.

  • Ji-Chan

    Ji-Chan is a simple HTML5 game I built with LaTorri Lindsay that was meant to help players learn Japanese. I used it as an opportunity to improve my Javascript (with Backbone.js) and HTML5 knowledge. It was quite fun to develop and we have a proof of concept running at beta.ji-chan.com. It's also open source and you can find the bulk of the application (the Javascript) at github.com/Zeelot/ji-chan.com/tree/develop/application/media/js/lib.

  • Hyla Project Manager

    Hyla was a project manager. I used the project as an opportunity to expand my skillset with new technologies like CouchDB and RabitMQ.

  • Assets Module

    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.

  • Media Module

    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 Module

    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 Module

    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).