Eric Willis The GitHub Page

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.

Projects

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.


Snapwire Screen Shot

SnapWi.re

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:

  • Consulted with CEO and Senior team on strategies for product management. leadership
  • Worked with team to transistion the development paradigm from waterfall, to scrum / agile methodology. leadership
  • Re-defined the backlog into themes and epics which helped define a product roadmap.leadership
  • Assisted development team in completing stories and bug fixes as the backlog was groomed and defined. developer
  • Built and deployed a custom shopping cart system to replace an older single photo purchase system that had been implemented. developer
  • Worked with marketing team to develop and implement solutions for marketing, including pulling stats from the data that was collected on users, adding data to be collected, and implementing a user tracking an contact system (intercom.io) developer
  • Developed and maintained DevOps infrastructure for use on AWS infrastructure. dev-ops
  • Built a horizontal scaling server setup using AWS auto-scaling and load balancing. Unitlized Chef (opscode) to implement and deploy server instances, along with custom python shell scripts that handled the deployment. dev-ops

Creative District Screen Shot

Creative District / TCX.io

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.

  • Brought on as the lead developer. Role was to lead the development team, and assist senior managers. leadership
  • Acted as the developers liason for the product team as they worked on designing the end product. leader
  • Also charged with defining and leading the agile process for the startup team. Acted as the scrum master for the entire team. leadership
  • Additionaly, assisted senior managers with estimating time and resources for developers as a part of their larger milestone schedule. leadership
  • Led the development team as senior architect defining the various parts that would make up the app. Defined the app architecture and how the various logical layers would interact with each other. developer
  • Oversaw development as it was going on, developing new features as well as acting as the integration and test / qa engineer. Managed pull requests and end of sprint iterations and integrations. developer
  • Defined and implemented the deployment strategies as well as the server architecure using AWS. Defined a scalability plan that would assist the startup grow as it's traffic increased. dev-ops

Creative District Screen Shot

RecruitTalk

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.

  • Assisted CEO in building band new dev team. Also assisted in building a development roadmap for public release of the app, and adding ongoing features. leadership
  • Worked with the dev team and the CEO to develop an agile development strategy. Worked as the scrum master writing and editing stories, organizing epics, and taking feedback from the product team. leadership
  • Finalized the product in preparations for public release. Handled QA and bug fixes that remained from the agency and deployed the code to various environments. developer
  • Acted as integration engineer handling pull requests, and ensuring proper test coverage and builds passing. developer

Trov App Screen Shot

Trōv

Roles developer

Technology php codeigniter mysql javascript mootools html5 ubuntu-linux mssql

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.


Intomobile Screen Shot

Intomobile.com

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.


Personal

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

Technology ruby on rails

Git https://github.com/ecwillis/trog.de

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

Technology ruby on rails python django devops chef opscode

Git https://github.com/devop5

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

Technology ruby on rails

 

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.

Contact

Would you like to hear more? Feel free to contact me in any of the way's below.

Eric Willis
3940 Broad St.
#7135
San Luis Obispo, CA 93401

info@ecwillis.com