This one fine morning, I overheard one of my colleagues exclaim to another:
“Come on dude, web dev is not rocket science.”
A very astute observation; software development is indeed no rocket science, it’s way cheaper and relatively easier to master. But wait a minute. What if I were to tell you software development IS rocket science?
While I am no authority on actual rocket science, what I do have is years of practice as a software developer, having worked with PHP/WordPress, .Net and Java/Android. Software development may not involve actual propulsion vehicles that fly to outer space and back, but the principles involved in designing an actual rocket and and an impeccable software system have an uncanny resemblance.
Think about it:
- Both these professions involve a very specific set of techniques and best practices that optimize the designing process and help you create a better, valuable and an efficient product.
- Both require a careful approach and a thorough design scheme before you actually begin development.
- Both go through countless simulations and test flights so as to account for unforeseeable complications.
- Both involve extra-ordinary amounts of fool proofing so that the end product does not go down crashing in real time use. Pun intended.
When you narrow the discussion down to just software development, the above points need not be specific to specific to any language, system or environment, but are applicable to the practice of software development in general. I guess one could say these are result-centric. The more loopholes you let creep inside your system, the higher the risk for the end user of facing mild to damagingly severe issues during application. As the designer/creator, it’s your responsibility to ensure a safe, smooth and a hassle free experience for any end user.
While you work on creating software, keep the critical aspects in check. Here’s a list of 10 quality hacks that may just make sure that your next piece of code is your very best.
Take off in 3.. 2.. 1.. Go!
- Design is the most important step. A great design may sometimes not transcend into a great product, but a bad design will never be a good product.
- Split the functionality into tasks at lowest possible levels.
- Prototyping is of prime importance. Prepare the complete prototype before you start with development.
- Right from the analysis phase, make sure you have most use cases covered, including critical and non critical functionality.
- Unit testing is a developer’s best friend.
- As a tester, focus on white box as well as black box testing.
- Get a perspective from someone not a techie, it’ll help you understand the end user’s point of view and may bring into light certain factors that you did not consider before.
- When you think you’re done and the code is ready for release, say the magic words “No it’s not”. And work towards optimizing it as best as you can. Tie up any loose ends that you may find.
- Test it and re-test it, release a beta version if the system is large scale. Your counterparts in the rocket science industry may not have the privilege or the capital for beta users, but you do.
- Get feedback from other developers and end users, make necessary changes if needed and then release the final version.
Not all of these commandments may be universally applicable, you’re always going to be facing constraints of some sort; you could be financially limited or running really late on deadlines.
Think of yourself as the only developer on Earth who can get the job done. And you must get the job done well, because lives depend on you. Think of it like you are actually going to launch a rocket and your system is well prepared to handle all the critical situations.
With that attitude in mind, you will automatically keep a lookout for the best coding practices, think more logically and improve your testing and foolproofing skills. Just the pilot of our space rocket.
Congratulations! You’ve just successfully set up your website/app!
The next logical step is to let the world know about it. To get attention you need relevant, targeted traffic that will convert.
Everyone knows you need to have great content, do SEO (Search Engine Optimization) and share aggressively on social media. No wonder SEO is vital to initiate traffic from search engine but that’s not everything. If you have no idea what SEO is and if you are interested in online classes, join us here.
Here are 6 killer ways that can get you amazing traffic. Not immediately, but given enough time and effort, these will surely pay off in the long run.
This is less than exciting and it’s a bit old school, but believe it or not, you can build a super targeted list of subscribers and converted buyers once you enter the race.
More importantly, this is absolutely free. Engaging with users on various targeted forums and in beginning you don’t expect to see heavy traffic or instant results. It will take some time and yes, you are exchanging time for money. Sit uptight as these works will take a lot of your precious time, but the forums are important.
In most of the forums, members can link back to their website or app. This signature link is found at the bottom of every post. Warrior Forum is a great example. They warmly welcome newcomers reaching for help and wanting to know more about list building, suitable host providers and etc.
Viral Content Buzz
Viral Content Buzz is the best place to earn points for sharing other people’s content and using the gathered points to share your own.
Viral Content Buzz is not a Social Media platform, all it does is showing your content to the community. All you have to do is submit your content to the site and it will send traffic your way. An easy job!
Viral Content Buzz checks your content plus your social media profiles to make sure that the Facebook and Twitter profiles are real ones not fake with real followers and plenty of activity. This is for those people who are trying to take advantage by joining their community. This place is for real people with their real content who are genuinely interested in sharing your content. You get to be visible among others and traffic.
Aggressive Use Of Social Media
Social Media is no less than a potential weapon of the 21st century just like it’s a great tool for marketing or generating traffic.
You need to get engaged with all the platforms of Social Media, and just engage with the correct kind of audience. Write some amazing eye-catching content for your social media fans, it is the best way to build larger traffic and build your app or website on the internet. Good content will result in shares (Facebook), +1s (Google+), subscriptions (YouTube), pins/repins (Pinterest) and retweets (Twitter) which will aid in broadcasting your website or app to thousands of people.
These websites are the gold because they give you an opportunity to directly target the traffic. People who visit Q&A websites, they are actually seeking answers which your website is tailor-made to provide!
Some of the top Q&A websites are Quora and Answers.com. Simply create an account on these sites and do a weekly search of questions that are related to your niche and reply to those questions. Do this for your websites or app on a weekly basis and get b backlinks, readers and most importantly many of the questions are given a rank. Some of the questions have high search volume keywords which drive loads of laser-targeted traffic to your website. Do make sure that your answer is authentic and detailed.
Traffic Via E-mail Signatures
All you have to do is include your site URL or app everywhere you can. Your E-mail signature and business cards are the most obvious places for promoting your site. For the app, you can add the link on your social media or blog link.
Attract people with the sole purpose of viewing your content.
It is a popular method of making your app viral worldwide. All you have to is create 2 versions of the app, one free with some features locked or removed and other premium with all the available features. Of course, it’s a paid version and depending on your niche can get ranging from 99 cents to $4.99 per download. This concept is called Freemium, the word “Free” and “Premium” are merged together. By releasing the Free version, you can come to know where your app stands or is it liked by others or not. You can be secured if it is liked by everyone.
Well, before you start following the above technique, we would suggest you to create a proper traffic generation campaign and set a target goal. Try and see which one of the technique favors your website or app. This will take some time and we hope that you don’t lose any hope.
About the Author: Andrea Bell is a Freelance writer and a content contributor at www.zeolearn.com, which provides angularJS and big data hadoop training. She writes mostly on technology related stuff. Live simply, give generously and a sports lover. Find her on twitter @IM_AndreaBell.
The story of how Edwiser Bridge came to be goes way back to the summer of 2015. What started as a very specific project for a particular client has gone on to become a massively successful product and pet project for WisdmLabs, Edwiser Bridge is evolving as we speak. Evolving into something even bigger!
Edwiser Bridge essentially bridges the gap between two exceptional open-source platforms, Moodle and WordPress, in just a matter of few clicks. Such that you can easily synchronize your Moodle Courses and Users with WordPress. Once that’s accomplished, you can virtually do anything possible within the limits of these two ecosystems; sell your courses using the awesome ecommerce capabilities of WordPress, or maybe even increase sales via various digital marketing techniques.
Expanding the scope of Edwiser Bridge is a direction we’re already working on, as is evident by these extensions developed by us for the same. Take a look!
Edwiser Bridge Is Now On GitHub!
We at WisdmLabs are strong advocates of open source, having always believed in giving back to the community that we’ve learned so much from. Edwiser Bridge has been an open source project right from the very beginning, hosted by us on Subversion for internal development and versioning.
But the stellar rise of Git over the last few years as the world’s largest repository of open source projects prompted us to cater to a much larger audience. Effective immediately, we’re proud to announce that Edwiser Bridge will now be hosted on GitHub, and is open for the community to reuse and refurbish.
The advantages of Git over SVN are numerous, it’s intuitive, faster and also substitutes as a file management system. This article by TreeHouse effectively sums up how Git is a better Version Control System. And it’s backed by a staggeringly large community.
The features that appeal to us the most? For one, GitHub allows you to store data locally on your computer (should you not have access to Git), and then automatically pushes the data onto its own servers once a connection is established. Crashes and power outages is never really a problem!
The ease of access provided by GitHub is second to none. A developer can easily find the code for any project hosted on Git, write additional modifications and conveniently commit it again to Git. The modifications are then automatically sent to the project owner for review where he/she can proceed to adapt the changes as required.
How Can You Contribute?
A lot of open source projects fall short when it comes to maintaining the coding standards. The code for Edwiser Bridge is PSR2 compliant, it adheres to the formatting standards followed by an international authority and is clean, consistent and open for re-use.
Any coder looking to contribute to the project will find appropriate hooks and filters; every function has a clear description attached about the resultant action, in the form of comments. This makes Edwiser Bridge extremely flexible in terms of adding new features and functionality, patches and various bug fixes and even working with various integrates and extensions.
All you have to do is follow these steps:
- Write modifications to the code.
- Submit it to support@wisdmlabs.
- We’ll review the code on our end and get back to you as soon as possible.
- Your code would be published after a successful review, with due credits to you.
Additional details regarding the process can be found right with Edwiser Bridge. We took the liberty to add a file named contribution.txt, that clearly outlines the procedure by which you can contribute to this project.
As for the end-users, it’s only going to get better for them from here on. More updates + more features + more extensions = More of the Edwiser magic!
Interested already? Click here to view Edwiser Bridge on GitHub!
We definitely look forward to hearing from you!
April 2016 witnessed a massive data leak that sent tremors of shock running down the worlds of journalism, cyber security and corporate services alike. The Panama Papers – by far the largest data leak in the history of Information Technology – account for about 2.6 terabytes of leaked data in the form of 11.5 million confidential documents.These documents – dated as far back as the 70s – offer proof of how the wealthy elite from all over the world enlisted the Panamian corporate services firm Mossack Fonseca to hide their assets and wealth through offshore shell companies to evade tax. Big names include several prominent figures from all walks of society. From Heads of States – the likes of Vladimir Putin – to star football players Lionel Messi and even celebrity actors like Jackie Chan and Amitabh Bacchhan were all implicated in illegitimate uses of offshore companies, foundations and trusts to hide wealth.This infographic by TrackingCourier is great way to sum it all up:
How Did A Leak Of Such Epic Proportions Come To Be?
The leaks originate from an anonymous source who goes by the name of John Doe, who handed over the data to the German newspaper, Süddeutsche Zeitung. But of course, the John Doe in question wouldn’t have happened to just find the data lying around on cyberspace. Forbes was the first to break the story that the server containing the data was hacked, exploiting the vulnerabilities in the an outdated Drupal-portal Mossack Fonseca had set up for public access.
A little more digging by Wordfence revealed that “The MF website runs WordPress and is currently running a version of Revolution Slider that is vulnerable to attack and will grant a remote attacker a shell on the web server.”
The version of Revolution Slider plugin used on their website failed to check authentication in revslider_admin.php/showbiz_admin.php, allowing an unauthenticated attacker to abuse administrative features like:
- Creating/Deleting/Updating sliders
- Importing/exporting slider
A hacker could have easily uploaded a shell to the WordPress site and downloaded the wp-config.php. This particular file is the holy grail of all the information an attacker would need to potentially disrupt service and gain access to the server (the credentials can be found in the mentioned file and is typically present in readable cleartext).
And that is all they needed to virtually own the server and all the data on it.
Given the fact that Mossack Fonseca was hosting both it’s emailing service and the website on the same IP address, gaining access to one was good as hacking the other. Both emails and documents.
In simpler terms? Mossack Fonseca should have known better than to use outdated plugins and CMSes to manage eight figure sums of tax free money.
Could A Security Plugin Have Helped?
Plugins that reinforce security on your WordPress website can only do so much. See, security plugins work in a predictable pattern. They check for vulnerabilities on your website, for any encrypted code in the system that could indicate towards a potential hack. They will alert you once you are actually hacked.
But they won’t prevent your website falling prey to malicious attacks.
How Can Security Breaches Be Prevented?
If your site flows sensitive client data or is home to numerous customer interactions, then make sure following things are being handled properly on your website:
1. Plugins/Theme Active On Your Website
A) Be it a free or premium plugin/theme, if it supports any kind of upload to the server (e.g an image upload), you ought to make sure that the plugin/theme author has taken care of all validations. What kind of validations exactly? Here are a few:
- File extensions eligible for upload.
- Authentication before gaining access to upload.
- If the data is submitted via POST.
- If nonce’s validity is being checked.
- If a limit is set on the file size to be uploaded.
- Checking the file type: There is difference between extension checking and type checking. I can change the extension of text file to ‘jpg’ but that does not make it a valid image file.
B) Premium plugins/themes are hosted on seller’s website. That implies that the updates, if any, are sent from seller’s website. Ask the plugin author if their plugins/themes handle updates appropriately.
C) Ask the plugin/theme author if all kind of ajax requests written in code follow nonce validations.
2. Always update all your softwares to the latest version.
Be it WordPress core, plugins, themes or any other software.
3. Secure your uploads area.
That means make sure that no PHP file uploaded in ‘uploads’ directory get executed. This can be done by adding the following content in .htaccess within the uploads directory.
<FilesMatch "\.(?i:php)$"> <IfModule !mod_authz_core.c> Order allow,deny Deny from all </IfModule> <IfModule mod_authz_core.c> Require all denied </IfModule> </FilesMatch>4. Install a plugin like Hide My WP, so that attackers don’t get to know that you are using WordPress.
5. Use Sucuri Firewall Service which eliminates most of the unwanted requests before they reach your site.
6. Avoid using any of the versions of the Revolution Slider plugin prior to 3.0.95.
WordFence has showed how Revolution Slider plugin is vulnerable for unauthorized file uploads below 3.0.95.
7. And obviously, keep your email server and hosting server separate.
Why Don’t People Update Plugins/Themes Or WordPress?
- For one, it’s just plain old lethargy. I mean, why bother going through the trouble of updating and upgrading the endless number of plugins and the theme on your WordPress when everything’s going just fine, right? WRONG. Things go smoothly right until they don’t. Don’t believe me? Ask Mossack Fonseca.
- When it’s not lethargy, it’s the apprehension. People often live in the fear that updating a plugin or a theme might lead to malfunctioning of other plugins or the theme, leading to a website crash. And they’re not entirely wrong, sometimes that’s exactly the case, and it’s inevitable. But hey, a malfunctioning website is still your own and can be serviced appropriately as compared to having no website at all, thanks to a DoS attack.
- Often is the case that users modify an existing plugin or a theme and customize it to suit their requirements. Such changes to plugins and themes are usually lost while updating your software. In such cases, measures must be taken so as to regularly back up content and the code, and they must be updated at least once a while, if not often, to keep abreast with technology (and anti technology).
A Stitch In Time Saves Ninety Nine
Unless you want your private data strewn all over the Internet (or face an equally horrible scenario), it’s time to put those technical chops to good use and update your WordPress and all the software on it right about now. Seriously, some random evil sociopath with a laptop may just be lurking on the edges of your website security as we speak, waiting for just the right opportunity to break in. You never really know.
Another great option would be to let a professional deal with the technicalities involved in maintaining the security and the smoothness of your website, while you take care of the business end of things, just the business end of things. As you may have already guessed, WisdmLabs specializes in exactly that. What you didn’t know is that we have a killer deal up for grabs on our Website Maintenance Services, make sure you follow this link right here and contact us.
We’ll be happy to help! Stay sharp.
Email marketing is one of the most powerful tools today to take your blogs and businesses to the next level. Once you’ve setup your WordPress website, added the needed content, it is time to start getting subscribers!
At the core of any successful blogger-reader or company-customer relationship is maintaining a strong, transparent, one-to-one communication; and that’s where email newsletters come in handy. So how do you go about building these newsletters and more importantly, how do you check whether they are effective or not?
Here’s a look at the five best newsletter plugins for WordPress that can help you build a comprehensive newsletter, mail it to all your subscribers and furthermore keep a close eye on it. With a multitude of functionalities like dual subscription options, autoresponders, easy import/export of contacts, checking the spam score so that your mail does not land in the subscriber’s spam folder and more, these plugins make life much easier!
By far the most popular newsletter plugin on WordPress, Newsletter, true to its name, helps you create email newsletters, send and track them without a hiccup. Some of the main features of this plugin are as follows:
- Unlimited subscribers and emails.
- Compatibility with several SMTP platforms like Postman, WP Mail, Easy WP and Mail Bank.
- Excellent documentation and online support.
- Popup extension for subscription widgets.
- Fully customizable widgets, themes, pages and contact forms.
- Text and HTML versions of emails available.
- Automated newsletter generation for latest blog posts and events.
The plugin provides premium extensions for Amazon SES, Sendgrid, Mailjet, Mandrill and WooCommerce integration.
2. MailPoet Newsletters
Formerly known as WYSIJA Newsletters (an acronym for What You Send Is Just Awesome), MailPoet Newsletters has grown to have over 3.6 million downloads and 200,000+ active installs. Unlike external email management systems like MailChimp or AWeber, MailPoet lets you control all newsletter and email settings from the admin panel itself.
It has a host of other features too, some of which are listed below:
- Drag and Drop options for creating newsletters.
- User-friendly interface and straightforward widget, theme and form customization.
- Publishing of automated newsletters on uploading new posts.
- Autoresponders enabled for new subscriber or WordPress user addition.
- Easy listing and categorizing of subscribers.
- Easy import of contacts using CSV file uploads. Contacts can be exported to MS Excel sheets too. This enables backing up of data off-site in case of a security breach.
- Detailed tracking statistics and info such as whether the newsletter was clicked, opened bounced and unsubscribed.
- Scheduling of newsletters on a daily, weekly or monthly basis.
The premium version includes various extended functionalities like exclusive themes, spam score checker, in-depth statistical analysis, automated bounce handling and priority support options. It also has an unlimited subscriber membership option as opposed to a limited 2000 subscribers for the free version.
One of the drawbacks of the MailPoet is that it does not automatically add updated posts to a previously created newsletter which is why one has to add them either after they’re completely done or overhaul the newsletter.
Minor issues aside, MailPoet is a great option for newsletter building. The Premium version costs about €75 per year for one site, €189 per year for 4 sites and €299 per year for an unlimited number of sites.
3. ALO EasyMail Newsletter
One of the best multilingual plugins for WordPress to create and send newsletters, ALO EasyMail helps build a clean newsletter within no time. Available in over 20 languages, it is the quintessential plugin for a multi-translatable newsletter.
ALO EasyMail also has other unique features, some of which we’ll see as follows:
- Unlimited number of subscribers.
- Custom post type newsletters, which can be edited like posts or pages on WordPress.
- Batch sending of emails can be enabled. This constitutes sending emails at regular intervals till all the recipients in the subscriber list are completed.
- Integrated functionality to view the number of times the newsletter has been opened and the links therein accessed.
- Easy management of user roles and capabilities for restricted access.
- Option for automatically unsubscribing email addresses wherefrom the emails have bounced.
- Easy import of contacts from CSV files.
ALO EasyMail Newsletter is a completely free plugin with no paid versions. It has customized support for long subscriber lists and if you are any coder, there are plenty of tweakable themes and action hooks for you to add any of your own developments.
4. SendPress Newsletters
SendPress Newsletters is a fully responsive, easy-to-use newsletter plugin that focuses on simple creation and effective scheduling. One of the main advantages of this plugin is that it has numerous newsletter templates that are completely customizable which ensures that your newsletter is unique in every aspect.
Some of the other features that SendPress offers are:
- Unlimited number of subscribers.
- Single and Double opt-in confirmation enabled. The first is direct subscription, while the second requires a secondary confirmation (like an e-mail confirmation) from the subscriber.
- Customizing and managing user roles possible. Restricted access or specific permissions can be enabled.
- Newsletter Editor is similar to the WordPress Editor and plenty of formatting and editing options are available.
- Both Text and HTML versions of the newsletter can be viewed.
The Pro version includes all of the above features and then some. These are:
- Advanced statistics reports of who opened the email, on what device and which links therein were clicked on.
- One-click spam testing by SpamAssassin so that your emails never bounce.
- API integration for Mandrill, Sendgrid, Elastic Email, Mailgun and Amazon Web Services.
The price here is slightly steep as compared to the other plugins. SendPress Newsletters costs $99 per year for 1 site, $199 per year for 3 sites and $399 per year for an unlimited number of sites.
5. Tribulant Newsletters
Developed by Tribulant Software, the Tribulant Newsletters plugin for WordPress is completely equipped with solutions to all subscriber, email, newsletter and marketing requirements in its arsenal. Satisfying both personal and professional needs, the plugin has quite a few unique features, listed below:
- Off-site subscription forms are enabled. This implies that one can subscribe to your WordPress site via external, third-party websites like Facebook or Twitter too.
- Posts can be sent as newsletters.
- Enables a user to subscribe to the latest posts on the website.
- A large number of newsletter templates are available and new ones can be added and customized.
- Apart from individual listings, group listings of subscribers can be created.
- Statistical, chart-based analysis of the number of emails sent, subscriber growth, bounces and unsubscribes can be done for any given period of time.
- Creation of custom fields on the subscription form such as name, address, gender, etc. is enabled.
- Integrated Gravity Forms and Embedded Images are available.
The plugin also has several extensions available for WooCommerce, Contact Form 7, Google Analytics and hooks for third-party plugins. Quite reasonable cost-wise, it is for $64.99 per year for a single user and $194.97 per year for an unlimited number of sites.
Each of these newsletter plugins has distinct features that make it stand apart from the rest. If you are an independent blogger and easy handling is what you are looking for, MailPoet Newsletters is the way to go. If a highly creative and customizable newsletter is your cup of tea, Tribulant Newsletters is a good option.
That said, there is always a bit of security risk involved with plugins hosted directly on WordPress, so if you have a large subscribership or email management on a huge scale, you might want to consider external email management systems like MailChimp or AWeber.
However, these newsletter plugins have a host of great functionalities that support all the requirements of individual bloggers and small-scale businesses. So choose the one that you think suits your needs best and start getting your subscribers!
Are there any other plugins that you think should be included here? Let us know in the comments section below!
Heads up people!
Our founder, Rohan Thakare, was recently interviewed by Know Your Town – Thane’s de facto source of news for everything hip and happening within the city. And it’s a pretty big deal, not because of the 15 minutes of fame that usually follows when you and your company is featured in a prestigious newspaper, but because it’s important to be recognized by the community for the good work that you do.
Below is the transcript of the interview as featured in the 7th week (2016) edition of the paper, typed out for your reading pleasure.
Words of Wisdm!
Q. Congratulations on completing 4 successful years. How has the journey been?
It has been amazing! I started my journey from IBM in 2003 where I was working as a part of the technical team. I got to know technology better in IBM han during my engineering days. I got to know about enterprise better. However, it was always at the back of the mind that I should be at the front end of the business, to be involved in the business functions and not only the tech functions. I consider myself more of an entrepreneur than a technical wizard. I would get high if I crack a deal or win a client over, but not if I crack a big technical problem. I tired a lot to get through this section in IBM but they had educational criteria in which I didn’t fit in. They needed MBAs and I was an IT engineer. I was able to get good amount of promotions within my section but lateral movement was not possible.
I shifted to a much smaller organization called Convonix. At that time, it was a 15 member team and was run by my friend from engineering. I spent 6 and half years there and by the time I left, we had a team of around 250 members there. That was my first hand experience in business in close quarters as we were the management and whatever we had to do there came from our own understanding. We did make mistakes and we learnt a lot. I got good exposure to services business. Convonix was later acquired by a French company called “Publisis Groupe” and I decided to leave it.
I decided to take my own course and started WisdmLabs. Since I wanted to work in technology, we focussed on doing web based application development in “WordPress” which is our forte. We started small, but since I had understanding of the service industry, I applied that in this technical business as well. I knew there would be hiccups in the journey, and there were quite a few, but we sailed through.
Today we stand proud with 2 offices – one in Thane and one in Pune and a staff of 75 employs.
Q. What kept you going?
There is a passion involved. Getting back to technology was absolutely needed and I wanted to get on my own because I had a lot of ideas and when in Convonix, my ideas were not of that particular business, these ideas were more about technology which wasn’t their focus. I wanted to work out on these ideas, fail if I had to and find out what works the best. I wanted to experiment. This spirit of experimentation kept me going. We wanted to create a difference. We want to create software products of value which can reach the audience in millions and we can make a meaningful difference in their lives and giving them something that they didn’t have access to before we came in the picture. If we could achieve that, I would say that I have a career well-lived!
Q. What does WisdmLabs specialize in?
We specialize in web-based applications development and mobile apps is what we would be focussing on. We specialize in the domains like e-commerce and e-learning and now we are expanding our horizons to work-flow situations, moving towards ERP applications. We target the clientele of small and medium-sized organizations across the globe. Almost 80% of our clientele is outside India.
Q. Who is your management team now?
My cousin, Rahul Gupte, who was also working with me in Convonix, joined me at WisdmLabs as I found it extremely difficult to handle everything by myself. He handles operations. I’m also accompanied by my friend since college, Arunesh Parab who is a technical wizard and has a great amount of technical understanding. He obviously looks after the technical aspects. I look after marketing and sales aspects.
Q. Was the second branch out of need?
We launched our second branch in Pune in June 2015. We have a principle that we want to build careers, not just jobs. Being a small company, every person counts. We have to be extra careful about people while hiring them and cannot hire them for the heck of it. You would be surprised to know that only one in 500-600 candidates is selected in our organization. We need people who are well versed and are interested in carving their careers in technological field. It thus becomes difficult for us to search employees only in Mumbai. Mumbai has a different education system. As we started to grow, we realized that we need more people than we hired last year. When you double the number of employees to be hired, you are increasing the effort put in four fold. When we went to hunt for good employees, Pune and Nashik became our next obvious choices. We started going to Pune and hiring people for Thane office but people weren’t ready to join in.
Besides, Pune is growing IT hub, so having another office in Pune became a natural choice! (Smiles)
Q. Who or what inspires you?
Steve Jobs, definitely! You ask any tech entrepreneur and his role model would be Steve Jobs. I feel there are one in a billion people who can achieve or do what he has done in his lifetime. It is almost impossible for any other person to achieve so much in one lifetime. He not only created a range of products, but also made people yearn to have them. People swear by his products, people die to have them. He created a cult!
You have our best wishes Sir!
Open-source software is the holy grail of information technology. It not only fosters innovation, but, given the complete freedom a developer has while working with open source software, helps technology grow leaps and bounds sans any barriers.
That is exactly what we at WisdmLabs, like most other IT ventures, thrive on.
2015 saw some of the most innovative and amazing developments in web technology, and what better way for us to put a full stop to the content calendar for the year than to take a tour down memory lane and see the major additions that have happened in the world of Open Source.
Here is my pick for the top 10 curated major changes that took place in 2015:
1. Magento 2.0 is here!
This has by far been the most exciting release of open-source code in a long, long time. The de facto eCommerce platform has undergone a complete rewrite that reaffirms its position it as the leader in ecommerce software.
The features are wide ranging, from cataloging to performance. With eCommerce booming across the globe, the future of Magento 2.0 looks very bright.
2. MySQL has a brand new version 5.7
Database engines have never been more important than in the age of big data. MySQL, arguably the world’s most reliant database system, now ships with InnoDB being the default database handling engine, marking a major shift from MyISAM. This gives MySQL enhanced query handling capabilities.
MySQL now also natively supports storing of the JSON data format. This is again a step ahead in the connected world technology that thrives on API usage. Another big addition to MySQL 5.7 has been replication enhancement, which provides additional capabilities to store replicated tables across servers in real-time.
3. WordPress 4.4 is out with a bang.
In addition to the usual bug fixes and standard tweaks, the most note-worthy update to the world’s most popular content management system is the addition of Phase of the REST API in WordPress core.
This signifies a lateral shift that takes WordPress from being a CMS to a Web Application Framework. If I were you, I’d keep an an eye and both ears on this particular update, we’re sure to hear a lot more about in the coming times.
Additional updates in 4.4 have been the holding of meta-data for terms within taxonomies. You can find a detailed list of all the changes here.
That and also a really cool name to go along with it. Clifford is here to stay!
4. HTTP/2 Support is now offered by Nginx out-of-the-box.
HTTP/2 is now natively supported in Nginx core – built over the SPDY protocol HTTP/2 that helps remove a lot of redundancy that HTTP 1.1 had for request optimization.
Given that Nginx is used where scalable concurrent access is a must, the integration of HTTP/2 will further help websites achieve performance linked scale. Find more on this in the Nginx released whitepaper.
Akami provides a great demo to see the difference between HTTP/1.x and HTTP/2 data rendering in browsers.
5. Nginx has a new version – 1.9
Nginx has always strived to solve the problem of scale ( i.e. multiple concurrent users accessing the server at the same time to access static content). Taking this philosophy ahead, Nginx 1.9 now gets TCP Load Balancing into Nginx core.
The entire post is available here to read.
Earlier, load balancing had to be done through other application servers with their own configurations, leading to large amounts of overhead in terms of maintenance as the systems grew in size.
Version 1.9 also has a host of additional features like back-end SSL verification to prevent Man-in-the-Middle attacks (MIM).
React.JS now supports ES6 classes. Many developers swear by ES6 for scripting; it make the nomenclature so much more easier to handle.
Angular.JS has 1.5 as a Release Candidate along with 2.0 in beta. Release Candidate 1.5 now provides for easier methods to reuse components through module.component
2.0 in beta takes this to a whole new level designed for speed and scale. The entire list of features can be found here (it makes for beautiful read).
7. SASS and LESS have major updates.
A host of tweaks, variable and function supports have been added to SASS and LESS in the last 364 days.
8. Bootstrap is now at version 4 Alpha.
Bootstrap is one of the most popular front-end development libraries used in programming.
With 4.0 alpha coming out in 2015, we can expect RC 4 to be out in the second half of 2016. The biggest change to happen in 4.0 is the shifting from LESS to SASS for pre-processor CSS scripting. The other major changes can be found here.
This is probably the most significant migration that 2015 had to offer.
10. Release of PHP 7
PHP 7 was built around speed and performance. With considerable improvements in code serving performance than it’s predecessors, it is arguably the biggest release since PHP 5 way back in 2004.
Features like scalar type hints now allow developers to declare return types of their functions.
We also have a new Combined Comparison Operator named the spaceship operator to make data type comparisons easier. Most useful in sorting operations.
In Memoriam: 2015 also saw the passing away of Ian Murdock, the brain force behind Debian. The open source community deeply mourns his loss.
With this, our journey for 2015 comes to an end.
Wishing you a Happy New Year and major Cheers to a great 2016 ahead. Stay Sharp!
Earlier last month I had the opportunity to review WP Courseware, as a part of a series of articles covering popular WordPress LMS plugins. I spent hours and hours with the plugin, finding out how it does what it does, exploring every single nook and cranny.
And I wasn’t disappointed. WP Courseware offered what I found out to be a unique take on implementing LMSes on WordPress. And a unique take could only have come from a unique team.
WP Courseware was first conceptualized by Nate Johnson and Ben Arellano, also the founding members of FlyPlugins, the team behind other popular WP extensions like S3 Media Maestro.
Nate was kind enough to oblige me with an interview for WisdmLabs’ blogspace. And I have to admit, it’s been an extremely gratifying experience. He spoke on a variety of topics: WordPress as a community, the emerging LMS niche and its contribution to society, mobile applications and the work ethics that his team follows. And as you’d expect from anyone with a knowledge base as extensive as his, along with considerable experience in the industry, the answers he furnished us with were not just well thought of, but also incredibly insightful.
But don’t take my word for it. Read on to find out his.
WP Courseware is an ambitious project – how was it conceived and where would you want to take it from here?
It has been a complex project requiring a lot of time and resources, but it’s something that Ben and I have been passionate about since the beginning, which was about 3 1/2 years ago. There are so many opportunities to extend the functionality and we’ve been very fortunate to have amazing customers who share use cases and feature requests with us all the time.
But the beginning of the project was quite simple. At the time, Ben and I were involved in a separate business together teaching an online course. We were both actively developing businesses with WordPress and had some great content for our course which we spent hundreds of hours creating, but there were really no WordPress LMS plugins out there so we had to get creative building our course on our own.
That’s when we conceived the idea for WP Courseware, as we realized that there were many online entrepreneurs who also had great content to share but no simple and effective way of structuring it into a marketable training course. We had our first stable version finished around July of 2012 and it’s been evolving ever since.
Our feature request list has hundreds of items on it which we’re always reviewing and working at incorporating, so there are a lot of different areas for growth with the plugin. We’ve tried to focus most of our updates on features which our current customers have requested, as opposed to just thinking about which ones are the most marketable, and I thinks that’s been good for us, our customers, and our prospective customers.
Tell us about the people that Nate Johnson and Ben Arellano are when you take FlyPlugins out of the equation?
When you take the business out of the equation, Ben and I are both family guys. He has three kids and I have two, so we’re both busy dads outside of work with a lot different activities going on. But I think I can speak for both of us that we’re very grateful that the business affords us the flexibility to spend time with our families.
As an entrepreneur, you never truly have a day off where you’re not at least thinking about how to make your business better, but we’re fortunate to be able to balance work and family life.
You and Ben make a great team, as is evident by the success of WP Courseware. What individual roles do each of you play at FlyPlugins?
We do make a great team and I’m incredibly grateful that Ben and I were able to meet through a mastermind group a few years ago and recognized that our complimentary strengths would be an asset. And we’ve gone on to become great friends as well.
Ben is definitely our technical genius. His background is in IT and he’s also done a lot of WordPress development, even writing some of our code. In conjunction with the developers we’ve had, he’s overseen most of the development and testing of our products. He also keeps a close eye on our support desk and support staff.
My background is in finance and accounting and I’ve come in on the ground floor of a couple of startups, so I focus most of my time on running the business side of things and marketing our products.
But as with any small business, we overlap in different areas and I have to say that we wouldn’t be where we are if we didn’t have both of us to sit down and brainstorm new ideas and make decisions together.
The WordPress LMS niche is growing and growing fast; what trends can you foresee taking over the industry in the coming years?
WordPress itself has had a tremendous growth trajectory over the last decade and obviously the evolution of plugins and themes has been driven by what types of sites are using the WordPress CMS and what developers need to meet their project requirements.
With the LMS niche, we were fortunate to be in the space relatively early on. So we’ve been able to assess the various types of applications of an LMS solution for WordPress and for us that generally comes down to three user segments; schools and universities, professional or corporate training/certification sites, and online entrepreneurs who are seeking a way to profit from their content creation.
For us, with WP Courseware stemming from our need to market a training course online, we’ve largely focused on the entrepreneurial segment of the market. You wouldn’t believe how successful some of our clients have been, teaching things like equities trading, blogging, music, CPR, and even tarot card reading. It’s always fun to see who’s using it.
So I think we’ll eventually see more specialization in the LMS solutions for WordPress which address user needs in those three areas because those needs are quite different. One LMS might focus on universities which have high demands for data collection or aggregation and compatibility across different systems. Professional training courses may need more features related to certificates or the ability to require training to be completed on a recurring annual basis. And entrepreneurs obviously want functionality which allows them to market a course, charge for it, and manage subscriptions.
I think this specialization will be good for the WordPress LMS niche and help developers make more informed and efficient decisions on what suits them best.
WordPress accounts for about 25% of the Internet as of 2015. How would you like to see it evolve as a CMS and why?
It’s amazing how much WordPress has grown and I think we can all appreciate the dedication that Matt Mullenweg, the core team, and the contributing developers have had for this project. It’s an incredibly selfless and sharing community, as anyone who has attended a WordPress event would attest, and I think that has been a huge component in its growth.
For me, one direction I would like to see WordPress heading is more customization and better UI options on the admin side. We hear from a lot of developers who end up spending their time on simple recurring tasks for their clients. That takes developers away from larger projects and puts them on small issues which a client could solve on their own with the right admin dashboard or interface.
I know there are some initiatives already taking place which will allow for WordPress to be more customizable and the eventual scope of those changes could have many positive implications, but that flexibility will really help to bolster the number of developers who favor the CMS.
The world is going mobile- apps are taking over virtually everything the digital world has to offer. Do you guys, at FlyPlugins, plan on following suit?
Ben and I have both developed and marketed our own mobile apps in the past and certainly understand the direction that space is going.
But I think there are two main ways to look at what’s going on with mobile app development. You have the stand-alone applications…apps like Instagram or SnapChat, which are mobile-only. Then you have applications which make a browser experience a little easier with a phone or a tablet. This would include apps like Facebook or Expedia, which obviously have to water down the features a bit to make the mobile experience more effective than a browser-based experience.
For us, the feedback we’ve received from our WP Courseware customers indicates that they generally want their students to sit down at a computer and focus on the content without a lot of distractions. We do have clients who want a mobile experience for students so we’ve tried to ensure that WP Courseware functions well on mobile browsers, but we don’t currently have plans to convert the plugin to a mobile app.
What are some of the coding practices that FlyPlugins swears by?
We were very fortunate to find an incredible lead developer right off the bat when we started the project and most of our practices have been driven by his experience and thorough approach to coding.
Adhering to WordPress standards to ensure long-term compatibility with the core code and other plugins or themes comes first. We’ve also tried to make certain that the code is efficient in terms of resources and queries as we have some sites which have over 15,000 students in their databases. Finally, we’ve done our best to create code which is friendly to developers and well-commented. I’m no code expert, but even for me finding things within WP Courseware to modify is simple and I think our process of using clean, efficient, and streamlined code with the least amount of files or external libraries has been a huge help for our customers.
Of all the people and projects that have benefited from WP Courseware, which amongst all of the client stories stand out for you?
We’ve done a few case studies of our clients on our blog. But I would have to say that the ones which stand out the most are those entrepreneurs who have taken their knowledge in a niche topic and created businesses around it. We have several clients who left behind 9 to 5 jobs after creating a full-time income delivering their content with WP Courseware. One of them created a course, launched it earlier this year, and has earned close to $400,000 while she’s been traveling the world and working online.
Those really hit home for me and truly show how the idea of “work” has been transformed by the internet and allowed people to make money doing something they love. And it’s not WP Courseware. It’s these entrepreneurs who realize that they have expertise in something, put in the hard work of content creation, take a risk, and make it happen.
One of my favorite books is The Four-Hour Work Week by Tim Ferriss. While he explores a lot of strategies in the book, I feel that WP Courseware really allows people to make that transition to time and location independence much easier than the effort required to create and ship a physical product.
When I hear some of those stories from our customers, it makes every minute and every dollar invested in the creation of WP Courseware completely worth the sacrifice.
Off the top of the head:
WordPress, in a word, is? Community
PlayStation 4 or Xbox One? Xbox One
A band you could listen to all your life? The Beatles
One future tech you wish to live to see? Landspeeders
Your Halloween costume this year was? Daryl Dixon
Many thanks for your time and the wonderful words, Nate. Here’s wishing you, Ben and the guys over at FlyPlugins the very best in life and career, we look forward to an even better WP Courseware and other great WP extensions in the long run.
And I certainly hope we do get to see Landspeeders in our time here.
Making decisions is tough.
I’m not talking about buying a new car. I’m talking about decisions that could affect your business. Like making a new purchase, partnering with a company or outsourcing a project.
Decisions like these are never easy. Over analysis can sometimes give you brain fog.
As part of the Business Development team at WisdmLabs, I’m in fact on the other side of the equation. I do not outsource projects, I undertake them. But essentially the crux is the same. I have to make decisions in the best interest of the client and the company.
What helps me, is the experience of having worked with numerous clients. This helps me assist potential clients, and inquirers easily.
Understanding how the buyer mindset works, can help you too, to make similar decisions.
The WordPress Customer Buying Cycle
Most clients spend a lot of time framing their requirement. They are unsure of what they need, and carry high expectations. This invariably increases their buying cycle time. Understanding how the industry works, and using the right tools to research can seriously help buyers cut down on their buying cycle time.
Now, when it comes to buying software in WordPress, the buyer is usually knowledgeable about WordPress, the powerful open-source community and abundance of development support. He/she does not need to be sold on the platform.
The PROBLEM… arises due to commoditization of software.
If I have to describe generically, the buyer usually dives right into looking for a solution for the need.
This picture says it all.
Since, WordPress software is available cheap (due to the very nature of plugin development), the buyer wants to go in for the kill. He/she quickly skims through the features, checks out a demo (if available), and makes the purchase.
Then there’s of courses the DIY (Do-It-Yourself) trials and tribulations!
In an ecstatic and jolly mood, the buyer installs and activate the plugins, checks the settings and starts experimenting.
For the vast majority, the plugin might fit the need. But then, there are those unlucky few, who run into incompatibility issues, and slowly reach the enlightenment that the required functionality is missing or interpreted wrongly. Uh oh! 🙁
But hold on, at this stage these buyers still have hope! – The “Hope” of getting technical support!
It is only when this brick falls, the buyers look out for WordPress developers and WordPress companies with specializing in their domain of interest.
To save you- the buyer- all this time and effort, I’ve come up with a 6 point guide which can make things simpler. It’s not foolproof strategy, but it surely can simplify the buying process and make it efficient.
6 Point Guide to Buying WordPress Software Like a Pro
#1 DO NOT GO IN FOR THE KILL
Unless you are an experienced buyer of WordPress software and have little money value of time, do NOT go in for the kill! Think about the bigger picture of what needs to be achieved on the project and see if a particular plugin or theme fits into this scheme of things. You will usually solve 50% of your problems by analyzing your options carefully, and seeking expert opinion. Remember, consultation services can help.
#2 SUPPORT DOES NOT EQUAL PRODUCT CUSTOMIZATION
Do not make product purchases with the notion that product support is a front-end for product customization. Support is there to help you in case something goes wrong, not to make something that you think is “wrong”, right!
#3 GOOGLE SEARCH IS NOT RESEARCH
When in the process of Google search doing research for a plugin, study each feature. Think whether it will still be relevant 5 years down the line. I’ve seen many clients using plugins that are an overkill for their system. They do not think of removing them because they worry that their site will break. Do the research, and don’t get stuck in such a situation.
#4 SOLVE YOUR MOST IMPORTANT REQUIREMENT FIRST
In the process of shortlisting plugins and themes for your requirement, start from the core, and go in the outward direction. For example, when creating an eCommerce website on WordPress, think of the e-commerce plugin you want to go with, say WooCommerce. Then start looking at the themes. If you start looking at themes first, you might end up picking a theme which does not support WooCommerce.
#5 CUSTOMIZATION CAN WORK OUT CHEAPER
It does not always take 10 different plugins with a theme to solve a problem. When you have a mental road-map of the site in place, and are looking for certain results, using a different plugin for every feature can cause a whole lot of issues during development and later on with respect to updates, add-ons etc. Here the best option is to keep some core plugins as default, and custom build around them. Trust Me, when I say this, it works out to be a whole lot CHEAPER and BETTER!
#6 TAKE EXPERT HELP
Last, but not the least, when your mind goes blank- Take EXPERT HELP! It’s what we are here for 🙂
Well, these are some more points based on my experience. If you have views which differ from mine, or have something additional you would want to share here, the comments section below is now open for business. 🙂
Adam Warner has been involved with WordPress for nearly a decade, is an active WordPress community member, a WordPress blogger and educator, and is the co-founder of FooPlugins!
I had the opportunity to connect with Adam, and ask him a few questions about his journey with WordPress and his experience running a successful business.
Read on to know what Adam had to say.
Tell us a bit about yourself, and your journey with WordPress so far.
I am a proud husband and the proud father of two young boys. I’m also the Co-founder of FooPlugins.com, a free and premium WordPress plugin provider focusing on media solutions.
My journey with WordPress started in 2005 when it was a very new platform after being forked from b2/cafelog. Up until that time I was working full time in the manufacturing and customer service fields while running several small businesses of my own. I had hand-coded a few websites for my businesses and was looking for a blogging/CMS solution to help speed up my frequent website updates.
After trying several solutions, I chose WordPress as it made the most sense to me visually. After becoming familiar with the Admin side of things, I started making themes and simple plugins, and that turned into creating WordPress tutorials to help others learn what I had learned.
Fast forward 10 years and I’m happy to report that I’m able to give back to the community with our free plugins, speaking and sponsoring WordCamps, as well as run a sustainable business that offers solutions other users need to make their personal and clients development projects easier.
What is your typical day at work like?
My work day usually starts around 5:30am. It’s my chance to head to the home office before the rest of the family wakes up. I use this time to scan emails and prioritize anything that needs immediate attention. I follow up on what I can until the kids wake up and then it’s the morning Dad routine. Getting breakfast ready, dressing the kids, and making sure to spend quality time together before we leave the house.
My wife works in retail so I usually take the kids to preschool, run errands, etc. I return to the home office around 10am and start digging into my daily tasks. These include everything from answering support tickets, writing new product feature scopes, engaging our customers and community on our social channels and managing our paid advertising channels.
According to you, what factors make a plugin successful?In my mind, a successful plugin comes down to these things:
- Intuitive: Users should be able to start right away without reading documentation first.
- Use WP Admin Styles: Plugins that create their own fancy styling in the admin area take away from the user experience. Keep it simple.
- Well Supported: No matter how simple you think your plugin is, you will always have support questions. Answer them as quickly and completely as you can. Your users will become loyal fans quickly.
- Well Documented: It’s best that users can just start using your plugin right away, but many plugins (some of ours included) offer some advanced features that may not be clear users. Complete documentation with actual usage examples go a long way in keeping your support requests to a minimum and giving you more time to promote and build your business.
I think both can work but it depends on the product.
Our flagship plugin, FooBox, started as a premium plugin only and there was no free version for the first two years. It sold very well and was the catalyst that allowed me to work from home full time. However, in order to give back to the community (and grow our brand recognition) we created a free version in which we removed some of the more advanced features but still provided the responsive lightbox solution people were looking for.
We duplicated this with our FooGallery plugin by making it free but making it extensible, allowing us to build additional features as Extensions and allowing users to pick and choose the features they want/need while still offering a robust solution for free.
FooPlugins has a diverse list of WordPress plugins. How do you take the call on converting an idea into a plugin?
This is always a tough call, but we’ve learned some things over the years.
First, keep a shared document with your team listing any plugin ideas that come up. There will always be more ideas than time to develop them, but if you regularly review this list you’re sure to be reminded of an idea that might be right to develop at the current time.
Secondly, survey your audience and do some research before building something. We spent an entire 6 months building a product from scratch that when launched, resulted in a huge failure. If we would have surveyed our audience from the beginning, we would have learned that we almost had it right but with one critical feature missing. We’re currently working on “pivoting” that product and its features to better reflect the needs of users and we’re optimistic that it will be successful.
And third, always create an MVP (Minimum Viable Product) first before building in all the bells and whistles. As I noted above, we learned this the hard way, but used this method with our most recent FooVideo release and it allowed us to build and release that product in just over 30 days, but also to get valuable feedback from our users on what other features would be more useful to be included in future updates. A win for us and our customers.
What should we expect from FooPlugins in the coming future?
We declared 2015 “The Year of Media Solutions” and we’ve mostly met that goal with FooGallery, FooBox, and FooVideo but we have one more plugin in the works that will be image-specific to round out that collection of tools. We’ll also be releasing more Extensions for FooGallery.
3 things you like best about the WordPress community?
My favorite part of the WordPress community are of course, the people themselves. I’ve been to dozens of WordCamps and other meetups and have never had a negative experience. It really is like a family. Most people are willing to help and advise without expecting anything in return. It’s always positive and collaborative and the world needs more of that. 🙂
Rank the following in order of importance – Users, Revenue, Popularity, Quality, Brand Image
- Quality – can’t have users without quality
- Users – provide quality solutions, timely support, and people will be loyal
- Revenue – needed to keep providing plugins 🙂
- Brand Image – get a logo and stick with it
- Popularity – this comes if you provide the first two points above
Adam, thanks for your time and valuable advice. We’ll be sure to keep an eye out for more extensions by FooPlugins.
And yes for folks reading this… here’s an ‘Adam Warner’ tip for budding entrepreneurs, “Ignore the naysayers and listen to your inner voice. Anything is possible if you believe in yourself and your goal.” (Adam’s written a post titled Visualizing and Achieving your Success on his personal blog with more on this).
For more from Adam, you can follow @wpmodder on twitter.
If you ask folks at WisdmLabs about Praveen, they’ll tell you he’s an ace developer, WisdmLabs’ first employee, a closet singer, and…. a funny guy.
In fact Praveen’s ‘pj cracking’ reputation precedes him. He’s always known to target clueless workmates with his out-of-the-box riddles.
What most people probably do not know, is that Praveen is a prolific writer. Whether it be documenting his work, writing emails, adding review comments, or answering interview questions, Praveen likes to add all possible details.
So, as you can imagine, what started off as an interview, has turned into a mini-autobiography :-p .
But Praveen’s genuine answers surely have something to teach everyone.
Over to you Praveen!
When you started working at WisdmLabs, you were the only developer in the start-up. What has the experience taught you?
When it comes to doing work, I guess all of us feel the same way- the number people around don’t really matter. But emotionally, it matters. We are not machines, we are human beings. We want people around, to grab a quick bite, talk over coffee, or just have some fun.
At the very beginning, I was a bit worried. I wondered if the company would ever hire another developer or end up with only one developer 🙂
But the company assured me security and I trusted it.
I remember what Rohan Thakare said to me one day, “Do you want to be a person working under someone in a big company or do you want someone working under you soon in a small company?” I chose to believe the latter and there was no looking back.
When you specifically ask me what I have learnt in these past few years, I’d like to draw out a parallel here to explain this-
A company is like a tree. The founder of the company is the farmer, who plants a seed with the belief that one day it will start growing. Investments are nothing but water and fertilizers. But just like any tree, the farmer knows the tree needs a solid root to grow and rise above the ground and become visible in the market.
The developers (for an IT firm) are nothing but the roots of the tree.
The sapling initially has one main root. As the roots grow, they strengthen the tree. Over a period of time, the tree grows and has different branches and sub-ranches. Services a company provides, are the shade of the tree, and the products are the fruits. It is up to the farmer or the company’s founder to shape the tree or company based on the seed he plants.
Our company is a perfect balance of the two.
We strive to create a tree which provides shade as well as produce fruits equally.
I had the opportunity to be the primary root of this tree. And I have seen it grow from the ground up. I have learnt that not every root is the same- some strengthen, whereas some get destroyed, just like some developers shine, while others quit.
Apart from learning how to lead teams and mentor developers, I observed how other departments worked as well, like sales and marketing.
- I learnt how to analyse problems and plan milestones
- I improved my development and testing skills
- I undertook site migrations
- I communicated with clients directly
- I was part of service projects as well as products
- and I was part of the hiring process as an interviewer
I got an opportunity to be part of almost every phase of the SDLC. And I don’t think this sort of exposure/opportunity would have been possible if I was part of a large company, at least not in a short period. But it was definitely possible in a start up.
What factors do you take into account when architecting a WordPress plugin? And how do you go about it?
“Design is the soul of the end software”
By design, I mean the software design/architecture and not the UI design. If your software has not been designed well, you are inviting nothing but support queries. You’re also making the software less flexible.
When it comes to building a WordPress plugin, I try not to restrict my thinking by considering it to be an extension to WordPress. Instead, I consider it to be a general web based software which can be developed on any technology or any CMS. So, I try to architect the plugin in such a way that it’s easy for the solution/idea to be ported to any platform. Broadly speaking, it should appear to be a standalone piece of software, whereas internally it should contain WordPress functions.
For large systems, I think there isn’t a need to rely on the WordPress architecture, since the solution may or may not be fulfilled completely by WordPress’ architecture. If necessary, your own database structure would have to be created as well.
When creating the architecture of the plugin/solution you have to support it with several other factors:
- Viability of the solution/scope: If it’s a product, you have to set a goal based on the viability of the solution. If it’s a part of service, you have to finalize the scope as per the requirements. Otherwise, you will just end up with developing the solution and not be able deliver it on time and under the expected cost.
- Flow Diagrams: To build a good architecture, and design the flow of the system, UML diagrams are always good to go. Even if you don’t want to create them officially, you could at least draw some rough diagrams to clear and finalize the flow of the system.
- Database: If the system is large and needs to handle large amounts of data and/or data in a manner where WordPress default tables do not seem to be a perfect fit, create new tables. Do not try forcing/adjusting your solution with the existing tables and architecture of WordPress.
- File organization: File organization matters. Before writing a single line of code, you have to make sure your files are well organized.
- Code design: As per your directory structure, you have to add the necessary class files to handle each different module and sub module. You also have to add the function prototypes along with comments for each of its parameters and return value.
- Task management: You have to prepare a task list and estimate the time needed to complete each task. Additionally, prepare tasks and their estimations for DB design and code integration.
- Test plans: Prepare test plans for the system.
- Deadline/timelines: Set timelines to achieve different milestones and a tentative deadline.
- Documentation: Document all of the above before coding.
Which are some of your must-follow coding practices?
#1 Boilerplate Coding
I recommend following boilerplate coding. Major coding practices are covered via file organization, object oriented programming, code documentation, internationalization etc. Stick to it!
#2 Code Optimization
- SQL queries: Always optimize your queries. Not in the way you write them, but in the way they will be executed.
- Page load: Follow commonly used practices here-
- In CSS, use direct selectors or selectors with low specificity hierarchy as much as possible.
- JS/CSS code should be minified and should be managed in fewer files to reduce HTTP requests.
- Use a CDN to serve scaled images.
- Memory optimization: You should use variables, objects, database queries in such a way that the least amount of memory is used.
#3 Security Measures
- You should always consider security factors when writing database queries. For example, you have to ensure that your SQL queries are injection free.
- You should use nonce for form submissions to avoid cross site scripting.
- All inputs should be sanitized and the output should be secured by escaping user data.
#4 Continuous Testing during Development
Some developers write a good amount of code, say a complete function, and then finally test its output. For me, this is not a good practice. In such cases, the testing you do might not be sufficient. For example, the output might not be as expected. The developer would then have to spend a great deal of time debugging his own code using breakpoints until the issue is caught. Or for example, even if the output might be correct, it could have worked only for the given input. Such errors may then be caught during black box testing.
Instead, it’s better to keep on testing shorter brackets of code frequently.
#5 When using Third-Party Code
When using third-party code, you should make sure that it’s being used as per the licensing terms for that code. If it’s under GPL and redistributable, you can use it, but you should pass on credits to the author (somewhere in your plugin/theme file or under comments). I personally feel this has to be done out of respect for the original developer’s effort (whose code is being used).
And remember, you should not use third party code blindly. You should test the code beforehand, review it, and only if all’s well- use it. If it’s a library then you can at least search for reviews, ratings and recommendation by other developers.
#6 Revision Control
According to me this is a must follow practice for any developer. Stable code should be committed frequently during development. This not only helps you during development, when multiple developers are working at once, but can also act as a backup for your changes made. Revision history helps you track back changes made by you, or fellow developers.
What qualities do you look out for when hiring a developer?
When hiring a developer I look out following (these are qualities an ideal applicant should have):
- Should have good grasping power
- Should be a good listener
- Should have the enthusiasm for learning
- Should be able to evaluate and solve a problem from a developer’s as well as end user’s perspective
- Should have confidence
- Should be interested in the job
What I’ve noticed is that some candidates aren’t clear about their interests. If they are asked whether they would be okay with a different job profile, they agree, because they just want a job. But, that’s not right. They should be clear about the profile they would want to take up and the kind of role they will be good at.
If an applicant does not possess all of these qualities, but is quite good, I might still select him/her. But there are a few other qualities which for me, an applicant must have.
- Must have Common sense
- Must have Logic
- Must have Focus
- Must have Problem solving skill
- Must have a Good attitude
“I would never hire a person who’s egoistic or one who has a bad attitude even if he/she might be very good at technology.”
If you could change one aspect about the WordPress CMS, what would it be? And why?
I’d like to see WordPress bring back end (default admin CSS) and front end themes together. Whatever is applied to the front end should be adapted to the back end as well. The default admin panel theme can only be used as a fallback, if the active theme is missing from its place or broken.
In fact, when a person sees the site, there shouldn’t be a need to use two different terms back end and front end. I think, there has to be some functionality provided by WordPress to make the entire admin panel available on the front end, without the need to redirect between the back end and the front end.
“Eliminate the terms back end and front end from the WordPress dictionary”
When building a website, what is the biggest issue developers often tend to overlook?
Many developers do not prepare a complete documentation for the end user/client. Most plugins and themes might add their documentation as the readme file. But it’s not always the case. For example, plugin or theme authors might provide a readme file, while uploading their product on say the WordPress repository or some marketplace, because it’s mandatory. But, they tend to miss out adding some sort of documentation for a service related project.
I believe, even if each plugin and theme (used on the site being developed) has it’s own supporting documentation, there should be a final documentation to guide the client with the integration, use and flow of each plugin and the theme in the system.
Thank-you Praveen. Your answers have been insightful and they are a true reflection of you. But of course this interview can’t end without one of Praveen’s pjs… so here goes: