Knowing inspirational story, insights and helpful advice from experienced Magento developers always excites us. Today, Simon Sprankel who acquired the Magento extension shop Modulwerft.com and built his career around Magento platform since early days, will share his thoughts about Magento development experience, in particular from Magento 2 perspectives.
Thanks Simon for taking out the time and making this worthwhile for our friends here at UberTheme and anyone who has passion in Magento.
UberTheme: Please introduce a bit about yourself. Why did you choose Magento as a career? What challenges did you face in the initial months when you started with Magento?
Simon: I am a 27 years old computer scientist, web and Magento developer. I live and work in the beautiful city Frankfurt, Germany. As a freelancer, I work under the name of CustomGento, which may become an extension online shop in the future. I acquired the extension online shop Modulwerft last year. I now sell and further develop these awesome high-quality extensions.
I maintained an online shop, which was based on xt:Commerce. In 2011, we realised that xt:Commerce is not an option any more and that we have to develop the shop on a much more professional platform. I did some research and stumbled upon Magento, which I really liked right from the beginning. Then I slowly realised that it is indeed an awesome platform, but also a quite complicated one. But that was actually too late -- the decision was made and I had to learn that system. Hence, it was not really a conscious decision to do a Magento career. I slipped into it and then saw that there is quite a market for it. So I decided to do it full time after my computer science studies 2014.
When I started with Magento back in 2011, there were not so many technical resources, so that it was quite hard to get started. You had to learn most of the stuff on your own. Now, there are numerous blogs, pages, Magento StackExchange, the Magento DevDocs for M2 etc., so that it has become easier. The learning curve is still quite steep -- and I think it is even steeper for Magento 2 -, but you now find a lot of resources.
UberTheme: Extensions are very useful. Can you name your 5 most preferred extensions while developing your Magento website?
Simon: In no particular order:
- Lesti FPC is an awesome extension, which simply makes your Magento store much faster. It is not as good as Varnish -- which is not possible, because the technique is quite different -, but it is therefore much easier to install and configure. In many cases, you simply have to install the extension, activate the additional full page cache and you are done.
- Enhanced Admin Grids is a must-have extension for every shop owner, who does a lot of work in the Magento admin. You can configure for each table, which attributes you would like to see. Additionally, you can update these attributes right from the table view. For instance, you do not have to open a product in order to update its quantity any more.
- Magic Zoom Plus is also an extension, which many of my customers use. It is a plug-and-play solution for beautiful image zoom functionality.
- I used to install another extension for nice mega menus in Magento, but I was never completely happy with it, because the code quality was not that good. I now found a really well written extension with great support, which is also quite flexible. It is the mega menu extension by TheExtensionLab.
- M2ePro has become THE extension for selling on Amazon and eBay. It is quite complex, but once you configured it correctly, it seamlessly integrates these new sale channels in Magento.
There are numerous other interesting Magento extensions. I of course love all the Modulwerft extensions, so make sure to check them out. And you may want to checkout my starred repositories on GitHub. You can find a bunch of free and awesome Magento extensions there.
UberTheme: What is your highly recommended advice for developers and merchants for speeding up Magento websites?
Simon: There are roughly two categories, which are quite important if it comes to performance: hosting and code.
With regard to the hosting part, you should have a partner, which really does specialised Magento hosting. Magento has its requirements and it is often not enough to use a normal hosting package. It should really be optimised for Magento and the hoster should know the platform. I currently recommend Maxcluster a lot, because they and their systems are extremely fast. But I would also give Sonassi and Rackspeed a try. I recently wrote a blog post about my managed Magento hosting experiences.
The code part can be splitted into two big sections: Code you buy and code you write. If you buy extensions, you should only use trustworthy providers. For me, a partnership at the extension developer network extdn is a big criteria. It does not mean that all providers, which are not extdn members are bad. But it should definitely be the case that all providers, which are extdn members, provide awesome extensions you can trust. Regarding the code you write yourself: If you are a merchant, make sure that you have a developer who really knows Magento. Check if he has Magento certifications and check if he is active on Magento communities like Magento StackExchange or MageHero and check his GitHub profile. If you are a developer, always have performance in your mind and make sure that you learn about Magento as much as you can. If you then test your results thoroughly, you should be good.
UberTheme: Magento 2 is in the market. What are the major changes in this version that you see has made it worth the wait?
Simon: For me, there are two important things here. First, it is the awesome technical basis on which Magento 2 is built. Interesting, helpful technologies have been used, so that the customisation of Magento 2 should be even more fun. Second, it is the openness of Magento as a company. You can now really communicate with Magento employees and have a good chance that your voice is heard. Depending on your concern, you can simply ping Ben Marks, Alan Kent, Piotr Kaminski or Sherrie Rohde (just to name a few) and you will probably get an answer. Besides from that, Magento 2 being really open source with a public GitHub repository is the other part of the new openness.
UberTheme: Being an experienced Magento developer, what are some of the technical improvements and features of Magento 2.0 compared to Magento 1.0 that you like the most?
Simon: For developers, there are quite a lot advantages of M2 over M1. M2 is a complete technical overhaul and finally uses up-to-date techniques again. Composer, jQuery, DI and TDD are just a few keywords, which directly come into my mind when thinking about M2. Besides from this updated technical basis, the new technical openness of Magento -- especially the GitHub repository -- is awesome and allows that Magento becomes better and better.
For merchants on the other hand, M2 does not provide a lot of new features yet (!). For merchants, which know M1, M2 will currently (!) be quite disappointing. The focus for version 2.0 was clearly the new technical architecture. As far as I know, the next releases 2.1/2.2/2.3 will provide new features, which will make the migration to M2 more realistic and interesting.
UberTheme: What are your highly recommended advice for a new developer who wants to involve themselves in Magento 2?
Simon: I would first recommend a Magento training. If you do not want to spend too much money, you can still attend the online course, which is reasonably priced. As a second recommendation, have a look at the Magento 2 developer documentation. With these two resources, you should be good to make your first experiences with coding Magento 2 customisations. And if you are stuck at some point, go ahead and post a detailed question at Magento Stack Exchange.
UberTheme: What are your tips to minimize conflicts between extensions during Magento development?
Simon: The main issue, why there are extension conflicts in M1 is the fact that a class in M1 can only be rewritten once. As soon as two extensions rewrite the same class, you potentially have an issue. While this is kind of solved in M2, the way to go in M1 is to use events instead of rewrites. Many many rewrites could be prevented if one really tries to use events instead. There are quite a lot events one can utilise -- especially some more generic ones like core_block_abstract_to_html_before are quite powerful.
Sometimes you still need a rewrite, because another solution is not possible. If this is the case, the best practice is to simply fire a custom event in the rewritten class and utilise this event to do your customisation. For extension providers like I am with the Modulwerft, the extension developer network extdn is a good possibility to ensure compatibility between different extensions.
UberTheme: Let’s put Magento aside and share how you spend time besides your work. Do you like playing games, travelling and hangouts with friends?
Simon: Besides work, my family and friends are quite important to me -- I love spending time with them. Sport is an important factor for me, because I need it as a compensation for sitting and concentrating the whole day at work. I play table tennis and I sometimes even play badminton and squash. In my club, I am also the head of table tennis, so I even organise a lot in my free time.
I also love travelling to explore new countries and to really free my mind. I have lately been to Thailand and loved it -- especially the northern territory. My next stops will be Croatia (for the Magento dev paradise -- yay!), the Canaries and the Carribean at the end of this year.