|
- *PHP Frameworks:* Yii 1.1 and enchanced it with Pimple DI Container, Symfony2, |
|
- PHP Versions: 5.4, 5.5, 5.6 |
|
- Dependency Management: Composer |
|
- Version Control: Git hosted on BitBucket |
|
- ORM: Doctrine2, |
|
- Database: MySQL 5.6 (leveraged full text search for InnoDB tables) |
|
- Template Engine: Twig, |
|
- Build Tools: Apache ANT, Atlassian Bamboo |
|
- Testing Frameworks: Behat 2.4, PHPUnit 3.7, and 4.2 + code coverage + filesystem mock, |
|
- APIs consumed: Mandrill, Zanox AWS, Google, MatchesFashion, LinkShare, Clickatell API (to send SMS messages for campaigns, and conversions), TradeDoubler API (polling for transaction reports and add them to HasOffers API) |
|
- AWS Services: VPC, EC2, ElasticBeanstalk, S3, CloudFront, Route53, VPC, SQS, CloudSearch, RDS, IAM |
|
- Used several high quality open source bundles |
|
- Code Quality: Scrutinizer CI, SensioLabs insights |
|
- Debug: Xdebug |
|
- Performance: NewRelic, Blackfire.io |
|
- IDE: PHPStorm |
|
- Issue Tracking: JIRA |
|
|
|
## Achievements: |
|
- Migrated legacy Yii application and moved its data to new Symfony2 app hosted on AWS. |
|
- Implemented a mechanism that downloads remote data feeds, then feed reader processes huge xml files (2GB) in a matter of seconds by utilizing PHP's XMLReader library. Other features include, “how many feeds to import” simultaneously, dynamic field mapping meaning it does not require code modifications for XML files structured differently. |
|
- Optimized performance using Blackfire.io when importing data feeds: reduced total runtime from hours to a few seconds, and reduced memory consumption to only 30mb of memory from 300mb. |
|
- Created a system that generates huge product data feeds based on given user criteria in a matter of seconds, in 4 different formats: XML, RSS CSV, Json. |
|
- Created more than 10 affiliate tools, that serve thousands of affiliates every day, with millions of hits every month. Purpose of a few tools is to be embedded on an external site, which generates a lot of traffic. System uses AWS auto scaling and handles traffic spikes without a problem. |
|
- Many affiliate tools leverage CloudSearch search engine (with facets) to delivery fast and reliable results with mixed language content (English and Greek). |
|
- Migrated existing sensitive data from DirectTrack to HasOffers without service interruption. |
|
- Reduced bandwidth costs by studying data and serve compressed datafeeds for clients that support it. |
|
- Frontend optimization by minifing JS, CSS (on deployment), HTML output (on the fly), enable gzip compression (configured AWS AMI). NewRelic was also used to identify slow rendering pages. |
|
- Securely deployed ClickBanner Tools on AWS and isolated backend services using private subnets across multiple availability zones using VPC. |
|
- Tool to connect to MediaMarkt SFTP server, download compressed csv datafeed, export it, convert it to XML, and import it. |
|
- Followed best practices as advertised on Symfony & phptherightway.org websites, conducted research on how a cloud app should work (12factor.net), how to ensure maintainability and to continuously improve code quality |