Fabian Schmengler is one of very first certified Magento developers. He is an active member of the Magento community and has been an attendee at the Meet Magento DE. Fabian completed his studies at the RWTH Aachen University, majoring in Software Engineering and its paradigms. For his thesis, he chose to study, research, analyze, and then write about the problems developers usually experienced in the development of Magento Modules.
I recently caught up with Fabian to ask him about Magento and how Magento 2 will change the ecommerce landscape. His answers were interesting and funny to say the least. I am sure you are going to enjoy reading them as much as I did! 😀
Cloudways: On which main elements did you focus on for your thesis statements? Let us know why you chose Magento? We have many other platforms to follow, what makes Magento different from others? Please share your thoughts with our readers.
Fabian: My thesis with the title “An Approach for Application Development with Unstable PHP Frameworks” focused on the development process in Magento projects, its problems and possible solutions. Some important elements were test and documentation techniques. To be honest, the reason I chose Magento was a pragmatic one. When I graduated in 2013, I already had two years of full time Magento development under my belt and wanted to use my practical experience. Also I intended to create something useful for my own career.
To answer your question, what makes Magento different from others: compared to other PHP frameworks and applications of its time, Magento 1 was a heavily engineered platform, targeted at engineers rather than hobby web developers. Still far away from perfect, I did not call it “unstable framework” for nothing, but an interesting challenge.
Cloudways: I can call you a writer, a blogger, a person especially interested in Software Development Process and Testing, a web developer, a script developer, consultant and specialist, a person who has vast years of experience with Magento. A well known Magento Certified Developer and Solution Specialist. What challenges & difficulties did you face initially? Share your initial career and hardest time as a professional, with our readers.
Fabian: My career as professional web developer started in a funny way. Back in 2005, in a time where Facebook was still some unknown startup, the social web was divided into many community portals and chat rooms.
A friend of mine was a moderator in one of the bigger German communities until he had a dispute with the admins and left, with the promise to build his own, better portal (“I’m gonna go build my own theme park style”). He gathered 3 people to get it started and I was one of them, because I knew some PHP and HTML and thought it sounded fun. I spent my nights coding for the next time and did not see much of the University, and a few months later we had hammered out a product with horrible code base and buggy as hell, but thanks to the marketing skills of my colleague and some unique features, started as a great success.
Fast forward two years, only us two of the starting members are left, we had founded a company, constantly improved the platform (let’s say the code was a bit less horrible now), added a browser game to our portfolio and were able to live from it. But our money was mostly in affiliate marketing and that bubble was about to burst.
Fast forward another two years, the latest project, our own condom brand, only available as award for collecting bonus points was not such a great success anymore. My first child was born (these events are totally unrelated!) and I went back to University to finish my degree, only working part time for my company and side projects.
Then in 2011 a client asked if we could build a Magento shop. We agreed that I have no idea, but will commit myself to learn it and work on the requirements multiplied by hours per months for a fixed price. Magento was in great demand, so I took the opportunity, got my teeth into it, and before you know it, I was one of the first Magento Certified developers.
As for initial difficulties with Magento: I came with high expectations, after taking Software Engineering courses and reading a lot by people like Robert C. Martin. For example, I just got into the habit of TDD and of course wanted to unit test all the things in Magento. Guess what, reality punched me hard in the face. I tried a few test frameworks, stuck with EcomDev_PHPUnit, but it was still immature and Magento 1 far away from testable. But I do not give up easily and learned a lot about Magento while debugging core files.
I still have some unfinished blog article from that time, where I rant about the Magento architecture (like, why don’t they use interfaces?) but this better stays in the dark.
Cloudways: What are the initial and main problems a developer can face as a freelancer? Discuss the problems you commonly faced as a freelance developer. Currently, you’re working at integer_net. What do you think, is this the best place to spend rest of your career, after having more than 10+ years of experience in the world of development and automation?
Fabian: If you read my long story above, you’ll see that I am not the typical freelancer developer. I started a freelance consulting business on the side but never needed to rely on it, it was always just bonus work which I picked if I wanted, as it came in.
So let’s talk about the future: integer_net is a great company, where I enjoy almost the same flexibility as when working on my own, but additionally can rely on our team of experts. It’s great to work with like-minded and skilled people like Andreas von Studnitz. It’s hard to say what the future brings and our industry is changing rapidly, but as it is now, I plan to stay with the company, and maybe even get more involved.
Cloudways: Magento 2 is available for everyone to discover its exclusive features, do you prefer Magento 2 over Magento 1 with respect to the new technology and updates? What do you think, why was there a need to launch Magento 2 when Magento 1 was already entertaining thousands of stores easily?
Fabian: Magento 2 was not needed for new features, but because the code base had degenerated over the years and architectural problems had long become obvious. I approve of the decision to turn it upside down and create a new product that adheres to modern standards and am indeed looking forward to work more with Magento 2 than Magento 1. It’s still far from perfect but the attitude has changed, today Magento embraces the community to work together on improving Magento and is moving fast. Alan Kent and his team did a great job over the past months!
Cloudways: Would you suggest new startups or merchants to implement Magento 2 rather than Magento 1? In your opinion, what are the limitations of Magento 2 and what would you suggest for its betterment? Do you think that Magento 2 is the most secure framework or it can be made more secure for the clients?
Fabian: To be honest, right now you should only invest in Magento 2 as a merchant if you are willing to take a high risk or have a comfortable budget. The limitations are a lack of extensions, especially things like payment integration and I have the impression that it was launched hastily to meet the promised release date, many parts are still a work in progress. Both are issues that time will take care of, if the core team and the community keep delivering as they do now.
Regarding security, a big and widespread product such as Magento will always be subject of exploits, just a fews back I saw a screenshot of a cross site scripting injection in Magento 2 checkout. I would not say that Magento is the most secure framework, of course it can be made more secure.
The good news is, this is happening. The many security patches of 2015 and the new security alert mailing list prove that Magento takes security more seriously now and I am confident in using it. As one says, security is not a product, but a process.
Cloudways: Is the Magento 2 code more testable? Will testing be easier and helpful with Magento Testing Framework (MTF)? Do you believe MTF can help developers in Magento 2 code debugging and development?
Fabian: Yes, yes, and yes. If you used tests in Magento 1, you will find Magento 2 to be a notable improvement. If you are new to testing in Magento, there will still be frustrating moments. But to reassure you, testing classes with 30 dependencies is not what you are supposed to do all the time.
That’s also why I promote decoupling your business logic from Magento and break free from the framework. If you write and test it without depending on Magento at all, clean design and pure TDD is possible. There is some additional work in tieing this code into Magento again but it’s worth it – for Magento 1, for Magento 2, and especially if you write code for both. Watch out integer-net’s blog for an upcoming series of posts on that topic!
Cloudways: You attended Meet Magento DE Conference twice in 2014 – 2015 and also we’ll watch out for you speaking in Developers Paradise Summer Edition 2016 at Croatia. Kindly highlight the importance of events and conferences like these. Do you think MM conferences are very useful for newbies? As a developer what are the advantages of attending these type of events?
Fabian: The first time I attended Meet Magento DE in 2012 as a guest, it was very inspirational. As a developer, still relatively new to Magento, I learned a lot from the tech talks, for example I still remember the talk by Fabrizio Branca from AOE about their Angry Birds cloud server setup. Another advantage is getting in touch with the community. Talking to other developers is always useful, not only for newbies.
Fun Fact: I would have presented the results of my thesis at Meet Magento DE 2013, but at that time my second child was born, so my mentor Dr. Nikolai Krambrock took the stage for me.
Cloudways: How did you feel after completion of your first ever project you worked on? For a developer, keeping some time free is quite near to impossible, but let our readers know how you spend your free time? What are your interests and hobbies? Do you like playing sports or videogames? How did you manage your personal and professional life?
Fabian: When is a project complete? I could not say what I would call my first completed project. As for my free time, I spend most of it with my young family. In the past, I regularly went to heavy metal concerts and festivals, that’s very rare nowadays. I prefer play board games and pen and paper role playing games over videogames, so once every 1-2 weeks I turn to a sorcerer in Middle Earth or a Technomancer in the Shadowrun universe.
With several jobs, it’s not easy to keep a work-life balance and I often work the weekends and evenings. But I love what I do, at least 80% of the time, and am not pressured into it too much. There were times where I often came home to the kids already sleeping because of some deadline that had to be matched, but that’s not happening anymore. Some things that make up a good work-life balance for me: being able to have flexible hours and work from home, not having the need to be available 24/7, being able to say “no”.
Cloudways: Name some people who inspired you the most and kept you motivated going through tough routes in your professional and Mage life.
Fabian: One of the most inspiring people I met is Vinai Kopp, earlier in his role as Magento guru, recently again because he encouraged me to think out of the box, and to create a new modern style of Magento module development. I also have to mention again my mentor Nikolai Krambrock, who taught me to favor the simplest solution that possibly works. Others are Fabrizio Branca for Aoe_Everything and his insights on development and deployment processes, Ivan Chepurny for his dedication to testing and performance and Alan Storm for his thorough blog posts about the inner workings of Magento.
Abdul Rehman
Abdul is a tech-savvy, coffee-fueled, and creatively driven marketer who loves keeping up with the latest software updates and tech gadgets. He's also a skilled technical writer who can explain complex concepts simply for a broad audience. Abdul enjoys sharing his knowledge of the Cloud industry through user manuals, documentation, and blog posts.