Mario Peshev Interview
Meet Mario Peshev, @no_fear_inc, the force to be reckoned with behind WordCamp Bulgaria and the WordPress Bulgaria User Group. He’s a teacher and a musician with a passionate belief in the power of open source.
Tell us the story of how you got into working with WordPress.
Some eight years ago I was working for a leading local internet media company with a dozen different niche sites. Back then it was launching a custom blogging platform that went live as a simple version of a WordPress Multisite as we have it now. Around that site I got involved with blogging and I did some research on related blog projects (including WordPress).
In 2007 I was no longer working there and I decided to set up my own blog. Tempted by the chance of getting my last name as a domain, I got hosting and installed WordPress on it. That was the perfect time to play for a bit with plugins and themes and do some customization here and there to get used to it. Coming from the Java development industry, I was stunned by how fast it loaded and how easy it was to customize everything, so I got hooked.
It was a longer transition though, as I was still working as a Java developer and doing custom PHP freelance projects. I had a “test run” for two clients with WordPress, building some custom code, fetching remote data from other websites, dealing with galleries and catalog entries. At some point WordPress 3.0 changed everything — WordPress and WordPress MU merged, Twenty Ten became fully featured with custom menus, header, and background options, and finally — custom post types and custom taxonomies. I moved to full-time WordPress development and deprecated all the other platforms and frameworks we had been using before.
You’re the organizer of WordCamp Bulgaria — how did you get involved with the Bulgarian WordPress community and what’s the most important thing you get out of being involved?
I co-organized WordCamp Bulgaria last year and I took over most tasks for this year. I also organize the WordPress Bulgaria User Group. I have been conducting training courses for many years and all speaking-related events feel somewhat close to what I do and what I love to do. I’m also very passionate about open source and part of my philosophy is that open source is not only related to code, but to sharing, global information transparency, and everything else on a daily basis.
I feel truly frustrated when companies still use custom frameworks and CMS solutions for small and mid-level clients for no apparent reason, building awful code and charging tons of money for maintenance as clients get tied to their solution forever. WordPress is the definite solution that I would present to everyone — they could easily get help and find experts everywhere without being dependent on proprietary software.
As an established member of the WordPress community, what are the best ways to mentor new community members and encourage them to get involved?
There are various ways to get involved in the WordPress ecosystem and even contribute back to the community. Siobhan (McKeown) has been writing proactively and I agree with most of that.
Active community members could do different things to help — answering questions in support forums, writing tutorials or books, speaking at WordCamp events and meetups, leading workshops, helping on Trac, and sending feedback to theme/plugin authors on code quality.
People are different and they react to information in a different way, so the more channels for representing information there are, the better and easier for the users to get involved. Video tutorials and podcasts are great too.
I try to do a little bit of everything and I am lucky enough to communicate with different people on a daily basis, see what sort of troubles they face and try to either automate a solution with a plugin or script, get it patched or spread the solution at a training session or an event.
You had mentioned sending feedback to theme and plugin developers. Can you offer some tips on how to provide excellent feedback developers can use and apply?
This one is really important. The difference between a closed community and the open source society is the ability for everyone to make a difference. Regular users should understand that the majority of the plugin and theme authors are responsive and open to suggestions, ideas, feedback, and bug reports — it is important for their business as well!
Non-technical users should provide as much information as possible to product authors. I was lucky to work for people such as Amir Helzer and Frederick Townes over the past two years and both kept telling me how important it is to understand that you need to imprint your idea into someone else’s head, in other words, provide all the context and prevent any ambiguity and questions. Tickets and forum threads such as: “My plugin doesn’t work, why?” don’t help at all. What I would like to hear from a non-technical user, for instance, is: “I am using your plugin on the latest version of WordPress on X hosting together with Y theme. I have 30 products with images and pricing. Whenever I try to add a new product, I get a red message in the sidebar saying “Z.” This happens only for products where I don’t enter any data in the Price text box.”
See? There is nothing technical here, but it helps so much by providing the right data. I would also suggest sending a video or screenshot with the error message from the user system. Sometimes providing sample data can help, as well as a list of all active plugins on the site (for possible incompatibility).
Developers themselves could certainly provide patches and issue pull requests on GitHub if there is an active and official plugin project hosted there.
As a WordPress trainer, what is the WordPress concept that your students find most difficult to grasp and how have you changed your approach to training to help them along? What are students most curious about when it comes to learning WordpPress?
I have been experimenting with different course programs — improving them with every course — for users, front-end developers, and plugin developers. I am trying to organize separate logical tracks for all groups and publish them as an open source course directory so that people around the world can use and improve it.
At the end of the day most students get comfortable with WordPress and start using it in practice. I always give them homework assignments and a final course project. We use different channels to communicate issues and problems with the practical projects. Part of my courses are led in the open Telerik Academy as a parallel track where people study other technical platforms and the variety helps them to pick “the right tool for the job” and get more precise in picking the optimal solution when implementing a theme or a plugin as well. We even have competitions for final projects where Drupal, Joomla, and Sitefinity trainers present their CMS and students pick a CMS for their complete project. WordPress is the platform that 85% of students have selected for the past two years.
The front-end users struggle with the concepts for hooks. They aren’t tech-savvy enough to browse in Core so I give various examples of popular and useful hooks to be used during development. I also have to explain carefully the life cycle of a WordPress application so that it is clear what is initialized where and how. We also stress the various arguments of functions generating sidebars, menus, widgets, and other areas of the site that need to follow a .psd design.
The back-end folks get a deeper intro to hooks so that we can all create extensible and reusable plugins. Sticking to best practices and avoiding static code when there are functions available in WordPress Core is also essential. Naturally, they need some time to get used to all available WordPress APIs, but the overall result is satisfying.
I discuss the program with previous students to see if there is anything missing, and I also follow various sources to get ideas and links to include in my slides and demos. I was able to record several videos for courses in Bulgaria with live workshops for building a theme or a plugin from scratch, and they all have thousands of views from people who want to get involved as well.
As a WordPress trainer, what is the most important thing that you have learned from your students?
I love teaching (and support) as it’s the best way to get the most of a given technology. As a practical expert you can solve problems in specific project setup and profile in APIs and verticals. When you have to prepare a curriculum, you have to explain the bigger picture and cover all single aspects one component at a time. It requires a lot of reading, research, and testing which is often unrelated to previous experience in projects.
When I prepare a new training program, I grab ideas and demos from my previous courses, browse SlideShare, search for similar course programs and books for inspiration, look for the right tutorials and FAQ entries, watch YouTube videos, browse sites like Reddit and forums such as StackOverflow or WordPress.org support for possible issues, check for related Twitter discussions, and look for cheat sheets. I use them all to improve and compile a decent set of steps and demos, together with related links for additional information that my students can use.
The most important thing that I have learned is that there are millions of edge cases that you need to cover. I often get unexpected questions for issues I would never think of myself, or problems I would never get on my install — they could be related to the OS, the server version and setup, the WordPress install, the set of plugins, and so on. Whenever I can’t handle that quickly during a workshop, I take notes and research in the evening so that I can provide the answers for the next session and add them to the slides if appropriate.
You’re a musician who composes his own songs and who loves to improvise. How does music help fuel your creativity?
In my opinion music and development have a lot in common — I have met many software engineers who are also musicians. The software industry defines a set of rules and best practices, so does music. However, usually both worlds do the “real thing” outside of any frames. Jazz musicians are usually well versed in rhythm and the structure of a song, but always take the next step by adding more flavors.
Even though I’ve spent less time composing music over the past few years, I still have gigs with my band, play several musical instruments, and listen to music while actually thinking of its structure, gathering ideas, comparing, and evaluating — just as I do with software.