Welcome to my GitHub page. I will keep this page updated as a personal reference to projects I have either built or worked on, along with links where appropriate.
As you will see below, I am a senior level developer who has been building and architecting web apps for startups and established clients for over 10 years. I have worked with every major scripting language, as well as every major web framework there is.
My approach to web development is a bit unique however. Having started my career in construction, I take a more holistic approach to developing a project, keeping the larger project goals and objectives in mind. Being able to see the whole picture is what sets me apart from many other developers.
Listed below are the projects that I built, or worked on with a description of my role in each. Where appropriate, code samples and repository links have been provided as well as a list of the technologies used on each.
Roles developer leadership dev-ops
Technology php laravel mysql mongodb javascript jquery backbone.js html5 ruby opscode ubuntu-linux aws aws-autoscaling aws-load-balancer
SnapWire is a photo marketplace based in Santa Barbara, CA that is working on matching photo buyers from the agency world to the up and coming photographers that work within instagram and the mobile photography space. Their app utilizes a native iOS app, and a web app (with JSON API) where photographers can upload their best work to sell.
leadership I was originally brought in as a consultant to assist the CEO and the co-founder in building a development strategy that would help them move their development cycles forward. Prior to my arrival, the team had been using a waterfall method to assign tasks to various developers. As the business and sales needs progressed however, so did the priorities of the app features. Sometimes multiple times per week. This was leaving the developers frustrated and ineffective as they never had time to finish a task before it was shifted again.
Our strategy was to transition the team to an agile development methodology with set sprints, and a clearly defined backlog. This would allow the CEO and future product teams the opportunity to develop the priorities of the business independently of what was being developed for any given sprint. We also re-defined their massive backlog into themes and epics to more clearly outline a product roadmap that could be developed over time.
developer During the agile conversion process I also assisted the development team with both backend and frontend development wherever needed. The largest portion of the project that I undertook was the addition of a shopping cart system into their app where there previously was a single item purchase system called WePay that was causing customer confusion. The resulting cart integrated with their complex sales infrastructure allows buyers to purchase multiple photos at once, while allowing sellers to collect their earnings in an escrow account and take them out at will.
dev-ops As the senior developer on the team I took over and maintained the devops infrastructure for the app. As the user base grew, it became necessary to implement a horizontal scaling paradigm to handle the additional server load. Using the built in AWS tools, we segregated the server responsibilities, and added additional web server nodes underneath the built in AWS load balancer to begin answering traffic in an efficient manner. I developed the Chef recipe's (Opscode) that handled the server deployments, and initiated the auto-scaling mechanism using custom python scripts to build web server nodes as required.
SnapWire is a photo marketplace based in Santa Barbara, CA who is working on matching photo buyers from the agency world to the up and coming photographers that work within instagram and the mobile photography space. My role included:
Roles developer leadership dev-ops
Technology php symfony mysql mongodb node.js MEAN neo4j javascript jquery angular.js html5 ruby on rails Postgresql opscode ubuntu-linux aws
Originally called TCX.io, Creative District was a startup that was incubated out of Technicolor, one of the largest entertainment companies in the world. The idea of the startup was to create a place for creative people to gather online and collaborate together. The project roadmap originally slated a mobile friendly single page app, with a future native app to correspond.
leadership I was brought on as the lead developer for the initial start up phase of this project. My role was to lead the development team as we started working on the project, as well as assist the senior managers and the product team with the product development cycle from the technology perspective.
I was also charged with leading the agile process, assisting the entire team in understanding and working within the scrum methodology, as well as working as the scrum master for the entire team.
Additionaly, I helped the senior level managers in understanding the technical requirements of the various phases of the project while they planned out future iterations. This included development resource and time estimating.
developer As the senior level developer, I led the charge in helping decide which technologies the project would be built upon. The project was started as a PHP project using the Symfony framework, but transitioned before any code was in place to using the MEAN stack (node.js, Express, Angular.js and MongoDB). There was also a relational layer consisting of a Neo4J graph database.
During the sprint cycles, I developed new features and managed the integrations, pull requests, and QA during each sprint.
dev-ops As the development base grew, and as the team started pushing things to different environments, I ran the DevOps side of the project as well. I designed and architected the server instance setup, and deployed them all using the AWS platform. I also maintained deployment scripts for the developer machines that would deploy dev instances using virtualization with a single command.
Originally called TCX.io, Creative District was a startup that was incubated out of Technicolor, one of the largest entertainment companies in the world. The idea of the startup was to create a place for creative people to gather online, collaborate, and work together. The project roadmap originally slated a mobile friendly single page app, with a future native app to correspond.
Roles developer leadership dev-ops
Technology ruby-on-rails postgresql redis heroku ruby motion jQuery cloudflare
RecuitTalk is an app that envisions solving a part of the high school recuitment / athletic scholarship problem. The project was designed as a web app and a native iOS app that allows high school athletes to track their career stats in hopes of being discovered by college recruiters.
leadership I was brought on as the first hire, to take over development of the app that had been created by an agency. I assisted the CEO in picking the team, taking over the project, and instituting an ongoing plan to continue to develop features for the app.
leadership Assisted the CEO in developing an agile development strategy, breaking the project into stories and epic to be handed to the development team. I led the process by acting as the scrum master for the team.
developer Once the project had been delivered to the development team, we finalized the code and went through a few rounds of QA, fixing the remaining bugs, hardening the code base, and deploying the code to the various environments.
developer During the development, I acted as the integration engineer integrating pull requests, and ensuring correct coverage and that all test cases passed.
RecuitTalk is an app that envisions solving a part of the high school recuitment / athletic scholarship problem. Designed as a web app, and a native iOS app that allowed high school athletes to track their career stats in hopes of being discovered by college recruiters.
Trov (Originally called VARDA), was one of the first startups that I was ever a part of. I was with them for three years as their ongoing senior developer. I took over the project for a developer who was leaving to become the CTO of his own startup in the bay area. I was the sole developer on the project responsible for the entire stack from front end to backend to server management. The project lasted about two years before the company was purchased and turned into Trov, who I continued on with through version 1.5 of the project.
Trov (Originally called VARDA), was one of the first startups that I was ever a part of. I was with them for three years as their ongoing senior developer. I took over the project for a developer who was leaving to become the CTO of his own startup in the bay area. I was the sole developer on the project responsible for the entire stack from front end to backend to server management. The project lasted about two years before the company was purchased and turned into Trov, who I continued on with through version 1.5 of the project.
Roles developer
Technology php wordpress javascript jquery html5 ubuntu-linux ruby on rails
Intomobile was a long term contract position I held for about 9 months as the lead PHP developer for an online news site dedicated to the mobile phone vertical. I was charged with adding features and hardening an existing wordpress installation to handle over 3.5MM unique visitors per month including writing code to pull in data from a custom Rails app that provided data about almost every phone ever made.
Intomobile was a long term contract position I held for about 9 months as the lead PHP developer for an online news site dedicated to the mobile phone vertical. I was charged with adding features and hardening an existing wordpress installation to handle over 3.5MM unique visitors per month including writing code to pull in data from a custom Rails app that provided data about almost every phone ever made.
Outlined below are various personal projects that I have worked on for various reasons over the course of my career. Git repositories are given where appropriate.
Trog.de is a really simple URL shortener project I did for myself but never deployed. It was intended to provide self tracking shortened URL's for my own social links complete with an API for deploying from various apps around the web.
devop5 is a project that I have been working slowly to build that would offer devops as a service for technology companies. The purpose would be to build a custom set of devops tools that would be used to monitor and track server performance and provide infrastructure management.
PrizeMint is a simple site that I use to blow off steam sometimes. It was born out of a desire to test out how much humans desire to win. It then turned into a place where I could test out my abilities desgining games for people to play. I go back and forth with it whenever I have the time.
Would you like to hear more? Feel free to contact me in any of the way's below.
Eric Willis