MageTitans USA 2016

This was the first entry of MageTitans in the USA and it was amazing. These conferences are more oriented towards developers so it’s a great opportunity for developers to get some deep knowledge in some very interesting topics.

comp_banner_v2

Day 1

The day started with some straight forward talks on how to make the most of this conference by Sherrie Rohde. Then, Brent Peterson explained some project management strategies for Magento projects and the best way to keep the customer updated through reports and how to deal with change requests on an Agile project. Then, we had a talk on Magento2 Integrations by Eugene Tulika, and how to use the Rabbit MQ framework for implementing a Facebook chat bot fully integrated with Magento, which works a lot like an asynchronous message queue.

Then, we had an amazing crash course for M1 developers moving to M2 given by Gabriel Guarrino. He provided us with a great road map for tackling the differences between M1 and M2. He provided a great summary of the new directory structure in M2 and how it relates to the M1 directory structure. He also explained how setup scripts are now structured and how to implement observers, class rewrites and controllers in M2.

Then, Ivan Chepurny gave a very interesting talk on how to use micro services for boosting M2 performance. This was a highly technical talk but it introduced a new approach for deploying Magento websites.

Finally, we had the one of the best talks of day, in which Brendan Falkowski explained how to design the B2B experience with a very in depth explanation of the main differences and goals between B2C and B2B customers, and how to tackle each of them.

The final talk of the day was probably the best one. Allan Macgregor explained how Machine learning is being used for tackling the biggest challenges in eCommerce, such as product recommendations, search, fraud intelligence, price intelligence, anticipatory shipping, content personalisation, among others. Klevu was presented as an excellent choice for applying machine learning to search and present better results to the user, while Paypal was mentioned for their fraud detection capabilities, Uber for their price intelligence capabilities and price surges depending on supply and demand, and Amazon for their anticipatory shipping, which allows them to start the shipment of certain products before the customer actually places the order.

Day 2

This was a very long day, but very exciting with 13 speakers in total. We started the day with a talk by Kimberely Thomas on how to use Scrum and Agile with Jira and Git. For instance, creating a branch per Jira issue and doing a pull request for enabling code reviews, and doing some testing and fixes before merging the code into the master branch and pushing it live.

Next, Igor Melnykov gave an in depth talk on the Staging and preview EE feature. He explained how this feature was implemented in Magento 2 and how it can be extended. This was a very technical talk right after lunch. Then, a benchmark of Magento 2 using PHP 5.6, PHP 7 and varnish was shown by Miguel Balparda. This talk was very similar to the one presented in Imagine 2016.

The next talk was given by Jon Higby from Paypal on how to improve mobile conversion, and the importance of mobile which corresponds to a third of the visitors to a website, but it has just 1% conversion in mobile compared to 3% in desktop, so there is definitely a huge opportunity on this. He then explained that responsive design is the initial step for improving the mobile experience, but not the only one. The website should be mobile friendly, with an easier checkout, mobile friendly payment options, asking for fewer details to the user for completing checkout. A/B testing is very important for checking whether any changes are actual improvements or not. An introduction to Braintree.

Then, we had a very interesting Panel discussion and QA session with the Magento masters. They discussed how to contribute to the Magento community, and they said that documentation is the easiest way to contribute, and this is not limited to developers, many other roles could contribute a lot to the community.

A lighting talk on how to implement continuous integration with Jenkins, Ansible and PhantomJS was given by Jonathan Bownds. Another lighting talk introduced two new extensions for easing Magento 1 development was given by Chris Manger. The first tool was the Enhanced Developer tools extension, which can be used for finding block details on the page by just adding a GET parameter to any URL on the frontend. The second tool was an Attribute creator extension, which is used for creating Magento attributes easier and in fewer lines of code

Next, a selenium based testing framework was presented by Kevin Shroeder, which is used for automating browser tests. He explained all the framework elements and how it can be used in conjuction with PHPUnit to write browser tests for Magento. He also gave a couple of very interested examples for achieving this.

Then , we had a walk through the code migration tool for converting M1 modules into M2 modules by Christian Partica. The tool converts the directory structure, layout, config and code files into the M2 format, and it highlights any issues that require manual fixing.

The next talk was called “Moving M2 Forward. This was a very inspirational talk given by Ben Marks on how to get involved with Magento by submitting Feature requests, pull requests and reporting bugs or issues. Furthermore, some issues on the marketplace regarding vendors bypassing it to deliver fixes and updates, and some extensions not tested thoroughly.

Then, we had a walk-through all the integrations available in Magento, such as APIs, Webhooks an RabbitMQ, but Joshua Warren put special emphasis on RabbitMQ. He showed us how RabbitMQ fits in the big picture, and he explained some of the performance benefits of using RabbitMQ

Next, Olga Kopylova gave a very informative talk on M2 deployment and the different requirements for each environment. For instance, production deployment has security, reliability, performance and flexibility requirements, whereas the requirements for development environment deployment are mainly ease to deploy and debugging tools availability. She also explained the application modes available on M2, and the common issues with file permissions. She said it is recommended to have two users(a web user and a command line user) on production environments, since it provides better flexibility, but it’s a more complicated setup. Both users should be in the same primary group for managing permissions easier. Finally, she outlined the steps for upgrading staging and production environments. The main question during the QA was how to achieve zero downtime solutions for M2 deployments, but there is nothing like that yet apparently.

img_20160909_165154829

The final talk by Steve Yankovich was about the future for Commerce. He said he would expect to have zero click shopping solutions driven by voice or other alternatives such as VR or augmented reality options, that would allow people to multitask and do shopping while doing other things.

Day 3 – Workshops

There were a few workshops on different topics, such as KnockoutJS, themes, deployment strategies, performance and testing, among others. The most interesting one was the deployment one, because we had a chance to share our deployment strategies, in particular how to best set up our development environments. This included tips such as enabling caches, opcache, using PHP 7 and M2 developer mode. We also explored the installation options available, such as Native, Vagrant and Docker each with their own advantages and disadvantages.

It was a great conference overall and we are looking forward to the next entry in the series.