It’s impossible to really understand what a big software development project is until you’ve experienced and been part of a really, really big project. I came to fully comprehend that during the re-platforming of thegreatcourses.com, a well-established (25 year-old) e-commerce company with tens of millions of customers, and whose site receives more than 2 million sessions per day. I was one of eight Tech Leads at Guidance Solutions, a Magento Gold Partner, when I was asked to lead a development team on the re-platform.
The project was a $1 Million – $2 Million multi-store Magento Enterprise implementation that was initially supposed to be completed within four months. The project involved a Tech Lead (myself, and late in the project an additional Tech Lead was added), a project manager (and later two additional project managers were added), fourteen experienced Magento software engineers (some local, and some off-shore), and two QA engineers plus a QA manager.
Requirements for the project included hundreds of features and stories, dozens of pages, and more than 20 system integrations (e.g. Microsoft Dynamics AX, Apache SOLR, Akamai, Chase Paymentech, Omniture, TaxOffice, DataMart, StrongMail, and several others). We also had extremely aggressive requirements for performance, scalability, maintainability, redundancy, monitoring, security, PCI compliance, compatibility, graceful failover, and system availability, which entailed a lot of very careful, intricate, detail-oriented design of the overall architecture.
Other requirements included building fully responsive interfaces, a digital video and audio library where customers could view or listen to their purchased digital courses, and also a very complex pricing model derived from an existing internal legacy promotional advertising software system.
In addition to leading the development team, I was also heavily involved in devOps, which included setting up a deployment and integration pipeline through an internal instance of Webistrano (recipes programmed in Ruby), load testing with JMeter and Gatling, and setting up the Stage & Production auto-scaled, load-balanced, clustered AWS environments, with an integration server, a Chase payment gateway server w/ Magento Payment Bridge, a MySQL RDS instance, SOLR search server instance, Redis distributed cache, Memcache session storage, and Akamai CDN.
Some Technologies Used:
Magento, AWS (EC2, RDS, ElastiCache, CloudWatch), PHP5, MySQL, Redis, Memcache, SOLR, JS, Bash, Gatling, JMeter, Webistrano, Ruby