BACKGROUND: I've been developing in PHP for two years - self taught, and beyond the most basic editing, really just a year and a half - but my experience is limited to a small number of environments. For the last three years, aside from random side projects, I've basically spent all my time developing custom solutions for one company's 12 sites, mostly WordPress with some occasional Drupal work for good measure. Most of these sites are for annual conferences and trade shows, so I stay busy constantly releasing new features, annual style overhauls, etc. I also build weekly marketing emails for their various campaigns.

Essentially, everything I have built has been on servers and systems I know intimately. I never have to wonder very long what could be causing a problem, as my browser console and WP_DEBUG are never far away.

PROBLEM: I've begun to reach out to prospective employers and had my first technical interview with a legit silicon valley development firm yesterday. I failed miserably. Aside from the second question which dealt with PHPUnit, a tool I had never heard of and was nowhere in the job description or mentioned in the earlier interview, I fell apart on the third question.

Since then, this question has been plaguing me, and I've been trying to learn what the best answer I could have given is. I'm coming up short. Here's the gist:

"So, knowing that our plugins are distributed to over a thousand websites, with all of their many possible configurations, how would you proceed when a customer reports an error of an unknown nature?"

My answer: "Well, most plugin companies I've worked with have asked detailed questions to try to root out the issue. I would begin by asking the user to deactivate their other plugins one at a time to see if that resolved the issue. If resolved, I would setup a local environment to see if I could duplicate the issue with both of those plugins installed..." etc. "From there, if still not resolved, I would request Admin access, as I've seen some of the largest plugin producers do (WPMU DEV, for instance) to try to resolve the issue - by using WP_DEBUG(TRUE), or other methods as the specific problem may dictate."

Apparently, this was hella wrong. She claimed that many users would feel uncomfortable giving out those credentials (either wp admin or ftp), and that many users would not have the requisite savvy to go through the plugin-deactivating testing steps. So what then should I do?

I got stuck. No idea. If I can't get in at all, and you can't at the very least tell me what plugins and theme you're using so I can try to duplicate... How in the world could I possibly figure out what is causing an error that can't be seen on the front end?

She began leading me to the right answer by asking me about whether there was a way to use var_dump (which I never use because, once again, I deal with a very limited number of environments usually).

Apparently, she felt that the right answer was to build a var_dump function into the plugin that linked up to an email script which would email me the results of the var_dump. This function should be activated by an easy to find button somewhere in the plugins admin panel so the user can send me the information.

Now, I'm not saying she's wrong. I know there's a ton I don't know and my limited experience with large scale productions is holding me back ("hello first public project on Github"). What I do know is that I'm digging through some of the larger plugins that I've downloaded from the WordPress repository to find some instance of a similar approach to error handling and I'm not seeing it. I'm also not finding much in the way of tutorials that address this scenario via google. So, can anyone advise on where I should look to develop better error handling skills? Or was my answer, by some weird bit of luck, right (though I doubt it)?

For extra flavoring - she was quite obviously displeased by everything that happened after the first question (basic query and loop question, easily nailed), and I was so completely caught off guard hearing what I thought I knew to be right was apparently so disgustingly wrong to her, that I basically broke down at the end of the interview. When she asked if I had any questions for her (with a heavy note of impatience in her voice), I basically said "I feel like I bombed this..." She said "Yeah." I said "I'm sorry if I wasted your time. I hope you have a great day." She hung up.

  • Five minutes later, Illustrator crashes and asks me if I want to send an error report.... Maybe in this type of environment the best solution would be to employ something like this? Send myself a copy of the error log? I can't recall seeing this done by other plugins, but it could definitely be the tree I need to start "barking up". – Carl Elder May 27 '17 at 4:20

Looking at log files would indeed be the next logical step. Often there might be a toggle setting to enable/disable logging output. If that did not help identify the problem, you might go one step further and send the customer a special build with additional logging calls in it.

If that didn't work, you'd try to reproduce their setup (same OS, same PHP version, same database version, and whatever else was relevant) to see if you could duplicate the problem that way.

Asking for access to the server in most cases would be a last resort. But its really going to depend on the nature of your product. If this is a $30 Wordpress plugin, then I suspect most people wouldn't let you anywhere near their server. If this was a $300,000 CRM system and the customer knows you from user conferences, it may not be a problem at all.

| improve this answer | |
  • 1
    Thank you! Makes perfect sense. I've started to see some mention of this in the "related" questions list. I've never had a problem getting into the dashboard, but that's usually because I setup the dashboard and run it for all my clients. However, I've always felt iffy about letting random developers get a look at my setup when I've got an error issue with someone else' product, so this does seem like the best solution for all involved. Off to the PHP Manual! – Carl Elder May 27 '17 at 5:04
  • 1
    @CarlElder No problem. It is a weird interview question because the actual progression would be something fairly specific to each company, so its a bit unfair to expect a candidate to know what a given company would want. I don't think their var_dump() to email link is a particularly good idea, and wont work in many cases. Better to have the customer download and send you the files. – GrandmasterB May 27 '17 at 5:16

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.